I'm such a noob .... help me figure out whats wrong?

Discussion in 'Plugin Development' started by sup3rphi1, Apr 2, 2012.

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

    sup3rphi1

    I've had a few years of experience in Java, but i'm very new to Developing Bukkit Plugins.

    I want to make a plugin that will kill a player upon entering a command but i cant seem to get it working right.. :\ help?

    Heres the code:

    package com.cksprograms.KillPlayer;

    import java.util.logging.Logger;

    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;

    public class KillPlayer extends JavaPlugin{
    private Logger log = this.getLogger();

    public void onEnable(){
    log.info("KillPlayer has been enabled! :D");
    getCommand("KillPlayer").setExecutor(this);
    }

    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    if(cmd.getName().equalsIgnoreCase("KillPlayer")){
    Player player = (Player)sender;
    Player target = player.getServer().getPlayer(args[0]);
    target.setHealth(0);
    }
    return false;
    }
    }


    Heres the plugin.yml file:

    name: KillPlayer
    main: com.cksprograms.KillPlayer.KillPlayer
    version: 1.0

    commands:
    KillPlayer:
    description: This command kills the target player
    usage: /<command> [player]
    permission: KillPlayer.KillPlayer
    permission-message: You don't have <permission>

    This is the error i get from bukkit when attempting to load up a test server:


    C:\Users\Chris\Documents\Minecraft Server>java -Xmx1G -Xms1G -jar craftbukkit-1.
    1-R1-20120124.035144-88.jar
    174 recipes
    27 achievements
    17:05:20 [INFO] Starting minecraft server version 1.1
    17:05:20 [INFO] Loading properties
    17:05:20 [INFO] Starting Minecraft server on 192.168.1.3:25565
    17:05:20 [INFO] This server is running Craftbukkit version git-Bukkit-1.0.1-R1-1
    06-gb104ffd-b1804jnks (MC: 1.1) (Implementing API version 1.1-R1-SNAPSHOT)
    17:05:20 [SEVERE] Could not load 'plugins\KillPlayer.jar' in folder 'plugins':
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
    rce)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:180)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:188)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:109)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:156)
    at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:132)
    at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigur
    ationManager.java:52)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:148)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:407)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    Caused by: java.lang.NullPointerException
    at org.bukkit.plugin.PluginLogger.<init>(PluginLogger.java:23)
    at org.bukkit.plugin.java.JavaPlugin.getLogger(JavaPlugin.java:371)
    at com.cksprograms.KillPlayer.KillPlayer.<init>(KillPlayer.java:11)
    ... 13 more
    17:05:20 [INFO] Preparing level "world"
    17:05:20 [INFO] Default game type: 0
    17:05:20 [INFO] Preparing start region for level 0 (Seed: 7983902877510858726)
    17:05:21 [INFO] Preparing start region for level 1 (Seed: -7280580701463651316)
    17:05:21 [INFO] Preparing spawn area: 57%
    17:05:21 [INFO] Preparing start region for level 2 (Seed: -7280580701463651316)
    17:05:22 [INFO] [VoxelSniper] Loading VoxelSniper v5.1.
    17:05:22 [INFO] [VoxelSniper] Config loaded
    17:05:22 [INFO] VoxelSniper version 5.1 is enabled! Snipe away.
    17:05:22 [INFO] Server permissions file permissions.yml is empty, ignoring it
    17:05:22 [INFO] Done (1.819s)! For help, type "help" or "?"
    >
     
  2. Offline

    CorrieKay

    if youre using onCommand in your main, you dont need to set it as an executor.

    in your plugin.yml, i would suggest using lowercase when declaring commands too.

    also, looks to be like an uncaught NPE within bukkits own code... interesting.

    edit: nvm, looks like its an issue with your logger on line 11. your logger is null, try this:
    Code:
    private Logger log = Logger.getLogger("Minecraft");
    edit 2: ive also noticed if you need to just send an [info] to the logger, you can use System.out from anywhere to do it, just a lil fyi ;)
     
    sup3rphi1 likes this.
  3. Offline

    sup3rphi1

    This fixed the issue, Thank-You.
     
    CorrieKay likes this.
  4. Offline

    Double0negative

    But it wont log to the actual server logs (will it?). plus logger prefixes the message with the name of your plugin
     
  5. Offline

    CorrieKay

    im not actually sure on that one. it was just something i stumbled upon one day... lemme actually test it out. :3

    edit: just tested, both
    System.out.print();
    and
    Bukkit.getLogger().info();
    display the same things.
     
Thread Status:
Not open for further replies.

Share This Page