Plugin Help onCommand help!!!

Discussion in 'Plugin Help/Development/Requests' started by mariusvnh, Dec 16, 2014.

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

    mariusvnh

    hello!
    i've a problem with the args[] of: onCommand(CommandSender sender, Command cmd, String label, String args[])

    this is my code (class name : RKFCommands):
    Code:
    package be.drgeek.RKF;
    
    import java.util.ArrayList;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    
    public class RKFCommands implements CommandExecutor{
        RKFMain plugin;
        ArrayList<String> factions = new ArrayList<String>();
       
        public RKFCommands(RKFMain plugin){
            this.plugin = plugin;
        }
    
    
        public boolean onCommand(CommandSender sender, Command cmd, String label, String args[]){
           
           
           
            try{
            Player p = (Player) sender;
            if(sender instanceof Player){
           
                if(label.equalsIgnoreCase("faction")){
                    if(args.length == 0){
                       
                        // /faction
                       
                        p.sendMessage(ChatColor.RED + "Usage: /faction [add/list] [FactionName]");
                       
                    }else if(args.length == 1){
                       
                        // 2 mots
                       
                        if(args[1] == "list" && factions.size() != 0){
                            for(Integer i = 0; i < factions.size(); i++){
                                p.sendMessage(ChatColor.GOLD + String.format("%i: %s", i, factions.get(i)));
                            }
                        }else if(args[1] == "list" && factions.size() == 0){
                            p.sendMessage(ChatColor.RED + "Aucunes Factions.");
                        }else{
                            p.sendMessage(ChatColor.RED + "Usage: /faction [add/list] [FactionName]");
                        }
                       
                    }else if(args.length == 2){
                       
                        // 3 mots
                       
                        if(args[1] == "add"){
                            factions.add(args[2]);
                        }else{
                            p.sendMessage(ChatColor.RED + "Usage: /faction [add/list] [FactionName]");
                        }
                       
                    }else{
                       
                        // 4 ou plus de mots
                       
                        p.sendMessage(ChatColor.RED + "Usage: /faction [add/list] [FactionName]");
                       
                    }
                }
           
            }
            }catch(Exception e){
                e.printStackTrace();
            }
           
            //si joueur
            //if(sender instanceof Player)
           
           
            return false;
        }
    and when i execute the command /faction , he return the usage : normal
    when i execute /faction add [factionName] , he return the usage : WTF
    when i execute /faction list he return :
    Code:
    [17:10:23 WARN]: java.lang.ArrayIndexOutOfBoundsException: 1
    [17:10:23 WARN]:        at be.drgeek.RKF.RKFCommands.onCommand(RKFCommands.java:
    38)
    [17:10:23 WARN]:        at org.bukkit.command.PluginCommand.execute(PluginComman
    d.java:44)
    [17:10:23 WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCo
    mmandMap.java:181)
    [17:10:23 WARN]:        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCo
    mmand(CraftServer.java:767)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.PlayerConnection.handleC
    ommand(PlayerConnection.java:1043)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.PlayerConnection.a(Playe
    rConnection.java:880)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(Packe
    tPlayInChat.java:28)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(
    PacketPlayInChat.java:65)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.NetworkManager.a(Network
    Manager.java:186)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.ServerConnection.c(Serve
    rConnection.java:81)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.MinecraftServer.v(Minecr
    aftServer.java:734)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.DedicatedServer.v(Dedica
    tedServer.java:289)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.MinecraftServer.u(Minecr
    aftServer.java:584)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.MinecraftServer.run(Mine
    craftServer.java:490)
    [17:10:23 WARN]:        at net.minecraft.server.v1_7_R4.ThreadServerApplication.
    run(SourceFile:628)
    i think it's the
    Code:
    args[1]
    is the bug

    i found the bug : args are 1+ than we need

    <Edited by bwfcwalshy: Merged posts, please use the edit button rather than double posting.>
     
    Last edited by a moderator: Dec 16, 2014
Thread Status:
Not open for further replies.

Share This Page