    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    }