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