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