Solved Inventory Menu Help! :)

Discussion in 'Plugin Development' started by MunchMallow, Dec 18, 2013.

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

    MunchMallow

    Hello everybody,​
    I have encounted a few sad problems.​
    When I click outside the inventory 'SkillTree'​
    it will give me a error, here is the error​
    ---​
    Error
    Code:
    08:41:01    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:1334) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.a(SourceFile:32) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.handle(SourceFile:10) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:651) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:541) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:453) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01 Caused by: java.lang.NullPointerException
    08:41:01    at me.MunchMallow.Menues.SkillTree.onInventoryClick(SkillTree.java:45) ~[?:?]
    08:41:01    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
    08:41:01    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
    08:41:01    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
    08:41:01    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
    08:41:01    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    08:41:01    ... 13 more
    ---​
    SkillTree Class
    Code:java
    1. package me.MunchMallow.Menues;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.GameMode;
    5. import org.bukkit.Material;
    6. import org.bukkit.enchantments.Enchantment;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.inventory.Inventory;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.inventory.meta.ItemMeta;
    14. import org.bukkit.plugin.Plugin;
    15.  
    16. public class SkillTree implements Listener {
    17.  
    18. private Inventory inv;
    19.  
    20. public SkillTree(Plugin p) {
    21. inv = Bukkit.getServer().createInventory(null, 9, "Gamemode Chooser");
    22.  
    23. ItemStack bow = new ItemStack(Material.BOW);
    24. ItemMeta meta = bow.getItemMeta();
    25. meta.setDisplayName("Test");
    26. meta.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
    27. bow.setItemMeta(meta);
    28.  
    29. inv.setItem(2, bow);
    30.  
    31. Bukkit.getServer().getPluginManager().registerEvents(this, p);
    32. }
    33.  
    34.  
    35.  
    36.  
    37. public void show(Player p) {
    38. p.openInventory(inv);
    39. }
    40.  
    41. @EventHandler
    42. public void onInventoryClick(InventoryClickEvent e) {
    43. Player p = (Player) e.getWhoClicked();
    44. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    45. if (e.getCurrentItem().getItemMeta() == null) return;
    46. if (e.getCurrentItem().getType() == Material.BOW) {
    47. e.setCancelled(true);
    48. p.setGameMode(GameMode.CREATIVE);
    49. p.closeInventory();
    50. }
    51. }
    52. }

     
  2. Offline

    XvBaseballkidvX

    Check to see if the player clicked outside of the inventory, if they did, close the inventory and send them a message.
     
  3. Offline

    cummo15

    MunchMallow Check that the currentItem isn't null.
     
  4. Offline

    MunchMallow

    Is this how it's done?
    Because I still get an error
    Code
    Code:java
    1. private Inventory inv;
    2.  
    3. public SkillTree(Plugin p) {
    4. inv = Bukkit.getServer().createInventory(null, 9, "SkillTree");
    5.  
    6. ItemStack bow = new ItemStack(Material.BOW);
    7. ItemMeta meta = bow.getItemMeta();
    8. meta.setDisplayName("Test");
    9. meta.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
    10. bow.setItemMeta(meta);
    11.  
    12. inv.setItem(2, bow);
    13.  
    14. Bukkit.getServer().getPluginManager().registerEvents(this, p);
    15. }
    16.  
    17. public void show(Player p) {
    18. p.openInventory(inv);
    19. }
    20.  
    21. @EventHandler
    22. public void onInventoryClick(InventoryClickEvent e) {
    23. Player p = (Player) e.getWhoClicked();
    24. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    25. if (e.getCurrentItem().getItemMeta() == null) return;
    26. if (e.getCurrentItem().getType() == Material.BOW) {
    27. e.setCancelled(true);
    28. p.setGameMode(GameMode.CREATIVE);
    29. p.closeInventory();
    30. } else if (e.getCurrentItem().getType() == null) {
    31. e.setCancelled(true);
    32. }
    33. }
    34. }


    Error
    Code:
    14:28:23 [SEVERE] Could not pass event InventoryClickEvent to MMORPG v1.0
    14:28:23 org.bukkit.event.EventException
    14:28:23    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:1334) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.a(SourceFile:32) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.handle(SourceFile:10) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:651) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:541) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:453) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23 Caused by: java.lang.NullPointerException
    14:28:23    at me.MunchMallow.Menues.SkillTree.onInventoryClick(SkillTree.java:42) ~[?:?]
    14:28:23    at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source) ~[?:?]
    14:28:23    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
    14:28:23    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
    14:28:23    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    14:28:23    ... 13 more
     
  5. Offline

    cummo15

    MunchMallow Try removing the getType where you check if its null
     
  6. Offline

    MunchMallow

    Like this?
    Code:java
    1. @EventHandler
    2. public void onInventoryClick(InventoryClickEvent e) {
    3. Player p = (Player) e.getWhoClicked();
    4. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    5. if (e.getCurrentItem().getType() == Material.BOW) {
    6. e.setCancelled(true);
    7. p.setGameMode(GameMode.CREATIVE);
    8. p.closeInventory();
    9. } else if (e.getCurrentItem().getType() == null) {
    10. e.setCancelled(true);
    11. }
    12. }
    13. }
     
  7. Offline

    cummo15

    MunchMallow
    Code:java
    1. if (event.getCurrentItem() == null) {
    2. event.setCancelled(true);
    3. return;
    4. }
     
  8. Offline

    MunchMallow

    Hmm, still doesn't work.
    Code
    Code:java
    1. @EventHandler
    2. public void onInventoryClick(InventoryClickEvent e) {
    3. Player p = (Player) e.getWhoClicked();
    4. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    5. if (e.getCurrentItem().getType() == Material.BOW) {
    6. e.setCancelled(true);
    7. p.setGameMode(GameMode.CREATIVE);
    8. p.closeInventory();
    9. } else if (e.getCurrentItem() == null) {
    10. e.setCancelled(true);
    11. return;
    12. }
    13. }
    14. }


    Error
    Code:
    15:09:18 [SEVERE] Could not pass event InventoryClickEvent to MMORPG v1.0
    15:09:18 org.bukkit.event.EventException
    15:09:18    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:1334) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.a(SourceFile:32) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.handle(SourceFile:10) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:18    at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:651) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:19    at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:19    at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:541) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:19    at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:453) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:19    at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:19 Caused by: java.lang.NullPointerException
    15:09:19    at me.MunchMallow.Menues.SkillTree.onInventoryClick(SkillTree.java:42) ~[?:?]
    15:09:19    at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source) ~[?:?]
    15:09:19    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
    15:09:19    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
    15:09:19    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit-1.7.2-R0.1-20131205.204030-20.jar:git-Bukkit-1.6.4-R2.0-23-ge8eb325-b2941jnks]
    15:09:19    ... 13 more
     
  9. Offline

    MunchMallow

  10. Offline

    MunchMallow

    Bbbbbbumper kill!

    Bump c:

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 5, 2016
  11. Offline

    xTigerRebornx

    Code:
    @EventHandler
     
    public void onInventoryClick(InventoryClickEvent e){
     
        Player p = (Player) e.getWhoClicked();
     
        if(!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
     
        if(e.getCurrentItem() != null{
     
            if(e.getCurrentItem().getType() == Material.BOW){
     
                e.setCancelled(true);
     
                p.setGameMode(GameMode.CREATIVE);
     
                p.closeInventory();
     
            }
     
        }
     
    }
    Try this?
     
  12. Offline

    MunchMallow

    Lol, was it that simple! xD I was absolutely overthinking it all in my head, might be because I am very tired. Anyways, thank you alot!
     
  13. Offline

    xTigerRebornx

Thread Status:
Not open for further replies.

Share This Page