From d55614cdb7776036ec7014acd3471c84097f0a51 Mon Sep 17 00:00:00 2001 From: Tnze Date: Sat, 27 Apr 2024 22:28:40 +0800 Subject: [PATCH] Fix player chat message decoding error --- chat/decoration.go | 7 ++++--- chat/nbtmessage.go | 14 ++------------ 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/chat/decoration.go b/chat/decoration.go index 8f2a436..15b7aee 100644 --- a/chat/decoration.go +++ b/chat/decoration.go @@ -1,6 +1,7 @@ package chat import ( + "fmt" "io" pk "github.com/Tnze/go-mc/net/packet" @@ -64,16 +65,16 @@ func (t *Type) ReadFrom(r io.Reader) (n int64, err error) { } n2, err := t.SenderName.ReadFrom(r) if err != nil { - return n1 + n2, err + return n1 + n2, fmt.Errorf("read sender name error: %w", err) } n3, err := hasTargetName.ReadFrom(r) if err != nil { - return n1 + n2 + n3, err + return n1 + n2 + n3, fmt.Errorf("read has target name error: %w", err) } if hasTargetName { t.TargetName = new(Message) n4, err := t.TargetName.ReadFrom(r) - return n1 + n2 + n3 + n4, err + return n1 + n2 + n3 + n4, fmt.Errorf("read target name error: %w", err) } return n1 + n2 + n3, nil } diff --git a/chat/nbtmessage.go b/chat/nbtmessage.go index ac6a926..773cfb1 100644 --- a/chat/nbtmessage.go +++ b/chat/nbtmessage.go @@ -11,22 +11,12 @@ import ( // ReadFrom decode Message in a Text component func (m *Message) ReadFrom(r io.Reader) (int64, error) { - var code pk.String - n, err := code.ReadFrom(r) - if err != nil { - return n, err - } - err = nbt.Unmarshal([]byte(code), (*Message)(m)) - return n, err + return pk.NBT(m).ReadFrom(r) } // WriteTo encode Message into a Text component func (m Message) WriteTo(w io.Writer) (int64, error) { - code, err := nbt.Marshal(Message(m)) - if err != nil { - panic(err) - } - return pk.String(code).WriteTo(w) + return pk.NBT(&m).WriteTo(w) } func (m Message) MarshalNBT() ([]byte, error) {