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