Hey, I'm getting an error with my plugin i'm wondering if you can help me. The menu opener class Code: public class Bone implements Listener { private Menu menu; @EventHandler public void onPlayerInteract(PlayerInteractEvent e) { if(!(e.getAction() == Action.RIGHT_CLICK_AIR)) return; if(!(e.getItem().getType() == Material.BONE)) return; menu.display(e.getPlayer()); return; } } Menu class Code:java protected String name; protected Size size; protected HashMap<Integer, MenuElement> elements = new HashMap<Integer, MenuElement>(); public Menu (String name, ItemStack item, Size size) { this.name = name; this.item = CraftItemStack.asCraftCopy(item); this.size = size; } public Menu (String name, Size size) { this(name, CraftItemStack.asCraftCopy(new ItemStack(Material.BEDROCK)), size); } @Deprecated public Menu (String name, ItemStack item, Integer size) { this.name = name; this.item = CraftItemStack.asCraftCopy(item); this.size = Size.parse(size); } @Deprecated public Menu (String name, Integer size) { this(name, CraftItemStack.asCraftCopy(new ItemStack(Material.BEDROCK)), size); } @Override public Boolean click (Player player) { display(player); return false; } public Inventory getInventory (Player player) { CraftInventory inventory = (CraftInventory) Bukkit.createInventory(new MenuHolder(this, Bukkit.createInventory(player.getPlayer(), size.getSize())), size.getSize(), name); for (Integer key : elements.keySet()) { Util.setInventoryItem(key, inventory, elements.get(key).getItem(player)); } return inventory; } public final void display (Player player) { player.getPlayer().openInventory(getInventory(player)); } public final void hide (final Player player) { Bukkit.getScheduler().scheduleSyncDelayedTask(Pets.getInstance(), new Runnable() { public void run() { if (player.getPlayer() != null) { player.getPlayer().closeInventory(); } } }); } public HashMap<Integer, MenuElement> getElements () { return elements; } public void setSize (Size size) { this.size = size; } public Size getSize () { return size; } public enum Size { ONE_LINE(9), TWO_LINE(18), THREE_LINE(27), FOUR_LINE(36), FIVE_LINE(45), SIX_LINE(54); private int size; private Size (int i) { this.size = i; } public int getSize () { return size; } public static Size parse (int i) { switch (i) { case 9: return ONE_LINE; case 18: return TWO_LINE; case 27: return THREE_LINE; case 36: return FOUR_LINE; case 45: return FIVE_LINE; case 54: return SIX_LINE; } throw new IllegalArgumentException("Invalid menu size"); } public static Size fit (int i) { if (i < 10) { return ONE_LINE; } else if (i < 19) { return TWO_LINE; } else if (i < 28) { return THREE_LINE; } else if (i < 37) { return FOUR_LINE; } else if (i < 46) { return FIVE_LINE; } else { return SIX_LINE; } } }} Error Code: [11:05:41] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to Pets v1.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[spigot.jar:git-Spigot-1485] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-1485] at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) ~[spigot.jar:git-Spigot-1485] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-1485] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-1485] at org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:233) [spigot.jar:git-Spigot-1485] at org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:203) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:618) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.PacketPlayInBlockPlace.a(SourceFile:60) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.PacketPlayInBlockPlace.handle(SourceFile:9) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:180) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:81) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:720) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:583) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:489) [spigot.jar:git-Spigot-1485] at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1485] Caused by: java.lang.NullPointerException at se.DMarby.Pets.menu.PetMenuItem.onPlayerInteract(PetMenuItem.java:182) ~[?:?] at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_51] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_51] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[spigot.jar:git-Spigot-1485] ... 16 more
You never assign any value to the variable menu. Thus its null.. thus it throws an NullPointerException when trying to work with it. Learn to read stacktraces and you would've figured that out in less ammount of time than posting that thread