Ir para conteúdo

Verificar inventario


zToodi

Posts Recomendados

Hellow, gostaria de pedir uma ajudinha..

estou tendo dificuldades em tentar verificar se o jogador contém 2 itens renomeados em seu inventario...

Para verificar se o jogador contém 1 item em seu inventario eu uso o: if (p.getInventory().contains(item)) {

Porém como verificado se ele contém 2 itens? se ele não conter os 2 itens, irá enviar uma mensagem de erro...

Link para o comentário
Compartilhar em outros sites

  • ItemStack[] inv = p.getInventory().getContents();
    		     for(ItemStack itens:inv) {
    		      if(itens != null) {
    		    	if(itens.getType() != Material.AIR) {
                      if(itens.getItemMeta().getDisplayName().equals("Sla")) {
                        //code
                        p.sendMessage("Você tem itens com o nome 'sla'...");
                      } else {
                        //code
                        p.sendMessage("Você não tem itens com o nome 'sla'...");
                      }
                    }
                  }
                 }

    Espero ter ajudado, qualquer dúvida só me marcar no tópico.

Link para o comentário
Compartilhar em outros sites

8 horas atrás, iHuck disse:
  • 
    ItemStack[] inv = p.getInventory().getContents();
    		     for(ItemStack itens:inv) {
    		      if(itens != null) {
    		    	if(itens.getType() != Material.AIR) {
                      if(itens.getItemMeta().getDisplayName().equals("Sla")) {
                        //code
                        p.sendMessage("Você tem itens com o nome 'sla'...");
                      } else {
                        //code
                        p.sendMessage("Você não tem itens com o nome 'sla'...");
                      }
                    }
                  }
                 }

    Espero ter ajudado, qualquer dúvida só me marcar no tópico.

Adicione uma verificação se o item tem ItemMeta, se você não fizer isso pode dar erro Por exemplo, se o item que estiver sendo verificado não tiver ItemMeta(normalmente usado para name e/ou lore), irá dar erro.

Diria que esse é o melhor método, não tenho certeza, mas acho que se você for verificar usando o contains, ele irá verificar se ele contém tal item, porém, ele irá levar em consideração a quantidade do item, por exemplo:

ItemStack item = new ItemStack(Material.WOOD);

O ItemStack item tem o type=WOOD e o amount=1, se o player que você estiver verificando tiver mais de 1, ele já ira negar a verificação.

Editado por zSnow
Adicionar conteúdo
Link para o comentário
Compartilhar em outros sites

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