BIDU Postado Fevereiro 10, 2019 Denunciar Compartilhar Postado Fevereiro 10, 2019 Tenho uma duvida de como verificar se o jogador tem um item ou nao no inventario, e se tiver, quantos. Link para o comentário Compartilhar em outros sites More sharing options...
Checkium Postado Fevereiro 11, 2019 Denunciar Compartilhar Postado Fevereiro 11, 2019 Não sei se é o melhor metodo de fazer, mas costumo usar um loop por todos os itens no inventario e verificar um a um se o tipo e metadata do item são os mesmos, caso queira saber quantos tem pode ir somando em alguma variavel. Link para o comentário Compartilhar em outros sites More sharing options...
BIDU Postado Fevereiro 12, 2019 Autor Denunciar Compartilhar Postado Fevereiro 12, 2019 1 hora atrás, Checkium disse: Não sei se é o melhor metodo de fazer, mas costumo usar um loop por todos os itens no inventario e verificar um a um se o tipo e metadata do item são os mesmos, caso queira saber quantos tem pode ir somando em alguma variavel. Entao, eu tentei usar um for para detectar, mas eu tinha q detectar o inv inteiro de uma vez, por exemplo, se no inv tem o item q eu quero, eu mando uma msg, mas se n tiver, eu mando outra. Mas quando ele ta num slot e tem outro no slot 1, por exemplo, ele considera q n tem. Link para o comentário Compartilhar em outros sites More sharing options...
Checkium Postado Fevereiro 12, 2019 Denunciar Compartilhar Postado Fevereiro 12, 2019 20 horas atrás, BIDU disse: Entao, eu tentei usar um for para detectar, mas eu tinha q detectar o inv inteiro de uma vez, por exemplo, se no inv tem o item q eu quero, eu mando uma msg, mas se n tiver, eu mando outra. Mas quando ele ta num slot e tem outro no slot 1, por exemplo, ele considera q n tem. Teria como mandar o codigo para verificar se tem algum erro? Link para o comentário Compartilhar em outros sites More sharing options...
BIDU Postado Fevereiro 12, 2019 Autor Denunciar Compartilhar Postado Fevereiro 12, 2019 2 horas atrás, Checkium disse: Teria como mandar o codigo para verificar se tem algum erro? Claro, vou mandar o codigo. @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player p = (Player)sender; if(label.equalsIgnoreCase("vender")) { for(ItemStack itens : p.getInventory().getContents()) if(itens.getType() == Material.LAPIS_BLOCK) { p.sendMessage("oi"); return true; }else { p.sendMessage("nao"); return true; } } return false; } Link para o comentário Compartilhar em outros sites More sharing options...
Checkium Postado Fevereiro 13, 2019 Denunciar Compartilhar Postado Fevereiro 13, 2019 17 horas atrás, BIDU disse: Claro, vou mandar o codigo. @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player p = (Player)sender; if(label.equalsIgnoreCase("vender")) { for(ItemStack itens : p.getInventory().getContents()) if(itens.getType() == Material.LAPIS_BLOCK) { p.sendMessage("oi"); return true; }else { p.sendMessage("nao"); return true; } } return false; } Você está executando a verificação e enviando a mensagem a cada item o que faz com que varias verificações dêm não mesmo sendo o item desejado. Recomendo usar uma boolean setada originalmente como false e dentro da verificaçao caso o item seja o desejado altera-la para true, assim depois que o loop acabar você pode usar essa boolean para saber se existe algum item. 1 Link para o comentário Compartilhar em outros sites More sharing options...
Guilherme9 Postado Fevereiro 13, 2019 Denunciar Compartilhar Postado Fevereiro 13, 2019 (editado) Desisti de programar em bukkit, mas acho que é algo assim ou parecido @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player)) return true; Player p = (Player) sender; if (command.getName().equalsIgnoreCase("exemplo")) { if (p.getInventory().contains(new ItemStack(Material.DIRT, 1))) { p.getInventory().removeItem(new ItemStack[] { new ItemStack(Material.DIRT, 1) }); p.updateInventory(); p.sendMessage("'Perdi a terra"); } else p.sendMessage("Não tenho o item terra"); } } Editado Fevereiro 13, 2019 por Guilherme9 esqueci de uma chave Link para o comentário Compartilhar em outros sites More sharing options...
Checkium Postado Fevereiro 14, 2019 Denunciar Compartilhar Postado Fevereiro 14, 2019 Em 13/02/2019 em 19:19, Guilherme9 disse: Desisti de programar em bukkit, mas acho que é algo assim ou parecido @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player)) return true; Player p = (Player) sender; if (command.getName().equalsIgnoreCase("exemplo")) { if (p.getInventory().contains(new ItemStack(Material.DIRT, 1))) { p.getInventory().removeItem(new ItemStack[] { new ItemStack(Material.DIRT, 1) }); p.updateInventory(); p.sendMessage("'Perdi a terra"); } else p.sendMessage("Não tenho o item terra"); } } Esse código apenas funciona caso você queira detetar apenas stacks com uma terra, além de não ser possivel saber a quantidade de todos os stacks do inventario, o que vai contra o intuito do post original. Link para o comentário Compartilhar em outros sites More sharing options...
BIDU Postado Fevereiro 15, 2019 Autor Denunciar Compartilhar Postado Fevereiro 15, 2019 Em 13/02/2019 em 15:14, Checkium disse: Você está executando a verificação e enviando a mensagem a cada item o que faz com que varias verificações dêm não mesmo sendo o item desejado. Recomendo usar uma boolean setada originalmente como false e dentro da verificaçao caso o item seja o desejado altera-la para true, assim depois que o loop acabar você pode usar essa boolean para saber se existe algum item. entendo, mas não tenho ideia de como fazer isto Link para o comentário Compartilhar em outros sites More sharing options...
TH_Marinho Postado Fevereiro 15, 2019 Denunciar Compartilhar Postado Fevereiro 15, 2019 Chama discord Thales Marinho#8831 Link para o comentário Compartilhar em outros sites More sharing options...
BIDU Postado Fevereiro 20, 2019 Autor Denunciar Compartilhar Postado Fevereiro 20, 2019 Em 15/02/2019 em 21:53, TH_Marinho disse: Chama discord Thales Marinho#8831 Oi, nao consegui adicionar voce! Poderia me adicionar? I don't know my name#7268 Link para o comentário Compartilhar em outros sites More sharing options...
Wolf_131 Postado Março 1, 2019 Denunciar Compartilhar Postado Março 1, 2019 Seu tópico foi marcado como Inativo. Para reverter está ação, entre em contato com a equipe de Moderação. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados