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