Caused by: java.lang.ArrayIndexOutOfBoundsException: 3 help.

Discussion in 'Plugin Development' started by A3O2, Dec 5, 2013.

Thread Status:
Not open for further replies.
  1. Title says it all this is my commands now i have tested it with sender.sendMessage(""); so if you guys know how to fix it please explain what i did wrong. :)
    Code Here:
    Code:java
    1. public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
    2. String File = args[3]; // <------ it says this is the error ???
    3. String value = args[7];
    4. boolean Block1 = args[4].equalsIgnoreCase("value1");
    5. boolean Block2 = args[4].equalsIgnoreCase("value2");
    6. boolean C5 = args[5].equalsIgnoreCase("Value3");
    7. boolean C = args[5].equalsIgnoreCase("Value4");
    8. boolean S = args[6].equalsIgnoreCase("Value5");
    9. boolean Del = args[6].equalsIgnoreCase("Value6");
    10. boolean Y = args[6].equalsIgnoreCase("value7");
    11. boolean N = args[6].equalsIgnoreCase("value8");
    12.  
    13. if (label.equalsIgnoreCase("Commander") && sender.hasPermission("permissionhere")){
    14. if(args.length == 0 || args.length > 2){
    15.  
    16. }else if (args[0].equalsIgnoreCase("Editor")){
    17. if(args.length == 1){
    18.  
    19. }
    20. if (args.length == 2){
    21. if(args[1].equalsIgnoreCase("Show")){
    22.  
    23. }
    24.  
    25.  
    26. }else if(args[1].equalsIgnoreCase("Fix")){
    27. if(args.length > 7){
    28.  
    29. }else{
    30. if(!Bukkit.getWorlds().contains(File)){
    31.  
    32. }else{
    33. if (Block1){
    34. if(args.length != 4){
    35.  
    36. }else{
    37. if(C5){
    38.  
    39. }else{
    40. if(C){
    41. if(args.length != 5){
    42.  
    43. }
    44. if(Y){
    45.  
    46. }
    47. if(N){
    48.  
    49. }
    50. }
    51. }
    52. }
    53. }else
    54. if (Block2){
    55. if(C5){
    56.  
    57. }else
    58. if(C){
    59.  
    60. if(!Y && !N){
    61.  
    62. }else{
    63. if(Y){
    64.  
    65. }
    66. if(N){
    67.  
    68. }
    69. }
    70. }
    71. }
    72. }
    73. }
    74. }
    75. }
    76. }else if(label.equalsIgnoreCase("Commander") && !sender.hasPermission("Permissionhere")){
    77.  
    78. }
    79.  
    80. return false;
    81. }

    and the Error:
    Code:java
    1. [01:19:16 WARN]: Unexpected exception while parsing console command "commander"
    2. org.bukkit.command.CommandException: Unhandled exception executing command 'commander' in plugin Test vMark1
    3. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    4. at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:192) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    5. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    6. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchServerCommand(CraftServer.java:529) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    7. at net.minecraft.server.v1_7_R1.DedicatedServer.aw(DedicatedServer.java:286) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    8. at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:251) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    9. at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:535) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    10. at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:447) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    11. at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    12. Caused by: java.lang.ArrayIndexOutOfBoundsException: 3
    13. at Main.onCommand(Main.java:27) ~[?:?]
    14. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-14-g24b3aec-b2934jnks]
    15. ... 8 more
    16.  
     
  2. Offline

    masons123456

    Do an argument check
     
  3. check the length of an array

    An array is an object that consists of elements. It has its own size and elements can be get by its index in the array.
    ["HI!","HELLO!","HEY!"]
    In the array above, the index of "HI!" is 0 and the index of "HELLO!" is 1 etc.

    By using array[index] in java, you can get elements by its index. If the index is larger or equal than its length, it means it exceeds its possible length and throws an arrayindexoutofboundsexception.
    You need to check it with args.length
     
  4. when i try to type in a command it says the error.
    and i thought i already checked the if the args.length == 0 and if its higher than its limit.
     
  5. Offline

    Harry5573

    Rename File to FileTest
     
  6. still get the same error on the same line.
     
  7. Offline

    The_Doctor_123

    A3O2
    You're trying to get a nonexistenting index in an array.
     
  8. im slightly lost as it is almost 2am but i will try sleeping see if i figure it out in the morning.
     
Thread Status:
Not open for further replies.

Share This Page