    001    package net.minecraft.network.packet;
    002
    003    import java.io.DataInputStream;
    004    import java.io.DataOutputStream;
    005    import java.io.IOException;
    006    import net.minecraft.item.ItemStack;
    007
    008    public class Packet103SetSlot extends Packet
    009    {
    010        /** The window which is being updated. 0 for player inventory */
    011        public int windowId;
    012
    013        /** Slot that should be updated */
    014        public int itemSlot;
    015
    016        /** Item stack */
    017        public ItemStack myItemStack;
    018
    019        public Packet103SetSlot() {}
    020
    021        public Packet103SetSlot(int par1, int par2, ItemStack par3ItemStack)
    022        {
    023            this.windowId = par1;
    024            this.itemSlot = par2;
    025            this.myItemStack = par3ItemStack == null ? par3ItemStack : par3ItemStack.copy();
    026        }
    027
    028        /**
    029         * Passes this Packet on to the NetHandler for processing.
    030         */
    031        public void processPacket(NetHandler par1NetHandler)
    032        {
    033            par1NetHandler.handleSetSlot(this);
    034        }
    035
    036        /**
    037         * Abstract. Reads the raw packet data from the data stream.
    038         */
    039        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    040        {
    041            this.windowId = par1DataInputStream.readByte();
    042            this.itemSlot = par1DataInputStream.readShort();
    043            this.myItemStack = readItemStack(par1DataInputStream);
    044        }
    045
    046        /**
    047         * Abstract. Writes the raw packet data to the data stream.
    048         */
    049        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    050        {
    051            par1DataOutputStream.writeByte(this.windowId);
    052            par1DataOutputStream.writeShort(this.itemSlot);
    053            writeItemStack(this.myItemStack, par1DataOutputStream);
    054        }
    055
    056        /**
    057         * Abstract. Return the size of the packet (not counting the header).
    058         */
    059        public int getPacketSize()
    060        {
    061            return 8;
    062        }
    063    }