From cf521b5a5ca399e807f05f7ba3fd12bc3e160875 Mon Sep 17 00:00:00 2001 From: Travis Watkins Date: Tue, 17 Jan 2012 16:26:20 -0600 Subject: Only truncate player name when sending spawn packet. --- .../minecraft/server/Packet20NamedEntitySpawn.java | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/net/minecraft/server/Packet20NamedEntitySpawn.java (limited to 'src/main/java/net/minecraft/server/Packet20NamedEntitySpawn.java') diff --git a/src/main/java/net/minecraft/server/Packet20NamedEntitySpawn.java b/src/main/java/net/minecraft/server/Packet20NamedEntitySpawn.java new file mode 100644 index 00000000..0b6780ff --- /dev/null +++ b/src/main/java/net/minecraft/server/Packet20NamedEntitySpawn.java @@ -0,0 +1,71 @@ +package net.minecraft.server; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; // CraftBukkit + +public class Packet20NamedEntitySpawn extends Packet { + + public int a; + public String b; + public int c; + public int d; + public int e; + public byte f; + public byte g; + public int h; + + public Packet20NamedEntitySpawn() {} + + public Packet20NamedEntitySpawn(EntityHuman entityhuman) { + this.a = entityhuman.id; + + // CraftBukkit start - limit name length to 16 characters + if (entityhuman.name.length() > 16) { + this.b = entityhuman.name.substring(0, 16); + } + else { + this.b = entityhuman.name; + } + // CraftBukkit end + + this.c = MathHelper.floor(entityhuman.locX * 32.0D); + this.d = MathHelper.floor(entityhuman.locY * 32.0D); + this.e = MathHelper.floor(entityhuman.locZ * 32.0D); + this.f = (byte) ((int) (entityhuman.yaw * 256.0F / 360.0F)); + this.g = (byte) ((int) (entityhuman.pitch * 256.0F / 360.0F)); + ItemStack itemstack = entityhuman.inventory.getItemInHand(); + + this.h = itemstack == null ? 0 : itemstack.id; + } + + public void a(DataInputStream datainputstream) throws IOException { // CraftBukkit + this.a = datainputstream.readInt(); + this.b = a(datainputstream, 16); + this.c = datainputstream.readInt(); + this.d = datainputstream.readInt(); + this.e = datainputstream.readInt(); + this.f = datainputstream.readByte(); + this.g = datainputstream.readByte(); + this.h = datainputstream.readShort(); + } + + public void a(DataOutputStream dataoutputstream) throws IOException { // CraftBukkit + dataoutputstream.writeInt(this.a); + a(this.b, dataoutputstream); + dataoutputstream.writeInt(this.c); + dataoutputstream.writeInt(this.d); + dataoutputstream.writeInt(this.e); + dataoutputstream.writeByte(this.f); + dataoutputstream.writeByte(this.g); + dataoutputstream.writeShort(this.h); + } + + public void handle(NetHandler nethandler) { + nethandler.a(this); + } + + public int a() { + return 28; + } +} -- cgit v1.2.3