From 024fc73fb085af34a5a8f0f37e757706a362e3fe Mon Sep 17 00:00:00 2001 From: shoopea Date: Mon, 15 Jun 2020 14:44:52 +0200 Subject: [PATCH] test --- main.go | 14 +++++++++++++- packet.go | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index d6ea795..569327a 100644 --- a/main.go +++ b/main.go @@ -130,7 +130,19 @@ func main() { Packet: p, } sp.Read(b[:p.PLength]) - logInfoDebug("AdminPacketServerClientError :\n- ClientID: %d", sp.ClientID) + logInfoDebug("AdminPacketServerClientQuit :\n- ClientID: %d", sp.ClientID) + case AdminPacketServerChat: + sp := PacketAdminServerChat{ + Packet: p, + } + sp.Read(b[:p.PLength]) + logInfoDebug("AdminPacketServerChat :\n- ActionID: %d\n- DestinationID: %d\n- ClientID: %d\n- Message: %s\n- Amount: %d", sp.ActionID, sp.DestinationID, sp.ClientID, sp.Message, sp.Amount) + case AdminPacketServerConsole: + sp := PacketAdminServerConsole{ + Packet: p, + } + sp.Read(b[:p.PLength]) + logInfoDebug("AdminPacketServerConsole :\n- Origin: %s\n- Text: %s", sp.Origin, sp.Text) default: logInfoDebug("Packet fully read : len : %d / type : %d", p.PLength, p.PType) } diff --git a/packet.go b/packet.go index c5a7789..6849329 100644 --- a/packet.go +++ b/packet.go @@ -135,6 +135,21 @@ type PacketAdminServerClientError struct { ErrorID uint8 } +type PacketAdminServerChat struct { + Packet + ActionID uint8 + DestinationID uint8 + ClientID uint32 + Message string + Amount uint64 +} + +type PacketAdminServerConsole struct { + Packet + Origin string + Text string +} + func (p *PacketAdminJoin) Bytes() []byte { buf := new(bytes.Buffer) p.PLength = uint16(len(p.Password) + len(p.AppName) + len(p.AppVersion) + 6) @@ -253,3 +268,26 @@ func (p *PacketAdminServerClientQuit) Read(b []byte) { _, _ = r.Read(bs) p.ClientID = binary.LittleEndian.Uint32(bs[0:]) } + +func (p *PacketAdminServerChat) Read(b []byte) { + r := bufio.NewReader(bytes.NewReader(b)) + r.Discard(3) + c, _ := r.ReadByte() + p.ActionID = uint8(c) + c, _ = r.ReadByte() + p.DestinationID = uint8(c) + bs := make([]byte, 4) + _, _ = r.Read(bs) + p.ClientID = binary.LittleEndian.Uint32(bs[0:]) + p.Message, _ = r.ReadString(0) + bs = make([]byte, 8) + _, _ = r.Read(bs) + p.Amount = binary.LittleEndian.Uint64(bs[0:]) +} + +func (p *PacketAdminServerConsole) Read(b []byte) { + r := bufio.NewReader(bytes.NewReader(b)) + r.Discard(3) + p.Origin, _ = r.ReadString(0) + p.Text, _ = r.ReadString(0) +}