001 package net.minecraft.network.packet;
002
003 import java.io.DataInputStream;
004 import java.io.DataOutputStream;
005 import java.io.IOException;
006 import java.util.List;
007 import net.minecraft.item.ItemStack;
008
009 public class Packet104WindowItems extends Packet
010 {
011 /**
012 * The id of window which items are being sent for. 0 for player inventory.
013 */
014 public int windowId;
015
016 /** Stack of items */
017 public ItemStack[] itemStack;
018
019 public Packet104WindowItems() {}
020
021 public Packet104WindowItems(int par1, List par2List)
022 {
023 this.windowId = par1;
024 this.itemStack = new ItemStack[par2List.size()];
025
026 for (int var3 = 0; var3 < this.itemStack.length; ++var3)
027 {
028 ItemStack var4 = (ItemStack)par2List.get(var3);
029 this.itemStack[var3] = var4 == null ? null : var4.copy();
030 }
031 }
032
033 /**
034 * Abstract. Reads the raw packet data from the data stream.
035 */
036 public void readPacketData(DataInputStream par1DataInputStream) throws IOException
037 {
038 this.windowId = par1DataInputStream.readByte();
039 short var2 = par1DataInputStream.readShort();
040 this.itemStack = new ItemStack[var2];
041
042 for (int var3 = 0; var3 < var2; ++var3)
043 {
044 this.itemStack[var3] = readItemStack(par1DataInputStream);
045 }
046 }
047
048 /**
049 * Abstract. Writes the raw packet data to the data stream.
050 */
051 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
052 {
053 par1DataOutputStream.writeByte(this.windowId);
054 par1DataOutputStream.writeShort(this.itemStack.length);
055
056 for (int var2 = 0; var2 < this.itemStack.length; ++var2)
057 {
058 writeItemStack(this.itemStack[var2], par1DataOutputStream);
059 }
060 }
061
062 /**
063 * Passes this Packet on to the NetHandler for processing.
064 */
065 public void processPacket(NetHandler par1NetHandler)
066 {
067 par1NetHandler.handleWindowItems(this);
068 }
069
070 /**
071 * Abstract. Return the size of the packet (not counting the header).
072 */
073 public int getPacketSize()
074 {
075 return 3 + this.itemStack.length * 5;
076 }
077 }