ArrayIndexOutOfBoundsException

Discussion in 'Plugin Development' started by Nerdfuryz, Jul 9, 2013.

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

    Nerdfuryz

    Code:java
    1. package net.nerdfuryz.superpickaxe;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.World;
    8. import org.bukkit.block.Block;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.block.Action;
    15. import org.bukkit.event.player.PlayerInteractEvent;
    16. import org.bukkit.inventory.ItemStack;
    17. import org.bukkit.plugin.PluginManager;
    18. import org.bukkit.plugin.java.JavaPlugin;
    19.  
    20. public class SuperPickAxe extends JavaPlugin implements Listener{
    21. ArrayList<String> spa = new ArrayList<String>();
    22.  
    23. public void onEnable(){
    24. PluginManager pm = getServer().getPluginManager();
    25. pm.registerEvents(this, this);
    26. }
    27.  
    28. public void onDisable(){
    29.  
    30. }
    31. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    32. if (commandLabel.equalsIgnoreCase("spa")){
    33. Player player = (Player) sender;
    34. spa.add(player.getName());
    35. player.getItemInHand().getTypeId();
    36. player.sendMessage(ChatColor.RED + "You have successfully activated Super Pick Axe. Love Nerd xD");
    37. if ((cmd.getName().equalsIgnoreCase("spa")) && (args[0].equalsIgnoreCase("remove"))){{
    38. player.sendMessage(ChatColor.RED + "Super Pickaxe Disabled");
    39. spa.remove(player.getName());
    40.  
    41. }
    42. }
    43. }
    44. return false;
    45. }
    46. @EventHandler
    47. public void onPlayerInteract(PlayerInteractEvent e)//Commands Deny
    48. {
    49. Player p = e.getPlayer();
    50. ItemStack block = p.getItemInHand();
    51. if(spa.contains(p.getName())) {
    52. if(block.getTypeId() == 278){
    53. if (e.getAction() == Action.LEFT_CLICK_BLOCK){
    54. Block block1 = e.getClickedBlock();
    55. World world = p.getWorld();
    56. block1.setType(Material.AIR);
    57. world.dropItemNaturally(block1.getLocation(), new ItemStack(block1.getType(), 1) );
    58.  
    59. }
    60. }
    61. }
    62. }
    63. }


    Error:

    Code:java
    1. 2013-07-09 22:20:58 [INFO] NerdFuryz issued server command: /spa
    2. 2013-07-09 22:20:58 [SEVERE] null
    3. org.bukkit.command.CommandException: Unhandled exception executing command 'spa' in plugin SuperPickaxe v1.4.4
    4. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    5. at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:190)
    6. at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:527)
    7. at net.minecraft.server.v1_6_R2.PlayerConnection.handleCommand(PlayerConnection.java:981)
    8. at net.minecraft.server.v1_6_R2.PlayerConnection.chat(PlayerConnection.java:892)
    9. at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:839)
    10. at net.minecraft.server.v1_6_R2.Packet3Chat.handle(SourceFile:49)
    11. at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:235)
    12. at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:118)
    13. at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
    14. at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:125)
    15. at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592)
    16. at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239)
    17. at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481)
    18. at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413)
    19. at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    20. Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    21. at net.nerdfuryz.superpickaxe.SuperPickAxe.onCommand(SuperPickAxe.java:36)
    22. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    23. ... 15 more


    How can I fix this issue?
     
  2. Offline

    SnipsRevival

    Check args.length before trying to access any args index. In other words, if you don't check if(args.length >= 1) you are going to receive that exception when trying to use args[0] when there are no args in your command.
     
  3. Offline

    Nerdfuryz

    Ok now it works but do you have any idea how I can disable the super pickaxe because that is not working.

    Nvm, I got it :). Thanks for the help

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
Thread Status:
Not open for further replies.

Share This Page