Hi, I have ben trying to create a GUI Menu for a Token Shop but I have ben getting an error in IntelliJ, The error is on line 18, at (new IconMenu(), this); Thanks for any help! Code:java package me.reddcola; import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.entity.Player;import org.bukkit.event.Listener;import org.bukkit.inventory.ItemStack;import org.bukkit.plugin.Plugin;import org.bukkit.plugin.java.JavaPlugin;import org.bukkit.Material;public class Central extends JavaPlugin implements Listener { public Plugin plugin; public void plugin(Plugin instance) { this.plugin = instance; } public void onEnable() { getServer().getPluginManager().registerEvents(new IconMenu(), this); } public boolean onCommand(CommandSender sender, Command cmd, String cmdname, String[] args) { Player p = ((Player) sender).getPlayer(); if(cmdname.equalsIgnoreCase("tokens")) { if(sender instanceof Player) { menu.open(p); } } return false; } IconMenu menu = new IconMenu("Tokens Menu", 9, new IconMenu.OptionClickEventHandler() { @Override public void onOptionClick(IconMenu.OptionClickEvent event) { String itemname = event.getName(); Player player = event.getPlayer(); if(itemname.equals("Tokens")) { event.setWillDestroy(true); player.sendMessage("Tokens"); } else if(itemname.equals("Tokens")) { event.setWillDestroy(true); player.sendMessage("Tokens"); player.sendMessage("Token3"); } else if(itemname.equals("Tokens")) { event.setWillDestroy(true); player.sendMessage("Token1"); } } }, plugin) .setOption(3, new ItemStack(Material.BEDROCK, 1), "Token", "Token") .setOption(4, new ItemStack(Material.PAPER, 1), "Token", "Token") .setOption(5, new ItemStack(Material.CARROT, 1), "Carrots ;P and Token", "Token");}
Is IconMenu a Listener? Does it's constructor take arguments? What kind of error is IntelliJ throwing at you here?
Code:java public void onEnable() { getServer().getPluginManager().registerEvents(new IconMenu(), this);} you do not need to register the listener in iconmenu it does it for you. So remove the register event in your on enable and you will get no more error an the icon menu will work as normal
I have no more IDE errors thanks to Goblom but I am now getting this console error: PHP: [19:51:19 ERROR]: Could not load 'plugins/RedTokens.jar' in folder 'plugins'org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:137) ~[bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:308) ~[bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:255) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.<init>(CraftServer.java:233) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.PlayerList.<init>(PlayerList.java:63) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.DedicatedPlayerList.<init>(SourceFile:14) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:126) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks]Caused by: java.lang.NullPointerException at me.frostbiteny.IconMenu.<init>(IconMenu.java:34) ~[?:?] at me.frostbiteny.Central.<init>(Central.java:30) ~[?:?] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.6.0_65] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) ~[?:1.6.0_65] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) ~[?:1.6.0_65] at java.lang.reflect.Constructor.newInstance(Constructor.java:513) ~[?:1.6.0_65] at java.lang.Class.newInstance0(Class.java:357) ~[?:1.6.0_65] at java.lang.Class.newInstance(Class.java:310) ~[?:1.6.0_65] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:52) ~[bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[bukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] ... 9 more
Goblom I copied the OP's IconMenu example. Is it possibly non revenant with the latest version of bukkit?
Only reason I am necroing this is the fact I am having the same EXACT issue. Same line as well. I copied the IconMenu class from the OP and I am using it in my main through Code: IconMenu menu = new IconMenu("My Fancy Menu", 9, new IconMenu.OptionClickEventHandler() { @Override public void onOptionClick(IconMenu.OptionClickEvent event) { event.getPlayer().sendMessage("You have chosen " + event.getName()); event.setWillClose(true); } }, plugin) .setOption(3, new ItemStack(Material.APPLE, 1), "Food", "The food is delicious") .setOption(4, new ItemStack(Material.IRON_SWORD, 1), "Weapon", "Weapons are for awesome people") .setOption(5, new ItemStack(Material.EMERALD, 1), "Money", "Money brings happiness"); And running the menu though Code: public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { final Player player = (Player) sender; if (cmd.getName().equalsIgnoreCase("pinv") || cmd.getName().equalsIgnoreCase("ppinv")) { menu.open(player); }