fix: resolve parameterized $compareTo types and fix array count type

- VisitNameAndData: return any instead of named struct when mergeCompareTo
  resolves $compareTo, fixing field type mismatches for switch/container types
- ContainerCompareTo: traverse anon/bitfield fields for compareTo resolution,
  fixes entityMetadata 'field not found' errors
- Array.Count: change from string to any to handle numeric count values
- ArrayEncoder: fix nil check to correctly write length prefix for arrays
- ArrayDecoder: use fmt.Sprint for safe Count conversion
This commit is contained in:
OpenCode
2026-08-05 18:33:39 +02:00
parent fa70ea36c6
commit eb83786f9a
14 changed files with 2138 additions and 101 deletions
+475 -13
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/1.12.2/protocol.json (sha256:21c57208db654a5e14a34cb696570080df179c5c642e53b16120399eee9232be)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v1_12_2
import (
@@ -45,7 +45,7 @@ type EntityMetadata struct {
Key uint8
Type int8
}
Value EntityMetadataItem
Value any
}
}
@@ -55,7 +55,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Key uint8
Type int8
}
Value EntityMetadataItem
Value any
})
var id uint8
for {
@@ -75,7 +75,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Key uint8
Type int8
}
Value EntityMetadataItem
Value any
}
err = binary.Read(r, binary.BigEndian, &entry.Anon.Key)
if err != nil {
@@ -85,9 +85,135 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
if err != nil {
return
}
err = entry.Value.Decode(r)
if err != nil {
return
switch entry.Anon.Type {
case 0:
var EntityMetadataInnerValue0Tmp int8
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue0Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue0Tmp
case 1:
var EntityMetadataInnerValue1Tmp int32
EntityMetadataInnerValue1Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue1Tmp
case 10:
var EntityMetadataInnerValue10Tmp int32
EntityMetadataInnerValue10Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue10Tmp
case 11:
var EntityMetadataInnerValue11Tmp *uuid.UUID
var EntityMetadataInnerValue11TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue11TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue11TmpPresent {
var EntityMetadataInnerValue11TmpPresentValue uuid.UUID
_, err = io.ReadFull(r, EntityMetadataInnerValue11TmpPresentValue[:])
if err != nil {
return
}
EntityMetadataInnerValue11Tmp = &EntityMetadataInnerValue11TmpPresentValue
}
entry.Value = EntityMetadataInnerValue11Tmp
case 12:
var EntityMetadataInnerValue12Tmp int32
EntityMetadataInnerValue12Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue12Tmp
case 13:
var EntityMetadataInnerValue13Tmp nbt.Tag
err = EntityMetadataInnerValue13Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue13Tmp
case 2:
var EntityMetadataInnerValue2Tmp float32
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue2Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue2Tmp
case 3:
var EntityMetadataInnerValue3Tmp string
EntityMetadataInnerValue3Tmp, err = proto_base.DecodeString(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue3Tmp
case 4:
var EntityMetadataInnerValue4Tmp string
EntityMetadataInnerValue4Tmp, err = proto_base.DecodeString(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue4Tmp
case 5:
var EntityMetadataInnerValue5Tmp Slot
err = EntityMetadataInnerValue5Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue5Tmp
case 6:
var EntityMetadataInnerValue6Tmp bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue6Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue6Tmp
case 7:
var EntityMetadataInnerValue7Tmp struct {
Pitch float32
Yaw float32
Roll float32
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue7Tmp.Pitch)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue7Tmp.Yaw)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue7Tmp.Roll)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue7Tmp
case 8:
var EntityMetadataInnerValue8Tmp Position
err = EntityMetadataInnerValue8Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue8Tmp
case 9:
var EntityMetadataInnerValue9Tmp *Position
var EntityMetadataInnerValue9TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue9TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue9TmpPresent {
var EntityMetadataInnerValue9TmpPresentValue Position
err = EntityMetadataInnerValue9TmpPresentValue.Decode(r)
if err != nil {
return
}
EntityMetadataInnerValue9Tmp = &EntityMetadataInnerValue9TmpPresentValue
}
entry.Value = EntityMetadataInnerValue9Tmp
}
ret.Val[id] = entry
}
@@ -103,10 +229,175 @@ func (ret *EntityMetadata) Encode(w io.Writer) (err error) {
if err != nil {
return
}
EntityMetadataValueEncTmp := v.Value
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
switch v.Anon.Type {
case 0:
EntityMetadataValue, ok := v.Value.(int8)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 1:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 10:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 11:
EntityMetadataValue, ok := v.Value.(*uuid.UUID)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
_, err = w.Write((*EntityMetadataValue)[:])
if err != nil {
return
}
}
case 12:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 13:
EntityMetadataValue, ok := v.Value.(nbt.Tag)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 2:
EntityMetadataValue, ok := v.Value.(float32)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 3:
EntityMetadataValue, ok := v.Value.(string)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeString(w, EntityMetadataValue)
if err != nil {
return
}
case 4:
EntityMetadataValue, ok := v.Value.(string)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeString(w, EntityMetadataValue)
if err != nil {
return
}
case 5:
EntityMetadataValue, ok := v.Value.(Slot)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 6:
EntityMetadataValue, ok := v.Value.(bool)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 7:
EntityMetadataValue, ok := v.Value.(struct {
Pitch float32
Yaw float32
Roll float32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Pitch)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Yaw)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Roll)
if err != nil {
return
}
case 8:
EntityMetadataValue, ok := v.Value.(Position)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 9:
EntityMetadataValue, ok := v.Value.(*Position)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
EntityMetadataValueEncTmp := *EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
}
}
}
err = binary.Write(w, binary.BigEndian, uint8(255))
@@ -8288,11 +8579,182 @@ type PlayToClientPacketWorldParticles struct {
}
func (ret *PlayToClientPacketWorldParticles) Decode(r io.ReadSeeker) (err error) {
err = proto_base.ToDoError
err = binary.Read(r, binary.BigEndian, &ret.ParticleId)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.LongDistance)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.X)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.Y)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.Z)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.OffsetX)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.OffsetY)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.OffsetZ)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.ParticleData)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.Particles)
if err != nil {
return
}
switch ret.ParticleId {
case 36:
var PlayToClientPacketWorldParticlesData36Tmp []int32
var lPlayToClientPacketWorldParticlesData36Tmp int32
lPlayToClientPacketWorldParticlesData36Tmp = 2
PlayToClientPacketWorldParticlesData36Tmp = []int32{}
for range lPlayToClientPacketWorldParticlesData36Tmp {
var PlayToClientPacketWorldParticlesData36TmpElement int32
PlayToClientPacketWorldParticlesData36TmpElement, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
PlayToClientPacketWorldParticlesData36Tmp = append(PlayToClientPacketWorldParticlesData36Tmp, PlayToClientPacketWorldParticlesData36TmpElement)
}
ret.Data = PlayToClientPacketWorldParticlesData36Tmp
case 37:
var PlayToClientPacketWorldParticlesData37Tmp []int32
var lPlayToClientPacketWorldParticlesData37Tmp int32
lPlayToClientPacketWorldParticlesData37Tmp = 1
PlayToClientPacketWorldParticlesData37Tmp = []int32{}
for range lPlayToClientPacketWorldParticlesData37Tmp {
var PlayToClientPacketWorldParticlesData37TmpElement int32
PlayToClientPacketWorldParticlesData37TmpElement, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
PlayToClientPacketWorldParticlesData37Tmp = append(PlayToClientPacketWorldParticlesData37Tmp, PlayToClientPacketWorldParticlesData37TmpElement)
}
ret.Data = PlayToClientPacketWorldParticlesData37Tmp
case 38:
var PlayToClientPacketWorldParticlesData38Tmp []int32
var lPlayToClientPacketWorldParticlesData38Tmp int32
lPlayToClientPacketWorldParticlesData38Tmp = 1
PlayToClientPacketWorldParticlesData38Tmp = []int32{}
for range lPlayToClientPacketWorldParticlesData38Tmp {
var PlayToClientPacketWorldParticlesData38TmpElement int32
PlayToClientPacketWorldParticlesData38TmpElement, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
PlayToClientPacketWorldParticlesData38Tmp = append(PlayToClientPacketWorldParticlesData38Tmp, PlayToClientPacketWorldParticlesData38TmpElement)
}
ret.Data = PlayToClientPacketWorldParticlesData38Tmp
default:
var PlayToClientPacketWorldParticlesDataTmp struct {
}
ret.Data = PlayToClientPacketWorldParticlesDataTmp
}
return
}
func (ret *PlayToClientPacketWorldParticles) Encode(w io.Writer) (err error) {
err = proto_base.ToDoError
err = binary.Write(w, binary.BigEndian, ret.ParticleId)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.LongDistance)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.X)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.Y)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.Z)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.OffsetX)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.OffsetY)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.OffsetZ)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.ParticleData)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.Particles)
if err != nil {
return
}
switch ret.ParticleId {
case 36:
PlayToClientPacketWorldParticlesData, ok := ret.Data.([]int32)
if !ok {
err = proto_base.BadTypeError
return
}
for iPlayToClientPacketWorldParticlesData := range len(PlayToClientPacketWorldParticlesData) {
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData[iPlayToClientPacketWorldParticlesData])
if err != nil {
return
}
}
case 37:
PlayToClientPacketWorldParticlesData, ok := ret.Data.([]int32)
if !ok {
err = proto_base.BadTypeError
return
}
for iPlayToClientPacketWorldParticlesData := range len(PlayToClientPacketWorldParticlesData) {
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData[iPlayToClientPacketWorldParticlesData])
if err != nil {
return
}
}
case 38:
PlayToClientPacketWorldParticlesData, ok := ret.Data.([]int32)
if !ok {
err = proto_base.BadTypeError
return
}
for iPlayToClientPacketWorldParticlesData := range len(PlayToClientPacketWorldParticlesData) {
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData[iPlayToClientPacketWorldParticlesData])
if err != nil {
return
}
}
default:
_, ok := ret.Data.(struct {
})
if !ok {
err = proto_base.BadTypeError
return
}
}
return
}
+686 -27
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/1.14.4/protocol.json (sha256:b6edff5abaaf234037b5019024d749e27e746250a23253bb4ad77d8f76e93167)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v1_14_4
import (
@@ -141,7 +141,7 @@ type EntityMetadata struct {
Key uint8
Type int32
}
Value EntityMetadataItem
Value any
}
}
@@ -151,7 +151,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Key uint8
Type int32
}
Value EntityMetadataItem
Value any
})
var id uint8
for {
@@ -171,7 +171,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Key uint8
Type int32
}
Value EntityMetadataItem
Value any
}
err = binary.Read(r, binary.BigEndian, &entry.Anon.Key)
if err != nil {
@@ -181,9 +181,191 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
if err != nil {
return
}
err = entry.Value.Decode(r)
if err != nil {
return
switch entry.Anon.Type {
case 0:
var EntityMetadataInnerValue0Tmp int8
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue0Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue0Tmp
case 1:
var EntityMetadataInnerValue1Tmp int32
EntityMetadataInnerValue1Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue1Tmp
case 10:
var EntityMetadataInnerValue10Tmp *Position
var EntityMetadataInnerValue10TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue10TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue10TmpPresent {
var EntityMetadataInnerValue10TmpPresentValue Position
err = EntityMetadataInnerValue10TmpPresentValue.Decode(r)
if err != nil {
return
}
EntityMetadataInnerValue10Tmp = &EntityMetadataInnerValue10TmpPresentValue
}
entry.Value = EntityMetadataInnerValue10Tmp
case 11:
var EntityMetadataInnerValue11Tmp int32
EntityMetadataInnerValue11Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue11Tmp
case 12:
var EntityMetadataInnerValue12Tmp *uuid.UUID
var EntityMetadataInnerValue12TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue12TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue12TmpPresent {
var EntityMetadataInnerValue12TmpPresentValue uuid.UUID
_, err = io.ReadFull(r, EntityMetadataInnerValue12TmpPresentValue[:])
if err != nil {
return
}
EntityMetadataInnerValue12Tmp = &EntityMetadataInnerValue12TmpPresentValue
}
entry.Value = EntityMetadataInnerValue12Tmp
case 13:
var EntityMetadataInnerValue13Tmp int32
EntityMetadataInnerValue13Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue13Tmp
case 14:
var EntityMetadataInnerValue14Tmp nbt.Tag
err = EntityMetadataInnerValue14Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue14Tmp
case 15:
var EntityMetadataInnerValue15Tmp Particle
err = EntityMetadataInnerValue15Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue15Tmp
case 16:
var EntityMetadataInnerValue16Tmp struct {
VillagerType int32
VillagerProfession int32
Level int32
}
EntityMetadataInnerValue16Tmp.VillagerType, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
EntityMetadataInnerValue16Tmp.VillagerProfession, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
EntityMetadataInnerValue16Tmp.Level, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue16Tmp
case 17:
var EntityMetadataInnerValue17Tmp Optvarint
err = EntityMetadataInnerValue17Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue17Tmp
case 18:
var EntityMetadataInnerValue18Tmp int32
EntityMetadataInnerValue18Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue18Tmp
case 2:
var EntityMetadataInnerValue2Tmp float32
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue2Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue2Tmp
case 3:
var EntityMetadataInnerValue3Tmp string
EntityMetadataInnerValue3Tmp, err = proto_base.DecodeString(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue3Tmp
case 4:
var EntityMetadataInnerValue4Tmp string
EntityMetadataInnerValue4Tmp, err = proto_base.DecodeString(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue4Tmp
case 5:
var EntityMetadataInnerValue5Tmp *string
var EntityMetadataInnerValue5TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue5TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue5TmpPresent {
var EntityMetadataInnerValue5TmpPresentValue string
EntityMetadataInnerValue5TmpPresentValue, err = proto_base.DecodeString(r)
if err != nil {
return
}
EntityMetadataInnerValue5Tmp = &EntityMetadataInnerValue5TmpPresentValue
}
entry.Value = EntityMetadataInnerValue5Tmp
case 6:
var EntityMetadataInnerValue6Tmp Slot
err = EntityMetadataInnerValue6Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue6Tmp
case 7:
var EntityMetadataInnerValue7Tmp bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue7Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue7Tmp
case 8:
var EntityMetadataInnerValue8Tmp struct {
Pitch float32
Yaw float32
Roll float32
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue8Tmp.Pitch)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue8Tmp.Yaw)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue8Tmp.Roll)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue8Tmp
case 9:
var EntityMetadataInnerValue9Tmp Position
err = EntityMetadataInnerValue9Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue9Tmp
}
ret.Val[id] = entry
}
@@ -199,10 +381,245 @@ func (ret *EntityMetadata) Encode(w io.Writer) (err error) {
if err != nil {
return
}
EntityMetadataValueEncTmp := v.Value
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
switch v.Anon.Type {
case 0:
EntityMetadataValue, ok := v.Value.(int8)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 1:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 10:
EntityMetadataValue, ok := v.Value.(*Position)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
EntityMetadataValueEncTmp := *EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
}
case 11:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 12:
EntityMetadataValue, ok := v.Value.(*uuid.UUID)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
_, err = w.Write((*EntityMetadataValue)[:])
if err != nil {
return
}
}
case 13:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 14:
EntityMetadataValue, ok := v.Value.(nbt.Tag)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 15:
EntityMetadataValue, ok := v.Value.(Particle)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 16:
EntityMetadataValue, ok := v.Value.(struct {
VillagerType int32
VillagerProfession int32
Level int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue.VillagerType)
if err != nil {
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue.VillagerProfession)
if err != nil {
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue.Level)
if err != nil {
return
}
case 17:
EntityMetadataValue, ok := v.Value.(Optvarint)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 18:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 2:
EntityMetadataValue, ok := v.Value.(float32)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 3:
EntityMetadataValue, ok := v.Value.(string)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeString(w, EntityMetadataValue)
if err != nil {
return
}
case 4:
EntityMetadataValue, ok := v.Value.(string)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeString(w, EntityMetadataValue)
if err != nil {
return
}
case 5:
EntityMetadataValue, ok := v.Value.(*string)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
err = proto_base.EncodeString(w, *EntityMetadataValue)
if err != nil {
return
}
}
case 6:
EntityMetadataValue, ok := v.Value.(Slot)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 7:
EntityMetadataValue, ok := v.Value.(bool)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 8:
EntityMetadataValue, ok := v.Value.(struct {
Pitch float32
Yaw float32
Roll float32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Pitch)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Yaw)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Roll)
if err != nil {
return
}
case 9:
EntityMetadataValue, ok := v.Value.(Position)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
}
}
err = binary.Write(w, binary.BigEndian, uint8(255))
@@ -339,7 +756,7 @@ func (ret *Optvarint) Encode(w io.Writer) (err error) {
type Particle struct {
ParticleId int32
Data ParticleData
Data any
}
func (ret *Particle) Decode(r io.ReadSeeker) (err error) {
@@ -347,9 +764,62 @@ func (ret *Particle) Decode(r io.ReadSeeker) (err error) {
if err != nil {
return
}
err = ret.Data.Decode(r)
if err != nil {
return
switch ret.ParticleId {
case 14:
var ParticleData14Tmp struct {
Red float32
Green float32
Blue float32
Scale float32
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Red)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Green)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Blue)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Scale)
if err != nil {
return
}
ret.Data = ParticleData14Tmp
case 23:
var ParticleData23Tmp struct {
BlockState int32
}
ParticleData23Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = ParticleData23Tmp
case 3:
var ParticleData3Tmp struct {
BlockState int32
}
ParticleData3Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = ParticleData3Tmp
case 32:
var ParticleData32Tmp struct {
Item Slot
}
err = ParticleData32Tmp.Item.Decode(r)
if err != nil {
return
}
ret.Data = ParticleData32Tmp
default:
var ParticleDataTmp struct {
}
ret.Data = ParticleDataTmp
}
return
}
@@ -358,10 +828,78 @@ func (ret *Particle) Encode(w io.Writer) (err error) {
if err != nil {
return
}
ParticleDataEncTmp := ret.Data
err = ParticleDataEncTmp.Encode(w)
if err != nil {
return
switch ret.ParticleId {
case 14:
ParticleData, ok := ret.Data.(struct {
Red float32
Green float32
Blue float32
Scale float32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Red)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Green)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Blue)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Scale)
if err != nil {
return
}
case 23:
ParticleData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, ParticleData.BlockState)
if err != nil {
return
}
case 3:
ParticleData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, ParticleData.BlockState)
if err != nil {
return
}
case 32:
ParticleData, ok := ret.Data.(struct {
Item Slot
})
if !ok {
err = proto_base.BadTypeError
return
}
ParticleDataItemEncTmp := ParticleData.Item
err = ParticleDataItemEncTmp.Encode(w)
if err != nil {
return
}
default:
_, ok := ret.Data.(struct {
})
if !ok {
err = proto_base.BadTypeError
return
}
}
return
}
@@ -10329,7 +10867,7 @@ type PlayToClientPacketWorldParticles struct {
OffsetZ float32
ParticleData float32
Particles int32
Data ParticleData
Data any
}
func (ret *PlayToClientPacketWorldParticles) Decode(r io.ReadSeeker) (err error) {
@@ -10373,9 +10911,62 @@ func (ret *PlayToClientPacketWorldParticles) Decode(r io.ReadSeeker) (err error)
if err != nil {
return
}
err = ret.Data.Decode(r)
if err != nil {
return
switch ret.ParticleId {
case 14:
var PlayToClientPacketWorldParticlesData14Tmp struct {
Red float32
Green float32
Blue float32
Scale float32
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Red)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Green)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Blue)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Scale)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData14Tmp
case 23:
var PlayToClientPacketWorldParticlesData23Tmp struct {
BlockState int32
}
PlayToClientPacketWorldParticlesData23Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData23Tmp
case 3:
var PlayToClientPacketWorldParticlesData3Tmp struct {
BlockState int32
}
PlayToClientPacketWorldParticlesData3Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData3Tmp
case 32:
var PlayToClientPacketWorldParticlesData32Tmp struct {
Item Slot
}
err = PlayToClientPacketWorldParticlesData32Tmp.Item.Decode(r)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData32Tmp
default:
var PlayToClientPacketWorldParticlesDataTmp struct {
}
ret.Data = PlayToClientPacketWorldParticlesDataTmp
}
return
}
@@ -10420,10 +11011,78 @@ func (ret *PlayToClientPacketWorldParticles) Encode(w io.Writer) (err error) {
if err != nil {
return
}
PlayToClientPacketWorldParticlesDataEncTmp := ret.Data
err = PlayToClientPacketWorldParticlesDataEncTmp.Encode(w)
if err != nil {
return
switch ret.ParticleId {
case 14:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
Red float32
Green float32
Blue float32
Scale float32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Red)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Green)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Blue)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Scale)
if err != nil {
return
}
case 23:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData.BlockState)
if err != nil {
return
}
case 3:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData.BlockState)
if err != nil {
return
}
case 32:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
Item Slot
})
if !ok {
err = proto_base.BadTypeError
return
}
PlayToClientPacketWorldParticlesDataItemEncTmp := PlayToClientPacketWorldParticlesData.Item
err = PlayToClientPacketWorldParticlesDataItemEncTmp.Encode(w)
if err != nil {
return
}
default:
_, ok := ret.Data.(struct {
})
if !ok {
err = proto_base.BadTypeError
return
}
}
return
}
+686 -27
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/1.16.2/protocol.json (sha256:d96a3c5a7a7ddf2105e23990c2471b3aeafe4a6975e0c9d7d7943b599af9dfb3)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v1_16_5
import (
@@ -141,7 +141,7 @@ type EntityMetadata struct {
Key uint8
Type int32
}
Value EntityMetadataItem
Value any
}
}
@@ -151,7 +151,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Key uint8
Type int32
}
Value EntityMetadataItem
Value any
})
var id uint8
for {
@@ -171,7 +171,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Key uint8
Type int32
}
Value EntityMetadataItem
Value any
}
err = binary.Read(r, binary.BigEndian, &entry.Anon.Key)
if err != nil {
@@ -181,9 +181,191 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
if err != nil {
return
}
err = entry.Value.Decode(r)
if err != nil {
return
switch entry.Anon.Type {
case 0:
var EntityMetadataInnerValue0Tmp int8
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue0Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue0Tmp
case 1:
var EntityMetadataInnerValue1Tmp int32
EntityMetadataInnerValue1Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue1Tmp
case 10:
var EntityMetadataInnerValue10Tmp *Position
var EntityMetadataInnerValue10TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue10TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue10TmpPresent {
var EntityMetadataInnerValue10TmpPresentValue Position
err = EntityMetadataInnerValue10TmpPresentValue.Decode(r)
if err != nil {
return
}
EntityMetadataInnerValue10Tmp = &EntityMetadataInnerValue10TmpPresentValue
}
entry.Value = EntityMetadataInnerValue10Tmp
case 11:
var EntityMetadataInnerValue11Tmp int32
EntityMetadataInnerValue11Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue11Tmp
case 12:
var EntityMetadataInnerValue12Tmp *uuid.UUID
var EntityMetadataInnerValue12TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue12TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue12TmpPresent {
var EntityMetadataInnerValue12TmpPresentValue uuid.UUID
_, err = io.ReadFull(r, EntityMetadataInnerValue12TmpPresentValue[:])
if err != nil {
return
}
EntityMetadataInnerValue12Tmp = &EntityMetadataInnerValue12TmpPresentValue
}
entry.Value = EntityMetadataInnerValue12Tmp
case 13:
var EntityMetadataInnerValue13Tmp int32
EntityMetadataInnerValue13Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue13Tmp
case 14:
var EntityMetadataInnerValue14Tmp nbt.Tag
err = EntityMetadataInnerValue14Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue14Tmp
case 15:
var EntityMetadataInnerValue15Tmp Particle
err = EntityMetadataInnerValue15Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue15Tmp
case 16:
var EntityMetadataInnerValue16Tmp struct {
VillagerType int32
VillagerProfession int32
Level int32
}
EntityMetadataInnerValue16Tmp.VillagerType, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
EntityMetadataInnerValue16Tmp.VillagerProfession, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
EntityMetadataInnerValue16Tmp.Level, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue16Tmp
case 17:
var EntityMetadataInnerValue17Tmp Optvarint
err = EntityMetadataInnerValue17Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue17Tmp
case 18:
var EntityMetadataInnerValue18Tmp int32
EntityMetadataInnerValue18Tmp, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue18Tmp
case 2:
var EntityMetadataInnerValue2Tmp float32
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue2Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue2Tmp
case 3:
var EntityMetadataInnerValue3Tmp string
EntityMetadataInnerValue3Tmp, err = proto_base.DecodeString(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue3Tmp
case 4:
var EntityMetadataInnerValue4Tmp string
EntityMetadataInnerValue4Tmp, err = proto_base.DecodeString(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue4Tmp
case 5:
var EntityMetadataInnerValue5Tmp *string
var EntityMetadataInnerValue5TmpPresent bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue5TmpPresent)
if err != nil {
return
}
if EntityMetadataInnerValue5TmpPresent {
var EntityMetadataInnerValue5TmpPresentValue string
EntityMetadataInnerValue5TmpPresentValue, err = proto_base.DecodeString(r)
if err != nil {
return
}
EntityMetadataInnerValue5Tmp = &EntityMetadataInnerValue5TmpPresentValue
}
entry.Value = EntityMetadataInnerValue5Tmp
case 6:
var EntityMetadataInnerValue6Tmp Slot
err = EntityMetadataInnerValue6Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue6Tmp
case 7:
var EntityMetadataInnerValue7Tmp bool
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue7Tmp)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue7Tmp
case 8:
var EntityMetadataInnerValue8Tmp struct {
Pitch float32
Yaw float32
Roll float32
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue8Tmp.Pitch)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue8Tmp.Yaw)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerValue8Tmp.Roll)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue8Tmp
case 9:
var EntityMetadataInnerValue9Tmp Position
err = EntityMetadataInnerValue9Tmp.Decode(r)
if err != nil {
return
}
entry.Value = EntityMetadataInnerValue9Tmp
}
ret.Val[id] = entry
}
@@ -199,10 +381,245 @@ func (ret *EntityMetadata) Encode(w io.Writer) (err error) {
if err != nil {
return
}
EntityMetadataValueEncTmp := v.Value
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
switch v.Anon.Type {
case 0:
EntityMetadataValue, ok := v.Value.(int8)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 1:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 10:
EntityMetadataValue, ok := v.Value.(*Position)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
EntityMetadataValueEncTmp := *EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
}
case 11:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 12:
EntityMetadataValue, ok := v.Value.(*uuid.UUID)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
_, err = w.Write((*EntityMetadataValue)[:])
if err != nil {
return
}
}
case 13:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 14:
EntityMetadataValue, ok := v.Value.(nbt.Tag)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 15:
EntityMetadataValue, ok := v.Value.(Particle)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 16:
EntityMetadataValue, ok := v.Value.(struct {
VillagerType int32
VillagerProfession int32
Level int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue.VillagerType)
if err != nil {
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue.VillagerProfession)
if err != nil {
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue.Level)
if err != nil {
return
}
case 17:
EntityMetadataValue, ok := v.Value.(Optvarint)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 18:
EntityMetadataValue, ok := v.Value.(int32)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, EntityMetadataValue)
if err != nil {
return
}
case 2:
EntityMetadataValue, ok := v.Value.(float32)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 3:
EntityMetadataValue, ok := v.Value.(string)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeString(w, EntityMetadataValue)
if err != nil {
return
}
case 4:
EntityMetadataValue, ok := v.Value.(string)
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeString(w, EntityMetadataValue)
if err != nil {
return
}
case 5:
EntityMetadataValue, ok := v.Value.(*string)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue != nil)
if err != nil {
return
}
if EntityMetadataValue != nil {
err = proto_base.EncodeString(w, *EntityMetadataValue)
if err != nil {
return
}
}
case 6:
EntityMetadataValue, ok := v.Value.(Slot)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
case 7:
EntityMetadataValue, ok := v.Value.(bool)
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue)
if err != nil {
return
}
case 8:
EntityMetadataValue, ok := v.Value.(struct {
Pitch float32
Yaw float32
Roll float32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Pitch)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Yaw)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, EntityMetadataValue.Roll)
if err != nil {
return
}
case 9:
EntityMetadataValue, ok := v.Value.(Position)
if !ok {
err = proto_base.BadTypeError
return
}
EntityMetadataValueEncTmp := EntityMetadataValue
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
}
}
err = binary.Write(w, binary.BigEndian, uint8(255))
@@ -339,7 +756,7 @@ func (ret *Optvarint) Encode(w io.Writer) (err error) {
type Particle struct {
ParticleId int32
Data ParticleData
Data any
}
func (ret *Particle) Decode(r io.ReadSeeker) (err error) {
@@ -347,9 +764,62 @@ func (ret *Particle) Decode(r io.ReadSeeker) (err error) {
if err != nil {
return
}
err = ret.Data.Decode(r)
if err != nil {
return
switch ret.ParticleId {
case 14:
var ParticleData14Tmp struct {
Red float32
Green float32
Blue float32
Scale float32
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Red)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Green)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Blue)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ParticleData14Tmp.Scale)
if err != nil {
return
}
ret.Data = ParticleData14Tmp
case 23:
var ParticleData23Tmp struct {
BlockState int32
}
ParticleData23Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = ParticleData23Tmp
case 3:
var ParticleData3Tmp struct {
BlockState int32
}
ParticleData3Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = ParticleData3Tmp
case 34:
var ParticleData34Tmp struct {
Item Slot
}
err = ParticleData34Tmp.Item.Decode(r)
if err != nil {
return
}
ret.Data = ParticleData34Tmp
default:
var ParticleDataTmp struct {
}
ret.Data = ParticleDataTmp
}
return
}
@@ -358,10 +828,78 @@ func (ret *Particle) Encode(w io.Writer) (err error) {
if err != nil {
return
}
ParticleDataEncTmp := ret.Data
err = ParticleDataEncTmp.Encode(w)
if err != nil {
return
switch ret.ParticleId {
case 14:
ParticleData, ok := ret.Data.(struct {
Red float32
Green float32
Blue float32
Scale float32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Red)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Green)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Blue)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ParticleData.Scale)
if err != nil {
return
}
case 23:
ParticleData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, ParticleData.BlockState)
if err != nil {
return
}
case 3:
ParticleData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, ParticleData.BlockState)
if err != nil {
return
}
case 34:
ParticleData, ok := ret.Data.(struct {
Item Slot
})
if !ok {
err = proto_base.BadTypeError
return
}
ParticleDataItemEncTmp := ParticleData.Item
err = ParticleDataItemEncTmp.Encode(w)
if err != nil {
return
}
default:
_, ok := ret.Data.(struct {
})
if !ok {
err = proto_base.BadTypeError
return
}
}
return
}
@@ -10484,7 +11022,7 @@ type PlayToClientPacketWorldParticles struct {
OffsetZ float32
ParticleData float32
Particles int32
Data ParticleData
Data any
}
func (ret *PlayToClientPacketWorldParticles) Decode(r io.ReadSeeker) (err error) {
@@ -10528,9 +11066,62 @@ func (ret *PlayToClientPacketWorldParticles) Decode(r io.ReadSeeker) (err error)
if err != nil {
return
}
err = ret.Data.Decode(r)
if err != nil {
return
switch ret.ParticleId {
case 14:
var PlayToClientPacketWorldParticlesData14Tmp struct {
Red float32
Green float32
Blue float32
Scale float32
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Red)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Green)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Blue)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldParticlesData14Tmp.Scale)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData14Tmp
case 23:
var PlayToClientPacketWorldParticlesData23Tmp struct {
BlockState int32
}
PlayToClientPacketWorldParticlesData23Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData23Tmp
case 3:
var PlayToClientPacketWorldParticlesData3Tmp struct {
BlockState int32
}
PlayToClientPacketWorldParticlesData3Tmp.BlockState, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData3Tmp
case 34:
var PlayToClientPacketWorldParticlesData34Tmp struct {
Item Slot
}
err = PlayToClientPacketWorldParticlesData34Tmp.Item.Decode(r)
if err != nil {
return
}
ret.Data = PlayToClientPacketWorldParticlesData34Tmp
default:
var PlayToClientPacketWorldParticlesDataTmp struct {
}
ret.Data = PlayToClientPacketWorldParticlesDataTmp
}
return
}
@@ -10575,10 +11166,78 @@ func (ret *PlayToClientPacketWorldParticles) Encode(w io.Writer) (err error) {
if err != nil {
return
}
PlayToClientPacketWorldParticlesDataEncTmp := ret.Data
err = PlayToClientPacketWorldParticlesDataEncTmp.Encode(w)
if err != nil {
return
switch ret.ParticleId {
case 14:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
Red float32
Green float32
Blue float32
Scale float32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Red)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Green)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Blue)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldParticlesData.Scale)
if err != nil {
return
}
case 23:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData.BlockState)
if err != nil {
return
}
case 3:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
BlockState int32
})
if !ok {
err = proto_base.BadTypeError
return
}
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData.BlockState)
if err != nil {
return
}
case 34:
PlayToClientPacketWorldParticlesData, ok := ret.Data.(struct {
Item Slot
})
if !ok {
err = proto_base.BadTypeError
return
}
PlayToClientPacketWorldParticlesDataItemEncTmp := PlayToClientPacketWorldParticlesData.Item
err = PlayToClientPacketWorldParticlesDataItemEncTmp.Encode(w)
if err != nil {
return
}
default:
_, ok := ret.Data.(struct {
})
if !ok {
err = proto_base.BadTypeError
return
}
}
return
}
+3 -3
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/1.21.11/protocol.json (sha256:97d2726cce3a39cc967a954f27f4ebf029ec3f0f655bb21942aab8745d13cdab)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v1_21_11
import (
@@ -22085,7 +22085,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Decode(r io.ReadSeeker) (err error
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
var PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp float32
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp)
@@ -22192,7 +22192,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Encode(w io.Writer) (err error) {
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
PlayToClientPacketTrackedWaypointWaypointData, ok := ret.Waypoint.Data.(float32)
if !ok {
+3 -3
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/1.21.8/protocol.json (sha256:930fbb4c69fd2ecadddcee3c38d3f02908adc23b54b707cb21112e7ab1e9dba1)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v1_21_8
import (
@@ -20500,7 +20500,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Decode(r io.ReadSeeker) (err error
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
var PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp float32
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp)
@@ -20607,7 +20607,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Encode(w io.Writer) (err error) {
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
PlayToClientPacketTrackedWaypointWaypointData, ok := ret.Waypoint.Data.(float32)
if !ok {
+3 -3
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/1.21.9/protocol.json (sha256:9861cee397931c678c3b1837dcdf82e3fc885442c6bd0e4a60522fbf26653e59)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v1_21_9
import (
@@ -21908,7 +21908,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Decode(r io.ReadSeeker) (err error
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
var PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp float32
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp)
@@ -22015,7 +22015,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Encode(w io.Writer) (err error) {
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
PlayToClientPacketTrackedWaypointWaypointData, ok := ret.Waypoint.Data.(float32)
if !ok {
+177 -15
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/1.8/protocol.json (sha256:79fe774bfc255dd281899c004fbb9c7adc40fb107de9353da1dd0371ea4b53af)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v1_8
import (
@@ -45,7 +45,7 @@ type EntityMetadata struct {
Type uint8
Key uint8
}
Value EntityMetadataItem
Value any
}
}
@@ -55,7 +55,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Type uint8
Key uint8
}
Value EntityMetadataItem
Value any
})
var id uint8
for {
@@ -75,7 +75,7 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
Type uint8
Key uint8
}
Value EntityMetadataItem
Value any
}
var EntityMetadataInnerAnonPacked uint8
err = binary.Read(r, binary.BigEndian, &EntityMetadataInnerAnonPacked)
@@ -84,10 +84,6 @@ func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) {
}
entry.Anon.Type = EntityMetadataInnerAnonPacked << 0 >> 5
entry.Anon.Key = EntityMetadataInnerAnonPacked << 3 >> 3
err = entry.Value.Decode(r)
if err != nil {
return
}
ret.Val[id] = entry
}
return
@@ -101,11 +97,6 @@ func (ret *EntityMetadata) Encode(w io.Writer) (err error) {
if err != nil {
return
}
EntityMetadataValueEncTmp := v.Value
err = EntityMetadataValueEncTmp.Encode(w)
if err != nil {
return
}
}
err = binary.Write(w, binary.BigEndian, uint8(127))
if err != nil {
@@ -7105,11 +7096,182 @@ type PlayToClientPacketWorldParticles struct {
}
func (ret *PlayToClientPacketWorldParticles) Decode(r io.ReadSeeker) (err error) {
err = proto_base.ToDoError
err = binary.Read(r, binary.BigEndian, &ret.ParticleId)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.LongDistance)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.X)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.Y)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.Z)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.OffsetX)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.OffsetY)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.OffsetZ)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.ParticleData)
if err != nil {
return
}
err = binary.Read(r, binary.BigEndian, &ret.Particles)
if err != nil {
return
}
switch ret.ParticleId {
case 36:
var PlayToClientPacketWorldParticlesData36Tmp []int32
var lPlayToClientPacketWorldParticlesData36Tmp int32
lPlayToClientPacketWorldParticlesData36Tmp = 2
PlayToClientPacketWorldParticlesData36Tmp = []int32{}
for range lPlayToClientPacketWorldParticlesData36Tmp {
var PlayToClientPacketWorldParticlesData36TmpElement int32
PlayToClientPacketWorldParticlesData36TmpElement, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
PlayToClientPacketWorldParticlesData36Tmp = append(PlayToClientPacketWorldParticlesData36Tmp, PlayToClientPacketWorldParticlesData36TmpElement)
}
ret.Data = PlayToClientPacketWorldParticlesData36Tmp
case 37:
var PlayToClientPacketWorldParticlesData37Tmp []int32
var lPlayToClientPacketWorldParticlesData37Tmp int32
lPlayToClientPacketWorldParticlesData37Tmp = 1
PlayToClientPacketWorldParticlesData37Tmp = []int32{}
for range lPlayToClientPacketWorldParticlesData37Tmp {
var PlayToClientPacketWorldParticlesData37TmpElement int32
PlayToClientPacketWorldParticlesData37TmpElement, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
PlayToClientPacketWorldParticlesData37Tmp = append(PlayToClientPacketWorldParticlesData37Tmp, PlayToClientPacketWorldParticlesData37TmpElement)
}
ret.Data = PlayToClientPacketWorldParticlesData37Tmp
case 38:
var PlayToClientPacketWorldParticlesData38Tmp []int32
var lPlayToClientPacketWorldParticlesData38Tmp int32
lPlayToClientPacketWorldParticlesData38Tmp = 1
PlayToClientPacketWorldParticlesData38Tmp = []int32{}
for range lPlayToClientPacketWorldParticlesData38Tmp {
var PlayToClientPacketWorldParticlesData38TmpElement int32
PlayToClientPacketWorldParticlesData38TmpElement, err = proto_base.DecodeVarInt(r)
if err != nil {
return
}
PlayToClientPacketWorldParticlesData38Tmp = append(PlayToClientPacketWorldParticlesData38Tmp, PlayToClientPacketWorldParticlesData38TmpElement)
}
ret.Data = PlayToClientPacketWorldParticlesData38Tmp
default:
var PlayToClientPacketWorldParticlesDataTmp struct {
}
ret.Data = PlayToClientPacketWorldParticlesDataTmp
}
return
}
func (ret *PlayToClientPacketWorldParticles) Encode(w io.Writer) (err error) {
err = proto_base.ToDoError
err = binary.Write(w, binary.BigEndian, ret.ParticleId)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.LongDistance)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.X)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.Y)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.Z)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.OffsetX)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.OffsetY)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.OffsetZ)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.ParticleData)
if err != nil {
return
}
err = binary.Write(w, binary.BigEndian, ret.Particles)
if err != nil {
return
}
switch ret.ParticleId {
case 36:
PlayToClientPacketWorldParticlesData, ok := ret.Data.([]int32)
if !ok {
err = proto_base.BadTypeError
return
}
for iPlayToClientPacketWorldParticlesData := range len(PlayToClientPacketWorldParticlesData) {
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData[iPlayToClientPacketWorldParticlesData])
if err != nil {
return
}
}
case 37:
PlayToClientPacketWorldParticlesData, ok := ret.Data.([]int32)
if !ok {
err = proto_base.BadTypeError
return
}
for iPlayToClientPacketWorldParticlesData := range len(PlayToClientPacketWorldParticlesData) {
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData[iPlayToClientPacketWorldParticlesData])
if err != nil {
return
}
}
case 38:
PlayToClientPacketWorldParticlesData, ok := ret.Data.([]int32)
if !ok {
err = proto_base.BadTypeError
return
}
for iPlayToClientPacketWorldParticlesData := range len(PlayToClientPacketWorldParticlesData) {
err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldParticlesData[iPlayToClientPacketWorldParticlesData])
if err != nil {
return
}
}
default:
_, ok := ret.Data.(struct {
})
if !ok {
err = proto_base.BadTypeError
return
}
}
return
}
+3 -3
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/26.1/protocol.json (sha256:dfb6318886cd3ceab617f75ac05e24f9836a64501d60551071289b904ebfc389)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v26_1
import (
@@ -22183,7 +22183,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Decode(r io.ReadSeeker) (err error
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
var PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp float32
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp)
@@ -22290,7 +22290,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Encode(w io.Writer) (err error) {
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
PlayToClientPacketTrackedWaypointWaypointData, ok := ret.Waypoint.Data.(float32)
if !ok {
+3 -3
View File
@@ -1,6 +1,6 @@
// Code generated by strom. DO NOT EDIT.
// source: minecraft-data/pc/26.2/protocol.json (sha256:7ba66411adcc68a668f38211e1b00eeb386a345d5eb16fadd6dc1c7f94bb175f)
// version: (devel) (go1.26.2)
// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2)
package v26_2
import (
@@ -22192,7 +22192,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Decode(r io.ReadSeeker) (err error
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
var PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp float32
err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTrackedWaypointWaypointDataAzimuthTmp)
@@ -22299,7 +22299,7 @@ func (ret *PlayToClientPacketTrackedWaypoint) Encode(w io.Writer) (err error) {
if err != nil {
return
}
switch ret.Waypoint.Type {
switch ret.Waypoint.Anon {
case "azimuth":
PlayToClientPacketTrackedWaypointWaypointData, ok := ret.Waypoint.Data.(float32)
if !ok {