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