Files
minego/pkg/protocol/component/provides_trim_material.go
2025-08-22 05:14:59 +08:00

59 lines
1.1 KiB
Go

package component
import (
"io"
"git.konjactw.dev/patyhank/minego/pkg/protocol/slot"
"github.com/Tnze/go-mc/net/packet"
)
type ProvidesTrimMaterial struct {
Mode int8
Name packet.Identifier
Material packet.OptID[TrimMaterial, *TrimMaterial]
}
func (p *ProvidesTrimMaterial) ReadFrom(r io.Reader) (n int64, err error) {
n1, err := (*packet.Byte)(&p.Mode).ReadFrom(r)
if err != nil {
return n1, err
}
if p.Mode == 0 {
n2, err := p.Name.ReadFrom(r)
return n1 + n2, err
}
if p.Mode == 1 {
n2, err := p.Material.ReadFrom(r)
return n1 + n2, err
}
return n1, err
}
func (p ProvidesTrimMaterial) WriteTo(w io.Writer) (int64, error) {
n1, err := (*packet.Byte)(&p.Mode).WriteTo(w)
if err != nil {
return n1, err
}
if p.Mode == 0 {
n2, err := p.Name.WriteTo(w)
return n1 + n2, err
}
if p.Mode == 1 {
n2, err := p.Material.WriteTo(w)
return n1 + n2, err
}
return n1, err
}
func (*ProvidesTrimMaterial) Type() slot.ComponentID {
return 53
}
func (*ProvidesTrimMaterial) ID() string {
return "minecraft:provides_trim_material"
}