From 624e8ad4dec53e168e54b14da21b95f99a8feb86 Mon Sep 17 00:00:00 2001 From: adman Date: Thu, 28 May 2026 23:59:54 +0200 Subject: [PATCH] add SimplePacketToBytes utility function for encoding packets --- proto/connection.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/proto/connection.go b/proto/connection.go index be7c117..dc41df0 100644 --- a/proto/connection.go +++ b/proto/connection.go @@ -179,6 +179,32 @@ func (c *Conn) translatePacketVersion(packet proto_base.EncodeDecodeAble, packet return } +func SimplePacketToBytes(packet proto_base.EncodeDecodeAble) (b []byte, err error) { + var packetBuff = bytes.NewBuffer(nil) + i, ok := LookupPacketInfoByType(packet) + if !ok { + err = BadPacketTypeErr + return + } + err = proto_base.EncodeVarInt(packetBuff, i.PacketId) + if err != nil { + return + } + err = packet.Encode(packetBuff) + if err != nil { + return + } + b = packetBuff.Bytes() + var packetWithLenBuf = bytes.NewBuffer(nil) + err = proto_base.EncodeVarInt(packetWithLenBuf, int32(len(b))) + if err != nil { + return + } + packetWithLenBuf.Write(b) + b = packetWithLenBuf.Bytes() + return +} + func (c *Conn) sendRegisteredPacket(packet proto_base.EncodeDecodeAble) (err error) { i, ok := LookupPacketInfoByTypeAndState(packet, c.State()) if !ok {