NullPointerException?

Discussion in 'Plugin Development' started by NeverRevenge, Nov 25, 2015.

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

    NeverRevenge

    Hey guys,

    i just made a easy donator kit plugin.
    so it just opens a inventory when a player clicks an chest(Placed on the ground).
    That part works, but when i open it, there are no items!

    KitInv class:
    Code:
    @EventHandler
        public void onOpen(PlayerInteractEvent e) {
            Inventory inv = Bukkit.createInventory(null, 27, "§c§lKit Menu");
            Player p = e.getPlayer();
            if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
                if(e.getClickedBlock().getType() == Material.CHEST) {
                    e.setCancelled(true);
                    p.openInventory(inv);
               
                ItemStack emerald = new ItemStack(Material.EMERALD);
                ItemStack diamond = new ItemStack(Material.DIAMOND);
                ItemStack vine = new ItemStack(Material.VINE);
                ItemStack goldhelmet = new ItemStack(Material.GOLD_HELMET);
                ItemStack rtorch = new ItemStack(Material.REDSTONE_TORCH_ON);
                ItemStack filler = new ItemStack(Material.STAINED_GLASS_PANE, (short) 15);
               
                ItemMeta em = emerald.getItemMeta();
                ItemMeta dm = diamond.getItemMeta();
                ItemMeta vm = vine.getItemMeta();
                ItemMeta ghm = goldhelmet.getItemMeta();
                ItemMeta rm = rtorch.getItemMeta();
                ItemMeta fm = filler.getItemMeta();
               
                ArrayList<String> eml = new ArrayList<>();
                ArrayList<String> dml = new ArrayList<>();
                ArrayList<String> vml = new ArrayList<>();
                ArrayList<String> ghml = new ArrayList<>();
                ArrayList<String> rml = new ArrayList<>();
               
                eml.add("§6§k||||||");
                eml.add("§eClick me for kit Donator!");
                eml.add("§6§k||||||");
               
    
                dml.add("§6§k||||||");
                dml.add("§eClick me for kit Legend");
                dml.add("§6§k||||||");           
    
                vml.add("§6§k||||||");
                vml.add("§eClick me for kit Extreme");
                vml.add("§6§k||||||");           
    
                ghml.add("§6§k||||||");
                ghml.add("§eClick me for kit King");
                ghml.add("§6§k||||||");           
    
                rml.add("§6§k||||||");
                rml.add("§eClick me for kit Supreme");
                rml.add("§6§k||||||");
               
                emerald.setItemMeta(em);
                diamond.setItemMeta(dm);
                vine.setItemMeta(vm);
                goldhelmet.setItemMeta(ghm);
                rtorch.setItemMeta(rm);
                filler.setItemMeta(fm);
               
    //                      KIT SLOTS
               
                inv.setItem(2, emerald);
                inv.setItem(6, diamond);
                inv.setItem(13, vine);
                inv.setItem(20, goldhelmet);
                inv.setItem(24, rtorch);
    
    //                    DONE
               
    //                  Filler Slots
                inv.setItem(0, filler);
                inv.setItem(1, filler);
                inv.setItem(3, filler);
                inv.setItem(4, filler);
                inv.setItem(5, filler);
                inv.setItem(7, filler);
                inv.setItem(8, filler);
                inv.setItem(9, filler);
                inv.setItem(10, filler);
                inv.setItem(11, filler);
                inv.setItem(12, filler);
                inv.setItem(14, filler);
                inv.setItem(15, filler);
                inv.setItem(16, filler);
                inv.setItem(17, filler);
                inv.setItem(18, filler);
                inv.setItem(19, filler);
                inv.setItem(21, filler);
                inv.setItem(22, filler);
                inv.setItem(23, filler);
                inv.setItem(25, filler);
                inv.setItem(26, filler);
    //                    DONE
    
                }
            }
        }
        }
    
    InvClick class:

    Code:
    @EventHandler
        public void invClick(InventoryClickEvent e) {
            Player p = (Player) e.getWhoClicked();
            if (e.getInventory().getName().equalsIgnoreCase("§c§lKit Menu")) {
                if (e.getCurrentItem().getType() == Material.EMERALD) {
                    e.setCancelled(true);
                    p.performCommand("kit donator");
                    p.closeInventory();
                }
               
            } else if(e.getCurrentItem().getType() == Material.DIAMOND) {
                e.setCancelled(true);
                p.performCommand("kit legend");
                p.closeInventory();
               
            } else if(e.getCurrentItem().getType() == Material.VINE) {
                e.setCancelled(true);
                p.performCommand("kit extreme");
                p.closeInventory();
            } else if(e.getCurrentItem().getType() == Material.GOLD_HELMET) {
                e.setCancelled(true);
                p.performCommand("kit king");
                p.closeInventory();
            } else if(e.getCurrentItem().getType() == Material.REDSTONE_TORCH_ON) {
                e.setCancelled(true);
                p.performCommand("kit supreme");
                p.closeInventory();
            }
        }
    }
    Error log:

    Code:
    [20:31:52 ERROR]: Could not pass event InventoryClickEvent to KitMenu v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:302) ~[Bukkit.jar:git-Bukkit-5e85956]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[Bukkit.jar:git-Bukkit-5e85956]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [Bukkit.jar:git-Bukkit-5e85956]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [Bukkit.jar:git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java
    :1564) [Bukkit.jar:git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:31)
    [Bukkit.jar:git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:9)
    [Bukkit.jar:git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:1
    3) [Bukkit.jar:git-Bukkit-5e85956]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
    ?:1.8.0_45]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45]
            at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [Bukkit.jar
    :git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:6
    72) [Bukkit.jar:git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:3
    35) [Bukkit.jar:git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:6
    28) [Bukkit.jar:git-Bukkit-5e85956]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java
    :536) [Bukkit.jar:git-Bukkit-5e85956]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
    Caused by: java.lang.NullPointerException
            at inv.kit.Listeners.InvClick.invClivk(InvClick.java:22) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
    _45]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
    _45]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .8.0_45]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:300) ~[Bukkit.jar:git-Bukkit-5e85956]
            ... 15 more
     
  2. Offline

    lilian58660

  3. Offline

    Tecno_Wizard

  4. Offline

    Scimiguy

  5. Offline

    lilian58660

    I know that's why
     
  6. Offline

    Tecno_Wizard

    @Scimiguy, well, they both work, but we both know the right one to use.
     
  7. Offline

    Scimiguy

    @NeverRevenge
    I'm gonna say it might be this:
    e.getCurrentItem()

    What if you click on an empty space? Won't that be null?
     
Thread Status:
Not open for further replies.

Share This Page