Solved Unhandled exception executing command _____

Discussion in 'Plugin Development' started by Pixelatorx2, Feb 19, 2014.

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

    Pixelatorx2

    Hia, I'm Pixelatorx2 an aspiring Bukkit Dev and I've recently started creating my own KitPVP plugin with listeners etc, BUT after adding some kits and stuff... It suddenly stopped working.

    I'll include important details about it after
    Code:
    package me.Pixelatorx2.PVPServer;
     
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.economy.EconomyResponse;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
     
    public class KitPVP extends JavaPlugin {
     
    public static Economy econ = null;
     
    @Override
       public void onEnable() {
           if (!setupEconomy() ) {
               getLogger().severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
               getServer().getPluginManager().disablePlugin(this);
               return;
           }
    }
           
           private boolean setupEconomy() {
               if (getServer().getPluginManager().getPlugin("Vault") == null) {
                   return false;
               }
               RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
               if (rsp == null) {
                   return false;
               }
               econ = rsp.getProvider();
               return econ != null;
           }      
    @SuppressWarnings("deprecation")
    public boolean onCommand(CommandSender sender, Command cmd, String commandLable, String[] args) {
     
     
    Player player = (Player) sender;
    PlayerInventory pi = player.getInventory();
    Player target = Bukkit.getServer().getPlayer(args[0]);
    // HEAL
     
    if (cmd.getName().equalsIgnoreCase("PVPHeal")){
    if(!sender.hasPermission("PVPHeal.heal")) {
    sender.sendMessage(ChatColor.RED + "You are not permitted to use this command!");
    return true;
    }
    if (args.length == 0) {
    player.setHealth(20);
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.GREEN + "You have been healed");
    return true;
    }
    if (target == null) {
    player.sendMessage(ChatColor.RED + "Could not find player");
    return true;
    }
    target.setHealth(20);
    target.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.GREEN + player.getName() + "has healed you");
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.GREEN + target.getName() + "has been healed");
    }
     
    // FEED
     
    if (cmd.getName().equalsIgnoreCase("PVPFeed")){
    if(!sender.hasPermission("PVPHeal.heal")) {
    sender.sendMessage(ChatColor.RED + "You are not permitted use this command!");
    return true;
    }
    if (args.length == 0) {
    player.setFoodLevel(20);
    player.sendMessage(ChatColor.GREEN + "You have been healed");
    return true;
     
    }
    if (target == null) {
    player.sendMessage(ChatColor.RED + "Could not find player");
    return true;
    }
    target.setFoodLevel(20);
    target.sendMessage(ChatColor.GREEN + player.getName() + "has fed you!");
    player.sendMessage(ChatColor.GREEN + target.getName() + " has been fed!");
    }
     
    // FULLHEAL
     
    if (cmd.getName().equalsIgnoreCase("Fullheal")) {
    if(!sender.hasPermission("PVP.fullheal")) {
    sender.sendMessage(ChatColor.RED + "You are not permitted to use this command!");
    return true;
    }
    if (args.length == 0) {
    player.setFoodLevel(20);
    player.setHealth(20);
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.GREEN + " You have been healed!");
    return true;
    }
    if(target == null) {
    player.sendMessage(ChatColor.RED + "Could not find player");
    return true;
    }
    target.setFoodLevel(20);
    target.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.GREEN + player.getName() + " has fully healed you!");
    target.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.GREEN + "You have fully healed" + target.getName());
    }
     
    // STAFFON
     
    if (cmd.getName().equalsIgnoreCase("staffon")){
    if (!sender.hasPermission("PVP.staff")) {
    sender.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPStaff" + ChatColor.BLACK + "] " + "You are not permitted to use this command.");
    return true;
    }
    player.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 1000000000, 1));
    player.setGameMode(GameMode.CREATIVE);
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPStaff" + ChatColor.BLACK + "] " + ChatColor.YELLOW + "Use /staffoff to disable!");
    return true;
    }
    if (cmd.getName().equalsIgnoreCase("staffoff")) {
    if(!player.hasPermission("PVP.staff")) {
    sender.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPStaff" + ChatColor.BLACK + "] " + "You are not permitted to use this command.");
    return true;
    }
    player.removePotionEffect(PotionEffectType.INVISIBILITY);
    player.setGameMode(GameMode.SURVIVAL);
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPStaff" + ChatColor.BLACK + "] " + ChatColor.YELLOW + "Staffmode disabled!");
    return true;
    }
     
    // KITS (incomplete)
     
    if (!(sender instanceof Player)){
    sender.sendMessage(ChatColor.RED + "The console cannot run this command!");
    }
    if (cmd.getName().equalsIgnoreCase("kit")) {
    EconomyResponse r = econ.withdrawPlayer(player.getName(), 30);
    if (r.transactionSuccess()) {
    pi.addItem(new ItemStack(Material.STONE_SWORD, 1));
    pi.addItem(new ItemStack(Material.STONE_PICKAXE, 1));
    pi.addItem(new ItemStack(Material.APPLE, 3));
    player.sendMessage(ChatColor.DARK_GREEN + "[" + ChatColor.WHITE + "Money" + ChatColor.DARK_GREEN + "] 30 PVPCoins has been deducted from your account");
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPKits" + ChatColor.BLACK + "] " + ChatColor.YELLOW + "Good luck in battle!");
    return true;
    }
     
    else {
    player.sendMessage(ChatColor.RED + "You cannot get a kit at this time (Money, Server error)");
    }
    }
    if (cmd.getName().equalsIgnoreCase("ci")) {
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.YELLOW + "Inventory Cleared!");
    pi.clear();
    }
    // TELEPORTING
     
    if (!(sender instanceof Player)) {
    sender.sendMessage(ChatColor.RED + "The console cannot run this command!");
    return true;
    }
    if (cmd.getName().equalsIgnoreCase("tp")){
    if (args.length == 0) {
    player.sendMessage(ChatColor.RED + "Please specify a player");
    return true;
    }
    if (target == null) {
    player.sendMessage(ChatColor.RED + "Could not find player" + args[0] + "!");
    return true;
    }
    player.teleport(target.getLocation());
    player.sendMessage(ChatColor.BLACK + "[" + ChatColor.RED + "PVPNetwork" + ChatColor.BLACK + "] " + ChatColor.GREEN + "You have teleported to " + target.getName());
    return true;
    }
    return false;
    }
    }
    
    That is my main class and this is the server error

    Code:
    [19:33:17 INFO]: Pixelatorx2 issued server command: /kit
    [19:33:17 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'kit'
     in plugin KitPVP v1.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
    6) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServe
    r.java:542) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerCon
    nection.java:932) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java
    :814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java
    :28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat
    .java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146
    ) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:6
    55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
    :457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
    17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
            at me.Pixelatorx2.PVPServer.KitPVP.onCommand(KitPVP.java:51) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            ... 13 more
    [19:37:24 INFO]: Pixelatorx2 issued server command: /pvpfeed
    [19:37:24 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'pvpf
    eed' in plugin KitPVP v1.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
    6) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServe
    r.java:542) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerCon
    nection.java:932) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java
    :814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java
    :28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat
    .java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146
    ) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:6
    55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
    :457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
    17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
            at me.Pixelatorx2.PVPServer.KitPVP.onCommand(KitPVP.java:51) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            ... 13 more
    [20:02:51 WARN]: Can't keep up! Did the system time change, or is the server ove
    rloaded? Running 2034ms behind, skipping 40 tick(s)
    >
    
     
  2. Offline

    Nateb1121

    @Pixelatorx2
    OnCommand is called for I think all commands, so when you try to get the player at args[0] on a command that has no arguments, it gets mad.

    Stack trace line: "java.lang.ArrayIndexOutOfBoundsException: 0"
    Your line: "Player target = Bukkit.getServer().getPlayer(args[0]);"
     
  3. Offline

    Pixelatorx2

    So I just repalce Player target = Bukkit.getServer().getPlayer(args[0]; with

    Nateb1121??

    EDIT: Fixed, just use Player target = Bukkit.getServer().getPlayer(commandLable);
    I dont know why, but it works :D
     
Thread Status:
Not open for further replies.

Share This Page