I need help...

Discussion in 'Plugin Development' started by A3O2, Sep 11, 2012.

Thread Status:
Not open for further replies.
  1. I have an error and i don't know what the problem is.
    code:
    Code:
    package me.newban.newban;
     
    import org.bukkit.Bukkit;
    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 BanExecutor implements CommandExecutor{
     
        private newban plugin;
        protected ListStore bannedPeople;
     
        public BanExecutor(newban plugin){
            this.plugin = plugin;
        }
     
        @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            Player player = null;
            Player ban = Bukkit.getPlayer(args[0]); //<------ line 22
            if(sender instanceof Player){
                player = (Player) sender;
            }
            if(!sender.hasPermission("ban.newban")){
                sender.sendMessage(ChatColor.RED + "You may not use this command!");
                return true;
            } 
            if (args.length < 0 && sender.hasPermission("ban.newban")){
                sender.sendMessage(ChatColor.RED + "Usage: /nb <player_name> [message]");
                return true;
            }
         
            String message = "";
         
            if(args.length > 1){
                for (int i = 1; i < args.length; ++i){
                    message += args[i] + " ";
                }
            }else{
                message = "You have been banned!";
            }
            if(player == null && !plugin.bannedPeople.contains(args[0])){
                sender.sendMessage("Player:" + args[0] + " Has been banned " + "[" + message + "]");
            }
            if(ban != null){
                ban.kickPlayer(message);
            }
            if(args.length > 0 && !plugin.bannedPeople.contains(args[0])){
                Bukkit.broadcastMessage(ChatColor.GREEN + args[0] + " has been banned " + "[" + message + "]");             
            }
            plugin.bannedPeople.add(args[0]);
            return true;
        }
     
    }
    
    Error:
    Code:
    org.bukkit.command.CommandException: Unhandled exception executing command 'nb' in plugin Newban v1.3.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:878)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:825)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:807)
        at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
        at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
        at net.minecraft.server.ServerConnection.b(SourceFile:35)
        at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
        at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
        at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at me.newban.newban.BanExecutor.onCommand(BanExecutor.java:22)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 15 more
    
    how do i fix this?
     
  2. Offline

    ThatBox

    That means that the player "ban" is not online.
     
  3. it happens when i type just /nb
     
  4. Offline

    ThatBox

    Well you never did:
    Code:java
    1. if(cmd.getName().equalsIgnoreCase("nb")) {
    2. // Code.
    3.  
    4. }
     
  5. its a command executor the command is in my main file
     
  6. Offline

    ThatBox

    Well I have no idea then, ArrayIndexExceptions always confuse me. Sorry I couldn't be of help.
     
  7. its ok its confusing me and idont know y i get the error
     
  8. Offline

    QuantumDev

    It means that args[0] doesn't exist. Check and make sure that the length of args is at least 1 before attempting to use any part of the array.
     
  9. how would i do that?
     
  10. Offline

    jacklin213

    If (args.length == 1){
    }
     
    A3O2 likes this.
  11. thanks so much
     
  12. Offline

    jacklin213

    np did it work?
     
  13. yes :) thanks
     
Thread Status:
Not open for further replies.

Share This Page