Solved NullPointerException thing problem

Discussion in 'General Help' started by JigokuSaru, Apr 18, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    JigokuSaru

    Code:
    [04:46:00 ERROR]: Could not pass event InventoryClickEvent to Menu v1.0
    org.bukkit.event.EventException
      at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:297) ~[craftbukkit.jar:git-Bukkit-1a1bc08]
      at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1a1bc08]
      at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java
    :1544) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.PacketPlayInWindowClick.a(SourceFile:31)
     [craftbukkit.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.PacketPlayInWindowClick.a(SourceFile:9)
    [craftbukkit.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:1
    3) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
    ?:1.8.0_40]
      at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_40]
      at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [craftbukki
    t.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:6
    70) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:3
    36) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:6
    26) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java
    :534) [craftbukkit.jar:git-Bukkit-1a1bc08]
      at java.lang.Thread.run(Unknown Source) [?:1.8.0_40]
    Caused by: java.lang.NullPointerException
      at menuTest.Menu.onInventoryClick(Menu.java:58) ~[?:?]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
    _40]
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
    _40]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .8.0_40]
      at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_40]
      at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:295) ~[craftbukkit.jar:git-Bukkit-1a1bc08]
      ... 15 more
    Ok to start this is my error

    this is my plugin code in which the error happens
    Code:
    package menuTest;
    
    import java.util.Arrays;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.DyeColor;
    import org.bukkit.GameMode;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.material.Wool;
    import org.bukkit.plugin.Plugin;
    public class Menu implements Listener {
       private Inventory inv;
       private ItemStack c, s, a;
       
       public Menu(Plugin p){
         inv = Bukkit.getServer().createInventory(null, 9, "GameMode Changer");
         
         c = createItem(DyeColor.GREEN,ChatColor.GREEN + "Creative");
         s = createItem(DyeColor.YELLOW,ChatColor.YELLOW +  "Survival");
         a = createItem(DyeColor.RED, ChatColor.RED + "Adventure");
         
         inv.setItem(0,c);
         inv.setItem(2,s);
         inv.setItem(5,a);
    
         
         Bukkit.getServer().getPluginManager().registerEvents(this,p);
         
       }
       
       
       private ItemStack createItem(DyeColor dc, String name ){
         ItemStack i = new Wool(dc).toItemStack(1);
         ItemMeta im = i.getItemMeta();
         im.setDisplayName(name);
         im.setLore(Arrays.asList("gamemode" , name.toLowerCase()));
         i.setItemMeta(im);
         return i;
         
       }
       
       
       public void show(Player p){
         p.openInventory(inv);
       }
       
       @EventHandler
       public void onInventoryClick(InventoryClickEvent e){
       if(!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
       if(e.getCurrentItem().getItemMeta().getDisplayName().contains("survival")){
         e.setCancelled(true);
         e.getWhoClicked().setGameMode(GameMode.SURVIVAL);
       }
       if(e.getCurrentItem().getItemMeta().getDisplayName().contains("creative")){
         e.setCancelled(true);
         e.getWhoClicked().setGameMode(GameMode.CREATIVE);
       }
       if(e.getCurrentItem().getItemMeta().getDisplayName().contains("adventure")){
         e.setCancelled(true);
         e.getWhoClicked().setGameMode(GameMode.ADVENTURE);
       }
    }
    }
    and this is the error line
    Code:
     if(e.getCurrentItem().getItemMeta().getDisplayName().contains("survival")){
    If anyone can help Id love it THANKS
     
  2. Offline

    nverdier

    So something is returning a null there. You have to check that the ItemStack has an ItemMeta, and that the ItemMeta has a DisplayName.
     
  3. Offline

    JigokuSaru

    @nverdier Once again thank you :3 i figured out what i did wrong and it now works,
     
  4. Offline

    nverdier

    Anytime ;3
     
Thread Status:
Not open for further replies.

Share This Page