From bb868d2d0d4d5a16d798d01d4a2ca8573ddc8a60 Mon Sep 17 00:00:00 2001 From: raven Date: Sat, 21 Mar 2026 20:17:53 -0500 Subject: support CPE --- classic/packets.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'classic/packets.go') diff --git a/classic/packets.go b/classic/packets.go index c1f650e..48ea80d 100644 --- a/classic/packets.go +++ b/classic/packets.go @@ -21,6 +21,10 @@ const ( NonOpUser = 0x00 OpUser = 0x64 ) +const ( + NoCpe = 0x00 + UseCpe = 0x42 +) type PlayerId struct { Version byte @@ -161,7 +165,7 @@ func (p *UpdateUserType) PacketId() byte { return 0x0f } -func createPacketType(packetId byte, client bool) Packet { +func createPacketType(packetId byte, client bool, ext map[string]bool) Packet { switch packetId { case 0x00: if client { @@ -188,7 +192,8 @@ func createPacketType(packetId byte, client bool) Packet { } } -func readPacket(rd io.Reader, client bool) (Packet, error) { +func readPacket( + rd io.Reader, client bool, ext map[string]bool) (Packet, error) { var b [1]byte _, err := io.ReadFull(rd, b[:]) if err != nil { @@ -196,7 +201,7 @@ func readPacket(rd io.Reader, client bool) (Packet, error) { } packetId := b[0] - packet := createPacketType(packetId, client) + packet := createPacketType(packetId, client, ext) if packet == nil { return nil, fmt.Errorf("Unknown packet type: 0x%02x", packetId) } @@ -207,12 +212,12 @@ func readPacket(rd io.Reader, client bool) (Packet, error) { return packet, nil } -func SReadPacket(rd io.Reader) (Packet, error) { - return readPacket(rd, false) +func SReadPacket(rd io.Reader, ext map[string]bool) (Packet, error) { + return readPacket(rd, false, ext) } -func CReadPacket(rd io.Reader) (Packet, error) { - return readPacket(rd, true) +func CReadPacket(rd io.Reader, ext map[string]bool) (Packet, error) { + return readPacket(rd, true, ext) } func WritePacket(wr io.Writer, packet Packet) error { -- cgit v1.2.3