001 package net.minecraft.src;
002
003 import java.util.Arrays;
004 import java.util.List;
005 import net.minecraft.server.MinecraftServer;
006
007 public class CommandServerMessage extends CommandBase
008 {
009 public List getCommandAliases()
010 {
011 return Arrays.asList(new String[] {"w", "msg"});
012 }
013
014 public String getCommandName()
015 {
016 return "tell";
017 }
018
019 /**
020 * Return the required permission level for this command.
021 */
022 public int getRequiredPermissionLevel()
023 {
024 return 0;
025 }
026
027 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
028 {
029 if (par2ArrayOfStr.length < 2)
030 {
031 throw new WrongUsageException("commands.message.usage", new Object[0]);
032 }
033 else
034 {
035 EntityPlayerMP var3 = func_82359_c(par1ICommandSender, par2ArrayOfStr[0]);
036
037 if (var3 == null)
038 {
039 throw new PlayerNotFoundException();
040 }
041 else if (var3 == par1ICommandSender)
042 {
043 throw new PlayerNotFoundException("commands.message.sameTarget", new Object[0]);
044 }
045 else
046 {
047 String var4 = func_82361_a(par1ICommandSender, par2ArrayOfStr, 1, !(par1ICommandSender instanceof EntityPlayer));
048 var3.sendChatToPlayer("\u00a77\u00a7o" + var3.translateString("commands.message.display.incoming", new Object[] {par1ICommandSender.getCommandSenderName(), var4}));
049 par1ICommandSender.sendChatToPlayer("\u00a77\u00a7o" + par1ICommandSender.translateString("commands.message.display.outgoing", new Object[] {var3.getCommandSenderName(), var4}));
050 }
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 getListOfStringsMatchingLastWord(par2ArrayOfStr, MinecraftServer.getServer().getAllUsernames());
060 }
061
062 /**
063 * Return whether the specified command parameter index is a username parameter.
064 */
065 public boolean isUsernameIndex(int par1)
066 {
067 return par1 == 0;
068 }
069 }