Ir para conteúdo
  • 0

[Duvida][Erro] Item na mão não sendo identificado


mabazi

Pergunta

O plugin esta funcionando normalmente, ele tem as lavas que viram obsidian/bedrock/endstone, que tem o titulo "Gerador" e a lore com o tipo

 

porem a lava comum manda erro no console quando usada

 

 

Cod: https://hastebin.com/ijebogagej.vbs

Erro: https://hastebin.com/luhotopeye.vbs

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

qual é a linha 130?

 

eu acho que é porque quando um balde é usado ele perde o seu ItemMeta ( acho ) , então não terá lore enquanto você está verificando a lore.

Faz um teste ae, mete lore e displayname em um balde e vê se essa lore não desaparece após o uso, se desaparecer então você terá que usar o PlayerInteractEvent.

 

se não for isso, é aquele ItemStack b = null; 

coloca ItemStack b = new ItemStack(1) , e depois vai alterando o id dele, if(lore.contains("Obsidian")){ b.setType(Material.OBSIDIAN);

Link para o comentário
Compartilhar em outros sites

qual é a linha 130?

 

eu acho que é porque quando um balde é usado ele perde o seu ItemMeta ( acho ) , então não terá lore enquanto você está verificando a lore.

Faz um teste ae, mete lore e displayname em um balde e vê se essa lore não desaparece após o uso, se desaparecer então você terá que usar o PlayerInteractEvent.

 

se não for isso, é aquele ItemStack b = null; 

coloca ItemStack b = new ItemStack(1) , e depois vai alterando o id dele, if(lore.contains("Obsidian")){ b.setType(Material.OBSIDIAN);

Linha 130:
if(lava.getItemMeta().getDisplayName().contains("Gerador")){
 
ele funciona normalmente com display name gerador e lore, mas da problema com lava normal sem edição
Link para o comentário
Compartilhar em outros sites

Já tentou verificar se o item na mão do player é diferente de null ou AIR, se ele DisplayName e Lore?

ItemStack b = null;
ItemStack lava = e.getPlayer().getItemInHand();
if(lava != null && lava.getType() != Material.AIR && 
		lava.hasItemMeta() && lava.getItemMeta().hasDisplayName() && lava.getItemMeta().hasLore() && lava.getItemMeta().getDisplayName().contains("Gerador")){
	for(String lore : lava.getItemMeta().getLore()){
		if(lore.contains("Obsidian")){
			b = new ItemStack(Material.OBSIDIAN);
		}else if(lore.contains("EndStone")){
			b = new ItemStack(Material.ENDER_STONE);
		}else if(lore.contains("BedRock")){
			b = new ItemStack(Material.BEDROCK);
		}else{
			b = new ItemStack(Material.AIR);
		}
	}
}
Link para o comentário
Compartilhar em outros sites

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