Solved Problem with custom /ban plugin

Discussion in 'Plugin Development' started by rbrick, Nov 12, 2013.

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

    rbrick

    I get this messy error when i do /ban without any args (it should print "Please specify a player" as i have "if(args.length == 0) { sender.sendMessage();}").

    Show Spoiler
    Code:
    2013-11-12 20:31:00 [INFO] rbrick issued server command: /ban
    2013-11-12 20:31:00 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'ban' in plugin NovaBasics v0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:192)
        at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServer.java:528)
        at net.minecraft.server.v1_6_R3.PlayerConnection.handleCommand(PlayerConnection.java:968)
        at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.java:886)
        at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:837)
        at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49)
        at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296)
        at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:116)
        at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
        at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:592)
        at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227)
        at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488)
        at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421)
        at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at rbrick.nova.basics.NBBan.onCommand(NBBan.java:14)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
        ... 15 more


    Here is my code:

    Show Spoiler
    Code:java
    1. package rbrick.nova.basics;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandExecutor;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.entity.Player;
    9.  
    10. public class NBBan extends Main implements CommandExecutor {
    11.  
    12. public boolean onCommand(CommandSender sender, Command cmd, String label,String[] args){
    13.  
    14. Player t = Bukkit.getServer().getPlayer(args[0]);
    15.  
    16. if(cmd.getName().equalsIgnoreCase("ban")){
    17. if(args.length == 0){
    18. sender.sendMessage(ChatColor.RED + "Please specify a player");
    19. return true;
    20.  
    21. }
    22. if(t == null){
    23. sender.sendMessage(ChatColor.RED + "That player is not online!");
    24. return true;
    25. }
    26. String msg = "";
    27. for(int i = 1; i < args.length; i++){
    28. msg += args[i] + " ";
    29. }
    30. t.kickPlayer(ChatColor.GRAY + "You have been banned for " + msg);
    31. t.setBanned(true);
    32. return true;
    33.  
    34.  
    35. }
    36.  
    37.  
    38.  
    39.  
    40.  
    41. return true;
    42. }
    43.  
    44. }
    45. [/i]
     
  2. Offline

    The_Doctor_123

    You're trying to get a Player with args[0] before the length of args is checked..
     
    rbrick likes this.
  3. Offline

    rbrick

    really >.> i feel stupid now lol thanks
     
Thread Status:
Not open for further replies.

Share This Page