A ~nullpointerexception~

Discussion in 'Plugin Development' started by Sushi, May 9, 2013.

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

    Sushi

    When the plugin is loaded a ~nullpointerexception~ happens.

    Code:
    18:11:23 [SEVERE] Error occurred while enabling Hugo v0.1a (Is it up to date?)
    java.lang.NullPointerException
        at com.minehq.hugo.HugoPlugin.registerCommands(HugoPlugin.java:52)
        at com.minehq.hugo.HugoPlugin.onEnable(HugoPlugin.java:29)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
        at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugin(CraftServer.java:282)
        at org.bukkit.craftbukkit.v1_4_R1.CraftServer.enablePlugins(CraftServer.java:264)
        at net.minecraft.server.v1_4_R1.MinecraftServer.j(MinecraftServer.java:321)
        at net.minecraft.server.v1_4_R1.MinecraftServer.e(MinecraftServer.java:300)
        at net.minecraft.server.v1_4_R1.MinecraftServer.a(MinecraftServer.java:259)
        at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.java:149)
        at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:399)
        at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
    
    Line 52:
    Code:
    this.getCommand("pvp").setExecutor(new Kit());
    onEnable():
    Code:
        @Override
        public void onEnable() {
            HugoPlugin.plugin = this;
     
            /*
            * Configuration initiation
            */
            if (!new File(getDataFolder(), "config.yml").exists()) {
                saveDefaultConfig();
            }
     
            this.registerCommands(); // Register commands
            this.registerEvents();  // Register events
            this.registerTasks();    // Register tasks
     
            Log.info(String.format("Successfully enabled version %s!", this.getDescription().getVersion()));
        }
    
    Kit.java:
    Code:
    package com.minehq.hugo.command;
     
    import com.minehq.hugo.kits.DefaultKit;
    import com.minehq.hugo.util.Messenger;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
     
    public class Kit implements CommandExecutor {
        @Override
        public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) {
            if (args[0].equalsIgnoreCase("pvp")) {
                boolean canUse = false;
     
                if (sender instanceof Player) {
                    Player player = (Player) sender;
     
                    if (player.hasPermission("hugo.user")) {
                        canUse = true;
                    }
                } else {
                    canUse = false;
                }
     
                if (canUse) {
                    DefaultKit defaultKit = new DefaultKit();
                    defaultKit.giveKit((Player) sender);
     
                    return true;
                } else {
                    Messenger.sendNoPermissionError(sender);
                }
            }
     
            return false;
        }
    }
    
    It happens no matter what command is loaded.
     
  2. Did you put that command into your plugin.yml?
     
  3. Offline

    Sushi

    Yes
     
  4. Please post the plugin.yml

     
  5. Offline

    Sushi

    Code:
    name: Hugo
    version: 0.1a
    author: Sushi
    main: com.minehq.hugo.HugoPlugin
    database: false
     
    command:
      chatsilence:
        description: Can be used by an admin to silence chat temporarily.
        permission: hugo.admin
      toggledeathfeed:
        description: Can be used to toggle the death feed, which is disabled by default.
        permission: hugo.user
      pvp:
        description: Gives the user the pvp kit.
        permission: hugo.user
     
    permission:
      hugo.admin:
        description: Gives access to admin commands.
        children:
          hugo.user: true
        default: op
      hugo.user:
        description: Gives access to standard commands.
        default: true
     
  6. It's commands, not command.
     
    ceoepts likes this.
  7. Offline

    Sushi

    That's the issue, thanks.
     
Thread Status:
Not open for further replies.

Share This Page