NullPointerException

Discussion in 'Plugin Development' started by xELI7E_SNIPEZx, Feb 10, 2014.

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

    xELI7E_SNIPEZx

    Im pretty new to coding, but i had ago at a warn plugin. After testing i keep getting this error on console after i do the command to warn someone.

    Code:
    [19:41:12 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'warn' in plugin SimpleWarn v1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:932) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
    Caused by: java.lang.NullPointerException
        at SW.george.me.Main.onCommand(Main.java:71) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        ... 13 more
    
    This is my Main Class:
    Code:
    package SW.george.me;
     
    import java.util.ArrayList;
    import java.util.logging.Logger;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Main extends JavaPlugin implements Listener{
       
        public final Logger logger = Logger.getLogger("Minecraft");
       
     
        ArrayList<String> one = new ArrayList<String>();
        ArrayList<String> two = new ArrayList<String>();
        ArrayList<String> mute = new ArrayList<String>();
       
       
        public void onDisable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + "  Disabled.");
        }
        public void onEnable() {
            this.getServer().getPluginManager().registerEvents(this, this);
            PluginDescriptionFile pdfFile = this.getDescription();
            logger.info(pdfFile.getName() + " Version " + pdfFile.getVersion() + " Enabled.");
     
        }
     
       
        public String prefix = new String(ChatColor.GREEN + "[SW] ");
     
        @EventHandler
        public void onChat(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
            if(mute.contains(player.getName())) {
                e.setCancelled(true);
                player.sendMessage(prefix + ChatColor.DARK_GRAY + "You Are Muted For 10 Minutes For Being Warned 3 Times Within One Hour.");
            } else {
            }
        }
     
       
       
       
       
        @SuppressWarnings("deprecation")
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            Player p = (Player) sender;
           
            StringBuilder str = new StringBuilder();
            for (int i = 2; i < args.length; i++){
            str.append(args[i] + " ");
            }
     
            String message = str.toString();
           
           
            if(cmd.getName().equalsIgnoreCase("Warn")) {
                if(p.hasPermission("Simple.warn")) {
                    if(args.length >= 2) {
                        final Player target = this.getServer().getPlayer(args[1]);
                        if(target.isOnline()) {
                            if(!(target.hasPermission("Warn.avoid"))) {
                                if(!(one.contains(target.getName()) && two.contains(target.getName()) && mute.contains(target.getName()))) {
                                    one.add(target.getName());
                                    target.sendMessage(prefix + ChatColor.DARK_GRAY + "You Were Warned For: " + message + " By: " + ChatColor.GOLD + p.getName());
                                    p.sendMessage(prefix + ChatColor.DARK_GRAY + "You Warned: " + ChatColor.GOLD + target.getName() + ChatColor.DARK_GRAY + " For: " + message);
                                    p.sendMessage(prefix + ChatColor.DARK_GRAY + "This Was Their 1st Warning, Two More And They Will Be Muted!");
                                    target.sendMessage(prefix + ChatColor.DARK_RED + "This Was Your 1st Warning. Two More And You Will Be Muted For 10 Minutes!");
                                    Bukkit.broadcastMessage(prefix + ChatColor.GOLD + target.getName() + ChatColor.DARK_GRAY + " Was Warned For " + message + " By: " + p.getName() + ". This Is Their 1st Warning!");
                                }
                                if(one.contains(target.getName())) {
                                    one.remove(p.getName());
                                    two.add(target.getName());
                                    target.sendMessage(prefix + ChatColor.DARK_GRAY + "You Were Warned For: " + message + " By: " + ChatColor.GOLD + p.getName());
                                    p.sendMessage(prefix + ChatColor.DARK_GRAY + "You Warned: " + ChatColor.GOLD + target.getName() + ChatColor.DARK_GRAY + " For: " + message);
                                    p.sendMessage(prefix + ChatColor.DARK_GRAY + "This Was Their 2nd Warning, One More And They Will Be Muted!");
                                    target.sendMessage(prefix + ChatColor.DARK_RED + "This Was Your 2nd Warning. One More And You Will Be Muted For 10 Minutes!");
                                    Bukkit.broadcastMessage(prefix + ChatColor.GOLD + target.getName() + ChatColor.DARK_GRAY + " Was Warned For " + message + " By: " + p.getName() + ". This Is Their 2nd Warning!");
                                }
                                if(two.contains(target.getName())) {
                                    two.remove(target.getName());
                                    mute.add(target.getName());
                                    target.sendMessage(prefix + ChatColor.DARK_GRAY + "You Were Warned For: " + message + " By: " + ChatColor.GOLD + p.getName());
                                    p.sendMessage(prefix + ChatColor.DARK_GRAY + "You Warned: " + ChatColor.GOLD + target.getName() + ChatColor.DARK_GRAY + " For: " + message);
                                    p.sendMessage(prefix + ChatColor.DARK_GRAY + "This Was Their 3rd Warning, They Are Now Muted.");
                                    target.sendMessage(prefix + ChatColor.DARK_RED + "This Was Your 3rd Warning. You Are Now Muted For 10 Minutes!");
                                    Bukkit.broadcastMessage(prefix + ChatColor.GOLD + target.getName() + ChatColor.DARK_GRAY + " Was Warned For " + message + " By: " + p.getName() + ". This Is Their 3nd Warning!");
                                    Bukkit.broadcastMessage(target.getName() + " Was Muted For 10 Minutes For Recieving 3 Warnings!");
                                   
                                    Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, new Runnable(){
                                        public void run(){
                                            int n = 600;
                                            if(n == 0) {
                                                mute.remove(target.getName());
                                                n = 600;
                                                Bukkit.getScheduler().cancelAllTasks();
                                                target.sendMessage(prefix + ChatColor.DARK_GRAY + "You Are No Longer Muted.");
                                            }
                                        }
                                   
     
                                        }, 0, 20l);
                                   
                                }
                                if(mute.contains(target.getName())) {
                                    p.sendMessage(prefix + ChatColor.DARK_RED + "" + target.getName() + " Is Already Muted!");
                                }
                            } else {
                                p.sendMessage(prefix + ChatColor.GRAY + "You Cannot Warn That Player!");
                            }
                           
                        } else {
                            p.sendMessage(prefix + ChatColor.DARK_RED + "Player Is Not Online!");
                        }
                       
                    } else {
                        p.sendMessage(prefix + ChatColor.DARK_GRAY + "Not Enough Arguments. /Warn <Player> <Reason>");
                    }
                }
            }
            return true;
        }
       
       
    }
    
    Sorry if there are many mistakes, i'm new and trying to learn.
     
  2. Offline

    random_username

    xELI7E_SNIPEZx
    Instead of checking if the target is online, try checking if it isn't null.
    Code:java
    1. Player target = this.getServer().getPlayer(args[1]);
    2. if(target != null){
    3. //code
    4. }
     
Thread Status:
Not open for further replies.

Share This Page