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