IconMenu Help

Discussion in 'Plugin Development' started by Reddcola, Dec 31, 2013.

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

    Reddcola

    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
    1. package me.reddcola;
    2.  
    3. import org.bukkit.command.Command;
    4. import org.bukkit.command.CommandSender;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.Listener;
    7. import org.bukkit.inventory.ItemStack;
    8. import org.bukkit.plugin.Plugin;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10. import org.bukkit.Material;
    11. public class Central extends JavaPlugin implements Listener {
    12.  
    13. public Plugin plugin;
    14. public void plugin(Plugin instance) {
    15. this.plugin = instance;
    16. }
    17. public void onEnable() {
    18. getServer().getPluginManager().registerEvents(new IconMenu(), this);
    19. }
    20.  
    21. public boolean onCommand(CommandSender sender, Command cmd, String cmdname, String[] args) {
    22. Player p = ((Player) sender).getPlayer();
    23. if(cmdname.equalsIgnoreCase("tokens")) {
    24. if(sender instanceof Player) {
    25. menu.open(p);
    26. }
    27. }
    28. return false;
    29. }
    30. IconMenu menu = new IconMenu("Tokens Menu", 9, new IconMenu.OptionClickEventHandler() {
    31. @Override
    32. public void onOptionClick(IconMenu.OptionClickEvent event) {
    33. String itemname = event.getName();
    34. Player player = event.getPlayer();
    35. if(itemname.equals("Tokens")) {
    36. event.setWillDestroy(true);
    37. player.sendMessage("Tokens");
    38. } else if(itemname.equals("Tokens")) {
    39. event.setWillDestroy(true);
    40. player.sendMessage("Tokens");
    41. player.sendMessage("Token3");
    42. } else if(itemname.equals("Tokens")) {
    43. event.setWillDestroy(true);
    44. player.sendMessage("Token1");
    45. }
    46. }
    47. }, plugin)
    48. .setOption(3, new ItemStack(Material.BEDROCK, 1), "Token", "Token")
    49. .setOption(4, new ItemStack(Material.PAPER, 1), "Token", "Token")
    50. .setOption(5, new ItemStack(Material.CARROT, 1), "Carrots ;P and Token", "Token");
    51. }
     
  2. Offline

    tommycake50

    Is IconMenu a Listener?
    Does it's constructor take arguments?
    What kind of error is IntelliJ throwing at you here?
     
  3. Offline

    Goblom

    Code:java
    1. public void onEnable() {
    2. getServer().getPluginManager().registerEvents(new IconMenu(), this);
    3. }


    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
     
  4. Offline

    Reddcola

    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.InvalidPluginExceptionjava.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 byjava.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
     
  5. Offline

    Quantum64

    IconMenu() is not a blank constructor, it needs some args
     
  6. Offline

    Goblom

    Reddcola did you copy icon menu correctly? the null pointer is coming from line 34 of iconmenu
     
  7. Offline

    xTigerRebornx

    Why do you have a constructor for your main class that takes a plugin.....
     
  8. Offline

    Reddcola

    Goblom
    I copied the OP's IconMenu example. Is it possibly non revenant with the latest version of bukkit?
     
  9. Offline

    97WaterPolo

    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);
     
            }
     
Thread Status:
Not open for further replies.

Share This Page