add player package with key client-side player functionality, update protocol codecs, and refactor metadata definitions and slot usage

This commit is contained in:
2025-08-23 16:19:45 +08:00
parent cff9d4a809
commit 4528bdc86a
32 changed files with 2613 additions and 468 deletions

View File

@ -3,12 +3,13 @@ package slot
import (
"io"
"github.com/Tnze/go-mc/level/item"
pk "github.com/Tnze/go-mc/net/packet"
)
type Slot struct {
Count int32
ItemID int32
ItemID item.ID
AddComponent []Component
RemoveComponent []ComponentID
}
@ -64,12 +65,16 @@ func (s *Slot) ReadFrom(r io.Reader) (n int64, err error) {
return temp, err
}
n += temp
temp, err = (*pk.VarInt)(&s.ItemID).ReadFrom(r)
var itemID int32
temp, err = (*pk.VarInt)(&itemID).ReadFrom(r)
n += temp
if err != nil {
return temp, err
}
s.ItemID = item.ID(itemID)
addLens := int32(0)
temp, err = (*pk.VarInt)(&addLens).ReadFrom(r)
n += temp