From 903d585177b31253ebcd7ca0f2a7b79222c9b6a6 Mon Sep 17 00:00:00 2001 From: SushiLeader Date: Sat, 27 Apr 2024 19:06:01 +0800 Subject: [PATCH] update chat.Message to 1.20.4 format --- chat/message.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/chat/message.go b/chat/message.go index 0f0ff7c..28d4fb5 100644 --- a/chat/message.go +++ b/chat/message.go @@ -20,6 +20,7 @@ import ( "strings" en_us "github.com/Tnze/go-mc/data/lang/en-us" + "github.com/Tnze/go-mc/nbt" pk "github.com/Tnze/go-mc/net/packet" ) @@ -133,13 +134,26 @@ func (m *Message) UnmarshalJSON(raw []byte) (err error) { } // ReadFrom decode Message in a ChatMsg packet -func (m *Message) ReadFrom(r io.Reader) (int64, error) { - var code pk.String - n, err := code.ReadFrom(r) +func (m *Message) ReadFrom(r io.Reader) (n int64, err error) { + var msgType pk.Byte + n, err = msgType.ReadFrom(r) if err != nil { return n, err } - err = json.Unmarshal([]byte(code), m) + io.CopyN(io.Discard, r, 1) + + var code pk.String + n, err = code.ReadFrom(r) + if err != nil { + return n, err + } + + if byte(msgType) == nbt.TagString { + m.Text = string(code) + } else if byte(msgType) == nbt.TagCompound { + fmt.Printf("a: %+v\n", []byte(code)) + err = json.Unmarshal([]byte(code), m) + } return n, err }