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 }