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,262 @@
// Code generated by github.com/go-mc/packetizer; DO NOT EDIT.
package metadata
import (
"io"
"github.com/Tnze/go-mc/net/packet"
)
func (c *Rotation) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = (*packet.Float)(&c.X).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Y).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Z).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c Rotation) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = (*packet.Float)(&c.X).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Y).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Z).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c *NBT) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = packet.NBT(&c.Data).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c NBT) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = packet.NBT(&c.Data).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c *Particles) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = packet.Array(&c.Particles).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c Particles) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = packet.Array(&c.Particles).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c *VillagerData) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.VarInt)(&c.Profession).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.VarInt)(&c.Level).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c VillagerData) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = (*packet.VarInt)(&c.Type).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.VarInt)(&c.Profession).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.VarInt)(&c.Level).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c *GlobalPosition) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = (&c.Dimension).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (&c.Position).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c GlobalPosition) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = (&c.Dimension).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (&c.Position).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c *OptGlobalPosition) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = (&c.GlobalPosition).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c OptGlobalPosition) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = (&c.GlobalPosition).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c *Vector3) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = (*packet.Float)(&c.X).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Y).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Z).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c Vector3) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = (*packet.Float)(&c.X).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Y).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Z).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c *Quaternion) ReadFrom(r io.Reader) (n int64, err error) {
var temp int64
temp, err = (*packet.Float)(&c.X).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Y).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Z).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.W).ReadFrom(r)
n += temp
if err != nil {
return n, err
}
return n, err
}
func (c Quaternion) WriteTo(w io.Writer) (n int64, err error) {
var temp int64
temp, err = (*packet.Float)(&c.X).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Y).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.Z).WriteTo(w)
n += temp
if err != nil {
return n, err
}
temp, err = (*packet.Float)(&c.W).WriteTo(w)
n += temp
if err != nil {
return n, err
}
return n, err
}

View File

@ -0,0 +1,157 @@
package metadata
import (
"io"
pk "github.com/Tnze/go-mc/net/packet"
)
type MetadataType int32
const (
MetadataByte MetadataType = iota
MetadataVarInt
MetadataVarLong
MetadataFloat
MetadataString
MetadataChat
MetadataOptChat
MetadataSlot
MetadataBoolean
MetadataRotation
MetadataPosition
MetadataOptPosition
MetadataDirection
MetadataOptLivingEntity
MetadataBlockState
MetadataOptBlockState
MetadataNBT
MetadataParticle
MetadataParticles
MetadataVillagerData
MetadataOptVarInt
MetadataPose
MetadataCatVariant
MetadataCowVariant
MetadataWolfVariant
MetadataWolfSoundVariant
MetadataFrogVariant
MetadataPigVariant
MetadataChickenVariant
MetadataOptGlobalPosition
MetadataPaintingVariant
MetadataSnifferVariant
MetadataArmadilloState
MetadataVector3
MetadataQuaternion
)
type entityMetadata interface {
EntityMetadataType() MetadataType
pk.Field
}
type EntityMetadata struct {
Data map[uint8]entityMetadata
}
func (m EntityMetadata) WriteTo(w io.Writer) (int64, error) {
n := int64(0)
for u, metadata := range m.Data {
n1, err := pk.UnsignedByte(u).WriteTo(w)
n += n1
if err != nil {
return n, err
}
n2, err := pk.VarInt(metadata.EntityMetadataType()).WriteTo(w)
n += n2
if err != nil {
return n, err
}
n3, err := metadata.WriteTo(w)
n += n3
if err != nil {
return n, err
}
}
n4, err := pk.UnsignedByte(0xff).WriteTo(w)
n += n4
if err != nil {
return n, err
}
return n, nil
}
func (m *EntityMetadata) ReadFrom(r io.Reader) (int64, error) {
var index uint8
n, err := (*pk.UnsignedByte)(&index).ReadFrom(r)
if err != nil {
return n, err
}
for index != 0xff {
var typeId MetadataType
n1, err := (*pk.VarInt)(&typeId).ReadFrom(r)
n += n1
if err != nil {
return n, err
}
metadata := metadataType[typeId]()
n2, err := metadata.ReadFrom(r)
n += n2
if err != nil {
return n, err
}
m.Data[index] = metadata
n3, err := (*pk.UnsignedByte)(&index).ReadFrom(r)
n += n3
if err != nil {
return n, err
}
}
return n, nil
}
type metadataCreator func() entityMetadata
var metadataType = map[MetadataType]metadataCreator{}
func init() {
metadataType[MetadataByte] = func() entityMetadata { return &Byte{} }
metadataType[MetadataVarInt] = func() entityMetadata { return &VarInt{} }
metadataType[MetadataVarLong] = func() entityMetadata { return &VarLong{} }
metadataType[MetadataFloat] = func() entityMetadata { return &Float{} }
metadataType[MetadataString] = func() entityMetadata { return &String{} }
metadataType[MetadataChat] = func() entityMetadata { return &Chat{} }
metadataType[MetadataOptChat] = func() entityMetadata { return &OptChat{} }
metadataType[MetadataSlot] = func() entityMetadata { return &Slot{} }
metadataType[MetadataBoolean] = func() entityMetadata { return &Boolean{} }
metadataType[MetadataRotation] = func() entityMetadata { return &Rotation{} }
metadataType[MetadataPosition] = func() entityMetadata { return &Position{} }
metadataType[MetadataOptPosition] = func() entityMetadata { return &OptPosition{} }
metadataType[MetadataDirection] = func() entityMetadata { return &Direction{} }
metadataType[MetadataOptLivingEntity] = func() entityMetadata { return &OptLivingEntity{} }
metadataType[MetadataBlockState] = func() entityMetadata { return &BlockState{} }
metadataType[MetadataOptBlockState] = func() entityMetadata { return &OptBlockState{} }
metadataType[MetadataNBT] = func() entityMetadata { return &NBT{} }
metadataType[MetadataParticle] = func() entityMetadata { return &Particle{} }
metadataType[MetadataParticles] = func() entityMetadata { return &Particles{} }
metadataType[MetadataVillagerData] = func() entityMetadata { return &VillagerData{} }
metadataType[MetadataOptVarInt] = func() entityMetadata { return &OptVarInt{} }
metadataType[MetadataPose] = func() entityMetadata { return &Pose{} }
metadataType[MetadataCatVariant] = func() entityMetadata { return &CatVariant{} }
metadataType[MetadataCowVariant] = func() entityMetadata { return &CowVariant{} }
metadataType[MetadataWolfVariant] = func() entityMetadata { return &WolfVariant{} }
metadataType[MetadataWolfSoundVariant] = func() entityMetadata { return &WolfSoundVariant{} }
metadataType[MetadataFrogVariant] = func() entityMetadata { return &FrogVariant{} }
metadataType[MetadataPigVariant] = func() entityMetadata { return &PigVariant{} }
metadataType[MetadataChickenVariant] = func() entityMetadata { return &ChickenVariant{} }
metadataType[MetadataOptGlobalPosition] = func() entityMetadata { return &OptGlobalPosition{} }
metadataType[MetadataPaintingVariant] = func() entityMetadata { return &PaintingVariant{} }
metadataType[MetadataSnifferVariant] = func() entityMetadata { return &SnifferVariant{} }
metadataType[MetadataArmadilloState] = func() entityMetadata { return &ArmadilloState{} }
metadataType[MetadataVector3] = func() entityMetadata { return &Vector3{} }
metadataType[MetadataQuaternion] = func() entityMetadata { return &Quaternion{} }
}

View File

