Ir para conteúdo
  • 0

[Resolvido] [Dúvida] Item + inventario


LuizB

Pergunta

Como faço pra setar 1 item em um Slot vazio ?

Já Tentei Usar Este Código, só que enche o Invetario do player de botas

 

ItemStack bootNB = new ItemStack(Material.IRON_BOOTS);
		bootNB.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 4);
		for(int i = 0 ; i < s.getSize() ; i++) {
		    ItemStack item = s.getItem(i);
	            if(item == null || item.getType() == Material.AIR){
	            	s.setItem(i, bootNB);
	          
	            }


// s = Inventory
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

Claro fera tu nunca ta parando o loop, caso todos os slots estejam vazios ele vai setar em todos.

ItemStack bootNB = new ItemStack(Material.IRON_BOOTS);
bootNB.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 4);
for(int i = 0 ; i < s.getSize() ; i++) {
	ItemStack item = s.getItem(i);
	if(item == null || item.getType() == Material.AIR){
		s.setItem(i, bootNB);
                break; // <------------------------------------------
	}
}

Ou

int emptySlot = inventario.firstEmpty();

if (emptySlot == -1) {
  player.sendMessage("Você nao tem um slot vazio.");
} else {
  inventario.setItem(emptySlot, bootNB);
}
Link para o comentário
Compartilhar em outros sites

ItemStack bootNB = new ItemStack(Material.IRON_BOOTS);
        bootNB.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 4);
        for(int i = 0 ; i < s.getSize() ; i++) {
            ItemStack item = s.getItem(i);
            if(item == null || item.getType() == Material.AIR){
                 s.setItem(i, bootNB);
                 break;
    
     }

só colocar um break;

isso faz parar o loop

Editado por Thelike
Link para o comentário
Compartilhar em outros sites

 

ItemStack bootNB = new ItemStack(Material.IRON_BOOTS);
        bootNB.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 4);
        for(int i = 0 ; i < s.getSize() ; i++) {
            ItemStack item = s.getItem(i);
            if(item == null || item.getType() == Material.AIR){
                 s.setItem(i, bootNB);
                 break;
    
     }
só colocar um break;

isso faz parar o loop

Assim so irar colocar o item na mão do player.

 

Tente deixar somente item.gettype...

Link para o comentário
Compartilhar em outros sites

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