001 package net.minecraft.src; 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 public int func_82362_a() 015 { 016 return 3; 017 } 018 019 /** 020 * Returns true if the given command sender is allowed to use this command. 021 */ 022 public boolean canCommandSenderUseCommand(ICommandSender par1ICommandSender) 023 { 024 return MinecraftServer.getServer().getConfigurationManager().getBannedIPs().isListActive() && super.canCommandSenderUseCommand(par1ICommandSender); 025 } 026 027 public String getCommandUsage(ICommandSender par1ICommandSender) 028 { 029 return par1ICommandSender.translateString("commands.unbanip.usage", new Object[0]); 030 } 031 032 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 033 { 034 if (par2ArrayOfStr.length == 1 && par2ArrayOfStr[0].length() > 1) 035 { 036 Matcher var3 = CommandServerBanIp.IPv4Pattern.matcher(par2ArrayOfStr[0]); 037 038 if (var3.matches()) 039 { 040 MinecraftServer.getServer().getConfigurationManager().getBannedIPs().remove(par2ArrayOfStr[0]); 041 notifyAdmins(par1ICommandSender, "commands.unbanip.success", new Object[] {par2ArrayOfStr[0]}); 042 } 043 else 044 { 045 throw new SyntaxErrorException("commands.unbanip.invalid", new Object[0]); 046 } 047 } 048 else 049 { 050 throw new WrongUsageException("commands.unbanip.usage", new Object[0]); 051 } 052 } 053 054 /** 055 * Adds the strings available in this command to the given list of tab completion options. 056 */ 057 public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 058 { 059 return par2ArrayOfStr.length == 1 ? getListOfStringsFromIterableMatchingLastWord(par2ArrayOfStr, MinecraftServer.getServer().getConfigurationManager().getBannedIPs().getBannedList().keySet()) : null; 060 } 061 }