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        public String func_82353_c()
019        {
020            return this.field_82354_a;
021        }
022    
023        public void func_82351_a(World par1World)
024        {
025            if (!par1World.isRemote)
026            {
027                MinecraftServer var2 = MinecraftServer.getServer();
028    
029                if (var2 != null && var2.func_82356_Z())
030                {
031                    ICommandManager var3 = var2.getCommandManager();
032                    var3.executeCommand(this, this.field_82354_a);
033                }
034            }
035        }
036    
037        /**
038         * Gets the name of this command sender (usually username, but possibly "Rcon")
039         */
040        public String getCommandSenderName()
041        {
042            return "@";
043        }
044    
045        public void sendChatToPlayer(String par1Str) {}
046    
047        /**
048         * Returns true if the command sender is allowed to use the given command.
049         */
050        public boolean canCommandSenderUseCommand(int par1, String par2Str)
051        {
052            return par1 <= 2;
053        }
054    
055        /**
056         * Translates and formats the given string key with the given arguments.
057         */
058        public String translateString(String par1Str, Object ... par2ArrayOfObj)
059        {
060            return par1Str;
061        }
062    
063        /**
064         * Writes a tile entity to NBT.
065         */
066        public void writeToNBT(NBTTagCompound par1NBTTagCompound)
067        {
068            super.writeToNBT(par1NBTTagCompound);
069            par1NBTTagCompound.setString("Command", this.field_82354_a);
070        }
071    
072        /**
073         * Reads a tile entity from NBT.
074         */
075        public void readFromNBT(NBTTagCompound par1NBTTagCompound)
076        {
077            super.readFromNBT(par1NBTTagCompound);
078            this.field_82354_a = par1NBTTagCompound.getString("Command");
079        }
080    
081        public ChunkCoordinates func_82114_b()
082        {
083            return new ChunkCoordinates(this.xCoord, this.yCoord, this.zCoord);
084        }
085    
086        /**
087         * Overriden in a sign to provide the text.
088         */
089        public Packet getDescriptionPacket()
090        {
091            NBTTagCompound var1 = new NBTTagCompound();
092            this.writeToNBT(var1);
093            return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 2, var1);
094        }
095    }