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    }