Solved What did I do wrong?

Discussion in 'Plugin Development' started by Josh014, Mar 15, 2016.

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

    Josh014

    Hello all,
    Been a while since I've coded and I wanted to pick it up again. So I wanted to make a simple generate plugin and I use my older plugins (private ones) as a template (they work 100%) but somehow I made a mistake in copy pasting... What I wanted to do is set another class as the commandExecutor.

    Code:
    Code (open)

    Main class (onEnable):
    Code:
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " v" + pdfFile.getVersion()
                    + " has been Enabled!");
            PluginManager pm = Bukkit.getServer().getPluginManager();
            pm.registerEvents(this, this);
           
            Generate cmds = new Generate(this);
            getCommand("gen").setExecutor(cmds);
            getCommand("generate").setExecutor(cmds);
        }
    Generate class:
    Code:
    public class Generate implements CommandExecutor {
        private Main main;
    
        public Generate(Main main) {
            this.main = main;
        }
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String arg2,
                String[] args) {
    
            if ((cmd.getName().equalsIgnoreCase("generate"))
                    || (cmd.getName().equalsIgnoreCase("gen"))) { // /gen <wall:(lvl)/etc..
                if ((sender instanceof Player)) { // is player
                    Player p = (Player) sender;
                   
                    if (args.length >= 1) {
                        // TODO Generate advanced
                        p.sendMessage("§bYou have succesfully generated an advanced!");
                    } else {
                        // TODO Generate basic
                        p.sendMessage("§bYou have succesfully generated a basic!");
                    }
                } else {
                    sender.sendMessage("This command is for in-game use");
                    return false;
                }
            }
           
            return false;
        }
    }


    Error log: (Main.Java:33 revers to the line with: "getCommand("gen").setExecutor(cmds);")
    Error (open)

    Code:
    [14:27:11 ERROR]: Error occurred while enabling BuildingGenerator v1.0 (Is it up
    to date?)
    java.lang.NullPointerException
            at me.Josh.BuildingGenerator.Main.onEnable(Main.java:33) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) ~[s
    pigot.jar:git-Spigot-6f291ea-55a8535]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:340) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:405) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at org.bukkit.craftbukkit.v1_9_R1.CraftServer.loadPlugin(CraftServer.jav
    a:361) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at org.bukkit.craftbukkit.v1_9_R1.CraftServer.enablePlugins(CraftServer.
    java:321) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at net.minecraft.server.v1_9_R1.MinecraftServer.t(MinecraftServer.java:4
    11) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at net.minecraft.server.v1_9_R1.MinecraftServer.l(MinecraftServer.java:3
    76) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at net.minecraft.server.v1_9_R1.MinecraftServer.a(MinecraftServer.java:3
    31) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at net.minecraft.server.v1_9_R1.DedicatedServer.init(DedicatedServer.jav
    a:269) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java
    :527) [spigot.jar:git-Spigot-6f291ea-55a8535]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_65]


    Does someone have any idea what I've done wrong?

    Thanks in advance!
     
  2. Offline

    timtower Administrator Administrator Moderator

    @Josh014 Did you register the command in your plugin.yml?
     
  3. Offline

    Josh014

    ... The minute you said that I found out that I forgot that... Well there goes my reputation xD. Thanks for the reply :)
     
    timtower likes this.
  4. Offline

    timtower Administrator Administrator Moderator

    But besides that: use an alias instead of registering 2 commands that use the same executor.
     
Thread Status:
Not open for further replies.

Share This Page