Problem/Bug ArrayIndexOutOfBoundsException: 1

Discussion in 'Plugin Help/Development/Requests' started by TheFl4me, Mar 19, 2015.

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

    TheFl4me

    Im having a slight problem with my /tag cmd (it changes the color of the name of a player)

    whenever i do /tag <tagname> <playername> it works fine.

    but if i do /tag <tagname> it gives me the error.

    Code:
    package KitPvP;
    
    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 Listeners.TagListener;
    import Main.Main;
    
    public class Tag implements CommandExecutor {
       
        String tag = ChatColor.GREEN + "Success! You now look like a ";
        String tagnoperm = ChatColor.RED + "Can't find rank or this rank is higher than yours!";
        String taglist = ChatColor.RED + "Wrong syntax! Use: /tag ";
       
        @SuppressWarnings("deprecation")
        public boolean onCommand(CommandSender cs, Command cmd, String lbl, String[] args) {
           
            String tagother = ChatColor.GREEN + "Success! " + args[1] + " now looks like a ";
           
            if (!(cs instanceof Player)) {   
                cs.sendMessage(Main.onlyplayer);
                return true;
            }
            Player p = (Player)cs;
            if ((cmd.getName().equalsIgnoreCase("tag")) || (cmd.getName().equalsIgnoreCase("nametag"))) {
                if(args.length == 1) {
                    if(args[0].equalsIgnoreCase("admin")) {
                        if (p.hasPermission("kitpvp.tag.admin")) {
                            TagListener.TagAdmin(p);
                            p.sendMessage(tag + "Admin");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("modplus")) {
                        if ((p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagModPlus(p);
                            p.sendMessage(tag + "ModPlus");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }       
                    }
                    else if(args[0].equalsIgnoreCase("mod")) {
                        if ((p.hasPermission("kitpvp.tag.mod")) || (p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagMod(p);
                            p.sendMessage(tag + "Mod");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("trialmod")) {
                        if ((p.hasPermission("kitpvp.tag.trialmod")) || (p.hasPermission("kitpvp.tag.mod")) || (p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagTrialMod(p);
                            p.sendMessage(tag + "TrialMod");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("builder")) {
                        if ((p.hasPermission("kitpvp.tag.builder")) || (p.hasPermission("kitpvp.tag.trialmod")) || (p.hasPermission("kitpvp.tag.mod")) || (p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagBuilder(p);
                            p.sendMessage(tag + "Builder");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("youtuber")) {
                        if ((p.hasPermission("kitpvp.tag.youtuber")) || (p.hasPermission("kitpvp.tag.builder")) || (p.hasPermission("kitpvp.tag.trialmod")) || (p.hasPermission("kitpvp.tag.mod")) || (p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagYoutuber(p);
                            p.sendMessage(tag + "YouTuber");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("pro")) {
                        if ((p.hasPermission("kitpvp.tag.pro")) || (p.hasPermission("kitpvp.tag.youtuber")) || (p.hasPermission("kitpvp.tag.builder")) || (p.hasPermission("kitpvp.tag.trialmod")) || (p.hasPermission("kitpvp.tag.mod")) || (p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagPro(p);
                            p.sendMessage(tag + "Pro");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("mvp")) {
                        if ((p.hasPermission("kitpvp.tag.mvp")) || (p.hasPermission("kitpvp.tag.pro")) || (p.hasPermission("kitpvp.tag.youtuber")) || (p.hasPermission("kitpvp.tag.builder")) || (p.hasPermission("kitpvp.tag.trialmod")) || (p.hasPermission("kitpvp.tag.mod")) || (p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagMVP(p);
                            p.sendMessage(tag + "MVP");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("vip")) {
                        if ((p.hasPermission("kitpvp.tag.vip")) || (p.hasPermission("kitpvp.tag.mvp")) || (p.hasPermission("kitpvp.tag.pro")) || (p.hasPermission("kitpvp.tag.youtuber")) ||  (p.hasPermission("kitpvp.tag.builder")) || (p.hasPermission("kitpvp.tag.trialmod")) ||(p.hasPermission("kitpvp.tag.mod")) || (p.hasPermission("kitpvp.tag.modplus")) || (p.hasPermission("kitpvp.tag.admin"))) {
                            TagListener.TagVIP(p);
                            p.sendMessage(tag + "VIP");
                            return true;
                        }
                        else {
                            p.sendMessage(tagnoperm);
                            TagListener.UsageTag(p);
                            return true;
                        }
                    }
                    else if(args[0].equalsIgnoreCase("normal")) {
                        TagListener.TagNormal(p);
                        p.sendMessage(tag + "Normal");
                        return true;
                    }   
                    else if(args[0].equalsIgnoreCase("default")) {
                        TagListener.TagDefault(p);
                        p.sendMessage(ChatColor.GREEN + "Success! You now look like your normal rank again");
                        return true;
                    }
                    else {
                        p.sendMessage(tagnoperm);
                        TagListener.UsageTag(p);
                        return true;
                    }
                }
                else if(args.length == 2) {
                    if(p.hasPermission("kitpvp.tag.others")) {
                        Player z = p.getServer().getPlayerExact(args[1]);
                        if(args[0].equalsIgnoreCase("admin")) {
                            TagListener.TagAdmin(z);
                            p.sendMessage(tagother + "Admin");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("modplus")) {
                            TagListener.TagModPlus(z);
                            p.sendMessage(tagother + "ModPlus");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("mod")) {
                            TagListener.TagMod(z);
                            p.sendMessage(tagother + "Mod");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("trialmod")) {
                            TagListener.TagTrialMod(z);
                            p.sendMessage(tagother + "TrialMod");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("builder")) {
                            TagListener.TagBuilder(z);
                            p.sendMessage(tagother + "Builder");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("youtuber")) {
                            TagListener.TagMod(z);
                            p.sendMessage(tagother + "YouTuber");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("pro")) {
                            TagListener.TagPro(z);
                            p.sendMessage(tagother + "Pro");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("mvp")) {
                            TagListener.TagMVP(z);
                            p.sendMessage(tagother + "MVP");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("vip")) {
                            TagListener.TagVIP(z);
                            p.sendMessage(tagother + "VIP");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("normal")) {
                            TagListener.TagNormal(z);
                            p.sendMessage(tagother + "Normal");
                            return true;
                        }
                        else if(args[0].equalsIgnoreCase("default")) {
                            TagListener.TagDefault(z);
                            p.sendMessage(ChatColor.GREEN + "Success! " + z.getName() + " now looks like his normal rank again");
                            return true;
                        }
                        else {
                            TagListener.UsageTag(p);
                        }
                    }
                    else {
                        TagListener.UsageTag(p);
                    }
                }
                else {
                    TagListener.UsageTag(p);       
                }
            }
            return true;
        }
    }
    Code:
    package Listeners;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    public class TagListener {
           
            public static void TagAdmin(Player p) {
                String pname = p.getName();
                String admin = ChatColor.RED + pname + ChatColor.RESET;
                p.setDisplayName(admin);
                p.setPlayerListName(admin);
            }
           
            public static void TagModPlus(Player p) {
                String pname = p.getName();
                String modplus = ChatColor.DARK_PURPLE.toString() + ChatColor.ITALIC.toString() + pname + ChatColor.RESET;
                p.setDisplayName(modplus);
                p.setPlayerListName(modplus);
            }
           
            public static void TagMod(Player p) {
                String pname = p.getName();
                String mod = ChatColor.DARK_PURPLE + pname + ChatColor.RESET;
                p.setDisplayName(mod);
                p.setPlayerListName(mod);
            }
           
            public static void TagTrialMod(Player p) {
                String pname = p.getName();
                String trialmod = ChatColor.LIGHT_PURPLE + pname + ChatColor.RESET;
                p.setDisplayName(trialmod);
                p.setPlayerListName(trialmod);
            }
           
            public static void TagBuilder(Player p) {
                String pname = p.getName();
                String builder = ChatColor.DARK_GRAY + pname + ChatColor.RESET;
                p.setDisplayName(builder);
                p.setPlayerListName(builder);
            }
           
            public static void TagYoutuber(Player p) {
                String pname = p.getName();
                String youtuber = ChatColor.AQUA + pname + ChatColor.RESET;
                p.setDisplayName(youtuber);
                p.setPlayerListName(youtuber);
            }
           
            public static void TagPro(Player p) {
                String pname = p.getName();
                String pro = ChatColor.GOLD + pname + ChatColor.RESET;
                p.setDisplayName(pro);
                p.setPlayerListName(pro);
            }
           
            public static void TagMVP(Player p) {
                String pname = p.getName();
                String mvp = ChatColor.BLUE + pname + ChatColor.RESET;
                p.setDisplayName(mvp);
                p.setPlayerListName(mvp);
            }
           
            public static void TagVIP(Player p) {
                String pname = p.getName();
                String vip = ChatColor.GREEN + pname + ChatColor.RESET;
                p.setDisplayName(vip);
                p.setPlayerListName(vip);
            }
           
            public static void TagNormal(Player p) {
                String pname = p.getName();
                String normal = pname + ChatColor.RESET;
                p.setDisplayName(normal);
                p.setPlayerListName(normal);
            }
           
            public static void TagDefault(Player p) {
                if(p.hasPermission("kitpvp.tag.admin")) {
                    TagListener.TagAdmin(p);
                }
                else if(p.hasPermission("kitpvp.tag.modplus")) {
                    TagListener.TagModPlus(p);
                }
                else if(p.hasPermission("kitpvp.tag.mod")) {
                    TagListener.TagMod(p);
                }
                else if(p.hasPermission("kitpvp.tag.trialmod")) {
                    TagListener.TagTrialMod(p);
                }
                else if(p.hasPermission("kitpvp.tag.builder")) {
                    TagListener.TagBuilder(p);
                }
                else if(p.hasPermission("kitpvp.tag.youtuber")) {
                    TagListener.TagYoutuber(p);
                }
                else if(p.hasPermission("kitpvp.tag.pro")) {
                    TagListener.TagPro(p);
                }
                else if(p.hasPermission("kitpvp.tag.mvp")) {
                    TagListener.TagMVP(p);
                }
                else if(p.hasPermission("kitpvp.tag.vip")) {
                    TagListener.TagVIP(p);
                }
                else {
                    TagListener.TagNormal(p);
                }
            }
           
            public static void UsageTag(Player p) {
                String taglist = Main.Main.syntaxerror + "/tag ";
                if(p.hasPermission("kitpvp.tag.admin")) {
                    p.sendMessage(taglist + "[admin : modplus : mod : trialmod : builder : youtuber : pro : mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.modplus")) {
                    p.sendMessage(taglist + "[modplus : mod : trialmod : builder : youtuber : pro : mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.mod")) {
                    p.sendMessage(taglist + "[mod : trialmod : builder : youtuber : pro : mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.trialmod")) {
                    p.sendMessage(taglist + "[trialmod : builder : youtuber : pro : mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.builder")) {
                    p.sendMessage(taglist + "[builder : youtuber : pro : mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.youtuber")) {
                    p.sendMessage(taglist + "[youtuber : pro : mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.pro")) {
                    p.sendMessage(taglist + "[pro : mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.mvp")) {
                    p.sendMessage(taglist + "[mvp : vip : normal : default]");
                }
                else if(p.hasPermission("kitpvp.tag.vip")) {
                    p.sendMessage(taglist + "[vip : normal : default]");
                }
                else {
                    p.sendMessage(taglist + "[normal : default]");
                }       
            }
    }
    ERROR:

    Code:
    [17:36:57 INFO]: TheFl4me issued server command: /tag mod
    [17:36:57 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'tag' in plugin KitPvP v2.0.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:625) ~[craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.PlayerConnection.handleCommand(PlayerConnection.java:1077) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:937) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(SourceFile:37) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(SourceFile:9) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_71]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_71]
        at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:670) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:336) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:626) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:534) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at java.lang.Thread.run(Thread.java:745) [?:1.7.0_71]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at KitPvP.Tag.onCommand(Tag.java:21) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        ... 15 more
    
    any help?
     
  2. Offline

    Ruptur

    @TheFl4me
    One word: 'Check'

    You need to add a check before trying to get an index that might not exist.
    This line:
    Code:
            String tagother = ChatColor.GREEN + "Success! " + args[1] + " now looks like a ";
    
    is the problem.

    This could be that the args[1] isnt being entered
    in other words

    /<command> <arg0> <arg1> <arg2> etc ...

    If args[1] isnt entered then it really doesnt exist.

    Add a check by doing ..
    Code:java
    1.  
    2. if (args.length() >= 2) {
    3. // then is valid..
    4. } else {
    5. // They havent entered correct arguments
    6. sender.sendMessage("Please enter in the correct format");
    7.  
    8. }
     
  3. Offline

    TheFl4me

    Thanks :) i simply moved the String under the
    if(args.length == 2) {
     
  4. Offline

    Ruptur

    @TheFl4me
    Yeah you do and no problem
    ( remember to tahg person you want to speak to so they receive an alert :) )

    For example if i had a command for /givemojangpowers <player> <power>
    You would want to check for the last argument (<power>) exists before trying to get information from it

    If this solved your problem be sure to set the thread prefix to [solved]

    Leave a like if i helped!
     
  5. Offline

    TheFl4me

    I did it on purpose so they dont recieve an alert :P (i have my crazy reasons)

    Srry for the reopening of the thread but im having another problem with the same classes.

    in 1.7.10 Everytime a player would join it woul automatically set his displayname and tabname to the colors of his rank.
    but ever since i updated to 1.8 the displayname works but not the tabname

    I have to do the /tag cmd to fix this.

    Joinevent code:

    Code:
    @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            TagListener.TagDefault(p);
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 13, 2016
  6. Offline

    TheFl4me

  7. Offline

    nverdier

  8. Offline

    TheFl4me

  9. Offline

    nverdier

  10. Offline

    TheFl4me

  11. Offline

    TheFl4me

    anyone?
     
  12. Offline

    TheFl4me

    come on pls
     
Thread Status:
Not open for further replies.

Share This Page