What did I do wrong?

Discussion in 'Plugin Development' started by skaneboys, Apr 28, 2012.

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

    skaneboys

    Okay, so I tried to code my first plugin. When I finally got rid of all the errors, exported the plugin and started the server, it didn't work.
    Please help me!

    Here's the code:
    Code:
    package me.skaneboys.FireHands;
     
    import java.util.ArrayList;
    import java.util.logging.Logger;
     
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class FireHands extends JavaPlugin
    {
     
        Logger log = this.getLogger();
        private final FireHandsListener blocklistener = new FireHandsListener(this);
        public final ArrayList<Player> FireHandUsers = new ArrayList<Player>();
        PluginManager pm = getServer().getPluginManager();
     
        @Override
        public void onDisable()
        {
            log.info("[FireHands] is now disabled");
        }
     
        @Override
        public void onEnable()
        {
            log.info("[FireHands] is now enabled");
     
        pm.registerEvents(this.blocklistener, this);
     
         
        }
     
     
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
        {
            if(cmd.getName().equalsIgnoreCase("FireHands"))
                toggleFireHands(sender);
         
            return true;
         
         
        }
         
        private void toggleFireHands(CommandSender sender)
        {
            if( !enabled(( Player) sender ) )
            {
                FireHandUsers.add((Player) sender);
                ((Player) sender).sendMessage(ChatColor.RED + "YOUR HANDS ON FIRE!");
            }
       
            else
            {
                FireHandUsers.remove((Player) sender);
                ((Player) sender).sendMessage(ChatColor.RED + "The fire vanished somehow.");
            }
        }
     
        public boolean enabled(Player player)
        {
            return FireHandUsers.contains(player);
        }
     
    }
    
    Listener:

    Code:
    package me.skaneboys.FireHands;
     
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockDamageEvent;
     
     
     
    public class FireHandsListener implements Listener  {
     
        public static FireHands plugin;
     
        public FireHandsListener(FireHands instance)
        {
         
        plugin = instance;
        }
     
        @EventHandler
        public void BlockDamage(BlockDamageEvent event)
     
        {
            if(plugin.enabled(event.getPlayer()))
                event.getBlock().setTypeId(51);
        }
    }
    
    Plugin.yml

    Code:
    name: FireHands
    main: me.skaneboys.FireHands.FireHands
    author: skaneboys
    version: 1.2.5
    commands:
      FireHands:
        description: Makes everything you touch burn!.
        permissions: FireHands.use
        usage: /<command>


    Code:
    12:05:24 [ALLVARLIG] Could not load 'plugins/FireHands.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:148)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:207)
        at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:183)
        at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:53)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:156)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:422)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.NullPointerException
        at org.bukkit.plugin.PluginLogger.<init>(PluginLogger.java:22)
        at org.bukkit.plugin.java.JavaPlugin.getLogger(JavaPlugin.java:359)
        at me.skaneboys.FireHands.FireHands.<init>(FireHands.java:16)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:144)
        ... 8 more
    




    Thanks for helping me

    -- Skane

    anyone? :(

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 25, 2016
  2. Offline

    Tzeentchful

    can you please define "doesn't work" does it load?, is you command not working?
     
  3. Offline

    r0306

    Register your FireHandsListener in your main class under onEnable:
    Code:
    pm.registerEvents(new PlayerRegionListener(this), this);
     
  4. Offline

    skaneboys

    Didn't work... :/

    It fails loading the plugin when starting the server.

    Code:
    12:05:24 [ALLVARLIG] Could not load 'plugins/FireHands.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:148)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:207)
        at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:183)
        at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:53)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:156)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:422)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.NullPointerException
        at org.bukkit.plugin.PluginLogger.<init>(PluginLogger.java:22)
        at org.bukkit.plugin.java.JavaPlugin.getLogger(JavaPlugin.java:359)
        at me.skaneboys.FireHands.FireHands.<init>(FireHands.java:16)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:144)
        ... 8 more
    
     
  5. Offline

    coldandtired

    Post the error stack trace and the plugin.yml if you expect help.
     
  6. Offline

    skaneboys

    Done.
     
  7. Offline

    coldandtired

    You can't (I believe) set the logger like that. Move that part of the code into the onEnable() method.
     
  8. Offline

    skaneboys

    Didn't work... :/ I guess I'll start over..
     
  9. Set the logger in the onEnable, not earlier.
     
  10. Offline

    skaneboys

    It didn't work :/ I'm starting over.
     
  11. Offline

    VeryBIgCorp

    'this' doesn't exist until the constructor is called, which is after the header declarations are assigned, thus you can't do private final FireHandsListener blocklistener = new FireHandsListener(this); at all. You can only do it in your constructor or within your onEnable method.
     
Thread Status:
Not open for further replies.

Share This Page