refactor package

This commit is contained in:
2025-08-22 05:14:59 +08:00
parent bec0a56a3d
commit 65690e51ab
371 changed files with 835 additions and 627 deletions

View File

@ -0,0 +1,111 @@
package slot
import (
"io"
pk "github.com/Tnze/go-mc/net/packet"
)
type Slot struct {
Count int32
ItemID int32
AddComponent []Component
RemoveComponent []ComponentID
}
func (s *Slot) WriteTo(w io.Writer) (n int64, err error) {
temp, err := pk.VarInt(s.Count).WriteTo(w)
if s.Count <= 0 || err != nil {
return temp, err
}
n += temp
temp, err = pk.VarInt(s.ItemID).WriteTo(w)
n += temp
if err != nil {
return temp, err
}
temp, err = pk.VarInt(len(s.AddComponent)).WriteTo(w)
n += temp
if err != nil {
return temp, err
}
for _, c := range s.AddComponent {
temp, err = pk.VarInt(c.Type()).WriteTo(w)
n += temp
if err != nil {
return temp, err
}
temp, err = c.WriteTo(w)
n += temp
if err != nil {
return 0, err
}
}
temp, err = pk.VarInt(len(s.RemoveComponent)).WriteTo(w)
n += temp
if err != nil {
return temp, err
}
for _, id := range s.RemoveComponent {
temp, err = pk.VarInt(id).WriteTo(w)
n += temp
if err != nil {
return temp, err
}
}
return temp, nil
}
func (s *Slot) ReadFrom(r io.Reader) (n int64, err error) {
temp, err := (*pk.VarInt)(&s.Count).ReadFrom(r)
if s.Count <= 0 || err != nil {
return temp, err
}
n += temp
temp, err = (*pk.VarInt)(&s.ItemID).ReadFrom(r)
n += temp
if err != nil {
return temp, err
}
addLens := int32(0)
temp, err = (*pk.VarInt)(&addLens).ReadFrom(r)
n += temp
if err != nil {
return temp, err
}
var id int32
for i := int32(0); i < addLens; i++ {
temp, err = (*pk.VarInt)(&id).ReadFrom(r)
n += temp
if err != nil {
return temp, err
}
c := ComponentFromID(ComponentID(id))
temp, err = c.ReadFrom(r)
n += temp
if err != nil {
return temp, err
}
}
removeLens := int32(0)
temp, err = (*pk.VarInt)(&removeLens).ReadFrom(r)
n += temp
if err != nil {
return temp, err
}
for i := int32(0); i < removeLens; i++ {
temp, err = (*pk.VarInt)(&id).ReadFrom(r)
n += temp
if err != nil {
return temp, err
}
}
return n, nil
}