package net.minecraft.network.play.server;
import com.google.common.collect.Lists;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.network.INetHandler;
import net.minecraft.network.Packet;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.INetHandlerPlayClient;
public class S20PacketEntityProperties implements Packet
{
private int field_149445_a;
private final List field_149444_b = Lists.newArrayList();
private static final String __OBFID = "CL_00001341";
public S20PacketEntityProperties() {}
public S20PacketEntityProperties(int p_i45236_1_, Collection p_i45236_2_)
{
this.field_149445_a = p_i45236_1_;
Iterator var3 = p_i45236_2_.iterator();
while (var3.hasNext())
{
IAttributeInstance var4 = (IAttributeInstance)var3.next();
this.field_149444_b.add(new S20PacketEntityProperties.Snapshot(var4.getAttribute().getAttributeUnlocalizedName(), var4.getBaseValue(), var4.func_111122_c()));
}
}
/**
* Reads the raw packet data from the data stream.
*/
public void readPacketData(PacketBuffer data) throws IOException
{
this.field_149445_a = data.readVarIntFromBuffer();
int var2 = data.readInt();
for (int var3 = 0; var3 < var2; ++var3)
{
String var4 = data.readStringFromBuffer(64);
double var5 = data.readDouble();
ArrayList var7 = Lists.newArrayList();
int var8 = data.readVarIntFromBuffer();
for (int var9 = 0; var9 < var8; ++var9)
{
UUID var10 = data.readUuid();
var7.add(new AttributeModifier(var10, "Unknown synced attribute modifier", data.readDouble(), data.readByte()));
}
this.field_149444_b.add(new S20PacketEntityProperties.Snapshot(var4, var5, var7));
}
}
/**
* Writes the raw packet data to the data stream.
*/
public void writePacketData(PacketBuffer data) throws IOException
{
data.writeVarIntToBuffer(this.field_149445_a);
data.writeInt(this.field_149444_b.size());
Iterator var2 = this.field_149444_b.iterator();
while (var2.hasNext())
{
S20PacketEntityProperties.Snapshot var3 = (S20PacketEntityProperties.Snapshot)var2.next();
data.writeString(var3.func_151409_a());
data.writeDouble(var3.func_151410_b());
data.writeVarIntToBuffer(var3.func_151408_c().size());
Iterator var4 = var3.func_151408_c().iterator();
while (var4.hasNext())
{
AttributeModifier var5 = (AttributeModifier)var4.next();
data.writeUuid(var5.getID());
data.writeDouble(var5.getAmount());
data.writeByte(var5.getOperation());
}
}
}
public void func_180754_a(INetHandlerPlayClient p_180754_1_)
{
p_180754_1_.handleEntityProperties(this);
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandler handler)
{
this.func_180754_a((INetHandlerPlayClient)handler);
}
public class Snapshot
{
private final String field_151412_b;
private final double field_151413_c;
private final Collection field_151411_d;
private static final String __OBFID = "CL_00001342";
public Snapshot(String p_i45235_2_, double p_i45235_3_, Collection p_i45235_5_)
{
this.field_151412_b = p_i45235_2_;
this.field_151413_c = p_i45235_3_;
this.field_151411_d = p_i45235_5_;
}
public String func_151409_a()
{
return this.field_151412_b;
}
public double func_151410_b()
{
return this.field_151413_c;
}
public Collection func_151408_c()
{
return this.field_151411_d;
}
}
}