@ -0,0 +1,303 @@
package metadata
import (
"git.konjactw.dev/patyhank/minego/pkg/protocol/component"
"git.konjactw.dev/patyhank/minego/pkg/protocol/particle"
"git.konjactw.dev/patyhank/minego/pkg/protocol/slot"
"github.com/Tnze/go-mc/chat"
"github.com/Tnze/go-mc/nbt"
pk "github.com/Tnze/go-mc/net/packet"
)
type Byte struct {
pk.Byte
}
func (b Byte) EntityMetadataType() MetadataType {
return MetadataByte
}
type VarInt struct {
pk.VarInt
}
func (b VarInt) EntityMetadataType() MetadataType {
return MetadataVarInt
}
type VarLong struct {
pk.VarLong
}
func (b VarLong) EntityMetadataType() MetadataType {
return MetadataVarLong
}
type Float struct {
pk.Float
}
func (b Float) EntityMetadataType() MetadataType {
return MetadataFloat
}
type String struct {
pk.String
}
func (b String) EntityMetadataType() MetadataType {
return MetadataString
}
type Chat struct {
chat.Message
}
func (b Chat) EntityMetadataType() MetadataType {
return MetadataChat
}
type OptChat struct {
pk.Option[chat.Message, *chat.Message]
}
func (b OptChat) EntityMetadataType() MetadataType {
return MetadataChat
}
type Slot struct {
slot.Slot
}
func (b Slot) EntityMetadataType() MetadataType {
return MetadataSlot
}
type Boolean struct {
pk.Boolean
}
func (b Boolean) EntityMetadataType() MetadataType {
return MetadataBoolean
}
//codec:gen
type Rotation struct {
X, Y, Z float32
}
func (b Rotation) EntityMetadataType() MetadataType {
return MetadataRotation
}
type Position struct {
pk.Position
}
func (b Position) EntityMetadataType() MetadataType {
return MetadataPosition
}
type OptPosition struct {
pk.Option[pk.Position, *pk.Position]
}
func (b OptPosition) EntityMetadataType() MetadataType {
return MetadataOptPosition
}
type Direction struct {
pk.VarInt
}
func (b Direction) EntityMetadataType() MetadataType {
return MetadataDirection
}
type OptLivingEntity struct {
pk.Option[pk.UUID, *pk.UUID]
}
func (b OptLivingEntity) EntityMetadataType() MetadataType {
return MetadataOptLivingEntity
}
type BlockState struct {
pk.VarInt
}
func (b BlockState) EntityMetadataType() MetadataType {
return MetadataBlockState
}
type OptBlockState struct {
pk.VarInt
}
func (b OptBlockState) EntityMetadataType() MetadataType {
return MetadataOptBlockState
}
//codec:gen
type NBT struct {
Data nbt.RawMessage `mc:"NBT"`
}
func (b NBT) EntityMetadataType() MetadataType {
return MetadataNBT
}
type Particle struct {
particle.Particle
}
func (b Particle) EntityMetadataType() MetadataType {
return MetadataParticle
}
//codec:gen
type Particles struct {
Particles []particle.Particle
}
func (b Particles) EntityMetadataType() MetadataType {
return MetadataParticles
}
//codec:gen
type VillagerData struct {
Type, Profession, Level int32 `mc:"VarInt"`
}
func (b VillagerData) EntityMetadataType() MetadataType {
return MetadataVillagerData
}
type OptVarInt struct {
pk.Option[pk.VarInt, *pk.VarInt]
}
func (b OptVarInt) EntityMetadataType() MetadataType {
return MetadataOptVarInt
}
type Pose struct {
pk.VarInt
}
func (b Pose) EntityMetadataType() MetadataType {
return MetadataPose
}
type CatVariant struct {
pk.VarInt
}
func (b CatVariant) EntityMetadataType() MetadataType {
return MetadataCatVariant
}
type CowVariant struct {
pk.VarInt
}
func (CowVariant) EntityMetadataType() MetadataType {
return MetadataCowVariant
}
type WolfVariant struct {
pk.VarInt
}
func (WolfVariant) EntityMetadataType() MetadataType {
return MetadataWolfVariant
}
type WolfSoundVariant struct {
pk.VarInt
}
func (WolfSoundVariant) EntityMetadataType() MetadataType {
return MetadataWolfSoundVariant
}
type FrogVariant struct {
pk.VarInt
}
func (FrogVariant) EntityMetadataType() MetadataType {
return MetadataFrogVariant
}
type PigVariant struct {
pk.VarInt
}
func (PigVariant) EntityMetadataType() MetadataType {
return MetadataPigVariant
}
type ChickenVariant struct {
pk.VarInt
}
func (ChickenVariant) EntityMetadataType() MetadataType {
return MetadataChickenVariant
}
//codec:gen
type GlobalPosition struct {
Dimension pk.Identifier
Position pk.Position
}
//codec:gen
type OptGlobalPosition struct {
GlobalPosition pk.Option[GlobalPosition, *GlobalPosition]
}
func (OptGlobalPosition) EntityMetadataType() MetadataType {
return MetadataOptGlobalPosition
}
type PaintingVariant struct {
pk.OptID[component.PaintingVariant, *component.PaintingVariant]
}
func (PaintingVariant) EntityMetadataType() MetadataType {
return MetadataPaintingVariant
}
type SnifferVariant struct {
pk.VarInt
}
func (SnifferVariant) EntityMetadataType() MetadataType {
return MetadataSnifferVariant
}
type ArmadilloState struct {
pk.VarInt
}
func (ArmadilloState) EntityMetadataType() MetadataType {
return MetadataArmadilloState
}
//codec:gen
type Vector3 struct {
X, Y, Z float32
}
func (Vector3) EntityMetadataType() MetadataType {
return MetadataVector3
}
//codec:gen
type Quaternion struct {
X, Y, Z, W float32
}
func (Quaternion) EntityMetadataType() MetadataType {
return MetadataQuaternion
}