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 }