Error with arguments

Discussion in 'Plugin Development' started by AguilaAudaz, Sep 30, 2013.

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

    AguilaAudaz

    This is my problem, when i do /wna createarena tdm <name> "i recieve an internal error occurred while attempting to perform this command"
    Classes used Messages.java and this code:

    Code:
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
     
    import chris.and.chlorek.messages.Messages;
     
    public class WarZNetAdminCommands implements CommandExecutor
    {
        WarZNet plugin;
        public WarZNetAdminCommands(WarZNet plugin)
        {
                this.plugin = plugin;
        }
       
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String args[])
        {
            Player player = (Player)sender;
            Boolean op = Boolean.valueOf(false);
            Boolean playing = Boolean.valueOf(false);
            if(player.isOp())
                op = Boolean.valueOf(true);
           
            if(cmd.getName().equalsIgnoreCase("wna"))
    if(player.hasPermission("warznet.admin")) {
            {
                if(args.length == 0)
                    Utils.printWpa(sender);           
            }
            {
                        if(args.length == 1 && args[0].equalsIgnoreCase("createarena"))
                        sender.sendMessage(ChatColor.RED + "Correct usage /wpa createarena [gametype] [name]");
            }
            {
                        if(args.length == 2 && args[0].equalsIgnoreCase("createarena") && args[1].equalsIgnoreCase("tdm"))
                          sender.sendMessage(ChatColor.RED + "Please add a name!");
            }
            {
                {
                        if(args.length == 3 && args[0].equalsIgnoreCase("createarena") && args[1].equalsIgnoreCase("tdm") && op.booleanValue() && !playing.booleanValue())
                            Messages.sendMessage(player, Messages.prefixnormal + Messages.arenacreated);
                        {
                        Messages.sendMessage(player, Messages.prefixnormal + Messages.arenacreated.replace("%map", (args[2])));
                        }
                        return false;
                }
            }
            }
            return false;
        }
    }
    This happens:
    http://img703.imageshack.us/img703/1296/6g4b.png
     
  2. Offline

    Gopaintman

    Show us your stacktrace, (What shows up in your console when the error occurs) copied from your server.log file.
     
  3. Offline

    AguilaAudaz

  4. Offline

    Gopaintman

    You're getting an outOfBounds exception. Meaning that somewhere in your code you're trying to get an argument that does not exist.

    Code:java
    1. if(args.length > 2 && player.isOp()){
    2. if(args[0].equalsIgnoreCase("createarena")){
    3. if(args[1].equalsIgnoreCase("tdm")){
    4. Messages.sendMessage(player, Messages.prefixnormal + Messages.arenacreated);
    5. }else{
    6. sender.sendMessage(ChatColor.RED + "Please add a name!");
    7. }
    8. }else{
    9. sender.sendMessage(ChatColor.RED + "Correct usage /wpa createarena [gametype] [name]");
    10. }
    11. }else{
    12. sender.sendMessage(ChatColor.RED + "Correct usage /wpa createarena [gametype] [name]");
    13. }
     
Thread Status:
Not open for further replies.

Share This Page