Ir para conteúdo
  • 0

[Resolvido] Erro com um codigo


Guest VitorEmanoel

Pergunta

Guest VitorEmanoel

Estou terminando um plugin, so que esta dando erro.

 

OBS: Se eu usar o ender chest com nome que ta no codigo nao da erro so se eu colocar o enderchest normal no chao que usar ele que da erro.

 

Erro:

[10:16:16 ERROR]: Could not pass event PlayerInteractEvent to PortableEnderchest v1.0
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot_server.jar:git-Spigot-604e046-4831c56]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot_server.jar:git-Spigot-604e046-4831c56]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at org.bukkit.craftbukkit.v1_9_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:212) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.PlayerInteractManager.a(PlayerInteractManager.java:482) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:840) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.PacketPlayInUseItem.a(SourceFile:55) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.PacketPlayInUseItem.a(SourceFile:11) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_77]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_77]
        at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:716) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:655) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:554) [spigot_server.jar:git-Spigot-604e046-4831c56]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_77]
Caused by: java.lang.NullPointerException
        at PortableEnderchest.Events.ac(Events.java:79) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_77]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_77]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_77]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_77]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot_server.jar:git-Spigot-604e046-4831c56]
        ... 17 more

Codigo:

@SuppressWarnings("deprecation")
	@EventHandler
	public void ac(PlayerInteractEvent e){
	    Player p = e.getPlayer();
	    ItemStack tool = p.getItemInHand();
            if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){
   		ItemMeta toolm = tool.getItemMeta();
   		if(tool.getType() == Material.ENDER_CHEST){
   			if(toolm.getDisplayName().contentEquals("§eEnderchest §9Portatil")){//Linha 79
   				e.setCancelled(true);
   				p.openInventory(p.getEnderChest());
   				return;
   			}else{
   				p.sendMessage("§eVoce colocou um Enderchest no chao");
   				p.sendMessage("§bVoce tambem pode comprar um enderchest portatil");
   				return;
   			    }
		    }
	    }
    }
Editado por VitorEmanoel
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados


@SuppressWarnings("deprecation")

@EventHandler

public void ac(PlayerInteractEvent e){

Player p = e.getPlayer();

ItemStack tool = p.getItemInHand();

if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){

if (tool.hasItemMeta()) {

ItemMeta toolm = tool.getItemMeta();

if(tool.getType() == Material.ENDER_CHEST){

if(toolm.getDisplayName().equals("§eEnderchest §9Portatil")){//Linha 79

e.setCancelled(true);

p.openInventory(p.getEnderChest());

return;

}else{

p.sendMessage("§eVoce colocou um Enderchest no chao");

p.sendMessage("§bVoce tambem pode comprar um enderchest portatil");

return;

}

}

}

}

}

Link para o comentário
Compartilhar em outros sites

@SuppressWarnings("deprecation")
	@EventHandler
	public void ac(PlayerInteractEvent e){
	    Player p = e.getPlayer();
	    ItemStack tool = p.getItemInHand();
            if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){
   		if (tool.hasItemMeta()) {
               ItemMeta toolm = tool.getItemMeta();
   		if(tool.getType() == Material.ENDER_CHEST){
   			if(toolm.getDisplayName().equals("§eEnderchest §9Portatil")){//Linha 79
   				e.setCancelled(true);
   				p.openInventory(p.getEnderChest());
   				return;
   			}else{
   				p.sendMessage("§eVoce colocou um Enderchest no chao");
   				p.sendMessage("§bVoce tambem pode comprar um enderchest portatil");
   				return;
   			    }
		    }
}
	    }
    }

Faltou o if(toolm.hasDisplayName()), pois se tiver itemmeta mais não tiver displayname vai dar NPE.

Link para o comentário
Compartilhar em outros sites

Guest VitorEmanoel
@SuppressWarnings("deprecation")
	@EventHandler
	public void ac(PlayerInteractEvent e){
	    Player p = e.getPlayer();
	    ItemStack tool = p.getItemInHand();
            if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){
   		if (tool.hasItemMeta()) {
               ItemMeta toolm = tool.getItemMeta();
   		if(tool.getType() == Material.ENDER_CHEST){
   			if(toolm.getDisplayName().equals("§eEnderchest §9Portatil")){//Linha 79
   				e.setCancelled(true);
   				p.openInventory(p.getEnderChest());
   				return;
   			}else{
   				p.sendMessage("§eVoce colocou um Enderchest no chao");
   				p.sendMessage("§bVoce tambem pode comprar um enderchest portatil");
   				return;
   			    }
		    }
}
	    }
    }

 

 

Faltou o if(toolm.hasDisplayName()), pois se tiver itemmeta mais não tiver displayname vai dar NPE.

 

Foi mal não ter respondiddo antes por que acordei agora, vo testar aqui se funcionar do resolvido.

 

@Edit

Hehe funcionou vlw

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

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