001 package net.minecraft.command;
002
003 import java.util.List;
004 import net.minecraft.entity.player.EntityPlayerMP;
005 import net.minecraft.server.MinecraftServer;
006 import net.minecraft.server.management.BanEntry;
007
008 public class CommandServerBan extends CommandBase
009 {
010 public String getCommandName()
011 {
012 return "ban";
013 }
014
015 /**
016 * Return the required permission level for this command.
017 */
018 public int getRequiredPermissionLevel()
019 {
020 return 3;
021 }
022
023 public String getCommandUsage(ICommandSender par1ICommandSender)
024 {
025 return par1ICommandSender.translateString("commands.ban.usage", new Object[0]);
026 }
027
028 /**
029 * Returns true if the given command sender is allowed to use this command.
030 */
031 public boolean canCommandSenderUseCommand(ICommandSender par1ICommandSender)
032 {
033 return MinecraftServer.getServer().getConfigurationManager().getBannedPlayers().isListActive() && super.canCommandSenderUseCommand(par1ICommandSender);
034 }
035
036 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
037 {
038 if (par2ArrayOfStr.length >= 1 && par2ArrayOfStr[0].length() > 0)
039 {
040 EntityPlayerMP var3 = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(par2ArrayOfStr[0]);
041 BanEntry var4 = new BanEntry(par2ArrayOfStr[0]);
042 var4.setBannedBy(par1ICommandSender.getCommandSenderName());
043
044 if (par2ArrayOfStr.length >= 2)
045 {
046 var4.setBanReason(func_82360_a(par1ICommandSender, par2ArrayOfStr, 1));
047 }
048
049 MinecraftServer.getServer().getConfigurationManager().getBannedPlayers().put(var4);
050
051 if (var3 != null)
052 {
053 var3.playerNetServerHandler.kickPlayerFromServer("You are banned from this server.");
054 }
055
056 notifyAdmins(par1ICommandSender, "commands.ban.success", new Object[] {par2ArrayOfStr[0]});
057 }
058 else
059 {
060 throw new WrongUsageException("commands.ban.usage", new Object[0]);
061 }
062 }
063
064 /**
065 * Adds the strings available in this command to the given list of tab completion options.
066 */
067 public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
068 {
069 return par2ArrayOfStr.length >= 1 ? getListOfStringsMatchingLastWord(par2ArrayOfStr, MinecraftServer.getServer().getAllUsernames()) : null;
070 }
071 }