Dery Postado Setembro 10, 2015 Denunciar Compartilhar Postado Setembro 10, 2015 Já utilizei todos os códigos que conheço para tentar pegar quantos itens o player tem no inventário, porém nenhum funciona. Estou usando este código: int qnt = 0; for (Map.Entry<Integer, ? extends ItemStack> qnt2 : p.getInventory().all(new ItemStack(Material.getMaterial(1))).entrySet()){ qnt += ((ItemStack)qnt2.getValue()).getAmount(); } A contagem não sai do 0. Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Setembro 11, 2015 Denunciar Compartilhar Postado Setembro 11, 2015 Poha mano, vocês complicam tudo '-' Só usar: p.getInventory().getContents().length Isso sempre retorna o 36 se nao me engano. ué public int sizeInInventory(Player p) { int armaduras = p.getInventory().getArmorContents().length; int item = p.getInventory().getContents().length; int total = armaduras + item; return total; } Mesma coisa q eu falei pro zmati... Pelo menis era assim quando eu mexia cm bukkit, getContents retorna sempre o mesmo tamanho, pq os slots q nao tem nada é preenchido com null ué public int sizeInInventory(Player p) { int armaduras = p.getInventory().getArmorContents().length; int item = p.getInventory().getContents().length; int total = armaduras + item; return total; } Mesma coisa q eu falei pro zmati... Pelo menis era assim quando eu mexia cm bukkit, getContents retorna sempre o mesmo tamanho, pq os slots q nao tem nada é preenchido com null Falando bem leigamente, cria uma variavel do tipo inteiri, e faz um for que percorra todos os items do inventario, e checa se o item atual nao è nulo, se nao for, adiciona +1 nakela variavel que tu crio, pronto, o numero q tivw na variavel e o numero d items. Mals pelos erros, to no cel. Link para o comentário Compartilhar em outros sites More sharing options...
Krash0 is Alive Postado Setembro 10, 2015 Denunciar Compartilhar Postado Setembro 10, 2015 Já utilizei todos os códigos que conheço para tentar pegar quantos itens o player tem no inventário, porém nenhum funciona. Estou usando este código: int qnt = 0; for (Map.Entry<Integer, ? extends ItemStack> qnt2 : p.getInventory().all(new ItemStack(Material.getMaterial(1))).entrySet()){ qnt += ((ItemStack)qnt2.getValue()).getAmount(); } A contagem não sai do 0. Eu faria assim: int Qnt=0; for(int i=0;i<p.getInventory.getSize();i++){ if(p.getInventory.getItem(i)!=null){ Qnt=Qnt+p.getInventory.getItem(i).getAmount(); } } Link para o comentário Compartilhar em outros sites More sharing options...
zMathi Postado Setembro 10, 2015 Denunciar Compartilhar Postado Setembro 10, 2015 Poha mano, vocês complicam tudo '-' Só usar: p.getInventory().getContents().length Link para o comentário Compartilhar em outros sites More sharing options...
Krash0 is Alive Postado Setembro 10, 2015 Denunciar Compartilhar Postado Setembro 10, 2015 Poha mano, vocês complicam tudo '-' Só usar: p.getInventory().getContents().length Desse jeito conta os itens do inventário, sem os slots das armaduras, acho que para ele cerve haushasua, o que eu falei conta tudo..... Link para o comentário Compartilhar em outros sites More sharing options...
Karamujo Postado Setembro 10, 2015 Denunciar Compartilhar Postado Setembro 10, 2015 (editado) ué public int sizeInInventory(Player p) { int armaduras = p.getInventory().getArmorContents().length; int item = p.getInventory().getContents().length; int total = armaduras + item; return total; } Editado Setembro 10, 2015 por Karamujo 1 Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Setembro 11, 2015 Autor Denunciar Compartilhar Postado Setembro 11, 2015 Isso sempre retorna o 36 se nao me engano. Mesma coisa q eu falei pro zmati... Pelo menis era assim quando eu mexia cm bukkit, getContents retorna sempre o mesmo tamanho, pq os slots q nao tem nada é preenchido com null Mesma coisa q eu falei pro zmati... Pelo menis era assim quando eu mexia cm bukkit, getContents retorna sempre o mesmo tamanho, pq os slots q nao tem nada é preenchido com null Falando bem leigamente, cria uma variavel do tipo inteiri, e faz um for que percorra todos os items do inventario, e checa se o item atual nao è nulo, se nao for, adiciona +1 nakela variavel que tu crio, pronto, o numero q tivw na variavel e o numero d items. Mals pelos erros, to no cel. Vou ver, obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
vitorrdgs Postado Setembro 11, 2015 Denunciar Compartilhar Postado Setembro 11, 2015 (editado) Como o leo disse, pegar o size vai retornar tudo, até os slots vazios, eu fiz 2 métodos, um retorna a quantidade de itens que o cara tem no inventário (getItemsInPlayerInventorySize), o outro retorna o quanto os itens tem (getItemsSizeInPlayerInventory). Link: http://pastebin.com/44qy3wDd Editado Setembro 11, 2015 por zViitoor Link para o comentário Compartilhar em outros sites More sharing options...
Karamujo Postado Setembro 11, 2015 Denunciar Compartilhar Postado Setembro 11, 2015 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.Atenciosamente,Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Dery
Já utilizei todos os códigos que conheço para tentar pegar quantos itens o player tem no inventário, porém nenhum funciona.
Estou usando este código:
A contagem não sai do 0.
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados