Ir para conteúdo
  • 0

[Resolvido] Pegar a quantidade de itens que o player tem no inventário


Dery

Pergunta

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

8 respostass a esta questão

Posts Recomendados

 

 

Poha mano, vocês complicam tudo '-'

 

Só usar:

 

p.getInventory().getContents().length

 

Isso sempre retorna o 36 se nao me engano.

 

 

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

 

 

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

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

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 por Karamujo
Link para o comentário
Compartilhar em outros sites

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

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 por zViitoor
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...