001    package net.minecraft.src;
002    
003    import java.util.List;
004    import net.minecraft.server.MinecraftServer;
005    
006    public class CommandServerKick extends CommandBase
007    {
008        public String getCommandName()
009        {
010            return "kick";
011        }
012    
013        public String getCommandUsage(ICommandSender par1ICommandSender)
014        {
015            return par1ICommandSender.translateString("commands.kick.usage", new Object[0]);
016        }
017    
018        public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
019        {
020            if (par2ArrayOfStr.length > 0 && par2ArrayOfStr[0].length() > 1)
021            {
022                EntityPlayerMP var3 = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(par2ArrayOfStr[0]);
023                String var4 = "Kicked by an operator.";
024                boolean var5 = false;
025    
026                if (var3 == null)
027                {
028                    throw new PlayerNotFoundException();
029                }
030                else
031                {
032                    if (par2ArrayOfStr.length >= 2)
033                    {
034                        var4 = joinString(par2ArrayOfStr, 1);
035                        var5 = true;
036                    }
037    
038                    var3.serverForThisPlayer.kickPlayerFromServer(var4);
039    
040                    if (var5)
041                    {
042                        notifyAdmins(par1ICommandSender, "commands.kick.success.reason", new Object[] {var3.getEntityName(), var4});
043                    }
044                    else
045                    {
046                        notifyAdmins(par1ICommandSender, "commands.kick.success", new Object[] {var3.getEntityName()});
047                    }
048                }
049            }
050            else
051            {
052                throw new WrongUsageException("commands.kick.usage", new Object[0]);
053            }
054        }
055    
056        /**
057         * Adds the strings available in this command to the given list of tab completion options.
058         */
059        public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
060        {
061            return par2ArrayOfStr.length >= 1 ? getListOfStringsMatchingLastWord(par2ArrayOfStr, MinecraftServer.getServer().getAllUsernames()) : null;
062        }
063    }