add SimplePacketToBytes utility function for encoding packets
This commit is contained in:
@@ -179,6 +179,32 @@ func (c *Conn) translatePacketVersion(packet proto_base.EncodeDecodeAble, packet
|
|||||||
return
|
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) {
|
func (c *Conn) sendRegisteredPacket(packet proto_base.EncodeDecodeAble) (err error) {
|
||||||
i, ok := LookupPacketInfoByTypeAndState(packet, c.State())
|
i, ok := LookupPacketInfoByTypeAndState(packet, c.State())
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|||||||
Reference in New Issue
Block a user