Ir para conteúdo
  • 0

[Resolvido] Java Code InventoryClickEvent alguem ajuda plis


Critical_XxX

Pergunta

alguem me ajuda aki

o plugin ta funcionando e esse erro so acontece de vez em quando

nao acontece toda hora

erro do console

 

 

[15:06:36 ERROR]: Could not pass event InventoryClickEvent to kOceanosPvP v1.0
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:294) ~[spigot.jar:git-Spigot-1380]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[spigot.jar:git-Spigot-1380]
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi
stener.java:30) ~[spigot.jar:git-Spigot-1380]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:502) [spigot.jar:git-Spigot-1380]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:487) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.PlayerConnection.a(PlayerConnection.java
:1403) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.PacketPlayInWindowClick.a(SourceFile:32)
 [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.PacketPlayInWindowClick.handle(SourceFil
e:10) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.NetworkManager.a(NetworkManager.java:148
) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.ServerConnection.c(ServerConnection.java
:77) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.MinecraftServer.v(MinecraftServer.java:7
05) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.DedicatedServer.v(DedicatedServer.java:2
73) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.MinecraftServer.u(MinecraftServer.java:5
68) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.MinecraftServer.run(MinecraftServer.java
:474) [spigot.jar:git-Spigot-1380]
        at net.minecraft.server.v1_7_R2.ThreadServerApplication.run(SourceFile:6
18) [spigot.jar:git-Spigot-1380]
Caused by: java.lang.NullPointerException
        at me.kOceanosPvP.Manager.GuiWarp.inventarioclick(GuiWarp.java:112) ~[?:
?]
        at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.7.0_71]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:292) ~[spigot.jar:git-Spigot-1380]
        ... 14 more 

 

 

 

aki esta o codigo que uso 

 

 

 

	@EventHandler
	public void inventarioclick(InventoryClickEvent e){
		Player p = (Player) e.getWhoClicked();
		if(e.getInventory().getTitle().equals(ChatColor.GOLD + "Warps")){
			e.setCancelled(true);
if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(Main.config.getConfig().getString("ServerName").replace("&", "§"))){
	e.setCancelled(true);
	p.closeInventory();
	return;
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GREEN + "Bem Vindo " + ChatColor.GOLD + p.getDisplayName() + ChatColor.GREEN + 
		" ao " + Main.config.getConfig().getString("ServerName").replace("&", "§"))){
	e.setCancelled(true);
	p.closeInventory();
	return;
}
			if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "FPS")){
				e.setCancelled(true);
				p.closeInventory();
				p.chat("/fps");
				return;
			}
			if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "Main")){
				e.setCancelled(true);
				p.closeInventory();
				p.chat("/main");
				return;
			}
			if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "EarlyHG")){
				e.setCancelled(true);
				p.closeInventory();
				p.chat("/" + Main.config.getConfig().getString("ComandoEarlyHG"));
				return;
			}
			if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "Lava Challenge")){
				e.setCancelled(true);
				p.closeInventory();
				p.chat("/challenge");
				return;
			}
			if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "1v1")){
				e.setCancelled(true);
				p.closeInventory();
				p.chat("/" + Main.config.getConfig().getString("Comando1v1"));
				return;
		}
			if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "RDM")){
				e.setCancelled(true);
				p.closeInventory();
				p.chat("/rdm");
				return;
			}
			if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "MDR")){
				e.setCancelled(true);
				p.closeInventory();
				p.chat("/mdr");
				return;
			}
   	     }
	   } 

 

 

 

e aqui esta a linha 112 que é onde mostra no console onde esta o erro 

 

 

 

if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(Main.config.getConfig().getString("ServerName").replace("&", "§"))){ 

 

 

 

alguem ajuda ai vlw a quem ajudar

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

Coloque isso para checar antes de TUDO.

 

if(e.getCurrentItem() != null){
            if(e.getCurrentItem().getType() != Material.AIR){
                if(e.getCurrentItem().hasItemMeta()){
                    //Cheque ;D

Link para o comentário
Compartilhar em outros sites

Coloque isso para checar antes de TUDO.

 

if(e.getCurrentItem() != null){

            if(e.getCurrentItem().getType() != Material.AIR){

                if(e.getCurrentItem().hasItemMeta()){

                    //Cheque ;D

mas ai ele ta verificando se o item nao for nulo e nao for um bloco de air

onde ta o cheque eu coloco o codigo que uso normalmente né

?

Link para o comentário
Compartilhar em outros sites

@EventHandler

public void onClick(InventoryClickEvent e) {

if(e.getCurrentItem()==null)return;

Player p = (Player)e.getWhoClicked();

if(e.getInventory().getTitle().equals("§cWarps")) {

e.setCancelled(true);

p.closeInventory();

if(e.getCurrentItem().hasItemMeta()) {

String title = e.getCurrentItem().getItemMeta().getDisplayName();

if(title.equals("§aFPS")) {

// Teleporta o player, eu usaria por tipo do item, ex: STONE vai pra X warp

}

}

}

}

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

Muito código duplicado, vou refazer pra você e já posto.

 

@Edit

	@EventHandler
	public void inventarioclick(InventoryClickEvent e)
	{
		if (e.getInventory().getTitle().equals(ChatColor.GOLD + "Warps") && e.getCurrentItem() != null && e.getCurrentItem().getType() != Material.AIR)
		{
			Player p = (Player) e.getWhoClicked();
			
			if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "FPS"))
			{
				p.chat("/fps");
			}
			else if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "Main"))
			{
				p.chat("/main");
			}
			else if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "EarlyHG"))
			{
				p.chat("/" + Main.config.getConfig().getString("ComandoEarlyHG"));
			}
			else if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "Lava Challenge"))
			{
				p.chat("/challenge");
			}
			else if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "1v1"))
			{
				p.chat("/" + Main.config.getConfig().getString("Comando1v1"));
			}
			else if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "RDM"))
			{
				p.chat("/rdm");
			}
			else if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "MDR"))
			{
				p.chat("/mdr");
			}
			
			e.setCancelled(true);
			p.closeInventory();
		}
	}
Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

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