Development Assistance Admin help plugin not working

Discussion in 'Plugin Help/Development/Requests' started by MooshViolet, Dec 12, 2014.

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

    MooshViolet

    Hey, my plugin isn't working. The command /ah done does not work.
    Here is the error:
    Code:
    org.bukkit.command.CommandException: Unhandled exception executing command 'ah' in plugin AdminHelp v1.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
            at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    Caused by: java.lang.NullPointerException
            at me.MooshViolet.AdminHelp.AdminHelp.onCommand(AdminHelp.java:41) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    and here is my code:
    Code:
    package me.MooshViolet.AdminHelp;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class AdminHelp extends JavaPlugin{
        public static List<String> adminhelping = new ArrayList<String>();
         
        public void onEnable(){
            System.out.println("-----AdminHelp----- by Luke has been created");
        }
         
    
        @SuppressWarnings("unused")
        public boolean onCommand(CommandSender sender, Command cmd, String lvl, String[] args){
           if ((sender instanceof Player)){
             Player p = (Player)sender;
             for(Player ps: Bukkit.getOnlinePlayers()){
             if(cmd.getName().equalsIgnoreCase("ah")){
               if(!p.hasPermission("obelisk.ah")){
                   p.sendMessage(ChatColor.GREEN + "Obelisk:"+ ChatColor.RED + " You do not have permission to do this.");
                   return true;
               }
              if(args.length == 0){
               p.sendMessage(ChatColor.GOLD + "ADMIN HELP:" + ChatColor.GREEN + " An admin has been notified that you need assistance.");
               if(ps.hasPermission("obelisk.ahmod")){
               ps.sendMessage(ChatColor.GOLD + "ADMIN HELP: " + ChatColor.AQUA + p.getName() + ChatColor.RED + " Needs help!");
                   p.sendMessage(ChatColor.GOLD + "ADMIN HELP:" + ChatColor.GREEN + " An admin has been notified that you need assistance.");
               return true;
               }
             }else if(args.length == 1){
               @SuppressWarnings("deprecation")
                Player target = Bukkit.getServer().getPlayer(args[0]);
               Location adminloc = p.getLocation();
               Location playerloc = target.getLocation();
    
               if(args[0] == "done"){
                   if(!p.hasPermission("obelisk.ahmod")){
                       p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You do not have permission to do this.");
                       return true;
                   }
                   if(!adminhelping.contains(p.getName())){
                       p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You are not helping anyone right now!");
                       return true;
                   }
                   p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are done helping " + target.getName() );
                   p.teleport(adminloc);
                   adminhelping.remove(p.getName());
                   return true;
                   
                 }else{
             
               if(!p.hasPermission("obelisk.ahmod")){
                   p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You do not have permission to do this.");
                   return true;
               }
               if(!(target == null)){
               adminhelping.add(p.getName());
    
                 p.teleport(playerloc);
                 p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are now helping: " + target.getName());
                 target.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are now being helped by: " + p.getName());
                 return true;
    
                 }else{
                   p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " Player not found.");
                   return true;
                 }
    
    }
           }
             }
           }
           }else{
              sender.sendMessage("You have to be a player to use this");
              return true;
           }
         
           
            return true;
         }
    }
    
    
    
     
    Last edited: Dec 12, 2014
  2. Offline

    teej107

  3. Offline

    MooshViolet

    @teej107
    I told you what is not working.
    What is not working is /ah done.
     
  4. Offline

    mythbusterma

    @MooshViolet

    And he implied you should troubleshoot it yourself.
     
  5. Offline

    teej107

  6. Offline

    MooshViolet

    @teej107
    I already know how to do that, thanks for your help but I am looking for something else.
     
  7. Offline

    teej107

  8. Offline

    Monkey_Swag

    @MooshViolet
    You're comparing Strings with '=='. Use equalsIgnoreCase(String);
     
  9. @MooshViolet You must check if target is a player, and check all the { }, someones are wrong.
    Check too the use of !, for example on if(!(args[0] == "done")), you dont need to do that, simply say
    if (args[0].equalsIgnoreCase("done)) {
    //something to do
    return true;
    }
    //stuff to do if arg0 isn`t "done"
     
  10. Offline

    MooshViolet

    New code
    @Monkey_Swag

    @Juancomaster1998
    Code:
    package me.MooshViolet.AdminHelp;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class AdminHelp extends JavaPlugin{
         public static List<String> adminhelping = new ArrayList<String>();
        
         public void onEnable(){
             System.out.println("-----AdminHelp----- by Luke has been created");
         }
        
    
        @SuppressWarnings("unused")
        public boolean onCommand(CommandSender sender, Command cmd, String lvl, String[] args){
            if ((sender instanceof Player)){
              Player p = (Player)sender;
              for(Player ps: Bukkit.getOnlinePlayers()){
              if(cmd.getName().equalsIgnoreCase("ah")){
                  if(!p.hasPermission("obelisk.ah")){
                      p.sendMessage(ChatColor.GREEN + "Obelisk:"+ ChatColor.RED + " You do not have permission to do this.");
                      return true;
                  }
                if(args.length == 0){
                p.sendMessage(ChatColor.GOLD + "ADMIN HELP:" + ChatColor.GREEN + " An admin has been notified that you need assistance.");
                  if(ps.hasPermission("obelisk.ahmod")){
                  ps.sendMessage(ChatColor.GOLD + "ADMIN HELP: " + ChatColor.AQUA + p.getName() + ChatColor.RED + " Needs help!");
                    p.sendMessage(ChatColor.GOLD + "ADMIN HELP:" + ChatColor.GREEN + " An admin has been notified that you need assistance.");
                  return true;
                  }
              }else if(args.length == 1){
                  @SuppressWarnings("deprecation")
                Player target = Bukkit.getServer().getPlayer(args[0]);
                  Location adminloc = p.getLocation();
                  Location playerloc = target.getLocation();
    
                  if(args[0].equalsIgnoreCase("done")){
                      if(!p.hasPermission("obelisk.ahmod")){
                          p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You do not have permission to do this.");
                          return true;
                      }
                      if(!adminhelping.contains(p.getName())){
                          p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You are not helping anyone right now!");
                          return true;
                      }
                      p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are done helping " + target.getName() );
                      p.teleport(adminloc);
                      adminhelping.remove(p.getName());
                      return true;
                     
                  }else{
               
                  if(!p.hasPermission("obelisk.ahmod")){
                      p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You do not have permission to do this.");
                      return true;
                  }
                  if(!(target == null)){
                  adminhelping.add(p.getName());
    
                    p.teleport(playerloc);
                    p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are now helping: " + target.getName());
                    target.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are now being helped by: " + p.getName());
                    return true;
    
                  }else{
                      p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " Player not found.");
                      return true;
                  }
    
    }
            }
              }
            }
            }else{
                sender.sendMessage("You have to be a player to use this");
                return true;
            }
         
           
            return true;
          }
    }
    
     
  11. Offline

    Monkey_Swag

    @MooshViolet working/not working, stacktrace, ??????????
     
  12. @MooshViolet well,
    - every time a player with permissions run /ah, will get the message: " An admin has been notified that you need assistance." 2 times
    - Still need to check if target is a player
    - { } still being wrong
    - too many "else {", someones are wrong
    Please be sure you understand everything you are doing and PLEASE ORGANIZE YOUR CODE
     
  13. Offline

    MooshViolet

    @Juancomaster1998
    Is this better :)?
    Code:
    package me.MooshViolet.AdminHelp;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class AdminHelp extends JavaPlugin{
         public static List<String> adminhelping = new ArrayList<String>();
        
         public void onEnable(){
             System.out.println("-----AdminHelp----- by Luke is now Enabled");
         }
        
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
            if (!(sender instanceof Player)){
            return true;   
            }
              Player p = (Player)sender;
              for(Player ps: Bukkit.getOnlinePlayers()){
              if(cmd.getName().equalsIgnoreCase("ah")){
                  if(!p.hasPermission("obelisk.ah")){
                      p.sendMessage(ChatColor.GREEN + "Obelisk:"+ ChatColor.RED + " You do not have permission to do this.");
                      return true;
                  }
                if(args.length == 0){
                p.sendMessage(ChatColor.GOLD + "ADMIN HELP:" + ChatColor.GREEN + " An admin has been notified that you need assistance.");
                  if(ps.hasPermission("obelisk.ahmod")){
                  ps.sendMessage(ChatColor.GOLD + "ADMIN HELP: " + ChatColor.AQUA + p.getName() + ChatColor.RED + " Needs help!");
                  return true;
                  }
              }else if(args.length == 1){
                @SuppressWarnings("deprecation")
                Player target = Bukkit.getServer().getPlayer(args[0]);
                  Location adminloc = p.getLocation();
                  Location playerloc = target.getLocation();
                      if(target instanceof Player){
                  if(args[0].equalsIgnoreCase("done")){
                      if(!p.hasPermission("obelisk.ahmod")){
                          p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You do not have permission to do this.");
                          return true;
                      }
                      if(!adminhelping.contains(p.getName())){
                          p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You are not helping anyone right now!");
                          return true;
                      }
                      p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are done helping " + target.getName() );
                      p.teleport(adminloc);
                      adminhelping.remove(p.getName());
                      return true;
                     
                  }
                  if(!p.hasPermission("obelisk.ahmod")){
                      p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.RED + " You do not have permission to do this.");
                      return true;
                  }
                  if(target.isOnline()){
                  adminhelping.add(p.getName());
                    p.teleport(playerloc);
                    p.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are now helping: " + target.getName());
                    target.sendMessage(ChatColor.GOLD + "ADMIN HELP:"+ ChatColor.GREEN + " You are now being helped by: " + p.getName());
                    return true;
                  }
    
    }
            }
              }
            }
             
           
           
         
           
            return true;
          }
    }
    
     
  14. Offline

    teej107

  15. Offline

    MooshViolet

    @teej107
    me.MooshViolet.AdminHelp
    what is wrong with that
     
  16. Offline

    teej107

    @MooshViolet It goes against the Java Naming Conventions. Did you read the link I posted?
     
  17. still some issues and not organized, but should work
     
  18. Offline

    MooshViolet

  19. Offline

    Monkey_Swag

    pretty sure it does
     
    leon3001 likes this.
  20. Offline

    MooshViolet

    @Monkey_Swag
    it doesnt really matter, does it? never mattered for me in before
     
  21. Offline

    Monkey_Swag

    @MooshViolet it does matter, it's just basic Java standards that you must follow.
     
  22. Offline

    teej107

    @MooshViolet It matters for the readability of your code.
     
  23. Offline

    MooshViolet

Thread Status:
Not open for further replies.

Share This Page