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.potion.PotionEffect; 007 008 public class Packet41EntityEffect extends Packet 009 { 010 public int entityId; 011 public byte effectId; 012 013 /** The effect's amplifier. */ 014 public byte effectAmplifier; 015 public short duration; 016 017 public Packet41EntityEffect() {} 018 019 public Packet41EntityEffect(int par1, PotionEffect par2PotionEffect) 020 { 021 this.entityId = par1; 022 this.effectId = (byte)(par2PotionEffect.getPotionID() & 255); 023 this.effectAmplifier = (byte)(par2PotionEffect.getAmplifier() & 255); 024 this.duration = (short)par2PotionEffect.getDuration(); 025 } 026 027 /** 028 * Abstract. Reads the raw packet data from the data stream. 029 */ 030 public void readPacketData(DataInputStream par1DataInputStream) throws IOException 031 { 032 this.entityId = par1DataInputStream.readInt(); 033 this.effectId = par1DataInputStream.readByte(); 034 this.effectAmplifier = par1DataInputStream.readByte(); 035 this.duration = par1DataInputStream.readShort(); 036 } 037 038 /** 039 * Abstract. Writes the raw packet data to the data stream. 040 */ 041 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException 042 { 043 par1DataOutputStream.writeInt(this.entityId); 044 par1DataOutputStream.writeByte(this.effectId); 045 par1DataOutputStream.writeByte(this.effectAmplifier); 046 par1DataOutputStream.writeShort(this.duration); 047 } 048 049 /** 050 * Passes this Packet on to the NetHandler for processing. 051 */ 052 public void processPacket(NetHandler par1NetHandler) 053 { 054 par1NetHandler.handleEntityEffect(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 /** 066 * only false for the abstract Packet class, all real packets return true 067 */ 068 public boolean isRealPacket() 069 { 070 return true; 071 } 072 073 /** 074 * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet 075 * class 076 */ 077 public boolean containsSameEntityIDAs(Packet par1Packet) 078 { 079 Packet41EntityEffect var2 = (Packet41EntityEffect)par1Packet; 080 return var2.entityId == this.entityId && var2.effectId == this.effectId; 081 } 082 }