001 package net.minecraft.src; 002 003 import java.util.ArrayList; 004 import java.util.List; 005 import net.minecraft.server.MinecraftServer; 006 007 public class CommandServerWhitelist extends CommandBase 008 { 009 public String getCommandName() 010 { 011 return "whitelist"; 012 } 013 014 public String getCommandUsage(ICommandSender par1ICommandSender) 015 { 016 return par1ICommandSender.translateString("commands.whitelist.usage", new Object[0]); 017 } 018 019 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 020 { 021 if (par2ArrayOfStr.length >= 1) 022 { 023 if (par2ArrayOfStr[0].equals("on")) 024 { 025 MinecraftServer.getServer().getConfigurationManager().setWhiteListEnabled(true); 026 notifyAdmins(par1ICommandSender, "commands.whitelist.enabled", new Object[0]); 027 return; 028 } 029 030 if (par2ArrayOfStr[0].equals("off")) 031 { 032 MinecraftServer.getServer().getConfigurationManager().setWhiteListEnabled(false); 033 notifyAdmins(par1ICommandSender, "commands.whitelist.disabled", new Object[0]); 034 return; 035 } 036 037 if (par2ArrayOfStr[0].equals("list")) 038 { 039 par1ICommandSender.sendChatToPlayer(par1ICommandSender.translateString("commands.whitelist.list", new Object[] {Integer.valueOf(MinecraftServer.getServer().getConfigurationManager().getIPWhiteList().size()), Integer.valueOf(MinecraftServer.getServer().getConfigurationManager().getAvailablePlayerDat().length)})); 040 par1ICommandSender.sendChatToPlayer(joinNiceString(MinecraftServer.getServer().getConfigurationManager().getIPWhiteList().toArray(new String[0]))); 041 return; 042 } 043 044 if (par2ArrayOfStr[0].equals("add")) 045 { 046 if (par2ArrayOfStr.length < 2) 047 { 048 throw new WrongUsageException("commands.whitelist.add.usage", new Object[0]); 049 } 050 051 MinecraftServer.getServer().getConfigurationManager().addToWhiteList(par2ArrayOfStr[1]); 052 notifyAdmins(par1ICommandSender, "commands.whitelist.add.success", new Object[] {par2ArrayOfStr[1]}); 053 return; 054 } 055 056 if (par2ArrayOfStr[0].equals("remove")) 057 { 058 if (par2ArrayOfStr.length < 2) 059 { 060 throw new WrongUsageException("commands.whitelist.remove.usage", new Object[0]); 061 } 062 063 MinecraftServer.getServer().getConfigurationManager().removeFromWhitelist(par2ArrayOfStr[1]); 064 notifyAdmins(par1ICommandSender, "commands.whitelist.remove.success", new Object[] {par2ArrayOfStr[1]}); 065 return; 066 } 067 068 if (par2ArrayOfStr[0].equals("reload")) 069 { 070 MinecraftServer.getServer().getConfigurationManager().loadWhiteList(); 071 notifyAdmins(par1ICommandSender, "commands.whitelist.reloaded", new Object[0]); 072 return; 073 } 074 } 075 076 throw new WrongUsageException("commands.whitelist.usage", new Object[0]); 077 } 078 079 /** 080 * Adds the strings available in this command to the given list of tab completion options. 081 */ 082 public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 083 { 084 if (par2ArrayOfStr.length == 1) 085 { 086 return getListOfStringsMatchingLastWord(par2ArrayOfStr, new String[] {"on", "off", "list", "add", "remove", "reload"}); 087 } 088 else 089 { 090 if (par2ArrayOfStr.length == 2) 091 { 092 if (par2ArrayOfStr[0].equals("add")) 093 { 094 String[] var3 = MinecraftServer.getServer().getConfigurationManager().getAvailablePlayerDat(); 095 ArrayList var4 = new ArrayList(); 096 String var5 = par2ArrayOfStr[par2ArrayOfStr.length - 1]; 097 String[] var6 = var3; 098 int var7 = var3.length; 099 100 for (int var8 = 0; var8 < var7; ++var8) 101 { 102 String var9 = var6[var8]; 103 104 if (doesStringStartWith(var5, var9) && !MinecraftServer.getServer().getConfigurationManager().getIPWhiteList().contains(var9)) 105 { 106 var4.add(var9); 107 } 108 } 109 110 return var4; 111 } 112 113 if (par2ArrayOfStr[0].equals("remove")) 114 { 115 return getListOfStringsFromIterableMatchingLastWord(par2ArrayOfStr, MinecraftServer.getServer().getConfigurationManager().getIPWhiteList()); 116 } 117 } 118 119 return null; 120 } 121 } 122 }