package net.minecraft.network.play.server; import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.UUID; import net.minecraft.entity.DataWatcher; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.network.INetHandler; import net.minecraft.network.Packet; import net.minecraft.network.PacketBuffer; import net.minecraft.network.play.INetHandlerPlayClient; import net.minecraft.util.MathHelper; public class S0CPacketSpawnPlayer extends Packet { private int field_148957_a; private GameProfile field_148955_b; private int field_148956_c; private int field_148953_d; private int field_148954_e; private byte field_148951_f; private byte field_148952_g; private int field_148959_h; private DataWatcher field_148960_i; private List field_148958_j; private static final String __OBFID = "CL_00001281"; public S0CPacketSpawnPlayer() {} public S0CPacketSpawnPlayer(EntityPlayer p_i45171_1_) { this.field_148957_a = p_i45171_1_.getEntityId(); this.field_148955_b = p_i45171_1_.getGameProfile(); this.field_148956_c = MathHelper.floor_double(p_i45171_1_.posX * 32.0D); this.field_148953_d = MathHelper.floor_double(p_i45171_1_.posY * 32.0D); this.field_148954_e = MathHelper.floor_double(p_i45171_1_.posZ * 32.0D); this.field_148951_f = (byte)((int)(p_i45171_1_.rotationYaw * 256.0F / 360.0F)); this.field_148952_g = (byte)((int)(p_i45171_1_.rotationPitch * 256.0F / 360.0F)); ItemStack itemstack = p_i45171_1_.inventory.getCurrentItem(); this.field_148959_h = itemstack == null ? 0 : Item.getIdFromItem(itemstack.getItem()); this.field_148960_i = p_i45171_1_.getDataWatcher(); } /** * Reads the raw packet data from the data stream. */ public void readPacketData(PacketBuffer data) throws IOException { this.field_148957_a = data.readVarIntFromBuffer(); UUID uuid = UUID.fromString(data.readStringFromBuffer(36)); this.field_148955_b = new GameProfile(uuid, data.readStringFromBuffer(16)); int i = data.readVarIntFromBuffer(); for (int j = 0; j < i; ++j) { String s = data.readStringFromBuffer(32767); String s1 = data.readStringFromBuffer(32767); String s2 = data.readStringFromBuffer(32767); this.field_148955_b.getProperties().put(s, new Property(s, s1, s2)); } this.field_148956_c = data.readInt(); this.field_148953_d = data.readInt(); this.field_148954_e = data.readInt(); this.field_148951_f = data.readByte(); this.field_148952_g = data.readByte(); this.field_148959_h = data.readShort(); this.field_148958_j = DataWatcher.readWatchedListFromPacketBuffer(data); } /** * Writes the raw packet data to the data stream. */ public void writePacketData(PacketBuffer data) throws IOException { data.writeVarIntToBuffer(this.field_148957_a); UUID uuid = this.field_148955_b.getId(); data.writeStringToBuffer(uuid == null ? "" : uuid.toString()); data.writeStringToBuffer(this.field_148955_b.getName()); data.writeVarIntToBuffer(this.field_148955_b.getProperties().size()); Iterator iterator = this.field_148955_b.getProperties().values().iterator(); while (iterator.hasNext()) { Property property = (Property)iterator.next(); data.writeStringToBuffer(property.getName()); data.writeStringToBuffer(property.getValue()); data.writeStringToBuffer(property.getSignature()); } data.writeInt(this.field_148956_c); data.writeInt(this.field_148953_d); data.writeInt(this.field_148954_e); data.writeByte(this.field_148951_f); data.writeByte(this.field_148952_g); data.writeShort(this.field_148959_h); this.field_148960_i.func_151509_a(data); } /** * Passes this Packet on to the NetHandler for processing. */ public void processPacket(INetHandlerPlayClient handler) { handler.handleSpawnPlayer(this); } @SideOnly(Side.CLIENT) public List func_148944_c() { if (this.field_148958_j == null) { this.field_148958_j = this.field_148960_i.getAllWatched(); } return this.field_148958_j; } /** * Returns a string formatted as comma separated [field]=[value] values. Used by Minecraft for logging purposes. */ public String serialize() { return String.format("id=%d, gameProfile=\'%s\', x=%.2f, y=%.2f, z=%.2f, carried=%d", new Object[] {Integer.valueOf(this.field_148957_a), this.field_148955_b, Float.valueOf((float)this.field_148956_c / 32.0F), Float.valueOf((float)this.field_148953_d / 32.0F), Float.valueOf((float)this.field_148954_e / 32.0F), Integer.valueOf(this.field_148959_h)}); } @SideOnly(Side.CLIENT) public int func_148943_d() { return this.field_148957_a; } @SideOnly(Side.CLIENT) public GameProfile func_148948_e() { return this.field_148955_b; } @SideOnly(Side.CLIENT) public int func_148942_f() { return this.field_148956_c; } @SideOnly(Side.CLIENT) public int func_148949_g() { return this.field_148953_d; } @SideOnly(Side.CLIENT) public int func_148946_h() { return this.field_148954_e; } @SideOnly(Side.CLIENT) public byte func_148941_i() { return this.field_148951_f; } @SideOnly(Side.CLIENT) public byte func_148945_j() { return this.field_148952_g; } @SideOnly(Side.CLIENT) public int func_148947_k() { return this.field_148959_h; } /** * Passes this Packet on to the NetHandler for processing. */ public void processPacket(INetHandler handler) { this.processPacket((INetHandlerPlayClient)handler); } }