001 package net.minecraft.command; 002 003 import java.util.List; 004 import java.util.regex.Matcher; 005 import net.minecraft.server.MinecraftServer; 006 007 public class CommandServerPardonIp extends CommandBase 008 { 009 public String getCommandName() 010 { 011 return "pardon-ip"; 012 } 013 014 /** 015 * Return the required permission level for this command. 016 */ 017 public int getRequiredPermissionLevel() 018 { 019 return 3; 020 } 021 022 /** 023 * Returns true if the given command sender is allowed to use this command. 024 */ 025 public boolean canCommandSenderUseCommand(ICommandSender par1ICommandSender) 026 { 027 return MinecraftServer.getServer().getConfigurationManager().getBannedIPs().isListActive() && super.canCommandSenderUseCommand(par1ICommandSender); 028 } 029 030 public String getCommandUsage(ICommandSender par1ICommandSender) 031 { 032 return par1ICommandSender.translateString("commands.unbanip.usage", new Object[0]); 033 } 034 035 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 036 { 037 if (par2ArrayOfStr.length == 1 && par2ArrayOfStr[0].length() > 1) 038 { 039 Matcher var3 = CommandServerBanIp.IPv4Pattern.matcher(par2ArrayOfStr[0]); 040 041 if (var3.matches()) 042 { 043 MinecraftServer.getServer().getConfigurationManager().getBannedIPs().remove(par2ArrayOfStr[0]); 044 notifyAdmins(par1ICommandSender, "commands.unbanip.success", new Object[] {par2ArrayOfStr[0]}); 045 } 046 else 047 { 048 throw new SyntaxErrorException("commands.unbanip.invalid", new Object[0]); 049 } 050 } 051 else 052 { 053 throw new WrongUsageException("commands.unbanip.usage", new Object[0]); 054 } 055 } 056 057 /** 058 * Adds the strings available in this command to the given list of tab completion options. 059 */ 060 public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 061 { 062 return par2ArrayOfStr.length == 1 ? getListOfStringsFromIterableMatchingLastWord(par2ArrayOfStr, MinecraftServer.getServer().getConfigurationManager().getBannedIPs().getBannedList().keySet()) : null; 063 } 064 }