    001    package net.minecraft.src;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005    import java.io.DataInputStream;
    006    import java.io.DataOutputStream;
    007    import java.io.IOException;
    008
    009    public class Packet5PlayerInventory extends Packet
    010    {
    011        /** Entity ID of the object. */
    012        public int entityID;
    013
    014        /** Equipment slot: 0=held, 1-4=armor slot */
    015        public int slot;
    016
    017        /** The item in the slot format (an ItemStack) */
    018        private ItemStack itemSlot;
    019
    020        public Packet5PlayerInventory() {}
    021
    022        public Packet5PlayerInventory(int par1, int par2, ItemStack par3ItemStack)
    023        {
    024            this.entityID = par1;
    025            this.slot = par2;
    026            this.itemSlot = par3ItemStack == null ? null : par3ItemStack.copy();
    027        }
    028
    029        /**
    030         * Abstract. Reads the raw packet data from the data stream.
    031         */
    032        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    033        {
    034            this.entityID = par1DataInputStream.readInt();
    035            this.slot = par1DataInputStream.readShort();
    036            this.itemSlot = readItemStack(par1DataInputStream);
    037        }
    038
    039        /**
    040         * Abstract. Writes the raw packet data to the data stream.
    041         */
    042        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    043        {
    044            par1DataOutputStream.writeInt(this.entityID);
    045            par1DataOutputStream.writeShort(this.slot);
    046            writeItemStack(this.itemSlot, par1DataOutputStream);
    047        }
    048
    049        /**
    050         * Passes this Packet on to the NetHandler for processing.
    051         */
    052        public void processPacket(NetHandler par1NetHandler)
    053        {
    054            par1NetHandler.handlePlayerInventory(this);
    055        }
    056
    057        /**
    058         * Abstract. Return the size of the packet (not counting the header).
    059         */
    060        public int getPacketSize()
    061        {
    062            return 8;
    063        }
    064
    065        @SideOnly(Side.CLIENT)
    066
    067        /**
    068         * Gets the item in the slot format (an ItemStack)
    069         */
    070        public ItemStack getItemSlot()
    071        {
    072            return this.itemSlot;
    073        }
    074
    075        /**
    076         * only false for the abstract Packet class, all real packets return true
    077         */
    078        public boolean isRealPacket()
    079        {
    080            return true;
    081        }
    082
    083        /**
    084         * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet
    085         * class
    086         */
    087        public boolean containsSameEntityIDAs(Packet par1Packet)
    088        {
    089            Packet5PlayerInventory var2 = (Packet5PlayerInventory)par1Packet;
    090            return var2.entityID == this.entityID && var2.slot == this.slot;
    091        }
    092    }