001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.io.DataInputStream; 006 import java.io.DataOutputStream; 007 import java.io.IOException; 008 009 public class Packet5PlayerInventory extends Packet 010 { 011 /** Entity ID of the object. */ 012 public int entityID; 013 014 /** Equipment slot: 0=held, 1-4=armor slot */ 015 public int slot; 016 017 /** The item in the slot format (an ItemStack) */ 018 private ItemStack itemSlot; 019 020 public Packet5PlayerInventory() {} 021 022 public Packet5PlayerInventory(int par1, int par2, ItemStack par3ItemStack) 023 { 024 this.entityID = par1; 025 this.slot = par2; 026 this.itemSlot = par3ItemStack == null ? null : par3ItemStack.copy(); 027 } 028 029 /** 030 * Abstract. Reads the raw packet data from the data stream. 031 */ 032 public void readPacketData(DataInputStream par1DataInputStream) throws IOException 033 { 034 this.entityID = par1DataInputStream.readInt(); 035 this.slot = par1DataInputStream.readShort(); 036 this.itemSlot = readItemStack(par1DataInputStream); 037 } 038 039 /** 040 * Abstract. Writes the raw packet data to the data stream. 041 */ 042 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException 043 { 044 par1DataOutputStream.writeInt(this.entityID); 045 par1DataOutputStream.writeShort(this.slot); 046 writeItemStack(this.itemSlot, par1DataOutputStream); 047 } 048 049 /** 050 * Passes this Packet on to the NetHandler for processing. 051 */ 052 public void processPacket(NetHandler par1NetHandler) 053 { 054 par1NetHandler.handlePlayerInventory(this); 055 } 056 057 /** 058 * Abstract. Return the size of the packet (not counting the header). 059 */ 060 public int getPacketSize() 061 { 062 return 8; 063 } 064 065 @SideOnly(Side.CLIENT) 066 067 /** 068 * Gets the item in the slot format (an ItemStack) 069 */ 070 public ItemStack getItemSlot() 071 { 072 return this.itemSlot; 073 } 074 075 /** 076 * only false for the abstract Packet class, all real packets return true 077 */ 078 public boolean isRealPacket() 079 { 080 return true; 081 } 082 083 /** 084 * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet 085 * class 086 */ 087 public boolean containsSameEntityIDAs(Packet par1Packet) 088 { 089 Packet5PlayerInventory var2 = (Packet5PlayerInventory)par1Packet; 090 return var2.entityID == this.entityID && var2.slot == this.slot; 091 } 092 }