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 }