001 package net.minecraft.src;
002
003 import cpw.mods.fml.common.Side;
004 import cpw.mods.fml.common.asm.SideOnly;
005 import net.minecraft.server.MinecraftServer;
006
007 public class TileEntityCommandBlock extends TileEntity implements ICommandSender
008 {
009 private String field_82354_a = "";
010
011 public void func_82352_b(String par1Str)
012 {
013 this.field_82354_a = par1Str;
014 this.onInventoryChanged();
015 }
016
017 @SideOnly(Side.CLIENT)
018
019 /**
020 * Return the command this command block is set to execute.
021 */
022 public String getCommand()
023 {
024 return this.field_82354_a;
025 }
026
027 /**
028 * Execute the command, called when the command block is powered.
029 */
030 public void executeCommandOnPowered(World par1World)
031 {
032 if (!par1World.isRemote)
033 {
034 MinecraftServer var2 = MinecraftServer.getServer();
035
036 if (var2 != null && var2.isCommandBlockEnabled())
037 {
038 ICommandManager var3 = var2.getCommandManager();
039 var3.executeCommand(this, this.field_82354_a);
040 }
041 }
042 }
043
044 /**
045 * Gets the name of this command sender (usually username, but possibly "Rcon")
046 */
047 public String getCommandSenderName()
048 {
049 return "@";
050 }
051
052 public void sendChatToPlayer(String par1Str) {}
053
054 /**
055 * Returns true if the command sender is allowed to use the given command.
056 */
057 public boolean canCommandSenderUseCommand(int par1, String par2Str)
058 {
059 return par1 <= 2;
060 }
061
062 /**
063 * Translates and formats the given string key with the given arguments.
064 */
065 public String translateString(String par1Str, Object ... par2ArrayOfObj)
066 {
067 return par1Str;
068 }
069
070 /**
071 * Writes a tile entity to NBT.
072 */
073 public void writeToNBT(NBTTagCompound par1NBTTagCompound)
074 {
075 super.writeToNBT(par1NBTTagCompound);
076 par1NBTTagCompound.setString("Command", this.field_82354_a);
077 }
078
079 /**
080 * Reads a tile entity from NBT.
081 */
082 public void readFromNBT(NBTTagCompound par1NBTTagCompound)
083 {
084 super.readFromNBT(par1NBTTagCompound);
085 this.field_82354_a = par1NBTTagCompound.getString("Command");
086 }
087
088 /**
089 * Return the coordinates for this player as ChunkCoordinates.
090 */
091 public ChunkCoordinates getPlayerCoordinates()
092 {
093 return new ChunkCoordinates(this.xCoord, this.yCoord, this.zCoord);
094 }
095
096 /**
097 * Overriden in a sign to provide the text.
098 */
099 public Packet getDescriptionPacket()
100 {
101 NBTTagCompound var1 = new NBTTagCompound();
102 this.writeToNBT(var1);
103 return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 2, var1);
104 }
105 }