From e08bcfec250e9a618241edab9f36ea64af306a40 Mon Sep 17 00:00:00 2001 From: raven Date: Sat, 21 Mar 2026 20:18:49 -0500 Subject: use ExtEntityPositions --- classic/ext_entity_pos.go | 22 ++++++++++++++++++++++ classic/packets.go | 16 ++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 classic/ext_entity_pos.go (limited to 'classic') diff --git a/classic/ext_entity_pos.go b/classic/ext_entity_pos.go new file mode 100644 index 0000000..cfc7bb9 --- /dev/null +++ b/classic/ext_entity_pos.go @@ -0,0 +1,22 @@ +package classic + +type Fixed int32 + +type SpawnPlayerExt struct { + PlayerId int8 + Username String + X, Y, Z Fixed + Yaw, Pitch byte +} +func (p *SpawnPlayerExt) PacketId() byte { + return 0x07 +} + +type SetPosFacingExt struct { + PlayerId int8 + X, Y, Z Fixed + Yaw, Pitch byte +} +func (p *SetPosFacingExt) PacketId() byte { + return 0x08 +} diff --git a/classic/packets.go b/classic/packets.go index 48ea80d..e361399 100644 --- a/classic/packets.go +++ b/classic/packets.go @@ -179,8 +179,18 @@ func createPacketType(packetId byte, client bool, ext map[string]bool) Packet { case 0x04: return &LevelFinalize {} case 0x05: return &ClientSetBlock {} case 0x06: return &SetBlock {} - case 0x07: return &SpawnPlayer {} - case 0x08: return &SetPosFacing {} + case 0x07: + if !ext["ExtEntityPositions"] { + return &SpawnPlayer {} + } else { + return &SpawnPlayerExt {} + } + case 0x08: + if !ext["ExtEntityPositions"] { + return &SetPosFacing {} + } else { + return &SetPosFacingExt {} + } case 0x09: return &UpdatePosFacing {} case 0x0a: return &UpdatePos {} case 0x0b: return &UpdateFacing {} @@ -188,6 +198,8 @@ func createPacketType(packetId byte, client bool, ext map[string]bool) Packet { case 0x0d: return &Message {} case 0x0e: return &DisconnectPlayer {} case 0x0f: return &UpdateUserType {} + case 0x10: return &ExtInfo {} + case 0x11: return &ExtEntry {} default: return nil } } -- cgit v1.2.3