// Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.16.2/protocol.json (sha256:d96a3c5a7a7ddf2105e23990c2471b3aeafe4a6975e0c9d7d7943b599af9dfb3) // version: v0.6.6-0.20260805191907-f4c27628815b+dirty (go1.26.2) package v1_16_5 import ( "encoding/binary" "io" "github.com/admin-else/strom/mc/proto_base" "github.com/admin-else/strom/mc/nbt" "github.com/google/uuid" ) type ByteArray struct { Val []byte } func (ret *ByteArray) Decode(r io.ReadSeeker) (err error) { var lByteArray int32 lByteArray, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Val, err = io.ReadAll(io.LimitReader(r, int64(lByteArray))) if err != nil { return } return } func (ret *ByteArray) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.Val))) if err != nil { return } _, err = w.Write(ret.Val) if err != nil { return } return } type CommandNode struct { Flags struct { Unused uint8 HasCustomSuggestions bool HasRedirectNode bool HasCommand bool CommandNodeType uint8 } Children []int32 RedirectNode any ExtraNodeData any } var CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmpMap = map[int32]string{0: "SINGLE_WORD", 1: "QUOTABLE_PHRASE", 2: "GREEDY_PHRASE"} func (ret *CommandNode) Decode(r io.ReadSeeker) (err error) { var CommandNodeFlagsPacked uint8 err = binary.Read(r, binary.BigEndian, &CommandNodeFlagsPacked) if err != nil { return } ret.Flags.CommandNodeType = CommandNodeFlagsPacked >> 0 & 3 ret.Flags.HasCommand = CommandNodeFlagsPacked>>2&1 == 1 ret.Flags.HasRedirectNode = CommandNodeFlagsPacked>>3&1 == 1 ret.Flags.HasCustomSuggestions = CommandNodeFlagsPacked>>4&1 == 1 ret.Flags.Unused = CommandNodeFlagsPacked >> 5 & 7 var lCommandNodeChildren int32 lCommandNodeChildren, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Children = []int32{} for range lCommandNodeChildren { var CommandNodeChildrenElement int32 CommandNodeChildrenElement, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Children = append(ret.Children, CommandNodeChildrenElement) } switch ret.Flags.HasRedirectNode { case true: var CommandNodeRedirectNode1Tmp int32 CommandNodeRedirectNode1Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.RedirectNode = CommandNodeRedirectNode1Tmp default: var CommandNodeRedirectNodeTmp struct { } ret.RedirectNode = CommandNodeRedirectNodeTmp } switch ret.Flags.CommandNodeType { case 0: var CommandNodeExtraNodeData0Tmp struct { } ret.ExtraNodeData = CommandNodeExtraNodeData0Tmp case 1: var CommandNodeExtraNodeData1Tmp struct { Name string } CommandNodeExtraNodeData1Tmp.Name, err = proto_base.DecodeString(r) if err != nil { return } ret.ExtraNodeData = CommandNodeExtraNodeData1Tmp case 2: var CommandNodeExtraNodeData2Tmp struct { Name string Parser string Properties any SuggestionType any } CommandNodeExtraNodeData2Tmp.Name, err = proto_base.DecodeString(r) if err != nil { return } CommandNodeExtraNodeData2Tmp.Parser, err = proto_base.DecodeString(r) if err != nil { return } switch CommandNodeExtraNodeData2Tmp.Parser { case "brigadier:bool": var CommandNodeExtraNodeData2TmpPropertiesBrigadierBoolTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesBrigadierBoolTmp case "brigadier:double": var CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any } var CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpFlagsPacked uint8 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpFlagsPacked) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Flags.MinPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpFlagsPacked>>0&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Flags.MaxPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpFlagsPacked>>1&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Flags.Unused = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpFlagsPacked >> 2 & 63 switch CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Flags.MinPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMin1Tmp float64 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMin1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMin1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMinTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMinTmp } switch CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Flags.MaxPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMax1Tmp float64 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMax1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMax1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMaxTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmpMaxTmp } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesBrigadierDoubleTmp case "brigadier:float": var CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any } var CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpFlagsPacked uint8 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpFlagsPacked) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Flags.MinPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpFlagsPacked>>0&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Flags.MaxPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpFlagsPacked>>1&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Flags.Unused = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpFlagsPacked >> 2 & 63 switch CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Flags.MinPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMin1Tmp float32 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMin1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMin1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMinTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMinTmp } switch CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Flags.MaxPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMax1Tmp float32 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMax1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMax1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMaxTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmpMaxTmp } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesBrigadierFloatTmp case "brigadier:integer": var CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any } var CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpFlagsPacked uint8 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpFlagsPacked) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Flags.MinPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpFlagsPacked>>0&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Flags.MaxPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpFlagsPacked>>1&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Flags.Unused = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpFlagsPacked >> 2 & 63 switch CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Flags.MinPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMin1Tmp int32 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMin1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMin1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMinTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMinTmp } switch CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Flags.MaxPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMax1Tmp int32 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMax1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMax1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMaxTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmpMaxTmp } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesBrigadierIntegerTmp case "brigadier:long": var CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any } var CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpFlagsPacked uint8 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpFlagsPacked) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Flags.MinPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpFlagsPacked>>0&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Flags.MaxPresent = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpFlagsPacked>>1&1 == 1 CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Flags.Unused = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpFlagsPacked >> 2 & 63 switch CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Flags.MinPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMin1Tmp int64 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMin1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMin1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMinTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Min = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMinTmp } switch CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Flags.MaxPresent { case true: var CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMax1Tmp int64 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMax1Tmp) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMax1Tmp default: var CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMaxTmp struct { } CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp.Max = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmpMaxTmp } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesBrigadierLongTmp case "brigadier:string": var CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmp string var CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmpKey int32 CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmpKey, err = proto_base.DecodeVarInt(r) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmp, err = proto_base.ErroringIndex(CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmpMap, CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmpKey) if err != nil { return } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesBrigadierStringTmp case "minecraft:angle": var CommandNodeExtraNodeData2TmpPropertiesMinecraftAngleTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftAngleTmp case "minecraft:block_pos": var CommandNodeExtraNodeData2TmpPropertiesMinecraftBlockPosTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftBlockPosTmp case "minecraft:block_predicate": var CommandNodeExtraNodeData2TmpPropertiesMinecraftBlockPredicateTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftBlockPredicateTmp case "minecraft:block_state": var CommandNodeExtraNodeData2TmpPropertiesMinecraftBlockStateTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftBlockStateTmp case "minecraft:color": var CommandNodeExtraNodeData2TmpPropertiesMinecraftColorTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftColorTmp case "minecraft:column_pos": var CommandNodeExtraNodeData2TmpPropertiesMinecraftColumnPosTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftColumnPosTmp case "minecraft:component": var CommandNodeExtraNodeData2TmpPropertiesMinecraftComponentTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftComponentTmp case "minecraft:dimension": var CommandNodeExtraNodeData2TmpPropertiesMinecraftDimensionTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftDimensionTmp case "minecraft:entity": var CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmp struct { Unused uint8 OnlyAllowPlayers bool OnlyAllowEntities bool } var CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmpPacked uint8 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmpPacked) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmp.OnlyAllowEntities = CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmpPacked>>0&1 == 1 CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmp.OnlyAllowPlayers = CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmpPacked>>1&1 == 1 CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmp.Unused = CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmpPacked >> 2 & 63 CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityTmp case "minecraft:entity_anchor": var CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityAnchorTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftEntityAnchorTmp case "minecraft:entity_summon": var CommandNodeExtraNodeData2TmpPropertiesMinecraftEntitySummonTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftEntitySummonTmp case "minecraft:float_range": var CommandNodeExtraNodeData2TmpPropertiesMinecraftFloatRangeTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftFloatRangeTmp case "minecraft:function": var CommandNodeExtraNodeData2TmpPropertiesMinecraftFunctionTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftFunctionTmp case "minecraft:game_profile": var CommandNodeExtraNodeData2TmpPropertiesMinecraftGameProfileTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftGameProfileTmp case "minecraft:int_range": var CommandNodeExtraNodeData2TmpPropertiesMinecraftIntRangeTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftIntRangeTmp case "minecraft:item_enchantment": var CommandNodeExtraNodeData2TmpPropertiesMinecraftItemEnchantmentTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftItemEnchantmentTmp case "minecraft:item_predicate": var CommandNodeExtraNodeData2TmpPropertiesMinecraftItemPredicateTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftItemPredicateTmp case "minecraft:item_slot": var CommandNodeExtraNodeData2TmpPropertiesMinecraftItemSlotTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftItemSlotTmp case "minecraft:item_stack": var CommandNodeExtraNodeData2TmpPropertiesMinecraftItemStackTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftItemStackTmp case "minecraft:message": var CommandNodeExtraNodeData2TmpPropertiesMinecraftMessageTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftMessageTmp case "minecraft:mob_effect": var CommandNodeExtraNodeData2TmpPropertiesMinecraftMobEffectTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftMobEffectTmp case "minecraft:nbt": var CommandNodeExtraNodeData2TmpPropertiesMinecraftNbtTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftNbtTmp case "minecraft:nbt_compound_tag": var CommandNodeExtraNodeData2TmpPropertiesMinecraftNbtCompoundTagTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftNbtCompoundTagTmp case "minecraft:nbt_path": var CommandNodeExtraNodeData2TmpPropertiesMinecraftNbtPathTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftNbtPathTmp case "minecraft:objective": var CommandNodeExtraNodeData2TmpPropertiesMinecraftObjectiveTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftObjectiveTmp case "minecraft:objective_criteria": var CommandNodeExtraNodeData2TmpPropertiesMinecraftObjectiveCriteriaTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftObjectiveCriteriaTmp case "minecraft:operation": var CommandNodeExtraNodeData2TmpPropertiesMinecraftOperationTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftOperationTmp case "minecraft:particle": var CommandNodeExtraNodeData2TmpPropertiesMinecraftParticleTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftParticleTmp case "minecraft:range": var CommandNodeExtraNodeData2TmpPropertiesMinecraftRangeTmp struct { AllowDecimals bool } err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesMinecraftRangeTmp.AllowDecimals) if err != nil { return } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftRangeTmp case "minecraft:resource": var CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceTmp struct { Registry string } CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceTmp.Registry, err = proto_base.DecodeString(r) if err != nil { return } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceTmp case "minecraft:resource_location": var CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceLocationTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceLocationTmp case "minecraft:resource_or_tag": var CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceOrTagTmp struct { Registry string } CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceOrTagTmp.Registry, err = proto_base.DecodeString(r) if err != nil { return } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftResourceOrTagTmp case "minecraft:rotation": var CommandNodeExtraNodeData2TmpPropertiesMinecraftRotationTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftRotationTmp case "minecraft:score_holder": var CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmp struct { Unused uint8 AllowMultiple bool } var CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmpPacked uint8 err = binary.Read(r, binary.BigEndian, &CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmpPacked) if err != nil { return } CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmp.AllowMultiple = CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmpPacked>>0&1 == 1 CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmp.Unused = CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmpPacked >> 1 & 127 CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreHolderTmp case "minecraft:scoreboard_slot": var CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreboardSlotTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftScoreboardSlotTmp case "minecraft:swizzle": var CommandNodeExtraNodeData2TmpPropertiesMinecraftSwizzleTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftSwizzleTmp case "minecraft:team": var CommandNodeExtraNodeData2TmpPropertiesMinecraftTeamTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftTeamTmp case "minecraft:time": var CommandNodeExtraNodeData2TmpPropertiesMinecraftTimeTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftTimeTmp case "minecraft:uuid": var CommandNodeExtraNodeData2TmpPropertiesMinecraftUuidTmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftUuidTmp case "minecraft:vec2": var CommandNodeExtraNodeData2TmpPropertiesMinecraftVec2Tmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftVec2Tmp case "minecraft:vec3": var CommandNodeExtraNodeData2TmpPropertiesMinecraftVec3Tmp struct { } CommandNodeExtraNodeData2Tmp.Properties = CommandNodeExtraNodeData2TmpPropertiesMinecraftVec3Tmp } switch ret.Flags.HasCustomSuggestions { case true: var CommandNodeExtraNodeData2TmpSuggestionType1Tmp string CommandNodeExtraNodeData2TmpSuggestionType1Tmp, err = proto_base.DecodeString(r) if err != nil { return } CommandNodeExtraNodeData2Tmp.SuggestionType = CommandNodeExtraNodeData2TmpSuggestionType1Tmp default: var CommandNodeExtraNodeData2TmpSuggestionTypeTmp struct { } CommandNodeExtraNodeData2Tmp.SuggestionType = CommandNodeExtraNodeData2TmpSuggestionTypeTmp } ret.ExtraNodeData = CommandNodeExtraNodeData2Tmp } return } var CommandNodeExtraNodeDataPropertiesReverseMap = map[string]int32{"SINGLE_WORD": 0, "QUOTABLE_PHRASE": 1, "GREEDY_PHRASE": 2} func (ret *CommandNode) Encode(w io.Writer) (err error) { var CommandNodeFlagsPacked uint8 CommandNodeFlagsPacked |= (uint8(ret.Flags.CommandNodeType) & 0x3) << 0x0 CommandNodeFlagsPacked |= (proto_base.Bool2uint8(ret.Flags.HasCommand) & 0x1) << 0x2 CommandNodeFlagsPacked |= (proto_base.Bool2uint8(ret.Flags.HasRedirectNode) & 0x1) << 0x3 CommandNodeFlagsPacked |= (proto_base.Bool2uint8(ret.Flags.HasCustomSuggestions) & 0x1) << 0x4 CommandNodeFlagsPacked |= (uint8(ret.Flags.Unused) & 0x7) << 0x5 err = binary.Write(w, binary.BigEndian, CommandNodeFlagsPacked) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Children))) if err != nil { return } for iCommandNodeChildren := range len(ret.Children) { err = proto_base.EncodeVarInt(w, ret.Children[iCommandNodeChildren]) if err != nil { return } } switch ret.Flags.HasRedirectNode { case true: CommandNodeRedirectNode, ok := ret.RedirectNode.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, CommandNodeRedirectNode) if err != nil { return } default: _, ok := ret.RedirectNode.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Flags.CommandNodeType { case 0: _, ok := ret.ExtraNodeData.(struct { }) if !ok { err = proto_base.BadTypeError return } case 1: CommandNodeExtraNodeData, ok := ret.ExtraNodeData.(struct { Name string }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, CommandNodeExtraNodeData.Name) if err != nil { return } case 2: CommandNodeExtraNodeData, ok := ret.ExtraNodeData.(struct { Name string Parser string Properties any SuggestionType any }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, CommandNodeExtraNodeData.Name) if err != nil { return } err = proto_base.EncodeString(w, CommandNodeExtraNodeData.Parser) if err != nil { return } switch CommandNodeExtraNodeData.Parser { case "brigadier:bool": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "brigadier:double": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any }) if !ok { err = proto_base.BadTypeError return } var CommandNodeExtraNodeDataPropertiesFlagsPacked uint8 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MinPresent) & 0x1) << 0x0 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MaxPresent) & 0x1) << 0x1 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (uint8(CommandNodeExtraNodeDataProperties.Flags.Unused) & 0x3F) << 0x2 err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesFlagsPacked) if err != nil { return } switch CommandNodeExtraNodeDataProperties.Flags.MinPresent { case true: CommandNodeExtraNodeDataPropertiesMin, ok := CommandNodeExtraNodeDataProperties.Min.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMin) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Min.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch CommandNodeExtraNodeDataProperties.Flags.MaxPresent { case true: CommandNodeExtraNodeDataPropertiesMax, ok := CommandNodeExtraNodeDataProperties.Max.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMax) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Max.(struct { }) if !ok { err = proto_base.BadTypeError return } } case "brigadier:float": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any }) if !ok { err = proto_base.BadTypeError return } var CommandNodeExtraNodeDataPropertiesFlagsPacked uint8 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MinPresent) & 0x1) << 0x0 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MaxPresent) & 0x1) << 0x1 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (uint8(CommandNodeExtraNodeDataProperties.Flags.Unused) & 0x3F) << 0x2 err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesFlagsPacked) if err != nil { return } switch CommandNodeExtraNodeDataProperties.Flags.MinPresent { case true: CommandNodeExtraNodeDataPropertiesMin, ok := CommandNodeExtraNodeDataProperties.Min.(float32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMin) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Min.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch CommandNodeExtraNodeDataProperties.Flags.MaxPresent { case true: CommandNodeExtraNodeDataPropertiesMax, ok := CommandNodeExtraNodeDataProperties.Max.(float32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMax) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Max.(struct { }) if !ok { err = proto_base.BadTypeError return } } case "brigadier:integer": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any }) if !ok { err = proto_base.BadTypeError return } var CommandNodeExtraNodeDataPropertiesFlagsPacked uint8 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MinPresent) & 0x1) << 0x0 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MaxPresent) & 0x1) << 0x1 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (uint8(CommandNodeExtraNodeDataProperties.Flags.Unused) & 0x3F) << 0x2 err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesFlagsPacked) if err != nil { return } switch CommandNodeExtraNodeDataProperties.Flags.MinPresent { case true: CommandNodeExtraNodeDataPropertiesMin, ok := CommandNodeExtraNodeDataProperties.Min.(int32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMin) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Min.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch CommandNodeExtraNodeDataProperties.Flags.MaxPresent { case true: CommandNodeExtraNodeDataPropertiesMax, ok := CommandNodeExtraNodeDataProperties.Max.(int32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMax) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Max.(struct { }) if !ok { err = proto_base.BadTypeError return } } case "brigadier:long": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Flags struct { Unused uint8 MaxPresent bool MinPresent bool } Min any Max any }) if !ok { err = proto_base.BadTypeError return } var CommandNodeExtraNodeDataPropertiesFlagsPacked uint8 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MinPresent) & 0x1) << 0x0 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.Flags.MaxPresent) & 0x1) << 0x1 CommandNodeExtraNodeDataPropertiesFlagsPacked |= (uint8(CommandNodeExtraNodeDataProperties.Flags.Unused) & 0x3F) << 0x2 err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesFlagsPacked) if err != nil { return } switch CommandNodeExtraNodeDataProperties.Flags.MinPresent { case true: CommandNodeExtraNodeDataPropertiesMin, ok := CommandNodeExtraNodeDataProperties.Min.(int64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMin) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Min.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch CommandNodeExtraNodeDataProperties.Flags.MaxPresent { case true: CommandNodeExtraNodeDataPropertiesMax, ok := CommandNodeExtraNodeDataProperties.Max.(int64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesMax) if err != nil { return } default: _, ok := CommandNodeExtraNodeDataProperties.Max.(struct { }) if !ok { err = proto_base.BadTypeError return } } case "brigadier:string": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(string) if !ok { err = proto_base.BadTypeError return } var vCommandNodeExtraNodeDataProperties int32 vCommandNodeExtraNodeDataProperties, err = proto_base.ErroringIndex(CommandNodeExtraNodeDataPropertiesReverseMap, CommandNodeExtraNodeDataProperties) if err != nil { return } err = proto_base.EncodeVarInt(w, vCommandNodeExtraNodeDataProperties) if err != nil { return } case "minecraft:angle": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:block_pos": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:block_predicate": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:block_state": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:color": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:column_pos": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:component": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:dimension": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:entity": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Unused uint8 OnlyAllowPlayers bool OnlyAllowEntities bool }) if !ok { err = proto_base.BadTypeError return } var CommandNodeExtraNodeDataPropertiesPacked uint8 CommandNodeExtraNodeDataPropertiesPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.OnlyAllowEntities) & 0x1) << 0x0 CommandNodeExtraNodeDataPropertiesPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.OnlyAllowPlayers) & 0x1) << 0x1 CommandNodeExtraNodeDataPropertiesPacked |= (uint8(CommandNodeExtraNodeDataProperties.Unused) & 0x3F) << 0x2 err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesPacked) if err != nil { return } case "minecraft:entity_anchor": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:entity_summon": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:float_range": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:function": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:game_profile": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:int_range": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:item_enchantment": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:item_predicate": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:item_slot": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:item_stack": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:message": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:mob_effect": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:nbt": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:nbt_compound_tag": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:nbt_path": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:objective": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:objective_criteria": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:operation": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:particle": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:range": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { AllowDecimals bool }) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataProperties.AllowDecimals) if err != nil { return } case "minecraft:resource": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Registry string }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, CommandNodeExtraNodeDataProperties.Registry) if err != nil { return } case "minecraft:resource_location": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:resource_or_tag": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Registry string }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, CommandNodeExtraNodeDataProperties.Registry) if err != nil { return } case "minecraft:rotation": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:score_holder": CommandNodeExtraNodeDataProperties, ok := CommandNodeExtraNodeData.Properties.(struct { Unused uint8 AllowMultiple bool }) if !ok { err = proto_base.BadTypeError return } var CommandNodeExtraNodeDataPropertiesPacked uint8 CommandNodeExtraNodeDataPropertiesPacked |= (proto_base.Bool2uint8(CommandNodeExtraNodeDataProperties.AllowMultiple) & 0x1) << 0x0 CommandNodeExtraNodeDataPropertiesPacked |= (uint8(CommandNodeExtraNodeDataProperties.Unused) & 0x7F) << 0x1 err = binary.Write(w, binary.BigEndian, CommandNodeExtraNodeDataPropertiesPacked) if err != nil { return } case "minecraft:scoreboard_slot": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:swizzle": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:team": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:time": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:uuid": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:vec2": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:vec3": _, ok := CommandNodeExtraNodeData.Properties.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Flags.HasCustomSuggestions { case true: CommandNodeExtraNodeDataSuggestionType, ok := CommandNodeExtraNodeData.SuggestionType.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, CommandNodeExtraNodeDataSuggestionType) if err != nil { return } default: _, ok := CommandNodeExtraNodeData.SuggestionType.(struct { }) if !ok { err = proto_base.BadTypeError return } } } return } type EntityMetadata struct { Val map[byte]struct { Anon struct { Key uint8 Type int32 } Value any } } func (ret *EntityMetadata) Decode(r io.ReadSeeker) (err error) { ret.Val = make(map[uint8]struct { Anon struct { Key uint8 Type int32 } Value any }) var id uint8 for { err = binary.Read(r, binary.BigEndian, &id) if err != nil { return } if id == 255 { break } _, err = r.Seek(-1, io.SeekCurrent) if err != nil { return } var entry struct { Anon struct { Key uint8 Type int32 } Value any } err = binary.Read(r, binary.BigEndian, &entry.Anon.Key) if err != nil { return } entry.Anon.Type, err = proto_base.DecodeVarInt(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 } return } func (ret *EntityMetadata) Encode(w io.Writer) (err error) { for _, v := range ret.Val { err = binary.Write(w, binary.BigEndian, v.Anon.Key) if err != nil { return } err = proto_base.EncodeVarInt(w, v.Anon.Type) 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)) if err != nil { return } return } type EntityMetadataItem struct { Val any } func (ret *EntityMetadataItem) Decode(r io.ReadSeeker) (err error) { err = proto_base.ToDoError return } func (ret *EntityMetadataItem) Encode(w io.Writer) (err error) { err = proto_base.ToDoError return } type Ingredient struct { Val []Slot } func (ret *Ingredient) Decode(r io.ReadSeeker) (err error) { var lIngredient int32 lIngredient, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Val = []Slot{} for range lIngredient { var IngredientElement Slot err = IngredientElement.Decode(r) if err != nil { return } ret.Val = append(ret.Val, IngredientElement) } return } func (ret *Ingredient) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.Val))) if err != nil { return } for iIngredient := range len(ret.Val) { IngredientInnerEncTmp := ret.Val[iIngredient] err = IngredientInnerEncTmp.Encode(w) if err != nil { return } } return } type MinecraftSmeltingFormat struct { Group string Ingredient Ingredient Result Slot Experience float32 CookTime int32 } func (ret *MinecraftSmeltingFormat) Decode(r io.ReadSeeker) (err error) { ret.Group, err = proto_base.DecodeString(r) if err != nil { return } err = ret.Ingredient.Decode(r) if err != nil { return } err = ret.Result.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Experience) if err != nil { return } ret.CookTime, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *MinecraftSmeltingFormat) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Group) if err != nil { return } MinecraftSmeltingFormatIngredientEncTmp := ret.Ingredient err = MinecraftSmeltingFormatIngredientEncTmp.Encode(w) if err != nil { return } MinecraftSmeltingFormatResultEncTmp := ret.Result err = MinecraftSmeltingFormatResultEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Experience) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.CookTime) if err != nil { return } return } type Optvarint struct { Val int32 } func (ret *Optvarint) Decode(r io.ReadSeeker) (err error) { ret.Val, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *Optvarint) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Val) if err != nil { return } return } type Particle struct { ParticleId int32 Data any } func (ret *Particle) Decode(r io.ReadSeeker) (err error) { ret.ParticleId, err = proto_base.DecodeVarInt(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 } func (ret *Particle) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ParticleId) 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 } type ParticleData struct { Val any } func (ret *ParticleData) Decode(r io.ReadSeeker) (err error) { err = proto_base.ToDoError return } func (ret *ParticleData) Encode(w io.Writer) (err error) { err = proto_base.ToDoError return } type Position struct { X int32 Z int32 Y int16 } func (ret *Position) Decode(r io.ReadSeeker) (err error) { var PositionPacked uint64 err = binary.Read(r, binary.BigEndian, &PositionPacked) if err != nil { return } ret.Y = int16(PositionPacked >> 0 & 4095) if ret.Y >= 1<<11 { ret.Y -= 1 << 12 } ret.Z = int32(PositionPacked >> 12 & 67108863) if ret.Z >= 1<<25 { ret.Z -= 1 << 26 } ret.X = int32(PositionPacked >> 38 & 67108863) if ret.X >= 1<<25 { ret.X -= 1 << 26 } return } func (ret *Position) Encode(w io.Writer) (err error) { var PositionPacked uint64 PositionPacked |= (uint64(ret.Y) & 0xFFF) << 0x0 PositionPacked |= (uint64(ret.Z) & 0x3FFFFFF) << 0xC PositionPacked |= (uint64(ret.X) & 0x3FFFFFF) << 0x26 err = binary.Write(w, binary.BigEndian, PositionPacked) if err != nil { return } return } type Slot struct { Present bool Anon any } func (ret *Slot) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Present) if err != nil { return } switch ret.Present { case false: var SlotAnonFalseTmp struct { } ret.Anon = SlotAnonFalseTmp case true: var SlotAnonTrueTmp struct { ItemId int32 ItemCount int8 NbtData nbt.Tag } SlotAnonTrueTmp.ItemId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &SlotAnonTrueTmp.ItemCount) if err != nil { return } err = SlotAnonTrueTmp.NbtData.Decode(r) if err != nil { return } ret.Anon = SlotAnonTrueTmp } return } func (ret *Slot) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Present) if err != nil { return } switch ret.Present { case false: _, ok := ret.Anon.(struct { }) if !ok { err = proto_base.BadTypeError return } case true: SlotAnon, ok := ret.Anon.(struct { ItemId int32 ItemCount int8 NbtData nbt.Tag }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, SlotAnon.ItemId) if err != nil { return } err = binary.Write(w, binary.BigEndian, SlotAnon.ItemCount) if err != nil { return } SlotAnonNbtDataEncTmp := SlotAnon.NbtData err = SlotAnonNbtDataEncTmp.Encode(w) if err != nil { return } } return } type Tags struct { Val []struct { TagName string Entries []int32 } } func (ret *Tags) Decode(r io.ReadSeeker) (err error) { var lTags int32 lTags, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Val = []struct { TagName string Entries []int32 }{} for range lTags { var TagsElement struct { TagName string Entries []int32 } TagsElement.TagName, err = proto_base.DecodeString(r) if err != nil { return } var lTagsElementEntries int32 lTagsElementEntries, err = proto_base.DecodeVarInt(r) if err != nil { return } TagsElement.Entries = []int32{} for range lTagsElementEntries { var TagsElementEntriesElement int32 TagsElementEntriesElement, err = proto_base.DecodeVarInt(r) if err != nil { return } TagsElement.Entries = append(TagsElement.Entries, TagsElementEntriesElement) } ret.Val = append(ret.Val, TagsElement) } return } func (ret *Tags) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.Val))) if err != nil { return } for iTags := range len(ret.Val) { err = proto_base.EncodeString(w, ret.Val[iTags].TagName) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Val[iTags].Entries))) if err != nil { return } for iTagsInnerEntries := range len(ret.Val[iTags].Entries) { err = proto_base.EncodeVarInt(w, ret.Val[iTags].Entries[iTagsInnerEntries]) if err != nil { return } } } return } type Vec3i16 struct { X int16 Y int16 Z int16 } func (ret *Vec3i16) Decode(r io.ReadSeeker) (err error) { 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 } return } func (ret *Vec3i16) Encode(w io.Writer) (err error) { 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 } return } type HandshakingToClientPacket struct { Name string Params any } var HandshakingToClientPacketNameMap = map[int32]string{} func (ret *HandshakingToClientPacket) Decode(r io.ReadSeeker) (err error) { var HandshakingToClientPacketNameKey int32 HandshakingToClientPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(HandshakingToClientPacketNameMap, HandshakingToClientPacketNameKey) if err != nil { return } return } var HandshakingToClientPacketNameReverseMap = map[string]int32{} func (ret *HandshakingToClientPacket) Encode(w io.Writer) (err error) { var vHandshakingToClientPacketName int32 vHandshakingToClientPacketName, err = proto_base.ErroringIndex(HandshakingToClientPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vHandshakingToClientPacketName) if err != nil { return } return } type HandshakingToServerPacket struct { Name string Params any } var HandshakingToServerPacketNameMap = map[int32]string{0x00: "set_protocol", 0xfe: "legacy_server_list_ping"} func (ret *HandshakingToServerPacket) Decode(r io.ReadSeeker) (err error) { var HandshakingToServerPacketNameKey int32 HandshakingToServerPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(HandshakingToServerPacketNameMap, HandshakingToServerPacketNameKey) if err != nil { return } switch ret.Name { case "legacy_server_list_ping": var HandshakingToServerPacketParamsLegacyServerListPingTmp HandshakingToServerPacketLegacyServerListPing err = HandshakingToServerPacketParamsLegacyServerListPingTmp.Decode(r) if err != nil { return } ret.Params = HandshakingToServerPacketParamsLegacyServerListPingTmp case "set_protocol": var HandshakingToServerPacketParamsSetProtocolTmp HandshakingToServerPacketSetProtocol err = HandshakingToServerPacketParamsSetProtocolTmp.Decode(r) if err != nil { return } ret.Params = HandshakingToServerPacketParamsSetProtocolTmp } return } var HandshakingToServerPacketNameReverseMap = map[string]int32{"set_protocol": 0x00, "legacy_server_list_ping": 0xfe} func (ret *HandshakingToServerPacket) Encode(w io.Writer) (err error) { var vHandshakingToServerPacketName int32 vHandshakingToServerPacketName, err = proto_base.ErroringIndex(HandshakingToServerPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vHandshakingToServerPacketName) if err != nil { return } switch ret.Name { case "legacy_server_list_ping": HandshakingToServerPacketParams, ok := ret.Params.(HandshakingToServerPacketLegacyServerListPing) if !ok { err = proto_base.BadTypeError return } HandshakingToServerPacketParamsEncTmp := HandshakingToServerPacketParams err = HandshakingToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "set_protocol": HandshakingToServerPacketParams, ok := ret.Params.(HandshakingToServerPacketSetProtocol) if !ok { err = proto_base.BadTypeError return } HandshakingToServerPacketParamsEncTmp := HandshakingToServerPacketParams err = HandshakingToServerPacketParamsEncTmp.Encode(w) if err != nil { return } } return } type HandshakingToServerPacketLegacyServerListPing struct { Payload uint8 } func (ret *HandshakingToServerPacketLegacyServerListPing) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Payload) if err != nil { return } return } func (ret *HandshakingToServerPacketLegacyServerListPing) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Payload) if err != nil { return } return } type HandshakingToServerPacketSetProtocol struct { ProtocolVersion int32 ServerHost string ServerPort uint16 NextState int32 } func (ret *HandshakingToServerPacketSetProtocol) Decode(r io.ReadSeeker) (err error) { ret.ProtocolVersion, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ServerHost, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.ServerPort) if err != nil { return } ret.NextState, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *HandshakingToServerPacketSetProtocol) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ProtocolVersion) if err != nil { return } err = proto_base.EncodeString(w, ret.ServerHost) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.ServerPort) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.NextState) if err != nil { return } return } type LoginToClientPacket struct { Name string Params any } var LoginToClientPacketNameMap = map[int32]string{0x00: "disconnect", 0x01: "encryption_begin", 0x02: "success", 0x03: "compress", 0x04: "login_plugin_request"} func (ret *LoginToClientPacket) Decode(r io.ReadSeeker) (err error) { var LoginToClientPacketNameKey int32 LoginToClientPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(LoginToClientPacketNameMap, LoginToClientPacketNameKey) if err != nil { return } switch ret.Name { case "compress": var LoginToClientPacketParamsCompressTmp LoginToClientPacketCompress err = LoginToClientPacketParamsCompressTmp.Decode(r) if err != nil { return } ret.Params = LoginToClientPacketParamsCompressTmp case "disconnect": var LoginToClientPacketParamsDisconnectTmp LoginToClientPacketDisconnect err = LoginToClientPacketParamsDisconnectTmp.Decode(r) if err != nil { return } ret.Params = LoginToClientPacketParamsDisconnectTmp case "encryption_begin": var LoginToClientPacketParamsEncryptionBeginTmp LoginToClientPacketEncryptionBegin err = LoginToClientPacketParamsEncryptionBeginTmp.Decode(r) if err != nil { return } ret.Params = LoginToClientPacketParamsEncryptionBeginTmp case "login_plugin_request": var LoginToClientPacketParamsLoginPluginRequestTmp LoginToClientPacketLoginPluginRequest err = LoginToClientPacketParamsLoginPluginRequestTmp.Decode(r) if err != nil { return } ret.Params = LoginToClientPacketParamsLoginPluginRequestTmp case "success": var LoginToClientPacketParamsSuccessTmp LoginToClientPacketSuccess err = LoginToClientPacketParamsSuccessTmp.Decode(r) if err != nil { return } ret.Params = LoginToClientPacketParamsSuccessTmp } return } var LoginToClientPacketNameReverseMap = map[string]int32{"disconnect": 0x00, "encryption_begin": 0x01, "success": 0x02, "compress": 0x03, "login_plugin_request": 0x04} func (ret *LoginToClientPacket) Encode(w io.Writer) (err error) { var vLoginToClientPacketName int32 vLoginToClientPacketName, err = proto_base.ErroringIndex(LoginToClientPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vLoginToClientPacketName) if err != nil { return } switch ret.Name { case "compress": LoginToClientPacketParams, ok := ret.Params.(LoginToClientPacketCompress) if !ok { err = proto_base.BadTypeError return } LoginToClientPacketParamsEncTmp := LoginToClientPacketParams err = LoginToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "disconnect": LoginToClientPacketParams, ok := ret.Params.(LoginToClientPacketDisconnect) if !ok { err = proto_base.BadTypeError return } LoginToClientPacketParamsEncTmp := LoginToClientPacketParams err = LoginToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "encryption_begin": LoginToClientPacketParams, ok := ret.Params.(LoginToClientPacketEncryptionBegin) if !ok { err = proto_base.BadTypeError return } LoginToClientPacketParamsEncTmp := LoginToClientPacketParams err = LoginToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "login_plugin_request": LoginToClientPacketParams, ok := ret.Params.(LoginToClientPacketLoginPluginRequest) if !ok { err = proto_base.BadTypeError return } LoginToClientPacketParamsEncTmp := LoginToClientPacketParams err = LoginToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "success": LoginToClientPacketParams, ok := ret.Params.(LoginToClientPacketSuccess) if !ok { err = proto_base.BadTypeError return } LoginToClientPacketParamsEncTmp := LoginToClientPacketParams err = LoginToClientPacketParamsEncTmp.Encode(w) if err != nil { return } } return } type LoginToClientPacketCompress struct { Threshold int32 } func (ret *LoginToClientPacketCompress) Decode(r io.ReadSeeker) (err error) { ret.Threshold, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *LoginToClientPacketCompress) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Threshold) if err != nil { return } return } type LoginToClientPacketDisconnect struct { Reason string } func (ret *LoginToClientPacketDisconnect) Decode(r io.ReadSeeker) (err error) { ret.Reason, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *LoginToClientPacketDisconnect) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Reason) if err != nil { return } return } type LoginToClientPacketEncryptionBegin struct { ServerId string PublicKey []byte VerifyToken []byte } func (ret *LoginToClientPacketEncryptionBegin) Decode(r io.ReadSeeker) (err error) { ret.ServerId, err = proto_base.DecodeString(r) if err != nil { return } var lLoginToClientPacketEncryptionBeginPublicKey int32 lLoginToClientPacketEncryptionBeginPublicKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.PublicKey, err = io.ReadAll(io.LimitReader(r, int64(lLoginToClientPacketEncryptionBeginPublicKey))) if err != nil { return } var lLoginToClientPacketEncryptionBeginVerifyToken int32 lLoginToClientPacketEncryptionBeginVerifyToken, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.VerifyToken, err = io.ReadAll(io.LimitReader(r, int64(lLoginToClientPacketEncryptionBeginVerifyToken))) if err != nil { return } return } func (ret *LoginToClientPacketEncryptionBegin) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.ServerId) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.PublicKey))) if err != nil { return } _, err = w.Write(ret.PublicKey) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.VerifyToken))) if err != nil { return } _, err = w.Write(ret.VerifyToken) if err != nil { return } return } type LoginToClientPacketLoginPluginRequest struct { MessageId int32 Channel string Data proto_base.RestBuffer } func (ret *LoginToClientPacketLoginPluginRequest) Decode(r io.ReadSeeker) (err error) { ret.MessageId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Channel, err = proto_base.DecodeString(r) if err != nil { return } err = ret.Data.Decode(r) if err != nil { return } return } func (ret *LoginToClientPacketLoginPluginRequest) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.MessageId) if err != nil { return } err = proto_base.EncodeString(w, ret.Channel) if err != nil { return } LoginToClientPacketLoginPluginRequestDataEncTmp := ret.Data err = LoginToClientPacketLoginPluginRequestDataEncTmp.Encode(w) if err != nil { return } return } type LoginToClientPacketSuccess struct { Uuid uuid.UUID Username string } func (ret *LoginToClientPacketSuccess) Decode(r io.ReadSeeker) (err error) { _, err = io.ReadFull(r, ret.Uuid[:]) if err != nil { return } ret.Username, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *LoginToClientPacketSuccess) Encode(w io.Writer) (err error) { _, err = w.Write(ret.Uuid[:]) if err != nil { return } err = proto_base.EncodeString(w, ret.Username) if err != nil { return } return } type LoginToServerPacket struct { Name string Params any } var LoginToServerPacketNameMap = map[int32]string{0x00: "login_start", 0x01: "encryption_begin", 0x02: "login_plugin_response"} func (ret *LoginToServerPacket) Decode(r io.ReadSeeker) (err error) { var LoginToServerPacketNameKey int32 LoginToServerPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(LoginToServerPacketNameMap, LoginToServerPacketNameKey) if err != nil { return } switch ret.Name { case "encryption_begin": var LoginToServerPacketParamsEncryptionBeginTmp LoginToServerPacketEncryptionBegin err = LoginToServerPacketParamsEncryptionBeginTmp.Decode(r) if err != nil { return } ret.Params = LoginToServerPacketParamsEncryptionBeginTmp case "login_plugin_response": var LoginToServerPacketParamsLoginPluginResponseTmp LoginToServerPacketLoginPluginResponse err = LoginToServerPacketParamsLoginPluginResponseTmp.Decode(r) if err != nil { return } ret.Params = LoginToServerPacketParamsLoginPluginResponseTmp case "login_start": var LoginToServerPacketParamsLoginStartTmp LoginToServerPacketLoginStart err = LoginToServerPacketParamsLoginStartTmp.Decode(r) if err != nil { return } ret.Params = LoginToServerPacketParamsLoginStartTmp } return } var LoginToServerPacketNameReverseMap = map[string]int32{"login_start": 0x00, "encryption_begin": 0x01, "login_plugin_response": 0x02} func (ret *LoginToServerPacket) Encode(w io.Writer) (err error) { var vLoginToServerPacketName int32 vLoginToServerPacketName, err = proto_base.ErroringIndex(LoginToServerPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vLoginToServerPacketName) if err != nil { return } switch ret.Name { case "encryption_begin": LoginToServerPacketParams, ok := ret.Params.(LoginToServerPacketEncryptionBegin) if !ok { err = proto_base.BadTypeError return } LoginToServerPacketParamsEncTmp := LoginToServerPacketParams err = LoginToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "login_plugin_response": LoginToServerPacketParams, ok := ret.Params.(LoginToServerPacketLoginPluginResponse) if !ok { err = proto_base.BadTypeError return } LoginToServerPacketParamsEncTmp := LoginToServerPacketParams err = LoginToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "login_start": LoginToServerPacketParams, ok := ret.Params.(LoginToServerPacketLoginStart) if !ok { err = proto_base.BadTypeError return } LoginToServerPacketParamsEncTmp := LoginToServerPacketParams err = LoginToServerPacketParamsEncTmp.Encode(w) if err != nil { return } } return } type LoginToServerPacketEncryptionBegin struct { SharedSecret []byte VerifyToken []byte } func (ret *LoginToServerPacketEncryptionBegin) Decode(r io.ReadSeeker) (err error) { var lLoginToServerPacketEncryptionBeginSharedSecret int32 lLoginToServerPacketEncryptionBeginSharedSecret, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.SharedSecret, err = io.ReadAll(io.LimitReader(r, int64(lLoginToServerPacketEncryptionBeginSharedSecret))) if err != nil { return } var lLoginToServerPacketEncryptionBeginVerifyToken int32 lLoginToServerPacketEncryptionBeginVerifyToken, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.VerifyToken, err = io.ReadAll(io.LimitReader(r, int64(lLoginToServerPacketEncryptionBeginVerifyToken))) if err != nil { return } return } func (ret *LoginToServerPacketEncryptionBegin) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.SharedSecret))) if err != nil { return } _, err = w.Write(ret.SharedSecret) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.VerifyToken))) if err != nil { return } _, err = w.Write(ret.VerifyToken) if err != nil { return } return } type LoginToServerPacketLoginPluginResponse struct { MessageId int32 Data *proto_base.RestBuffer } func (ret *LoginToServerPacketLoginPluginResponse) Decode(r io.ReadSeeker) (err error) { ret.MessageId, err = proto_base.DecodeVarInt(r) if err != nil { return } var LoginToServerPacketLoginPluginResponseDataPresent bool err = binary.Read(r, binary.BigEndian, &LoginToServerPacketLoginPluginResponseDataPresent) if err != nil { return } if LoginToServerPacketLoginPluginResponseDataPresent { var LoginToServerPacketLoginPluginResponseDataPresentValue proto_base.RestBuffer err = LoginToServerPacketLoginPluginResponseDataPresentValue.Decode(r) if err != nil { return } ret.Data = &LoginToServerPacketLoginPluginResponseDataPresentValue } return } func (ret *LoginToServerPacketLoginPluginResponse) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.MessageId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Data != nil) if err != nil { return } if ret.Data != nil { LoginToServerPacketLoginPluginResponseDataEncTmp := *ret.Data err = LoginToServerPacketLoginPluginResponseDataEncTmp.Encode(w) if err != nil { return } } return } type LoginToServerPacketLoginStart struct { Username string } func (ret *LoginToServerPacketLoginStart) Decode(r io.ReadSeeker) (err error) { ret.Username, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *LoginToServerPacketLoginStart) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Username) if err != nil { return } return } type PlayToClientPacket struct { Name string Params any } var PlayToClientPacketNameMap = map[int32]string{0x00: "spawn_entity", 0x01: "spawn_entity_experience_orb", 0x02: "spawn_entity_living", 0x03: "spawn_entity_painting", 0x04: "named_entity_spawn", 0x05: "animation", 0x06: "statistics", 0x07: "acknowledge_player_digging", 0x08: "block_break_animation", 0x09: "tile_entity_data", 0x0a: "block_action", 0x0b: "block_change", 0x0c: "boss_bar", 0x0d: "difficulty", 0x0e: "chat", 0x0f: "tab_complete", 0x10: "declare_commands", 0x11: "transaction", 0x12: "close_window", 0x13: "window_items", 0x14: "craft_progress_bar", 0x15: "set_slot", 0x16: "set_cooldown", 0x17: "custom_payload", 0x18: "named_sound_effect", 0x19: "kick_disconnect", 0x1a: "entity_status", 0x1b: "explosion", 0x1c: "unload_chunk", 0x1d: "game_state_change", 0x1e: "open_horse_window", 0x1f: "keep_alive", 0x20: "map_chunk", 0x21: "world_event", 0x22: "world_particles", 0x23: "update_light", 0x24: "login", 0x25: "map", 0x26: "trade_list", 0x27: "rel_entity_move", 0x28: "entity_move_look", 0x29: "entity_look", 0x2a: "entity", 0x2b: "vehicle_move", 0x2c: "open_book", 0x2d: "open_window", 0x2e: "open_sign_entity", 0x2f: "craft_recipe_response", 0x30: "abilities", 0x31: "combat_event", 0x32: "player_info", 0x33: "face_player", 0x34: "position", 0x35: "unlock_recipes", 0x36: "entity_destroy", 0x37: "remove_entity_effect", 0x38: "resource_pack_send", 0x39: "respawn", 0x3a: "entity_head_rotation", 0x3b: "multi_block_change", 0x3c: "select_advancement_tab", 0x3d: "world_border", 0x3e: "camera", 0x3f: "held_item_slot", 0x40: "update_view_position", 0x41: "update_view_distance", 0x42: "spawn_position", 0x43: "scoreboard_display_objective", 0x44: "entity_metadata", 0x45: "attach_entity", 0x46: "entity_velocity", 0x47: "entity_equipment", 0x48: "experience", 0x49: "update_health", 0x4a: "scoreboard_objective", 0x4b: "set_passengers", 0x4c: "teams", 0x4d: "scoreboard_score", 0x4e: "update_time", 0x4f: "title", 0x50: "entity_sound_effect", 0x51: "sound_effect", 0x52: "stop_sound", 0x53: "playerlist_header", 0x54: "nbt_query_response", 0x55: "collect", 0x56: "entity_teleport", 0x57: "advancements", 0x58: "entity_update_attributes", 0x59: "entity_effect", 0x5a: "declare_recipes", 0x5b: "tags"} func (ret *PlayToClientPacket) Decode(r io.ReadSeeker) (err error) { var PlayToClientPacketNameKey int32 PlayToClientPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(PlayToClientPacketNameMap, PlayToClientPacketNameKey) if err != nil { return } switch ret.Name { case "abilities": var PlayToClientPacketParamsAbilitiesTmp PlayToClientPacketAbilities err = PlayToClientPacketParamsAbilitiesTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsAbilitiesTmp case "acknowledge_player_digging": var PlayToClientPacketParamsAcknowledgePlayerDiggingTmp PlayToClientPacketAcknowledgePlayerDigging err = PlayToClientPacketParamsAcknowledgePlayerDiggingTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsAcknowledgePlayerDiggingTmp case "advancements": var PlayToClientPacketParamsAdvancementsTmp PlayToClientPacketAdvancements err = PlayToClientPacketParamsAdvancementsTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsAdvancementsTmp case "animation": var PlayToClientPacketParamsAnimationTmp PlayToClientPacketAnimation err = PlayToClientPacketParamsAnimationTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsAnimationTmp case "attach_entity": var PlayToClientPacketParamsAttachEntityTmp PlayToClientPacketAttachEntity err = PlayToClientPacketParamsAttachEntityTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsAttachEntityTmp case "block_action": var PlayToClientPacketParamsBlockActionTmp PlayToClientPacketBlockAction err = PlayToClientPacketParamsBlockActionTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsBlockActionTmp case "block_break_animation": var PlayToClientPacketParamsBlockBreakAnimationTmp PlayToClientPacketBlockBreakAnimation err = PlayToClientPacketParamsBlockBreakAnimationTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsBlockBreakAnimationTmp case "block_change": var PlayToClientPacketParamsBlockChangeTmp PlayToClientPacketBlockChange err = PlayToClientPacketParamsBlockChangeTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsBlockChangeTmp case "boss_bar": var PlayToClientPacketParamsBossBarTmp PlayToClientPacketBossBar err = PlayToClientPacketParamsBossBarTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsBossBarTmp case "camera": var PlayToClientPacketParamsCameraTmp PlayToClientPacketCamera err = PlayToClientPacketParamsCameraTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsCameraTmp case "chat": var PlayToClientPacketParamsChatTmp PlayToClientPacketChat err = PlayToClientPacketParamsChatTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsChatTmp case "close_window": var PlayToClientPacketParamsCloseWindowTmp PlayToClientPacketCloseWindow err = PlayToClientPacketParamsCloseWindowTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsCloseWindowTmp case "collect": var PlayToClientPacketParamsCollectTmp PlayToClientPacketCollect err = PlayToClientPacketParamsCollectTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsCollectTmp case "combat_event": var PlayToClientPacketParamsCombatEventTmp PlayToClientPacketCombatEvent err = PlayToClientPacketParamsCombatEventTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsCombatEventTmp case "craft_progress_bar": var PlayToClientPacketParamsCraftProgressBarTmp PlayToClientPacketCraftProgressBar err = PlayToClientPacketParamsCraftProgressBarTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsCraftProgressBarTmp case "craft_recipe_response": var PlayToClientPacketParamsCraftRecipeResponseTmp PlayToClientPacketCraftRecipeResponse err = PlayToClientPacketParamsCraftRecipeResponseTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsCraftRecipeResponseTmp case "custom_payload": var PlayToClientPacketParamsCustomPayloadTmp PlayToClientPacketCustomPayload err = PlayToClientPacketParamsCustomPayloadTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsCustomPayloadTmp case "declare_commands": var PlayToClientPacketParamsDeclareCommandsTmp PlayToClientPacketDeclareCommands err = PlayToClientPacketParamsDeclareCommandsTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsDeclareCommandsTmp case "declare_recipes": var PlayToClientPacketParamsDeclareRecipesTmp PlayToClientPacketDeclareRecipes err = PlayToClientPacketParamsDeclareRecipesTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsDeclareRecipesTmp case "difficulty": var PlayToClientPacketParamsDifficultyTmp PlayToClientPacketDifficulty err = PlayToClientPacketParamsDifficultyTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsDifficultyTmp case "entity": var PlayToClientPacketParamsEntityTmp PlayToClientPacketEntity err = PlayToClientPacketParamsEntityTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityTmp case "entity_destroy": var PlayToClientPacketParamsEntityDestroyTmp PlayToClientPacketEntityDestroy err = PlayToClientPacketParamsEntityDestroyTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityDestroyTmp case "entity_effect": var PlayToClientPacketParamsEntityEffectTmp PlayToClientPacketEntityEffect err = PlayToClientPacketParamsEntityEffectTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityEffectTmp case "entity_equipment": var PlayToClientPacketParamsEntityEquipmentTmp PlayToClientPacketEntityEquipment err = PlayToClientPacketParamsEntityEquipmentTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityEquipmentTmp case "entity_head_rotation": var PlayToClientPacketParamsEntityHeadRotationTmp PlayToClientPacketEntityHeadRotation err = PlayToClientPacketParamsEntityHeadRotationTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityHeadRotationTmp case "entity_look": var PlayToClientPacketParamsEntityLookTmp PlayToClientPacketEntityLook err = PlayToClientPacketParamsEntityLookTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityLookTmp case "entity_metadata": var PlayToClientPacketParamsEntityMetadataTmp PlayToClientPacketEntityMetadata err = PlayToClientPacketParamsEntityMetadataTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityMetadataTmp case "entity_move_look": var PlayToClientPacketParamsEntityMoveLookTmp PlayToClientPacketEntityMoveLook err = PlayToClientPacketParamsEntityMoveLookTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityMoveLookTmp case "entity_sound_effect": var PlayToClientPacketParamsEntitySoundEffectTmp PlayToClientPacketEntitySoundEffect err = PlayToClientPacketParamsEntitySoundEffectTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntitySoundEffectTmp case "entity_status": var PlayToClientPacketParamsEntityStatusTmp PlayToClientPacketEntityStatus err = PlayToClientPacketParamsEntityStatusTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityStatusTmp case "entity_teleport": var PlayToClientPacketParamsEntityTeleportTmp PlayToClientPacketEntityTeleport err = PlayToClientPacketParamsEntityTeleportTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityTeleportTmp case "entity_update_attributes": var PlayToClientPacketParamsEntityUpdateAttributesTmp PlayToClientPacketEntityUpdateAttributes err = PlayToClientPacketParamsEntityUpdateAttributesTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityUpdateAttributesTmp case "entity_velocity": var PlayToClientPacketParamsEntityVelocityTmp PlayToClientPacketEntityVelocity err = PlayToClientPacketParamsEntityVelocityTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsEntityVelocityTmp case "experience": var PlayToClientPacketParamsExperienceTmp PlayToClientPacketExperience err = PlayToClientPacketParamsExperienceTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsExperienceTmp case "explosion": var PlayToClientPacketParamsExplosionTmp PlayToClientPacketExplosion err = PlayToClientPacketParamsExplosionTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsExplosionTmp case "face_player": var PlayToClientPacketParamsFacePlayerTmp PlayToClientPacketFacePlayer err = PlayToClientPacketParamsFacePlayerTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsFacePlayerTmp case "game_state_change": var PlayToClientPacketParamsGameStateChangeTmp PlayToClientPacketGameStateChange err = PlayToClientPacketParamsGameStateChangeTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsGameStateChangeTmp case "held_item_slot": var PlayToClientPacketParamsHeldItemSlotTmp PlayToClientPacketHeldItemSlot err = PlayToClientPacketParamsHeldItemSlotTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsHeldItemSlotTmp case "keep_alive": var PlayToClientPacketParamsKeepAliveTmp PlayToClientPacketKeepAlive err = PlayToClientPacketParamsKeepAliveTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsKeepAliveTmp case "kick_disconnect": var PlayToClientPacketParamsKickDisconnectTmp PlayToClientPacketKickDisconnect err = PlayToClientPacketParamsKickDisconnectTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsKickDisconnectTmp case "login": var PlayToClientPacketParamsLoginTmp PlayToClientPacketLogin err = PlayToClientPacketParamsLoginTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsLoginTmp case "map": var PlayToClientPacketParamsMapTmp PlayToClientPacketMap err = PlayToClientPacketParamsMapTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsMapTmp case "map_chunk": var PlayToClientPacketParamsMapChunkTmp PlayToClientPacketMapChunk err = PlayToClientPacketParamsMapChunkTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsMapChunkTmp case "multi_block_change": var PlayToClientPacketParamsMultiBlockChangeTmp PlayToClientPacketMultiBlockChange err = PlayToClientPacketParamsMultiBlockChangeTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsMultiBlockChangeTmp case "named_entity_spawn": var PlayToClientPacketParamsNamedEntitySpawnTmp PlayToClientPacketNamedEntitySpawn err = PlayToClientPacketParamsNamedEntitySpawnTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsNamedEntitySpawnTmp case "named_sound_effect": var PlayToClientPacketParamsNamedSoundEffectTmp PlayToClientPacketNamedSoundEffect err = PlayToClientPacketParamsNamedSoundEffectTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsNamedSoundEffectTmp case "nbt_query_response": var PlayToClientPacketParamsNbtQueryResponseTmp PlayToClientPacketNbtQueryResponse err = PlayToClientPacketParamsNbtQueryResponseTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsNbtQueryResponseTmp case "open_book": var PlayToClientPacketParamsOpenBookTmp PlayToClientPacketOpenBook err = PlayToClientPacketParamsOpenBookTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsOpenBookTmp case "open_horse_window": var PlayToClientPacketParamsOpenHorseWindowTmp PlayToClientPacketOpenHorseWindow err = PlayToClientPacketParamsOpenHorseWindowTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsOpenHorseWindowTmp case "open_sign_entity": var PlayToClientPacketParamsOpenSignEntityTmp PlayToClientPacketOpenSignEntity err = PlayToClientPacketParamsOpenSignEntityTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsOpenSignEntityTmp case "open_window": var PlayToClientPacketParamsOpenWindowTmp PlayToClientPacketOpenWindow err = PlayToClientPacketParamsOpenWindowTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsOpenWindowTmp case "player_info": var PlayToClientPacketParamsPlayerInfoTmp PlayToClientPacketPlayerInfo err = PlayToClientPacketParamsPlayerInfoTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsPlayerInfoTmp case "playerlist_header": var PlayToClientPacketParamsPlayerlistHeaderTmp PlayToClientPacketPlayerlistHeader err = PlayToClientPacketParamsPlayerlistHeaderTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsPlayerlistHeaderTmp case "position": var PlayToClientPacketParamsPositionTmp PlayToClientPacketPosition err = PlayToClientPacketParamsPositionTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsPositionTmp case "rel_entity_move": var PlayToClientPacketParamsRelEntityMoveTmp PlayToClientPacketRelEntityMove err = PlayToClientPacketParamsRelEntityMoveTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsRelEntityMoveTmp case "remove_entity_effect": var PlayToClientPacketParamsRemoveEntityEffectTmp PlayToClientPacketRemoveEntityEffect err = PlayToClientPacketParamsRemoveEntityEffectTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsRemoveEntityEffectTmp case "resource_pack_send": var PlayToClientPacketParamsResourcePackSendTmp PlayToClientPacketResourcePackSend err = PlayToClientPacketParamsResourcePackSendTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsResourcePackSendTmp case "respawn": var PlayToClientPacketParamsRespawnTmp PlayToClientPacketRespawn err = PlayToClientPacketParamsRespawnTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsRespawnTmp case "scoreboard_display_objective": var PlayToClientPacketParamsScoreboardDisplayObjectiveTmp PlayToClientPacketScoreboardDisplayObjective err = PlayToClientPacketParamsScoreboardDisplayObjectiveTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsScoreboardDisplayObjectiveTmp case "scoreboard_objective": var PlayToClientPacketParamsScoreboardObjectiveTmp PlayToClientPacketScoreboardObjective err = PlayToClientPacketParamsScoreboardObjectiveTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsScoreboardObjectiveTmp case "scoreboard_score": var PlayToClientPacketParamsScoreboardScoreTmp PlayToClientPacketScoreboardScore err = PlayToClientPacketParamsScoreboardScoreTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsScoreboardScoreTmp case "select_advancement_tab": var PlayToClientPacketParamsSelectAdvancementTabTmp PlayToClientPacketSelectAdvancementTab err = PlayToClientPacketParamsSelectAdvancementTabTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSelectAdvancementTabTmp case "set_cooldown": var PlayToClientPacketParamsSetCooldownTmp PlayToClientPacketSetCooldown err = PlayToClientPacketParamsSetCooldownTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSetCooldownTmp case "set_passengers": var PlayToClientPacketParamsSetPassengersTmp PlayToClientPacketSetPassengers err = PlayToClientPacketParamsSetPassengersTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSetPassengersTmp case "set_slot": var PlayToClientPacketParamsSetSlotTmp PlayToClientPacketSetSlot err = PlayToClientPacketParamsSetSlotTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSetSlotTmp case "sound_effect": var PlayToClientPacketParamsSoundEffectTmp PlayToClientPacketSoundEffect err = PlayToClientPacketParamsSoundEffectTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSoundEffectTmp case "spawn_entity": var PlayToClientPacketParamsSpawnEntityTmp PlayToClientPacketSpawnEntity err = PlayToClientPacketParamsSpawnEntityTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSpawnEntityTmp case "spawn_entity_experience_orb": var PlayToClientPacketParamsSpawnEntityExperienceOrbTmp PlayToClientPacketSpawnEntityExperienceOrb err = PlayToClientPacketParamsSpawnEntityExperienceOrbTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSpawnEntityExperienceOrbTmp case "spawn_entity_living": var PlayToClientPacketParamsSpawnEntityLivingTmp PlayToClientPacketSpawnEntityLiving err = PlayToClientPacketParamsSpawnEntityLivingTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSpawnEntityLivingTmp case "spawn_entity_painting": var PlayToClientPacketParamsSpawnEntityPaintingTmp PlayToClientPacketSpawnEntityPainting err = PlayToClientPacketParamsSpawnEntityPaintingTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSpawnEntityPaintingTmp case "spawn_position": var PlayToClientPacketParamsSpawnPositionTmp PlayToClientPacketSpawnPosition err = PlayToClientPacketParamsSpawnPositionTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsSpawnPositionTmp case "statistics": var PlayToClientPacketParamsStatisticsTmp PlayToClientPacketStatistics err = PlayToClientPacketParamsStatisticsTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsStatisticsTmp case "stop_sound": var PlayToClientPacketParamsStopSoundTmp PlayToClientPacketStopSound err = PlayToClientPacketParamsStopSoundTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsStopSoundTmp case "tab_complete": var PlayToClientPacketParamsTabCompleteTmp PlayToClientPacketTabComplete err = PlayToClientPacketParamsTabCompleteTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsTabCompleteTmp case "tags": var PlayToClientPacketParamsTagsTmp PlayToClientPacketTags err = PlayToClientPacketParamsTagsTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsTagsTmp case "teams": var PlayToClientPacketParamsTeamsTmp PlayToClientPacketTeams err = PlayToClientPacketParamsTeamsTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsTeamsTmp case "tile_entity_data": var PlayToClientPacketParamsTileEntityDataTmp PlayToClientPacketTileEntityData err = PlayToClientPacketParamsTileEntityDataTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsTileEntityDataTmp case "title": var PlayToClientPacketParamsTitleTmp PlayToClientPacketTitle err = PlayToClientPacketParamsTitleTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsTitleTmp case "trade_list": var PlayToClientPacketParamsTradeListTmp PlayToClientPacketTradeList err = PlayToClientPacketParamsTradeListTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsTradeListTmp case "transaction": var PlayToClientPacketParamsTransactionTmp PlayToClientPacketTransaction err = PlayToClientPacketParamsTransactionTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsTransactionTmp case "unload_chunk": var PlayToClientPacketParamsUnloadChunkTmp PlayToClientPacketUnloadChunk err = PlayToClientPacketParamsUnloadChunkTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsUnloadChunkTmp case "unlock_recipes": var PlayToClientPacketParamsUnlockRecipesTmp PlayToClientPacketUnlockRecipes err = PlayToClientPacketParamsUnlockRecipesTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsUnlockRecipesTmp case "update_health": var PlayToClientPacketParamsUpdateHealthTmp PlayToClientPacketUpdateHealth err = PlayToClientPacketParamsUpdateHealthTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsUpdateHealthTmp case "update_light": var PlayToClientPacketParamsUpdateLightTmp PlayToClientPacketUpdateLight err = PlayToClientPacketParamsUpdateLightTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsUpdateLightTmp case "update_time": var PlayToClientPacketParamsUpdateTimeTmp PlayToClientPacketUpdateTime err = PlayToClientPacketParamsUpdateTimeTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsUpdateTimeTmp case "update_view_distance": var PlayToClientPacketParamsUpdateViewDistanceTmp PlayToClientPacketUpdateViewDistance err = PlayToClientPacketParamsUpdateViewDistanceTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsUpdateViewDistanceTmp case "update_view_position": var PlayToClientPacketParamsUpdateViewPositionTmp PlayToClientPacketUpdateViewPosition err = PlayToClientPacketParamsUpdateViewPositionTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsUpdateViewPositionTmp case "vehicle_move": var PlayToClientPacketParamsVehicleMoveTmp PlayToClientPacketVehicleMove err = PlayToClientPacketParamsVehicleMoveTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsVehicleMoveTmp case "window_items": var PlayToClientPacketParamsWindowItemsTmp PlayToClientPacketWindowItems err = PlayToClientPacketParamsWindowItemsTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsWindowItemsTmp case "world_border": var PlayToClientPacketParamsWorldBorderTmp PlayToClientPacketWorldBorder err = PlayToClientPacketParamsWorldBorderTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsWorldBorderTmp case "world_event": var PlayToClientPacketParamsWorldEventTmp PlayToClientPacketWorldEvent err = PlayToClientPacketParamsWorldEventTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsWorldEventTmp case "world_particles": var PlayToClientPacketParamsWorldParticlesTmp PlayToClientPacketWorldParticles err = PlayToClientPacketParamsWorldParticlesTmp.Decode(r) if err != nil { return } ret.Params = PlayToClientPacketParamsWorldParticlesTmp } return } var PlayToClientPacketNameReverseMap = map[string]int32{"spawn_entity": 0x00, "spawn_entity_experience_orb": 0x01, "spawn_entity_living": 0x02, "spawn_entity_painting": 0x03, "named_entity_spawn": 0x04, "animation": 0x05, "statistics": 0x06, "acknowledge_player_digging": 0x07, "block_break_animation": 0x08, "tile_entity_data": 0x09, "block_action": 0x0a, "block_change": 0x0b, "boss_bar": 0x0c, "difficulty": 0x0d, "chat": 0x0e, "tab_complete": 0x0f, "declare_commands": 0x10, "transaction": 0x11, "close_window": 0x12, "window_items": 0x13, "craft_progress_bar": 0x14, "set_slot": 0x15, "set_cooldown": 0x16, "custom_payload": 0x17, "named_sound_effect": 0x18, "kick_disconnect": 0x19, "entity_status": 0x1a, "explosion": 0x1b, "unload_chunk": 0x1c, "game_state_change": 0x1d, "open_horse_window": 0x1e, "keep_alive": 0x1f, "map_chunk": 0x20, "world_event": 0x21, "world_particles": 0x22, "update_light": 0x23, "login": 0x24, "map": 0x25, "trade_list": 0x26, "rel_entity_move": 0x27, "entity_move_look": 0x28, "entity_look": 0x29, "entity": 0x2a, "vehicle_move": 0x2b, "open_book": 0x2c, "open_window": 0x2d, "open_sign_entity": 0x2e, "craft_recipe_response": 0x2f, "abilities": 0x30, "combat_event": 0x31, "player_info": 0x32, "face_player": 0x33, "position": 0x34, "unlock_recipes": 0x35, "entity_destroy": 0x36, "remove_entity_effect": 0x37, "resource_pack_send": 0x38, "respawn": 0x39, "entity_head_rotation": 0x3a, "multi_block_change": 0x3b, "select_advancement_tab": 0x3c, "world_border": 0x3d, "camera": 0x3e, "held_item_slot": 0x3f, "update_view_position": 0x40, "update_view_distance": 0x41, "spawn_position": 0x42, "scoreboard_display_objective": 0x43, "entity_metadata": 0x44, "attach_entity": 0x45, "entity_velocity": 0x46, "entity_equipment": 0x47, "experience": 0x48, "update_health": 0x49, "scoreboard_objective": 0x4a, "set_passengers": 0x4b, "teams": 0x4c, "scoreboard_score": 0x4d, "update_time": 0x4e, "title": 0x4f, "entity_sound_effect": 0x50, "sound_effect": 0x51, "stop_sound": 0x52, "playerlist_header": 0x53, "nbt_query_response": 0x54, "collect": 0x55, "entity_teleport": 0x56, "advancements": 0x57, "entity_update_attributes": 0x58, "entity_effect": 0x59, "declare_recipes": 0x5a, "tags": 0x5b} func (ret *PlayToClientPacket) Encode(w io.Writer) (err error) { var vPlayToClientPacketName int32 vPlayToClientPacketName, err = proto_base.ErroringIndex(PlayToClientPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vPlayToClientPacketName) if err != nil { return } switch ret.Name { case "abilities": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketAbilities) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "acknowledge_player_digging": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketAcknowledgePlayerDigging) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "advancements": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketAdvancements) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "animation": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketAnimation) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "attach_entity": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketAttachEntity) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "block_action": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketBlockAction) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "block_break_animation": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketBlockBreakAnimation) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "block_change": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketBlockChange) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "boss_bar": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketBossBar) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "camera": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketCamera) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "chat": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketChat) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "close_window": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketCloseWindow) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "collect": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketCollect) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "combat_event": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketCombatEvent) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "craft_progress_bar": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketCraftProgressBar) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "craft_recipe_response": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketCraftRecipeResponse) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "custom_payload": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketCustomPayload) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "declare_commands": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketDeclareCommands) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "declare_recipes": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketDeclareRecipes) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "difficulty": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketDifficulty) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntity) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_destroy": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityDestroy) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_effect": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityEffect) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_equipment": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityEquipment) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_head_rotation": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityHeadRotation) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_look": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityLook) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_metadata": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityMetadata) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_move_look": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityMoveLook) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_sound_effect": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntitySoundEffect) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_status": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityStatus) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_teleport": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityTeleport) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_update_attributes": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityUpdateAttributes) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_velocity": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketEntityVelocity) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "experience": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketExperience) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "explosion": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketExplosion) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "face_player": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketFacePlayer) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "game_state_change": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketGameStateChange) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "held_item_slot": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketHeldItemSlot) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "keep_alive": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketKeepAlive) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "kick_disconnect": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketKickDisconnect) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "login": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketLogin) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "map": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketMap) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "map_chunk": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketMapChunk) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "multi_block_change": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketMultiBlockChange) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "named_entity_spawn": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketNamedEntitySpawn) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "named_sound_effect": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketNamedSoundEffect) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "nbt_query_response": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketNbtQueryResponse) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "open_book": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketOpenBook) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "open_horse_window": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketOpenHorseWindow) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "open_sign_entity": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketOpenSignEntity) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "open_window": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketOpenWindow) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "player_info": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketPlayerInfo) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "playerlist_header": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketPlayerlistHeader) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "position": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketPosition) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "rel_entity_move": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketRelEntityMove) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "remove_entity_effect": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketRemoveEntityEffect) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "resource_pack_send": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketResourcePackSend) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "respawn": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketRespawn) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "scoreboard_display_objective": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketScoreboardDisplayObjective) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "scoreboard_objective": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketScoreboardObjective) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "scoreboard_score": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketScoreboardScore) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "select_advancement_tab": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSelectAdvancementTab) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "set_cooldown": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSetCooldown) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "set_passengers": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSetPassengers) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "set_slot": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSetSlot) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "sound_effect": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSoundEffect) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "spawn_entity": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSpawnEntity) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "spawn_entity_experience_orb": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSpawnEntityExperienceOrb) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "spawn_entity_living": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSpawnEntityLiving) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "spawn_entity_painting": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSpawnEntityPainting) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "spawn_position": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketSpawnPosition) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "statistics": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketStatistics) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "stop_sound": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketStopSound) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "tab_complete": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketTabComplete) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "tags": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketTags) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "teams": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketTeams) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "tile_entity_data": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketTileEntityData) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "title": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketTitle) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "trade_list": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketTradeList) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "transaction": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketTransaction) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "unload_chunk": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketUnloadChunk) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "unlock_recipes": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketUnlockRecipes) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_health": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketUpdateHealth) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_light": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketUpdateLight) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_time": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketUpdateTime) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_view_distance": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketUpdateViewDistance) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_view_position": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketUpdateViewPosition) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "vehicle_move": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketVehicleMove) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "window_items": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketWindowItems) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "world_border": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketWorldBorder) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "world_event": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketWorldEvent) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "world_particles": PlayToClientPacketParams, ok := ret.Params.(PlayToClientPacketWorldParticles) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketParamsEncTmp := PlayToClientPacketParams err = PlayToClientPacketParamsEncTmp.Encode(w) if err != nil { return } } return } type PlayToClientPacketAbilities struct { Flags int8 FlyingSpeed float32 WalkingSpeed float32 } func (ret *PlayToClientPacketAbilities) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Flags) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.FlyingSpeed) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.WalkingSpeed) if err != nil { return } return } func (ret *PlayToClientPacketAbilities) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Flags) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.FlyingSpeed) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.WalkingSpeed) if err != nil { return } return } type PlayToClientPacketAcknowledgePlayerDigging struct { Location Position Block int32 Status int32 Successful bool } func (ret *PlayToClientPacketAcknowledgePlayerDigging) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } ret.Block, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Status, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Successful) if err != nil { return } return } func (ret *PlayToClientPacketAcknowledgePlayerDigging) Encode(w io.Writer) (err error) { PlayToClientPacketAcknowledgePlayerDiggingLocationEncTmp := ret.Location err = PlayToClientPacketAcknowledgePlayerDiggingLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Block) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Status) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Successful) if err != nil { return } return } type PlayToClientPacketAdvancements struct { Reset bool AdvancementMapping []struct { Key string Value struct { ParentId *string DisplayData *struct { Title string Description string Icon Slot FrameType int32 Flags struct { Unused uint32 Hidden bool ShowToast bool HasBackgroundTexture bool } BackgroundTexture any XCord float32 YCord float32 } Criteria []struct { Key string Value struct { } } Requirements [][]string } } Identifiers []string ProgressMapping []struct { Key string Value []struct { CriterionIdentifier string CriterionProgress *int64 } } } func (ret *PlayToClientPacketAdvancements) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Reset) if err != nil { return } var lPlayToClientPacketAdvancementsAdvancementMapping int32 lPlayToClientPacketAdvancementsAdvancementMapping, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.AdvancementMapping = []struct { Key string Value struct { ParentId *string DisplayData *struct { Title string Description string Icon Slot FrameType int32 Flags struct { Unused uint32 Hidden bool ShowToast bool HasBackgroundTexture bool } BackgroundTexture any XCord float32 YCord float32 } Criteria []struct { Key string Value struct { } } Requirements [][]string } }{} for range lPlayToClientPacketAdvancementsAdvancementMapping { var PlayToClientPacketAdvancementsAdvancementMappingElement struct { Key string Value struct { ParentId *string DisplayData *struct { Title string Description string Icon Slot FrameType int32 Flags struct { Unused uint32 Hidden bool ShowToast bool HasBackgroundTexture bool } BackgroundTexture any XCord float32 YCord float32 } Criteria []struct { Key string Value struct { } } Requirements [][]string } } PlayToClientPacketAdvancementsAdvancementMappingElement.Key, err = proto_base.DecodeString(r) if err != nil { return } var PlayToClientPacketAdvancementsAdvancementMappingElementValueParentIdPresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketAdvancementsAdvancementMappingElementValueParentIdPresent) if err != nil { return } if PlayToClientPacketAdvancementsAdvancementMappingElementValueParentIdPresent { var PlayToClientPacketAdvancementsAdvancementMappingElementValueParentIdPresentValue string PlayToClientPacketAdvancementsAdvancementMappingElementValueParentIdPresentValue, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElement.Value.ParentId = &PlayToClientPacketAdvancementsAdvancementMappingElementValueParentIdPresentValue } var PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresent) if err != nil { return } if PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresent { var PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue struct { Title string Description string Icon Slot FrameType int32 Flags struct { Unused uint32 Hidden bool ShowToast bool HasBackgroundTexture bool } BackgroundTexture any XCord float32 YCord float32 } PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Title, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Description, err = proto_base.DecodeString(r) if err != nil { return } err = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Icon.Decode(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.FrameType, err = proto_base.DecodeVarInt(r) if err != nil { return } var PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked uint32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.HasBackgroundTexture = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked>>0&1 == 1 PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.ShowToast = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked>>1&1 == 1 PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.Hidden = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked>>2&1 == 1 PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.Unused = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked >> 3 & 536870911 switch PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.HasBackgroundTexture { case true: var PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataBackgroundTexture1Tmp string PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataBackgroundTexture1Tmp, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.BackgroundTexture = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataBackgroundTexture1Tmp default: var PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataBackgroundTextureTmp struct { } PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.BackgroundTexture = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataBackgroundTextureTmp } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.XCord) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.YCord) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElement.Value.DisplayData = &PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue } var lPlayToClientPacketAdvancementsAdvancementMappingElementValueCriteria int32 lPlayToClientPacketAdvancementsAdvancementMappingElementValueCriteria, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElement.Value.Criteria = []struct { Key string Value struct { } }{} for range lPlayToClientPacketAdvancementsAdvancementMappingElementValueCriteria { var PlayToClientPacketAdvancementsAdvancementMappingElementValueCriteriaElement struct { Key string Value struct { } } PlayToClientPacketAdvancementsAdvancementMappingElementValueCriteriaElement.Key, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElement.Value.Criteria = append(PlayToClientPacketAdvancementsAdvancementMappingElement.Value.Criteria, PlayToClientPacketAdvancementsAdvancementMappingElementValueCriteriaElement) } var lPlayToClientPacketAdvancementsAdvancementMappingElementValueRequirements int32 lPlayToClientPacketAdvancementsAdvancementMappingElementValueRequirements, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElement.Value.Requirements = [][]string{} for range lPlayToClientPacketAdvancementsAdvancementMappingElementValueRequirements { var PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement []string var lPlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement int32 lPlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement = []string{} for range lPlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement { var PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElementElement string PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElementElement, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement = append(PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement, PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElementElement) } PlayToClientPacketAdvancementsAdvancementMappingElement.Value.Requirements = append(PlayToClientPacketAdvancementsAdvancementMappingElement.Value.Requirements, PlayToClientPacketAdvancementsAdvancementMappingElementValueRequirementsElement) } ret.AdvancementMapping = append(ret.AdvancementMapping, PlayToClientPacketAdvancementsAdvancementMappingElement) } var lPlayToClientPacketAdvancementsIdentifiers int32 lPlayToClientPacketAdvancementsIdentifiers, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Identifiers = []string{} for range lPlayToClientPacketAdvancementsIdentifiers { var PlayToClientPacketAdvancementsIdentifiersElement string PlayToClientPacketAdvancementsIdentifiersElement, err = proto_base.DecodeString(r) if err != nil { return } ret.Identifiers = append(ret.Identifiers, PlayToClientPacketAdvancementsIdentifiersElement) } var lPlayToClientPacketAdvancementsProgressMapping int32 lPlayToClientPacketAdvancementsProgressMapping, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ProgressMapping = []struct { Key string Value []struct { CriterionIdentifier string CriterionProgress *int64 } }{} for range lPlayToClientPacketAdvancementsProgressMapping { var PlayToClientPacketAdvancementsProgressMappingElement struct { Key string Value []struct { CriterionIdentifier string CriterionProgress *int64 } } PlayToClientPacketAdvancementsProgressMappingElement.Key, err = proto_base.DecodeString(r) if err != nil { return } var lPlayToClientPacketAdvancementsProgressMappingElementValue int32 lPlayToClientPacketAdvancementsProgressMappingElementValue, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketAdvancementsProgressMappingElement.Value = []struct { CriterionIdentifier string CriterionProgress *int64 }{} for range lPlayToClientPacketAdvancementsProgressMappingElementValue { var PlayToClientPacketAdvancementsProgressMappingElementValueElement struct { CriterionIdentifier string CriterionProgress *int64 } PlayToClientPacketAdvancementsProgressMappingElementValueElement.CriterionIdentifier, err = proto_base.DecodeString(r) if err != nil { return } var PlayToClientPacketAdvancementsProgressMappingElementValueElementCriterionProgressPresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketAdvancementsProgressMappingElementValueElementCriterionProgressPresent) if err != nil { return } if PlayToClientPacketAdvancementsProgressMappingElementValueElementCriterionProgressPresent { var PlayToClientPacketAdvancementsProgressMappingElementValueElementCriterionProgressPresentValue int64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketAdvancementsProgressMappingElementValueElementCriterionProgressPresentValue) if err != nil { return } PlayToClientPacketAdvancementsProgressMappingElementValueElement.CriterionProgress = &PlayToClientPacketAdvancementsProgressMappingElementValueElementCriterionProgressPresentValue } PlayToClientPacketAdvancementsProgressMappingElement.Value = append(PlayToClientPacketAdvancementsProgressMappingElement.Value, PlayToClientPacketAdvancementsProgressMappingElementValueElement) } ret.ProgressMapping = append(ret.ProgressMapping, PlayToClientPacketAdvancementsProgressMappingElement) } return } func (ret *PlayToClientPacketAdvancements) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Reset) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.AdvancementMapping))) if err != nil { return } for iPlayToClientPacketAdvancementsAdvancementMapping := range len(ret.AdvancementMapping) { err = proto_base.EncodeString(w, ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Key) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.ParentId != nil) if err != nil { return } if ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.ParentId != nil { err = proto_base.EncodeString(w, *ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.ParentId) if err != nil { return } } err = binary.Write(w, binary.BigEndian, ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData != nil) if err != nil { return } if ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData != nil { err = proto_base.EncodeString(w, (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Title) if err != nil { return } err = proto_base.EncodeString(w, (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Description) if err != nil { return } PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataIconEncTmp := (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Icon err = PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataIconEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeVarInt(w, (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).FrameType) if err != nil { return } var PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataFlagsPacked uint32 PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataFlagsPacked |= (proto_base.Bool2uint32((*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Flags.HasBackgroundTexture) & 0x1) << 0x0 PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataFlagsPacked |= (proto_base.Bool2uint32((*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Flags.ShowToast) & 0x1) << 0x1 PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataFlagsPacked |= (proto_base.Bool2uint32((*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Flags.Hidden) & 0x1) << 0x2 PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataFlagsPacked |= (uint32((*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Flags.Unused) & 0x1FFFFFFF) << 0x3 err = binary.Write(w, binary.BigEndian, PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataFlagsPacked) if err != nil { return } switch (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).Flags.HasBackgroundTexture { case true: PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataBackgroundTexture, ok := (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).BackgroundTexture.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketAdvancementsAdvancementMappingInnerValueDisplayDataBackgroundTexture) if err != nil { return } default: _, ok := (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).BackgroundTexture.(struct { }) if !ok { err = proto_base.BadTypeError return } } err = binary.Write(w, binary.BigEndian, (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).XCord) if err != nil { return } err = binary.Write(w, binary.BigEndian, (*ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.DisplayData).YCord) if err != nil { return } } err = proto_base.EncodeVarInt(w, int32(len(ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Criteria))) if err != nil { return } for iPlayToClientPacketAdvancementsAdvancementMappingInnerValueCriteria := range len(ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Criteria) { err = proto_base.EncodeString(w, ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Criteria[iPlayToClientPacketAdvancementsAdvancementMappingInnerValueCriteria].Key) if err != nil { return } } err = proto_base.EncodeVarInt(w, int32(len(ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Requirements))) if err != nil { return } for iPlayToClientPacketAdvancementsAdvancementMappingInnerValueRequirements := range len(ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Requirements) { err = proto_base.EncodeVarInt(w, int32(len(ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Requirements[iPlayToClientPacketAdvancementsAdvancementMappingInnerValueRequirements]))) if err != nil { return } for iPlayToClientPacketAdvancementsAdvancementMappingInnerValueRequirementsInner := range len(ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Requirements[iPlayToClientPacketAdvancementsAdvancementMappingInnerValueRequirements]) { err = proto_base.EncodeString(w, ret.AdvancementMapping[iPlayToClientPacketAdvancementsAdvancementMapping].Value.Requirements[iPlayToClientPacketAdvancementsAdvancementMappingInnerValueRequirements][iPlayToClientPacketAdvancementsAdvancementMappingInnerValueRequirementsInner]) if err != nil { return } } } } err = proto_base.EncodeVarInt(w, int32(len(ret.Identifiers))) if err != nil { return } for iPlayToClientPacketAdvancementsIdentifiers := range len(ret.Identifiers) { err = proto_base.EncodeString(w, ret.Identifiers[iPlayToClientPacketAdvancementsIdentifiers]) if err != nil { return } } err = proto_base.EncodeVarInt(w, int32(len(ret.ProgressMapping))) if err != nil { return } for iPlayToClientPacketAdvancementsProgressMapping := range len(ret.ProgressMapping) { err = proto_base.EncodeString(w, ret.ProgressMapping[iPlayToClientPacketAdvancementsProgressMapping].Key) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.ProgressMapping[iPlayToClientPacketAdvancementsProgressMapping].Value))) if err != nil { return } for iPlayToClientPacketAdvancementsProgressMappingInnerValue := range len(ret.ProgressMapping[iPlayToClientPacketAdvancementsProgressMapping].Value) { err = proto_base.EncodeString(w, ret.ProgressMapping[iPlayToClientPacketAdvancementsProgressMapping].Value[iPlayToClientPacketAdvancementsProgressMappingInnerValue].CriterionIdentifier) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.ProgressMapping[iPlayToClientPacketAdvancementsProgressMapping].Value[iPlayToClientPacketAdvancementsProgressMappingInnerValue].CriterionProgress != nil) if err != nil { return } if ret.ProgressMapping[iPlayToClientPacketAdvancementsProgressMapping].Value[iPlayToClientPacketAdvancementsProgressMappingInnerValue].CriterionProgress != nil { err = binary.Write(w, binary.BigEndian, *ret.ProgressMapping[iPlayToClientPacketAdvancementsProgressMapping].Value[iPlayToClientPacketAdvancementsProgressMappingInnerValue].CriterionProgress) if err != nil { return } } } } return } type PlayToClientPacketAnimation struct { EntityId int32 Animation uint8 } func (ret *PlayToClientPacketAnimation) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Animation) if err != nil { return } return } func (ret *PlayToClientPacketAnimation) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Animation) if err != nil { return } return } type PlayToClientPacketAttachEntity struct { EntityId int32 VehicleId int32 } func (ret *PlayToClientPacketAttachEntity) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.EntityId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.VehicleId) if err != nil { return } return } func (ret *PlayToClientPacketAttachEntity) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.VehicleId) if err != nil { return } return } type PlayToClientPacketBlockAction struct { Location Position Byte1 uint8 Byte2 uint8 BlockId int32 } func (ret *PlayToClientPacketBlockAction) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Byte1) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Byte2) if err != nil { return } ret.BlockId, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketBlockAction) Encode(w io.Writer) (err error) { PlayToClientPacketBlockActionLocationEncTmp := ret.Location err = PlayToClientPacketBlockActionLocationEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Byte1) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Byte2) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.BlockId) if err != nil { return } return } type PlayToClientPacketBlockBreakAnimation struct { EntityId int32 Location Position DestroyStage int8 } func (ret *PlayToClientPacketBlockBreakAnimation) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Location.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DestroyStage) if err != nil { return } return } func (ret *PlayToClientPacketBlockBreakAnimation) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } PlayToClientPacketBlockBreakAnimationLocationEncTmp := ret.Location err = PlayToClientPacketBlockBreakAnimationLocationEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DestroyStage) if err != nil { return } return } type PlayToClientPacketBlockChange struct { Location Position Type int32 } func (ret *PlayToClientPacketBlockChange) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } ret.Type, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketBlockChange) Encode(w io.Writer) (err error) { PlayToClientPacketBlockChangeLocationEncTmp := ret.Location err = PlayToClientPacketBlockChangeLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Type) if err != nil { return } return } type PlayToClientPacketBossBar struct { EntityUUID uuid.UUID Action int32 Title any Health any Color any Dividers any Flags any } func (ret *PlayToClientPacketBossBar) Decode(r io.ReadSeeker) (err error) { _, err = io.ReadFull(r, ret.EntityUUID[:]) if err != nil { return } ret.Action, err = proto_base.DecodeVarInt(r) if err != nil { return } switch ret.Action { case 0: var PlayToClientPacketBossBarTitle0Tmp string PlayToClientPacketBossBarTitle0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Title = PlayToClientPacketBossBarTitle0Tmp case 3: var PlayToClientPacketBossBarTitle3Tmp string PlayToClientPacketBossBarTitle3Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Title = PlayToClientPacketBossBarTitle3Tmp default: var PlayToClientPacketBossBarTitleTmp struct { } ret.Title = PlayToClientPacketBossBarTitleTmp } switch ret.Action { case 0: var PlayToClientPacketBossBarHealth0Tmp float32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketBossBarHealth0Tmp) if err != nil { return } ret.Health = PlayToClientPacketBossBarHealth0Tmp case 2: var PlayToClientPacketBossBarHealth2Tmp float32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketBossBarHealth2Tmp) if err != nil { return } ret.Health = PlayToClientPacketBossBarHealth2Tmp default: var PlayToClientPacketBossBarHealthTmp struct { } ret.Health = PlayToClientPacketBossBarHealthTmp } switch ret.Action { case 0: var PlayToClientPacketBossBarColor0Tmp int32 PlayToClientPacketBossBarColor0Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Color = PlayToClientPacketBossBarColor0Tmp case 4: var PlayToClientPacketBossBarColor4Tmp int32 PlayToClientPacketBossBarColor4Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Color = PlayToClientPacketBossBarColor4Tmp default: var PlayToClientPacketBossBarColorTmp struct { } ret.Color = PlayToClientPacketBossBarColorTmp } switch ret.Action { case 0: var PlayToClientPacketBossBarDividers0Tmp int32 PlayToClientPacketBossBarDividers0Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Dividers = PlayToClientPacketBossBarDividers0Tmp case 4: var PlayToClientPacketBossBarDividers4Tmp int32 PlayToClientPacketBossBarDividers4Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Dividers = PlayToClientPacketBossBarDividers4Tmp default: var PlayToClientPacketBossBarDividersTmp struct { } ret.Dividers = PlayToClientPacketBossBarDividersTmp } switch ret.Action { case 0: var PlayToClientPacketBossBarFlags0Tmp uint8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketBossBarFlags0Tmp) if err != nil { return } ret.Flags = PlayToClientPacketBossBarFlags0Tmp case 5: var PlayToClientPacketBossBarFlags5Tmp uint8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketBossBarFlags5Tmp) if err != nil { return } ret.Flags = PlayToClientPacketBossBarFlags5Tmp default: var PlayToClientPacketBossBarFlagsTmp struct { } ret.Flags = PlayToClientPacketBossBarFlagsTmp } return } func (ret *PlayToClientPacketBossBar) Encode(w io.Writer) (err error) { _, err = w.Write(ret.EntityUUID[:]) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Action) if err != nil { return } switch ret.Action { case 0: PlayToClientPacketBossBarTitle, ok := ret.Title.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketBossBarTitle) if err != nil { return } case 3: PlayToClientPacketBossBarTitle, ok := ret.Title.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketBossBarTitle) if err != nil { return } default: _, ok := ret.Title.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 0: PlayToClientPacketBossBarHealth, ok := ret.Health.(float32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketBossBarHealth) if err != nil { return } case 2: PlayToClientPacketBossBarHealth, ok := ret.Health.(float32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketBossBarHealth) if err != nil { return } default: _, ok := ret.Health.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 0: PlayToClientPacketBossBarColor, ok := ret.Color.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketBossBarColor) if err != nil { return } case 4: PlayToClientPacketBossBarColor, ok := ret.Color.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketBossBarColor) if err != nil { return } default: _, ok := ret.Color.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 0: PlayToClientPacketBossBarDividers, ok := ret.Dividers.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketBossBarDividers) if err != nil { return } case 4: PlayToClientPacketBossBarDividers, ok := ret.Dividers.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketBossBarDividers) if err != nil { return } default: _, ok := ret.Dividers.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 0: PlayToClientPacketBossBarFlags, ok := ret.Flags.(uint8) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketBossBarFlags) if err != nil { return } case 5: PlayToClientPacketBossBarFlags, ok := ret.Flags.(uint8) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketBossBarFlags) if err != nil { return } default: _, ok := ret.Flags.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketCamera struct { CameraId int32 } func (ret *PlayToClientPacketCamera) Decode(r io.ReadSeeker) (err error) { ret.CameraId, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketCamera) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.CameraId) if err != nil { return } return } type PlayToClientPacketChat struct { Message string Position int8 Sender uuid.UUID } func (ret *PlayToClientPacketChat) Decode(r io.ReadSeeker) (err error) { ret.Message, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Position) if err != nil { return } _, err = io.ReadFull(r, ret.Sender[:]) if err != nil { return } return } func (ret *PlayToClientPacketChat) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Message) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Position) if err != nil { return } _, err = w.Write(ret.Sender[:]) if err != nil { return } return } type PlayToClientPacketCloseWindow struct { WindowId uint8 } func (ret *PlayToClientPacketCloseWindow) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } return } func (ret *PlayToClientPacketCloseWindow) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } return } type PlayToClientPacketCollect struct { CollectedEntityId int32 CollectorEntityId int32 PickupItemCount int32 } func (ret *PlayToClientPacketCollect) Decode(r io.ReadSeeker) (err error) { ret.CollectedEntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.CollectorEntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.PickupItemCount, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketCollect) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.CollectedEntityId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.CollectorEntityId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.PickupItemCount) if err != nil { return } return } type PlayToClientPacketCombatEvent struct { Event int32 Duration any PlayerId any EntityId any Message any } func (ret *PlayToClientPacketCombatEvent) Decode(r io.ReadSeeker) (err error) { ret.Event, err = proto_base.DecodeVarInt(r) if err != nil { return } switch ret.Event { case 1: var PlayToClientPacketCombatEventDuration1Tmp int32 PlayToClientPacketCombatEventDuration1Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Duration = PlayToClientPacketCombatEventDuration1Tmp default: var PlayToClientPacketCombatEventDurationTmp struct { } ret.Duration = PlayToClientPacketCombatEventDurationTmp } switch ret.Event { case 2: var PlayToClientPacketCombatEventPlayerId2Tmp int32 PlayToClientPacketCombatEventPlayerId2Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.PlayerId = PlayToClientPacketCombatEventPlayerId2Tmp default: var PlayToClientPacketCombatEventPlayerIdTmp struct { } ret.PlayerId = PlayToClientPacketCombatEventPlayerIdTmp } switch ret.Event { case 1: var PlayToClientPacketCombatEventEntityId1Tmp int32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketCombatEventEntityId1Tmp) if err != nil { return } ret.EntityId = PlayToClientPacketCombatEventEntityId1Tmp case 2: var PlayToClientPacketCombatEventEntityId2Tmp int32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketCombatEventEntityId2Tmp) if err != nil { return } ret.EntityId = PlayToClientPacketCombatEventEntityId2Tmp default: var PlayToClientPacketCombatEventEntityIdTmp struct { } ret.EntityId = PlayToClientPacketCombatEventEntityIdTmp } switch ret.Event { case 2: var PlayToClientPacketCombatEventMessage2Tmp string PlayToClientPacketCombatEventMessage2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Message = PlayToClientPacketCombatEventMessage2Tmp default: var PlayToClientPacketCombatEventMessageTmp struct { } ret.Message = PlayToClientPacketCombatEventMessageTmp } return } func (ret *PlayToClientPacketCombatEvent) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Event) if err != nil { return } switch ret.Event { case 1: PlayToClientPacketCombatEventDuration, ok := ret.Duration.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketCombatEventDuration) if err != nil { return } default: _, ok := ret.Duration.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Event { case 2: PlayToClientPacketCombatEventPlayerId, ok := ret.PlayerId.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketCombatEventPlayerId) if err != nil { return } default: _, ok := ret.PlayerId.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Event { case 1: PlayToClientPacketCombatEventEntityId, ok := ret.EntityId.(int32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketCombatEventEntityId) if err != nil { return } case 2: PlayToClientPacketCombatEventEntityId, ok := ret.EntityId.(int32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketCombatEventEntityId) if err != nil { return } default: _, ok := ret.EntityId.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Event { case 2: PlayToClientPacketCombatEventMessage, ok := ret.Message.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketCombatEventMessage) if err != nil { return } default: _, ok := ret.Message.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketCraftProgressBar struct { WindowId uint8 Property int16 Value int16 } func (ret *PlayToClientPacketCraftProgressBar) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Property) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Value) if err != nil { return } return } func (ret *PlayToClientPacketCraftProgressBar) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Property) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Value) if err != nil { return } return } type PlayToClientPacketCraftRecipeResponse struct { WindowId int8 Recipe string } func (ret *PlayToClientPacketCraftRecipeResponse) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } ret.Recipe, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToClientPacketCraftRecipeResponse) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = proto_base.EncodeString(w, ret.Recipe) if err != nil { return } return } type PlayToClientPacketCustomPayload struct { Channel string Data proto_base.RestBuffer } func (ret *PlayToClientPacketCustomPayload) Decode(r io.ReadSeeker) (err error) { ret.Channel, err = proto_base.DecodeString(r) if err != nil { return } err = ret.Data.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketCustomPayload) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Channel) if err != nil { return } PlayToClientPacketCustomPayloadDataEncTmp := ret.Data err = PlayToClientPacketCustomPayloadDataEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketDeclareCommands struct { Nodes []CommandNode RootIndex int32 } func (ret *PlayToClientPacketDeclareCommands) Decode(r io.ReadSeeker) (err error) { var lPlayToClientPacketDeclareCommandsNodes int32 lPlayToClientPacketDeclareCommandsNodes, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Nodes = []CommandNode{} for range lPlayToClientPacketDeclareCommandsNodes { var PlayToClientPacketDeclareCommandsNodesElement CommandNode err = PlayToClientPacketDeclareCommandsNodesElement.Decode(r) if err != nil { return } ret.Nodes = append(ret.Nodes, PlayToClientPacketDeclareCommandsNodesElement) } ret.RootIndex, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketDeclareCommands) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.Nodes))) if err != nil { return } for iPlayToClientPacketDeclareCommandsNodes := range len(ret.Nodes) { PlayToClientPacketDeclareCommandsNodesInnerEncTmp := ret.Nodes[iPlayToClientPacketDeclareCommandsNodes] err = PlayToClientPacketDeclareCommandsNodesInnerEncTmp.Encode(w) if err != nil { return } } err = proto_base.EncodeVarInt(w, ret.RootIndex) if err != nil { return } return } type PlayToClientPacketDeclareRecipes struct { Recipes []struct { Type string RecipeId string Data any } } func (ret *PlayToClientPacketDeclareRecipes) Decode(r io.ReadSeeker) (err error) { var lPlayToClientPacketDeclareRecipesRecipes int32 lPlayToClientPacketDeclareRecipesRecipes, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Recipes = []struct { Type string RecipeId string Data any }{} for range lPlayToClientPacketDeclareRecipesRecipes { var PlayToClientPacketDeclareRecipesRecipesElement struct { Type string RecipeId string Data any } PlayToClientPacketDeclareRecipesRecipesElement.Type, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.RecipeId, err = proto_base.DecodeString(r) if err != nil { return } switch PlayToClientPacketDeclareRecipesRecipesElement.Type { case "minecraft:blasting": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftBlastingTmp MinecraftSmeltingFormat err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftBlastingTmp.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftBlastingTmp case "minecraft:campfire_cooking": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCampfireCookingTmp MinecraftSmeltingFormat err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCampfireCookingTmp.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCampfireCookingTmp case "minecraft:crafting_shaped": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp struct { Width int32 Height int32 Group string Ingredients [][]Ingredient Result Slot } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Width, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Height, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Group, err = proto_base.DecodeString(r) if err != nil { return } var lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredients int32 lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredients = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Height PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Ingredients = [][]Ingredient{} for range lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredients { var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement []Ingredient var lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement int32 lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Width PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement = []Ingredient{} for range lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement { var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElementElement Ingredient err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElementElement.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement = append(PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement, PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElementElement) } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Ingredients = append(PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Ingredients, PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmpIngredientsElement) } err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp.Result.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapedTmp case "minecraft:crafting_shapeless": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmp struct { Group string Ingredients []Ingredient Result Slot } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmp.Group, err = proto_base.DecodeString(r) if err != nil { return } var lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmpIngredients int32 lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmpIngredients, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmp.Ingredients = []Ingredient{} for range lPlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmpIngredients { var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmpIngredientsElement Ingredient err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmpIngredientsElement.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmp.Ingredients = append(PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmp.Ingredients, PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmpIngredientsElement) } err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmp.Result.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingShapelessTmp case "minecraft:crafting_special_armordye": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialArmordyeTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialArmordyeTmp case "minecraft:crafting_special_banneraddpattern": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialBanneraddpatternTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialBanneraddpatternTmp case "minecraft:crafting_special_bannerduplicate": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialBannerduplicateTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialBannerduplicateTmp case "minecraft:crafting_special_bookcloning": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialBookcloningTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialBookcloningTmp case "minecraft:crafting_special_firework_rocket": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialFireworkRocketTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialFireworkRocketTmp case "minecraft:crafting_special_firework_star": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialFireworkStarTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialFireworkStarTmp case "minecraft:crafting_special_firework_star_fade": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialFireworkStarFadeTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialFireworkStarFadeTmp case "minecraft:crafting_special_mapcloning": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialMapcloningTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialMapcloningTmp case "minecraft:crafting_special_mapextending": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialMapextendingTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialMapextendingTmp case "minecraft:crafting_special_repairitem": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialRepairitemTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialRepairitemTmp case "minecraft:crafting_special_shielddecoration": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialShielddecorationTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialShielddecorationTmp case "minecraft:crafting_special_shulkerboxcoloring": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialShulkerboxcoloringTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialShulkerboxcoloringTmp case "minecraft:crafting_special_suspiciousstew": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialSuspiciousstewTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialSuspiciousstewTmp case "minecraft:crafting_special_tippedarrow": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialTippedarrowTmp struct { } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftCraftingSpecialTippedarrowTmp case "minecraft:smelting": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmeltingTmp MinecraftSmeltingFormat err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmeltingTmp.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmeltingTmp case "minecraft:smithing": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmithingTmp struct { Base Ingredient Addition Ingredient Result Slot } err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmithingTmp.Base.Decode(r) if err != nil { return } err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmithingTmp.Addition.Decode(r) if err != nil { return } err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmithingTmp.Result.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmithingTmp case "minecraft:smoking": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmokingTmp MinecraftSmeltingFormat err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmokingTmp.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftSmokingTmp case "minecraft:stonecutting": var PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftStonecuttingTmp struct { Group string Ingredient Ingredient Result Slot } PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftStonecuttingTmp.Group, err = proto_base.DecodeString(r) if err != nil { return } err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftStonecuttingTmp.Ingredient.Decode(r) if err != nil { return } err = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftStonecuttingTmp.Result.Decode(r) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesElement.Data = PlayToClientPacketDeclareRecipesRecipesElementDataMinecraftStonecuttingTmp } ret.Recipes = append(ret.Recipes, PlayToClientPacketDeclareRecipesRecipesElement) } return } func (ret *PlayToClientPacketDeclareRecipes) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.Recipes))) if err != nil { return } for iPlayToClientPacketDeclareRecipesRecipes := range len(ret.Recipes) { err = proto_base.EncodeString(w, ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Type) if err != nil { return } err = proto_base.EncodeString(w, ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].RecipeId) if err != nil { return } switch ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Type { case "minecraft:blasting": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(MinecraftSmeltingFormat) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData err = PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp.Encode(w) if err != nil { return } case "minecraft:campfire_cooking": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(MinecraftSmeltingFormat) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData err = PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp.Encode(w) if err != nil { return } case "minecraft:crafting_shaped": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { Width int32 Height int32 Group string Ingredients [][]Ingredient Result Slot }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketDeclareRecipesRecipesInnerData.Width) if err != nil { return } err = proto_base.EncodeVarInt(w, PlayToClientPacketDeclareRecipesRecipesInnerData.Height) if err != nil { return } err = proto_base.EncodeString(w, PlayToClientPacketDeclareRecipesRecipesInnerData.Group) if err != nil { return } for iPlayToClientPacketDeclareRecipesRecipesInnerDataIngredients := range len(PlayToClientPacketDeclareRecipesRecipesInnerData.Ingredients) { for iPlayToClientPacketDeclareRecipesRecipesInnerDataIngredientsInner := range len(PlayToClientPacketDeclareRecipesRecipesInnerData.Ingredients[iPlayToClientPacketDeclareRecipesRecipesInnerDataIngredients]) { PlayToClientPacketDeclareRecipesRecipesInnerDataIngredientsInnerInnerEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Ingredients[iPlayToClientPacketDeclareRecipesRecipesInnerDataIngredients][iPlayToClientPacketDeclareRecipesRecipesInnerDataIngredientsInner] err = PlayToClientPacketDeclareRecipesRecipesInnerDataIngredientsInnerInnerEncTmp.Encode(w) if err != nil { return } } } PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Result err = PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp.Encode(w) if err != nil { return } case "minecraft:crafting_shapeless": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { Group string Ingredients []Ingredient Result Slot }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketDeclareRecipesRecipesInnerData.Group) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(PlayToClientPacketDeclareRecipesRecipesInnerData.Ingredients))) if err != nil { return } for iPlayToClientPacketDeclareRecipesRecipesInnerDataIngredients := range len(PlayToClientPacketDeclareRecipesRecipesInnerData.Ingredients) { PlayToClientPacketDeclareRecipesRecipesInnerDataIngredientsInnerEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Ingredients[iPlayToClientPacketDeclareRecipesRecipesInnerDataIngredients] err = PlayToClientPacketDeclareRecipesRecipesInnerDataIngredientsInnerEncTmp.Encode(w) if err != nil { return } } PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Result err = PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp.Encode(w) if err != nil { return } case "minecraft:crafting_special_armordye": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_banneraddpattern": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_bannerduplicate": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_bookcloning": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_firework_rocket": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_firework_star": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_firework_star_fade": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_mapcloning": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_mapextending": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_repairitem": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_shielddecoration": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_shulkerboxcoloring": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_suspiciousstew": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:crafting_special_tippedarrow": _, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { }) if !ok { err = proto_base.BadTypeError return } case "minecraft:smelting": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(MinecraftSmeltingFormat) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData err = PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp.Encode(w) if err != nil { return } case "minecraft:smithing": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { Base Ingredient Addition Ingredient Result Slot }) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketDeclareRecipesRecipesInnerDataBaseEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Base err = PlayToClientPacketDeclareRecipesRecipesInnerDataBaseEncTmp.Encode(w) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesInnerDataAdditionEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Addition err = PlayToClientPacketDeclareRecipesRecipesInnerDataAdditionEncTmp.Encode(w) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Result err = PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp.Encode(w) if err != nil { return } case "minecraft:smoking": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(MinecraftSmeltingFormat) if !ok { err = proto_base.BadTypeError return } PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData err = PlayToClientPacketDeclareRecipesRecipesInnerDataEncTmp.Encode(w) if err != nil { return } case "minecraft:stonecutting": PlayToClientPacketDeclareRecipesRecipesInnerData, ok := ret.Recipes[iPlayToClientPacketDeclareRecipesRecipes].Data.(struct { Group string Ingredient Ingredient Result Slot }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketDeclareRecipesRecipesInnerData.Group) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesInnerDataIngredientEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Ingredient err = PlayToClientPacketDeclareRecipesRecipesInnerDataIngredientEncTmp.Encode(w) if err != nil { return } PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp := PlayToClientPacketDeclareRecipesRecipesInnerData.Result err = PlayToClientPacketDeclareRecipesRecipesInnerDataResultEncTmp.Encode(w) if err != nil { return } } } return } type PlayToClientPacketDifficulty struct { Difficulty uint8 DifficultyLocked bool } func (ret *PlayToClientPacketDifficulty) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Difficulty) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DifficultyLocked) if err != nil { return } return } func (ret *PlayToClientPacketDifficulty) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Difficulty) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DifficultyLocked) if err != nil { return } return } type PlayToClientPacketEntity struct { EntityId int32 } func (ret *PlayToClientPacketEntity) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketEntity) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } return } type PlayToClientPacketEntityDestroy struct { EntityIds []int32 } func (ret *PlayToClientPacketEntityDestroy) Decode(r io.ReadSeeker) (err error) { var lPlayToClientPacketEntityDestroyEntityIds int32 lPlayToClientPacketEntityDestroyEntityIds, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.EntityIds = []int32{} for range lPlayToClientPacketEntityDestroyEntityIds { var PlayToClientPacketEntityDestroyEntityIdsElement int32 PlayToClientPacketEntityDestroyEntityIdsElement, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.EntityIds = append(ret.EntityIds, PlayToClientPacketEntityDestroyEntityIdsElement) } return } func (ret *PlayToClientPacketEntityDestroy) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.EntityIds))) if err != nil { return } for iPlayToClientPacketEntityDestroyEntityIds := range len(ret.EntityIds) { err = proto_base.EncodeVarInt(w, ret.EntityIds[iPlayToClientPacketEntityDestroyEntityIds]) if err != nil { return } } return } type PlayToClientPacketEntityEffect struct { EntityId int32 EffectId int8 Amplifier int8 Duration int32 HideParticles int8 } func (ret *PlayToClientPacketEntityEffect) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.EffectId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Amplifier) if err != nil { return } ret.Duration, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.HideParticles) if err != nil { return } return } func (ret *PlayToClientPacketEntityEffect) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.EffectId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Amplifier) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Duration) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.HideParticles) if err != nil { return } return } type PlayToClientPacketEntityEquipment struct { EntityId int32 Equipments []struct { Slot int8 Item Slot } } func (ret *PlayToClientPacketEntityEquipment) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Equipments = []struct { Slot int8 Item Slot }{} for { var PlayToClientPacketEntityEquipmentEquipmentsHeader uint8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsHeader) if err == io.EOF { err = nil break } if err != nil { return } _, err = r.Seek(-1, io.SeekCurrent) if err != nil { return } PlayToClientPacketEntityEquipmentEquipmentsHasMore := PlayToClientPacketEntityEquipmentEquipmentsHeader&128 != 0 var PlayToClientPacketEntityEquipmentEquipmentsElement struct { Slot int8 Item Slot } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsElement.Slot) if err != nil { return } err = PlayToClientPacketEntityEquipmentEquipmentsElement.Item.Decode(r) if err != nil { return } ret.Equipments = append(ret.Equipments, PlayToClientPacketEntityEquipmentEquipmentsElement) if !PlayToClientPacketEntityEquipmentEquipmentsHasMore { break } } return } func (ret *PlayToClientPacketEntityEquipment) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } for iPlayToClientPacketEntityEquipmentEquipments, PlayToClientPacketEntityEquipmentEquipmentsElem := range ret.Equipments { if iPlayToClientPacketEntityEquipmentEquipments != len(ret.Equipments)-1 { err = binary.Write(w, binary.BigEndian, int8(uint8(PlayToClientPacketEntityEquipmentEquipmentsElem.Slot)|128)) if err != nil { return } } else { err = binary.Write(w, binary.BigEndian, PlayToClientPacketEntityEquipmentEquipmentsElem.Slot) if err != nil { return } } PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp := PlayToClientPacketEntityEquipmentEquipmentsElem.Item err = PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp.Encode(w) if err != nil { return } } return } type PlayToClientPacketEntityHeadRotation struct { EntityId int32 HeadYaw int8 } func (ret *PlayToClientPacketEntityHeadRotation) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.HeadYaw) if err != nil { return } return } func (ret *PlayToClientPacketEntityHeadRotation) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.HeadYaw) if err != nil { return } return } type PlayToClientPacketEntityLook struct { EntityId int32 Yaw int8 Pitch int8 OnGround bool } func (ret *PlayToClientPacketEntityLook) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.OnGround) if err != nil { return } return } func (ret *PlayToClientPacketEntityLook) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.OnGround) if err != nil { return } return } type PlayToClientPacketEntityMetadata struct { EntityId int32 Metadata EntityMetadata } func (ret *PlayToClientPacketEntityMetadata) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Metadata.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketEntityMetadata) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } PlayToClientPacketEntityMetadataMetadataEncTmp := ret.Metadata err = PlayToClientPacketEntityMetadataMetadataEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketEntityMoveLook struct { EntityId int32 DX int16 DY int16 DZ int16 Yaw int8 Pitch int8 OnGround bool } func (ret *PlayToClientPacketEntityMoveLook) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DX) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DY) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DZ) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.OnGround) if err != nil { return } return } func (ret *PlayToClientPacketEntityMoveLook) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DX) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DY) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DZ) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.OnGround) if err != nil { return } return } type PlayToClientPacketEntitySoundEffect struct { SoundId int32 SoundCategory int32 EntityId int32 Volume float32 Pitch float32 } func (ret *PlayToClientPacketEntitySoundEffect) Decode(r io.ReadSeeker) (err error) { ret.SoundId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.SoundCategory, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Volume) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } return } func (ret *PlayToClientPacketEntitySoundEffect) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.SoundId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.SoundCategory) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Volume) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } return } type PlayToClientPacketEntityStatus struct { EntityId int32 EntityStatus int8 } func (ret *PlayToClientPacketEntityStatus) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.EntityId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.EntityStatus) if err != nil { return } return } func (ret *PlayToClientPacketEntityStatus) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.EntityStatus) if err != nil { return } return } type PlayToClientPacketEntityTeleport struct { EntityId int32 X float64 Y float64 Z float64 Yaw int8 Pitch int8 OnGround bool } func (ret *PlayToClientPacketEntityTeleport) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) 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.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.OnGround) if err != nil { return } return } func (ret *PlayToClientPacketEntityTeleport) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) 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.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.OnGround) if err != nil { return } return } type PlayToClientPacketEntityUpdateAttributes struct { EntityId int32 Properties []struct { Key string Value float64 Modifiers []struct { Uuid uuid.UUID Amount float64 Operation int8 } } } func (ret *PlayToClientPacketEntityUpdateAttributes) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } var lPlayToClientPacketEntityUpdateAttributesProperties int32 err = binary.Read(r, binary.BigEndian, &lPlayToClientPacketEntityUpdateAttributesProperties) if err != nil { return } ret.Properties = []struct { Key string Value float64 Modifiers []struct { Uuid uuid.UUID Amount float64 Operation int8 } }{} for range lPlayToClientPacketEntityUpdateAttributesProperties { var PlayToClientPacketEntityUpdateAttributesPropertiesElement struct { Key string Value float64 Modifiers []struct { Uuid uuid.UUID Amount float64 Operation int8 } } PlayToClientPacketEntityUpdateAttributesPropertiesElement.Key, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityUpdateAttributesPropertiesElement.Value) if err != nil { return } var lPlayToClientPacketEntityUpdateAttributesPropertiesElementModifiers int32 lPlayToClientPacketEntityUpdateAttributesPropertiesElementModifiers, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketEntityUpdateAttributesPropertiesElement.Modifiers = []struct { Uuid uuid.UUID Amount float64 Operation int8 }{} for range lPlayToClientPacketEntityUpdateAttributesPropertiesElementModifiers { var PlayToClientPacketEntityUpdateAttributesPropertiesElementModifiersElement struct { Uuid uuid.UUID Amount float64 Operation int8 } _, err = io.ReadFull(r, PlayToClientPacketEntityUpdateAttributesPropertiesElementModifiersElement.Uuid[:]) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityUpdateAttributesPropertiesElementModifiersElement.Amount) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityUpdateAttributesPropertiesElementModifiersElement.Operation) if err != nil { return } PlayToClientPacketEntityUpdateAttributesPropertiesElement.Modifiers = append(PlayToClientPacketEntityUpdateAttributesPropertiesElement.Modifiers, PlayToClientPacketEntityUpdateAttributesPropertiesElementModifiersElement) } ret.Properties = append(ret.Properties, PlayToClientPacketEntityUpdateAttributesPropertiesElement) } return } func (ret *PlayToClientPacketEntityUpdateAttributes) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, int32(len(ret.Properties))) if err != nil { return } for iPlayToClientPacketEntityUpdateAttributesProperties := range len(ret.Properties) { err = proto_base.EncodeString(w, ret.Properties[iPlayToClientPacketEntityUpdateAttributesProperties].Key) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Properties[iPlayToClientPacketEntityUpdateAttributesProperties].Value) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Properties[iPlayToClientPacketEntityUpdateAttributesProperties].Modifiers))) if err != nil { return } for iPlayToClientPacketEntityUpdateAttributesPropertiesInnerModifiers := range len(ret.Properties[iPlayToClientPacketEntityUpdateAttributesProperties].Modifiers) { _, err = w.Write(ret.Properties[iPlayToClientPacketEntityUpdateAttributesProperties].Modifiers[iPlayToClientPacketEntityUpdateAttributesPropertiesInnerModifiers].Uuid[:]) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Properties[iPlayToClientPacketEntityUpdateAttributesProperties].Modifiers[iPlayToClientPacketEntityUpdateAttributesPropertiesInnerModifiers].Amount) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Properties[iPlayToClientPacketEntityUpdateAttributesProperties].Modifiers[iPlayToClientPacketEntityUpdateAttributesPropertiesInnerModifiers].Operation) if err != nil { return } } } return } type PlayToClientPacketEntityVelocity struct { EntityId int32 Velocity Vec3i16 } func (ret *PlayToClientPacketEntityVelocity) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Velocity.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketEntityVelocity) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } PlayToClientPacketEntityVelocityVelocityEncTmp := ret.Velocity err = PlayToClientPacketEntityVelocityVelocityEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketExperience struct { ExperienceBar float32 Level int32 TotalExperience int32 } func (ret *PlayToClientPacketExperience) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.ExperienceBar) if err != nil { return } ret.Level, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.TotalExperience, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketExperience) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.ExperienceBar) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Level) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.TotalExperience) if err != nil { return } return } type PlayToClientPacketExplosion struct { X float32 Y float32 Z float32 Radius float32 AffectedBlockOffsets []struct { X int8 Y int8 Z int8 } PlayerMotionX float32 PlayerMotionY float32 PlayerMotionZ float32 } func (ret *PlayToClientPacketExplosion) Decode(r io.ReadSeeker) (err error) { 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.Radius) if err != nil { return } var lPlayToClientPacketExplosionAffectedBlockOffsets int32 err = binary.Read(r, binary.BigEndian, &lPlayToClientPacketExplosionAffectedBlockOffsets) if err != nil { return } ret.AffectedBlockOffsets = []struct { X int8 Y int8 Z int8 }{} for range lPlayToClientPacketExplosionAffectedBlockOffsets { var PlayToClientPacketExplosionAffectedBlockOffsetsElement struct { X int8 Y int8 Z int8 } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketExplosionAffectedBlockOffsetsElement.X) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketExplosionAffectedBlockOffsetsElement.Y) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketExplosionAffectedBlockOffsetsElement.Z) if err != nil { return } ret.AffectedBlockOffsets = append(ret.AffectedBlockOffsets, PlayToClientPacketExplosionAffectedBlockOffsetsElement) } err = binary.Read(r, binary.BigEndian, &ret.PlayerMotionX) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.PlayerMotionY) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.PlayerMotionZ) if err != nil { return } return } func (ret *PlayToClientPacketExplosion) Encode(w io.Writer) (err error) { 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.Radius) if err != nil { return } err = binary.Write(w, binary.BigEndian, int32(len(ret.AffectedBlockOffsets))) if err != nil { return } for iPlayToClientPacketExplosionAffectedBlockOffsets := range len(ret.AffectedBlockOffsets) { err = binary.Write(w, binary.BigEndian, ret.AffectedBlockOffsets[iPlayToClientPacketExplosionAffectedBlockOffsets].X) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.AffectedBlockOffsets[iPlayToClientPacketExplosionAffectedBlockOffsets].Y) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.AffectedBlockOffsets[iPlayToClientPacketExplosionAffectedBlockOffsets].Z) if err != nil { return } } err = binary.Write(w, binary.BigEndian, ret.PlayerMotionX) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.PlayerMotionY) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.PlayerMotionZ) if err != nil { return } return } type PlayToClientPacketFacePlayer struct { FeetEyes int32 X float64 Y float64 Z float64 IsEntity bool EntityId any EntityFeetEyes any } func (ret *PlayToClientPacketFacePlayer) Decode(r io.ReadSeeker) (err error) { ret.FeetEyes, err = proto_base.DecodeVarInt(r) 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.IsEntity) if err != nil { return } switch ret.IsEntity { case true: var PlayToClientPacketFacePlayerEntityIdTrueTmp int32 PlayToClientPacketFacePlayerEntityIdTrueTmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.EntityId = PlayToClientPacketFacePlayerEntityIdTrueTmp default: var PlayToClientPacketFacePlayerEntityIdTmp struct { } ret.EntityId = PlayToClientPacketFacePlayerEntityIdTmp } switch ret.IsEntity { case true: var PlayToClientPacketFacePlayerEntityFeetEyesTrueTmp string PlayToClientPacketFacePlayerEntityFeetEyesTrueTmp, err = proto_base.DecodeString(r) if err != nil { return } ret.EntityFeetEyes = PlayToClientPacketFacePlayerEntityFeetEyesTrueTmp default: var PlayToClientPacketFacePlayerEntityFeetEyesTmp struct { } ret.EntityFeetEyes = PlayToClientPacketFacePlayerEntityFeetEyesTmp } return } func (ret *PlayToClientPacketFacePlayer) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.FeetEyes) 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.IsEntity) if err != nil { return } switch ret.IsEntity { case true: PlayToClientPacketFacePlayerEntityId, ok := ret.EntityId.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketFacePlayerEntityId) if err != nil { return } default: _, ok := ret.EntityId.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.IsEntity { case true: PlayToClientPacketFacePlayerEntityFeetEyes, ok := ret.EntityFeetEyes.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketFacePlayerEntityFeetEyes) if err != nil { return } default: _, ok := ret.EntityFeetEyes.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketGameStateChange struct { Reason uint8 GameMode float32 } func (ret *PlayToClientPacketGameStateChange) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Reason) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.GameMode) if err != nil { return } return } func (ret *PlayToClientPacketGameStateChange) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Reason) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.GameMode) if err != nil { return } return } type PlayToClientPacketHeldItemSlot struct { Slot int8 } func (ret *PlayToClientPacketHeldItemSlot) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Slot) if err != nil { return } return } func (ret *PlayToClientPacketHeldItemSlot) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Slot) if err != nil { return } return } type PlayToClientPacketKeepAlive struct { KeepAliveId int64 } func (ret *PlayToClientPacketKeepAlive) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.KeepAliveId) if err != nil { return } return } func (ret *PlayToClientPacketKeepAlive) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.KeepAliveId) if err != nil { return } return } type PlayToClientPacketKickDisconnect struct { Reason string } func (ret *PlayToClientPacketKickDisconnect) Decode(r io.ReadSeeker) (err error) { ret.Reason, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToClientPacketKickDisconnect) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Reason) if err != nil { return } return } type PlayToClientPacketLogin struct { EntityId int32 IsHardcore bool GameMode uint8 PreviousGameMode uint8 WorldNames []string DimensionCodec nbt.Tag Dimension nbt.Tag WorldName string HashedSeed int64 MaxPlayers int32 ViewDistance int32 ReducedDebugInfo bool EnableRespawnScreen bool IsDebug bool IsFlat bool } func (ret *PlayToClientPacketLogin) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.EntityId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.IsHardcore) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.GameMode) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.PreviousGameMode) if err != nil { return } var lPlayToClientPacketLoginWorldNames int32 lPlayToClientPacketLoginWorldNames, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.WorldNames = []string{} for range lPlayToClientPacketLoginWorldNames { var PlayToClientPacketLoginWorldNamesElement string PlayToClientPacketLoginWorldNamesElement, err = proto_base.DecodeString(r) if err != nil { return } ret.WorldNames = append(ret.WorldNames, PlayToClientPacketLoginWorldNamesElement) } err = ret.DimensionCodec.Decode(r) if err != nil { return } err = ret.Dimension.Decode(r) if err != nil { return } ret.WorldName, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.HashedSeed) if err != nil { return } ret.MaxPlayers, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ViewDistance, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.ReducedDebugInfo) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.EnableRespawnScreen) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.IsDebug) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.IsFlat) if err != nil { return } return } func (ret *PlayToClientPacketLogin) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.IsHardcore) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.GameMode) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.PreviousGameMode) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.WorldNames))) if err != nil { return } for iPlayToClientPacketLoginWorldNames := range len(ret.WorldNames) { err = proto_base.EncodeString(w, ret.WorldNames[iPlayToClientPacketLoginWorldNames]) if err != nil { return } } PlayToClientPacketLoginDimensionCodecEncTmp := ret.DimensionCodec err = PlayToClientPacketLoginDimensionCodecEncTmp.Encode(w) if err != nil { return } PlayToClientPacketLoginDimensionEncTmp := ret.Dimension err = PlayToClientPacketLoginDimensionEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeString(w, ret.WorldName) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.HashedSeed) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.MaxPlayers) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.ViewDistance) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.ReducedDebugInfo) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.EnableRespawnScreen) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.IsDebug) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.IsFlat) if err != nil { return } return } type PlayToClientPacketMap struct { ItemDamage int32 Scale int8 TrackingPosition bool Locked bool Icons []struct { Type int32 X int8 Z int8 Direction uint8 DisplayName *string } Columns int8 Rows any X any Y any Data any } func (ret *PlayToClientPacketMap) Decode(r io.ReadSeeker) (err error) { ret.ItemDamage, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Scale) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.TrackingPosition) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Locked) if err != nil { return } var lPlayToClientPacketMapIcons int32 lPlayToClientPacketMapIcons, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Icons = []struct { Type int32 X int8 Z int8 Direction uint8 DisplayName *string }{} for range lPlayToClientPacketMapIcons { var PlayToClientPacketMapIconsElement struct { Type int32 X int8 Z int8 Direction uint8 DisplayName *string } PlayToClientPacketMapIconsElement.Type, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMapIconsElement.X) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMapIconsElement.Z) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMapIconsElement.Direction) if err != nil { return } var PlayToClientPacketMapIconsElementDisplayNamePresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMapIconsElementDisplayNamePresent) if err != nil { return } if PlayToClientPacketMapIconsElementDisplayNamePresent { var PlayToClientPacketMapIconsElementDisplayNamePresentValue string PlayToClientPacketMapIconsElementDisplayNamePresentValue, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketMapIconsElement.DisplayName = &PlayToClientPacketMapIconsElementDisplayNamePresentValue } ret.Icons = append(ret.Icons, PlayToClientPacketMapIconsElement) } err = binary.Read(r, binary.BigEndian, &ret.Columns) if err != nil { return } switch ret.Columns { case 0: var PlayToClientPacketMapRows0Tmp struct { } ret.Rows = PlayToClientPacketMapRows0Tmp default: var PlayToClientPacketMapRowsTmp int8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMapRowsTmp) if err != nil { return } ret.Rows = PlayToClientPacketMapRowsTmp } switch ret.Columns { case 0: var PlayToClientPacketMapX0Tmp struct { } ret.X = PlayToClientPacketMapX0Tmp default: var PlayToClientPacketMapXTmp int8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMapXTmp) if err != nil { return } ret.X = PlayToClientPacketMapXTmp } switch ret.Columns { case 0: var PlayToClientPacketMapY0Tmp struct { } ret.Y = PlayToClientPacketMapY0Tmp default: var PlayToClientPacketMapYTmp int8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMapYTmp) if err != nil { return } ret.Y = PlayToClientPacketMapYTmp } switch ret.Columns { case 0: var PlayToClientPacketMapData0Tmp struct { } ret.Data = PlayToClientPacketMapData0Tmp default: var PlayToClientPacketMapDataTmp []byte var lPlayToClientPacketMapData int32 lPlayToClientPacketMapData, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketMapDataTmp, err = io.ReadAll(io.LimitReader(r, int64(lPlayToClientPacketMapData))) if err != nil { return } ret.Data = PlayToClientPacketMapDataTmp } return } func (ret *PlayToClientPacketMap) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ItemDamage) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Scale) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.TrackingPosition) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Locked) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Icons))) if err != nil { return } for iPlayToClientPacketMapIcons := range len(ret.Icons) { err = proto_base.EncodeVarInt(w, ret.Icons[iPlayToClientPacketMapIcons].Type) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Icons[iPlayToClientPacketMapIcons].X) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Icons[iPlayToClientPacketMapIcons].Z) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Icons[iPlayToClientPacketMapIcons].Direction) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Icons[iPlayToClientPacketMapIcons].DisplayName != nil) if err != nil { return } if ret.Icons[iPlayToClientPacketMapIcons].DisplayName != nil { err = proto_base.EncodeString(w, *ret.Icons[iPlayToClientPacketMapIcons].DisplayName) if err != nil { return } } } err = binary.Write(w, binary.BigEndian, ret.Columns) if err != nil { return } switch ret.Columns { case 0: _, ok := ret.Rows.(struct { }) if !ok { err = proto_base.BadTypeError return } default: _, ok := ret.Rows.(int8) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, ret.Rows.(int8)) if err != nil { return } } switch ret.Columns { case 0: _, ok := ret.X.(struct { }) if !ok { err = proto_base.BadTypeError return } default: _, ok := ret.X.(int8) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, ret.X.(int8)) if err != nil { return } } switch ret.Columns { case 0: _, ok := ret.Y.(struct { }) if !ok { err = proto_base.BadTypeError return } default: _, ok := ret.Y.(int8) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, ret.Y.(int8)) if err != nil { return } } switch ret.Columns { case 0: _, ok := ret.Data.(struct { }) if !ok { err = proto_base.BadTypeError return } default: _, ok := ret.Data.([]byte) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, int32(len(ret.Data.([]byte)))) if err != nil { return } _, err = w.Write(ret.Data.([]byte)) if err != nil { return } } return } type PlayToClientPacketMapChunk struct { X int32 Z int32 GroundUp bool BitMap int32 Heightmaps nbt.Tag Biomes any ChunkData []byte BlockEntities []nbt.Tag } func (ret *PlayToClientPacketMapChunk) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.X) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Z) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.GroundUp) if err != nil { return } ret.BitMap, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Heightmaps.Decode(r) if err != nil { return } switch ret.GroundUp { case false: var PlayToClientPacketMapChunkBiomesFalseTmp struct { } ret.Biomes = PlayToClientPacketMapChunkBiomesFalseTmp case true: var PlayToClientPacketMapChunkBiomesTrueTmp []int32 var lPlayToClientPacketMapChunkBiomesTrueTmp int32 lPlayToClientPacketMapChunkBiomesTrueTmp, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketMapChunkBiomesTrueTmp = []int32{} for range lPlayToClientPacketMapChunkBiomesTrueTmp { var PlayToClientPacketMapChunkBiomesTrueTmpElement int32 PlayToClientPacketMapChunkBiomesTrueTmpElement, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketMapChunkBiomesTrueTmp = append(PlayToClientPacketMapChunkBiomesTrueTmp, PlayToClientPacketMapChunkBiomesTrueTmpElement) } ret.Biomes = PlayToClientPacketMapChunkBiomesTrueTmp } var lPlayToClientPacketMapChunkChunkData int32 lPlayToClientPacketMapChunkChunkData, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ChunkData, err = io.ReadAll(io.LimitReader(r, int64(lPlayToClientPacketMapChunkChunkData))) if err != nil { return } var lPlayToClientPacketMapChunkBlockEntities int32 lPlayToClientPacketMapChunkBlockEntities, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.BlockEntities = []nbt.Tag{} for range lPlayToClientPacketMapChunkBlockEntities { var PlayToClientPacketMapChunkBlockEntitiesElement nbt.Tag err = PlayToClientPacketMapChunkBlockEntitiesElement.Decode(r) if err != nil { return } ret.BlockEntities = append(ret.BlockEntities, PlayToClientPacketMapChunkBlockEntitiesElement) } return } func (ret *PlayToClientPacketMapChunk) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.X) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Z) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.GroundUp) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.BitMap) if err != nil { return } PlayToClientPacketMapChunkHeightmapsEncTmp := ret.Heightmaps err = PlayToClientPacketMapChunkHeightmapsEncTmp.Encode(w) if err != nil { return } switch ret.GroundUp { case false: _, ok := ret.Biomes.(struct { }) if !ok { err = proto_base.BadTypeError return } case true: PlayToClientPacketMapChunkBiomes, ok := ret.Biomes.([]int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, int32(len(PlayToClientPacketMapChunkBiomes))) if err != nil { return } for iPlayToClientPacketMapChunkBiomes := range len(PlayToClientPacketMapChunkBiomes) { err = proto_base.EncodeVarInt(w, PlayToClientPacketMapChunkBiomes[iPlayToClientPacketMapChunkBiomes]) if err != nil { return } } } err = proto_base.EncodeVarInt(w, int32(len(ret.ChunkData))) if err != nil { return } _, err = w.Write(ret.ChunkData) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.BlockEntities))) if err != nil { return } for iPlayToClientPacketMapChunkBlockEntities := range len(ret.BlockEntities) { PlayToClientPacketMapChunkBlockEntitiesInnerEncTmp := ret.BlockEntities[iPlayToClientPacketMapChunkBlockEntities] err = PlayToClientPacketMapChunkBlockEntitiesInnerEncTmp.Encode(w) if err != nil { return } } return } type PlayToClientPacketMultiBlockChange struct { ChunkCoordinates struct { X int32 Z int32 Y uint32 } NotTrustEdges bool Records []int64 } func (ret *PlayToClientPacketMultiBlockChange) Decode(r io.ReadSeeker) (err error) { var PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked uint64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked) if err != nil { return } ret.ChunkCoordinates.Y = uint32(PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked >> 0 & 1048575) ret.ChunkCoordinates.Z = int32(PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked >> 20 & 4194303) if ret.ChunkCoordinates.Z >= 1<<21 { ret.ChunkCoordinates.Z -= 1 << 22 } ret.ChunkCoordinates.X = int32(PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked >> 42 & 4194303) if ret.ChunkCoordinates.X >= 1<<21 { ret.ChunkCoordinates.X -= 1 << 22 } err = binary.Read(r, binary.BigEndian, &ret.NotTrustEdges) if err != nil { return } var lPlayToClientPacketMultiBlockChangeRecords int32 lPlayToClientPacketMultiBlockChangeRecords, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Records = []int64{} for range lPlayToClientPacketMultiBlockChangeRecords { var PlayToClientPacketMultiBlockChangeRecordsElement int64 PlayToClientPacketMultiBlockChangeRecordsElement, err = proto_base.DecodeVarLong(r) if err != nil { return } ret.Records = append(ret.Records, PlayToClientPacketMultiBlockChangeRecordsElement) } return } func (ret *PlayToClientPacketMultiBlockChange) Encode(w io.Writer) (err error) { var PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked uint64 PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked |= (uint64(ret.ChunkCoordinates.Y) & 0xFFFFF) << 0x0 PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked |= (uint64(ret.ChunkCoordinates.Z) & 0x3FFFFF) << 0x14 PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked |= (uint64(ret.ChunkCoordinates.X) & 0x3FFFFF) << 0x2A err = binary.Write(w, binary.BigEndian, PlayToClientPacketMultiBlockChangeChunkCoordinatesPacked) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.NotTrustEdges) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Records))) if err != nil { return } for iPlayToClientPacketMultiBlockChangeRecords := range len(ret.Records) { err = proto_base.EncodeVarLong(w, ret.Records[iPlayToClientPacketMultiBlockChangeRecords]) if err != nil { return } } return } type PlayToClientPacketNamedEntitySpawn struct { EntityId int32 PlayerUUID uuid.UUID X float64 Y float64 Z float64 Yaw int8 Pitch int8 } func (ret *PlayToClientPacketNamedEntitySpawn) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } _, err = io.ReadFull(r, ret.PlayerUUID[:]) 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.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } return } func (ret *PlayToClientPacketNamedEntitySpawn) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } _, err = w.Write(ret.PlayerUUID[:]) 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.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } return } type PlayToClientPacketNamedSoundEffect struct { SoundName string SoundCategory int32 X int32 Y int32 Z int32 Volume float32 Pitch float32 } func (ret *PlayToClientPacketNamedSoundEffect) Decode(r io.ReadSeeker) (err error) { ret.SoundName, err = proto_base.DecodeString(r) if err != nil { return } ret.SoundCategory, err = proto_base.DecodeVarInt(r) 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.Volume) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } return } func (ret *PlayToClientPacketNamedSoundEffect) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.SoundName) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.SoundCategory) 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.Volume) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } return } type PlayToClientPacketNbtQueryResponse struct { TransactionId int32 Nbt nbt.Tag } func (ret *PlayToClientPacketNbtQueryResponse) Decode(r io.ReadSeeker) (err error) { ret.TransactionId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Nbt.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketNbtQueryResponse) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.TransactionId) if err != nil { return } PlayToClientPacketNbtQueryResponseNbtEncTmp := ret.Nbt err = PlayToClientPacketNbtQueryResponseNbtEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketOpenBook struct { Hand int32 } func (ret *PlayToClientPacketOpenBook) Decode(r io.ReadSeeker) (err error) { ret.Hand, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketOpenBook) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Hand) if err != nil { return } return } type PlayToClientPacketOpenHorseWindow struct { WindowId uint8 NbSlots int32 EntityId int32 } func (ret *PlayToClientPacketOpenHorseWindow) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } ret.NbSlots, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.EntityId) if err != nil { return } return } func (ret *PlayToClientPacketOpenHorseWindow) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.NbSlots) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.EntityId) if err != nil { return } return } type PlayToClientPacketOpenSignEntity struct { Location Position } func (ret *PlayToClientPacketOpenSignEntity) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketOpenSignEntity) Encode(w io.Writer) (err error) { PlayToClientPacketOpenSignEntityLocationEncTmp := ret.Location err = PlayToClientPacketOpenSignEntityLocationEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketOpenWindow struct { WindowId int32 InventoryType int32 WindowTitle string } func (ret *PlayToClientPacketOpenWindow) Decode(r io.ReadSeeker) (err error) { ret.WindowId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.InventoryType, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.WindowTitle, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToClientPacketOpenWindow) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.WindowId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.InventoryType) if err != nil { return } err = proto_base.EncodeString(w, ret.WindowTitle) if err != nil { return } return } type PlayToClientPacketPlayerInfo struct { Action string Data []struct { Uuid uuid.UUID Anon any } } var PlayToClientPacketPlayerInfoActionMap = map[int32]string{0: "add_player", 1: "update_game_mode", 2: "update_latency", 3: "update_display_name", 4: "remove_player"} func (ret *PlayToClientPacketPlayerInfo) Decode(r io.ReadSeeker) (err error) { var PlayToClientPacketPlayerInfoActionKey int32 PlayToClientPacketPlayerInfoActionKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Action, err = proto_base.ErroringIndex(PlayToClientPacketPlayerInfoActionMap, PlayToClientPacketPlayerInfoActionKey) if err != nil { return } var lPlayToClientPacketPlayerInfoData int32 lPlayToClientPacketPlayerInfoData, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Data = []struct { Uuid uuid.UUID Anon any }{} for range lPlayToClientPacketPlayerInfoData { var PlayToClientPacketPlayerInfoDataElement struct { Uuid uuid.UUID Anon any } _, err = io.ReadFull(r, PlayToClientPacketPlayerInfoDataElement.Uuid[:]) if err != nil { return } switch ret.Action { case "add_player": var PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp struct { Name string Properties []struct { Name string Value string Signature *string } Gamemode int32 Ping int32 DisplayName *string } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp.Name, err = proto_base.DecodeString(r) if err != nil { return } var lPlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpProperties int32 lPlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpProperties, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp.Properties = []struct { Name string Value string Signature *string }{} for range lPlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpProperties { var PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElement struct { Name string Value string Signature *string } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElement.Name, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElement.Value, err = proto_base.DecodeString(r) if err != nil { return } var PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElementSignaturePresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElementSignaturePresent) if err != nil { return } if PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElementSignaturePresent { var PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElementSignaturePresentValue string PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElementSignaturePresentValue, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElement.Signature = &PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElementSignaturePresentValue } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp.Properties = append(PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp.Properties, PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpPropertiesElement) } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp.Gamemode, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp.Ping, err = proto_base.DecodeVarInt(r) if err != nil { return } var PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpDisplayNamePresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpDisplayNamePresent) if err != nil { return } if PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpDisplayNamePresent { var PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpDisplayNamePresentValue string PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpDisplayNamePresentValue, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp.DisplayName = &PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmpDisplayNamePresentValue } PlayToClientPacketPlayerInfoDataElement.Anon = PlayToClientPacketPlayerInfoDataElementAnonAddPlayerTmp case "remove_player": var PlayToClientPacketPlayerInfoDataElementAnonRemovePlayerTmp struct { } PlayToClientPacketPlayerInfoDataElement.Anon = PlayToClientPacketPlayerInfoDataElementAnonRemovePlayerTmp case "update_display_name": var PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmp struct { DisplayName *string } var PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmpDisplayNamePresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmpDisplayNamePresent) if err != nil { return } if PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmpDisplayNamePresent { var PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmpDisplayNamePresentValue string PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmpDisplayNamePresentValue, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmp.DisplayName = &PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmpDisplayNamePresentValue } PlayToClientPacketPlayerInfoDataElement.Anon = PlayToClientPacketPlayerInfoDataElementAnonUpdateDisplayNameTmp case "update_game_mode": var PlayToClientPacketPlayerInfoDataElementAnonUpdateGameModeTmp struct { Gamemode int32 } PlayToClientPacketPlayerInfoDataElementAnonUpdateGameModeTmp.Gamemode, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElement.Anon = PlayToClientPacketPlayerInfoDataElementAnonUpdateGameModeTmp case "update_latency": var PlayToClientPacketPlayerInfoDataElementAnonUpdateLatencyTmp struct { Ping int32 } PlayToClientPacketPlayerInfoDataElementAnonUpdateLatencyTmp.Ping, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketPlayerInfoDataElement.Anon = PlayToClientPacketPlayerInfoDataElementAnonUpdateLatencyTmp } ret.Data = append(ret.Data, PlayToClientPacketPlayerInfoDataElement) } return } var PlayToClientPacketPlayerInfoActionReverseMap = map[string]int32{"add_player": 0, "update_game_mode": 1, "update_latency": 2, "update_display_name": 3, "remove_player": 4} func (ret *PlayToClientPacketPlayerInfo) Encode(w io.Writer) (err error) { var vPlayToClientPacketPlayerInfoAction int32 vPlayToClientPacketPlayerInfoAction, err = proto_base.ErroringIndex(PlayToClientPacketPlayerInfoActionReverseMap, ret.Action) if err != nil { return } err = proto_base.EncodeVarInt(w, vPlayToClientPacketPlayerInfoAction) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Data))) if err != nil { return } for iPlayToClientPacketPlayerInfoData := range len(ret.Data) { _, err = w.Write(ret.Data[iPlayToClientPacketPlayerInfoData].Uuid[:]) if err != nil { return } switch ret.Action { case "add_player": PlayToClientPacketPlayerInfoDataInnerAnon, ok := ret.Data[iPlayToClientPacketPlayerInfoData].Anon.(struct { Name string Properties []struct { Name string Value string Signature *string } Gamemode int32 Ping int32 DisplayName *string }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketPlayerInfoDataInnerAnon.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(PlayToClientPacketPlayerInfoDataInnerAnon.Properties))) if err != nil { return } for iPlayToClientPacketPlayerInfoDataInnerAnonProperties := range len(PlayToClientPacketPlayerInfoDataInnerAnon.Properties) { err = proto_base.EncodeString(w, PlayToClientPacketPlayerInfoDataInnerAnon.Properties[iPlayToClientPacketPlayerInfoDataInnerAnonProperties].Name) if err != nil { return } err = proto_base.EncodeString(w, PlayToClientPacketPlayerInfoDataInnerAnon.Properties[iPlayToClientPacketPlayerInfoDataInnerAnonProperties].Value) if err != nil { return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketPlayerInfoDataInnerAnon.Properties[iPlayToClientPacketPlayerInfoDataInnerAnonProperties].Signature != nil) if err != nil { return } if PlayToClientPacketPlayerInfoDataInnerAnon.Properties[iPlayToClientPacketPlayerInfoDataInnerAnonProperties].Signature != nil { err = proto_base.EncodeString(w, *PlayToClientPacketPlayerInfoDataInnerAnon.Properties[iPlayToClientPacketPlayerInfoDataInnerAnonProperties].Signature) if err != nil { return } } } err = proto_base.EncodeVarInt(w, PlayToClientPacketPlayerInfoDataInnerAnon.Gamemode) if err != nil { return } err = proto_base.EncodeVarInt(w, PlayToClientPacketPlayerInfoDataInnerAnon.Ping) if err != nil { return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketPlayerInfoDataInnerAnon.DisplayName != nil) if err != nil { return } if PlayToClientPacketPlayerInfoDataInnerAnon.DisplayName != nil { err = proto_base.EncodeString(w, *PlayToClientPacketPlayerInfoDataInnerAnon.DisplayName) if err != nil { return } } case "remove_player": _, ok := ret.Data[iPlayToClientPacketPlayerInfoData].Anon.(struct { }) if !ok { err = proto_base.BadTypeError return } case "update_display_name": PlayToClientPacketPlayerInfoDataInnerAnon, ok := ret.Data[iPlayToClientPacketPlayerInfoData].Anon.(struct { DisplayName *string }) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketPlayerInfoDataInnerAnon.DisplayName != nil) if err != nil { return } if PlayToClientPacketPlayerInfoDataInnerAnon.DisplayName != nil { err = proto_base.EncodeString(w, *PlayToClientPacketPlayerInfoDataInnerAnon.DisplayName) if err != nil { return } } case "update_game_mode": PlayToClientPacketPlayerInfoDataInnerAnon, ok := ret.Data[iPlayToClientPacketPlayerInfoData].Anon.(struct { Gamemode int32 }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketPlayerInfoDataInnerAnon.Gamemode) if err != nil { return } case "update_latency": PlayToClientPacketPlayerInfoDataInnerAnon, ok := ret.Data[iPlayToClientPacketPlayerInfoData].Anon.(struct { Ping int32 }) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketPlayerInfoDataInnerAnon.Ping) if err != nil { return } } } return } type PlayToClientPacketPlayerlistHeader struct { Header string Footer string } func (ret *PlayToClientPacketPlayerlistHeader) Decode(r io.ReadSeeker) (err error) { ret.Header, err = proto_base.DecodeString(r) if err != nil { return } ret.Footer, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToClientPacketPlayerlistHeader) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Header) if err != nil { return } err = proto_base.EncodeString(w, ret.Footer) if err != nil { return } return } type PlayToClientPacketPosition struct { X float64 Y float64 Z float64 Yaw float32 Pitch float32 Flags int8 TeleportId int32 } func (ret *PlayToClientPacketPosition) Decode(r io.ReadSeeker) (err error) { 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.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Flags) if err != nil { return } ret.TeleportId, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketPosition) Encode(w io.Writer) (err error) { 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.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Flags) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.TeleportId) if err != nil { return } return } type PlayToClientPacketRelEntityMove struct { EntityId int32 DX int16 DY int16 DZ int16 OnGround bool } func (ret *PlayToClientPacketRelEntityMove) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DX) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DY) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.DZ) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.OnGround) if err != nil { return } return } func (ret *PlayToClientPacketRelEntityMove) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DX) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DY) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.DZ) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.OnGround) if err != nil { return } return } type PlayToClientPacketRemoveEntityEffect struct { EntityId int32 EffectId int8 } func (ret *PlayToClientPacketRemoveEntityEffect) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.EffectId) if err != nil { return } return } func (ret *PlayToClientPacketRemoveEntityEffect) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.EffectId) if err != nil { return } return } type PlayToClientPacketResourcePackSend struct { Url string Hash string } func (ret *PlayToClientPacketResourcePackSend) Decode(r io.ReadSeeker) (err error) { ret.Url, err = proto_base.DecodeString(r) if err != nil { return } ret.Hash, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToClientPacketResourcePackSend) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Url) if err != nil { return } err = proto_base.EncodeString(w, ret.Hash) if err != nil { return } return } type PlayToClientPacketRespawn struct { Dimension nbt.Tag WorldName string HashedSeed int64 Gamemode uint8 PreviousGamemode uint8 IsDebug bool IsFlat bool CopyMetadata bool } func (ret *PlayToClientPacketRespawn) Decode(r io.ReadSeeker) (err error) { err = ret.Dimension.Decode(r) if err != nil { return } ret.WorldName, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.HashedSeed) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Gamemode) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.PreviousGamemode) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.IsDebug) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.IsFlat) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.CopyMetadata) if err != nil { return } return } func (ret *PlayToClientPacketRespawn) Encode(w io.Writer) (err error) { PlayToClientPacketRespawnDimensionEncTmp := ret.Dimension err = PlayToClientPacketRespawnDimensionEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeString(w, ret.WorldName) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.HashedSeed) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Gamemode) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.PreviousGamemode) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.IsDebug) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.IsFlat) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.CopyMetadata) if err != nil { return } return } type PlayToClientPacketScoreboardDisplayObjective struct { Position int8 Name string } func (ret *PlayToClientPacketScoreboardDisplayObjective) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Position) if err != nil { return } ret.Name, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToClientPacketScoreboardDisplayObjective) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Position) if err != nil { return } err = proto_base.EncodeString(w, ret.Name) if err != nil { return } return } type PlayToClientPacketScoreboardObjective struct { Name string Action int8 DisplayText any Type any } func (ret *PlayToClientPacketScoreboardObjective) Decode(r io.ReadSeeker) (err error) { ret.Name, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Action) if err != nil { return } switch ret.Action { case 0: var PlayToClientPacketScoreboardObjectiveDisplayText0Tmp string PlayToClientPacketScoreboardObjectiveDisplayText0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.DisplayText = PlayToClientPacketScoreboardObjectiveDisplayText0Tmp case 2: var PlayToClientPacketScoreboardObjectiveDisplayText2Tmp string PlayToClientPacketScoreboardObjectiveDisplayText2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.DisplayText = PlayToClientPacketScoreboardObjectiveDisplayText2Tmp default: var PlayToClientPacketScoreboardObjectiveDisplayTextTmp struct { } ret.DisplayText = PlayToClientPacketScoreboardObjectiveDisplayTextTmp } switch ret.Action { case 0: var PlayToClientPacketScoreboardObjectiveType0Tmp int32 PlayToClientPacketScoreboardObjectiveType0Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Type = PlayToClientPacketScoreboardObjectiveType0Tmp case 2: var PlayToClientPacketScoreboardObjectiveType2Tmp int32 PlayToClientPacketScoreboardObjectiveType2Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Type = PlayToClientPacketScoreboardObjectiveType2Tmp default: var PlayToClientPacketScoreboardObjectiveTypeTmp struct { } ret.Type = PlayToClientPacketScoreboardObjectiveTypeTmp } return } func (ret *PlayToClientPacketScoreboardObjective) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Name) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Action) if err != nil { return } switch ret.Action { case 0: PlayToClientPacketScoreboardObjectiveDisplayText, ok := ret.DisplayText.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketScoreboardObjectiveDisplayText) if err != nil { return } case 2: PlayToClientPacketScoreboardObjectiveDisplayText, ok := ret.DisplayText.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketScoreboardObjectiveDisplayText) if err != nil { return } default: _, ok := ret.DisplayText.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 0: PlayToClientPacketScoreboardObjectiveType, ok := ret.Type.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketScoreboardObjectiveType) if err != nil { return } case 2: PlayToClientPacketScoreboardObjectiveType, ok := ret.Type.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketScoreboardObjectiveType) if err != nil { return } default: _, ok := ret.Type.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketScoreboardScore struct { ItemName string Action int32 ScoreName string Value any } func (ret *PlayToClientPacketScoreboardScore) Decode(r io.ReadSeeker) (err error) { ret.ItemName, err = proto_base.DecodeString(r) if err != nil { return } ret.Action, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ScoreName, err = proto_base.DecodeString(r) if err != nil { return } switch ret.Action { case 1: var PlayToClientPacketScoreboardScoreValue1Tmp struct { } ret.Value = PlayToClientPacketScoreboardScoreValue1Tmp default: var PlayToClientPacketScoreboardScoreValueTmp int32 PlayToClientPacketScoreboardScoreValueTmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Value = PlayToClientPacketScoreboardScoreValueTmp } return } func (ret *PlayToClientPacketScoreboardScore) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.ItemName) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Action) if err != nil { return } err = proto_base.EncodeString(w, ret.ScoreName) if err != nil { return } switch ret.Action { case 1: _, ok := ret.Value.(struct { }) if !ok { err = proto_base.BadTypeError return } default: _, ok := ret.Value.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, ret.Value.(int32)) if err != nil { return } } return } type PlayToClientPacketSelectAdvancementTab struct { Id *string } func (ret *PlayToClientPacketSelectAdvancementTab) Decode(r io.ReadSeeker) (err error) { var PlayToClientPacketSelectAdvancementTabIdPresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketSelectAdvancementTabIdPresent) if err != nil { return } if PlayToClientPacketSelectAdvancementTabIdPresent { var PlayToClientPacketSelectAdvancementTabIdPresentValue string PlayToClientPacketSelectAdvancementTabIdPresentValue, err = proto_base.DecodeString(r) if err != nil { return } ret.Id = &PlayToClientPacketSelectAdvancementTabIdPresentValue } return } func (ret *PlayToClientPacketSelectAdvancementTab) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Id != nil) if err != nil { return } if ret.Id != nil { err = proto_base.EncodeString(w, *ret.Id) if err != nil { return } } return } type PlayToClientPacketSetCooldown struct { ItemID int32 CooldownTicks int32 } func (ret *PlayToClientPacketSetCooldown) Decode(r io.ReadSeeker) (err error) { ret.ItemID, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.CooldownTicks, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketSetCooldown) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ItemID) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.CooldownTicks) if err != nil { return } return } type PlayToClientPacketSetPassengers struct { EntityId int32 Passengers []int32 } func (ret *PlayToClientPacketSetPassengers) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } var lPlayToClientPacketSetPassengersPassengers int32 lPlayToClientPacketSetPassengersPassengers, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Passengers = []int32{} for range lPlayToClientPacketSetPassengersPassengers { var PlayToClientPacketSetPassengersPassengersElement int32 PlayToClientPacketSetPassengersPassengersElement, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Passengers = append(ret.Passengers, PlayToClientPacketSetPassengersPassengersElement) } return } func (ret *PlayToClientPacketSetPassengers) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Passengers))) if err != nil { return } for iPlayToClientPacketSetPassengersPassengers := range len(ret.Passengers) { err = proto_base.EncodeVarInt(w, ret.Passengers[iPlayToClientPacketSetPassengersPassengers]) if err != nil { return } } return } type PlayToClientPacketSetSlot struct { WindowId int8 Slot int16 Item Slot } func (ret *PlayToClientPacketSetSlot) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Slot) if err != nil { return } err = ret.Item.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketSetSlot) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Slot) if err != nil { return } PlayToClientPacketSetSlotItemEncTmp := ret.Item err = PlayToClientPacketSetSlotItemEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketSoundEffect struct { SoundId int32 SoundCategory int32 X int32 Y int32 Z int32 Volume float32 Pitch float32 } func (ret *PlayToClientPacketSoundEffect) Decode(r io.ReadSeeker) (err error) { ret.SoundId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.SoundCategory, err = proto_base.DecodeVarInt(r) 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.Volume) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } return } func (ret *PlayToClientPacketSoundEffect) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.SoundId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.SoundCategory) 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.Volume) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } return } type PlayToClientPacketSpawnEntity struct { EntityId int32 ObjectUUID uuid.UUID Type int32 X float64 Y float64 Z float64 Pitch int8 Yaw int8 ObjectData int32 Velocity Vec3i16 } func (ret *PlayToClientPacketSpawnEntity) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } _, err = io.ReadFull(r, ret.ObjectUUID[:]) if err != nil { return } ret.Type, err = proto_base.DecodeVarInt(r) 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.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.ObjectData) if err != nil { return } err = ret.Velocity.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketSpawnEntity) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } _, err = w.Write(ret.ObjectUUID[:]) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Type) 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.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.ObjectData) if err != nil { return } PlayToClientPacketSpawnEntityVelocityEncTmp := ret.Velocity err = PlayToClientPacketSpawnEntityVelocityEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketSpawnEntityExperienceOrb struct { EntityId int32 X float64 Y float64 Z float64 Count int16 } func (ret *PlayToClientPacketSpawnEntityExperienceOrb) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) 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.Count) if err != nil { return } return } func (ret *PlayToClientPacketSpawnEntityExperienceOrb) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) 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.Count) if err != nil { return } return } type PlayToClientPacketSpawnEntityLiving struct { EntityId int32 EntityUUID uuid.UUID Type int32 X float64 Y float64 Z float64 Yaw int8 Pitch int8 HeadPitch int8 Velocity Vec3i16 } func (ret *PlayToClientPacketSpawnEntityLiving) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } _, err = io.ReadFull(r, ret.EntityUUID[:]) if err != nil { return } ret.Type, err = proto_base.DecodeVarInt(r) 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.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.HeadPitch) if err != nil { return } err = ret.Velocity.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketSpawnEntityLiving) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } _, err = w.Write(ret.EntityUUID[:]) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Type) 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.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.HeadPitch) if err != nil { return } PlayToClientPacketSpawnEntityLivingVelocityEncTmp := ret.Velocity err = PlayToClientPacketSpawnEntityLivingVelocityEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketSpawnEntityPainting struct { EntityId int32 EntityUUID uuid.UUID Title int32 Location Position Direction uint8 } func (ret *PlayToClientPacketSpawnEntityPainting) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } _, err = io.ReadFull(r, ret.EntityUUID[:]) if err != nil { return } ret.Title, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Location.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Direction) if err != nil { return } return } func (ret *PlayToClientPacketSpawnEntityPainting) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } _, err = w.Write(ret.EntityUUID[:]) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Title) if err != nil { return } PlayToClientPacketSpawnEntityPaintingLocationEncTmp := ret.Location err = PlayToClientPacketSpawnEntityPaintingLocationEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Direction) if err != nil { return } return } type PlayToClientPacketSpawnPosition struct { Location Position } func (ret *PlayToClientPacketSpawnPosition) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketSpawnPosition) Encode(w io.Writer) (err error) { PlayToClientPacketSpawnPositionLocationEncTmp := ret.Location err = PlayToClientPacketSpawnPositionLocationEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketStatistics struct { Entries []struct { CategoryId int32 StatisticId int32 Value int32 } } func (ret *PlayToClientPacketStatistics) Decode(r io.ReadSeeker) (err error) { var lPlayToClientPacketStatisticsEntries int32 lPlayToClientPacketStatisticsEntries, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Entries = []struct { CategoryId int32 StatisticId int32 Value int32 }{} for range lPlayToClientPacketStatisticsEntries { var PlayToClientPacketStatisticsEntriesElement struct { CategoryId int32 StatisticId int32 Value int32 } PlayToClientPacketStatisticsEntriesElement.CategoryId, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketStatisticsEntriesElement.StatisticId, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketStatisticsEntriesElement.Value, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Entries = append(ret.Entries, PlayToClientPacketStatisticsEntriesElement) } return } func (ret *PlayToClientPacketStatistics) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, int32(len(ret.Entries))) if err != nil { return } for iPlayToClientPacketStatisticsEntries := range len(ret.Entries) { err = proto_base.EncodeVarInt(w, ret.Entries[iPlayToClientPacketStatisticsEntries].CategoryId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Entries[iPlayToClientPacketStatisticsEntries].StatisticId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Entries[iPlayToClientPacketStatisticsEntries].Value) if err != nil { return } } return } type PlayToClientPacketStopSound struct { Flags int8 Source any Sound any } func (ret *PlayToClientPacketStopSound) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Flags) if err != nil { return } switch ret.Flags { case 1: var PlayToClientPacketStopSoundSource1Tmp int32 PlayToClientPacketStopSoundSource1Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Source = PlayToClientPacketStopSoundSource1Tmp case 3: var PlayToClientPacketStopSoundSource3Tmp int32 PlayToClientPacketStopSoundSource3Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Source = PlayToClientPacketStopSoundSource3Tmp default: var PlayToClientPacketStopSoundSourceTmp struct { } ret.Source = PlayToClientPacketStopSoundSourceTmp } switch ret.Flags { case 2: var PlayToClientPacketStopSoundSound2Tmp string PlayToClientPacketStopSoundSound2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Sound = PlayToClientPacketStopSoundSound2Tmp case 3: var PlayToClientPacketStopSoundSound3Tmp string PlayToClientPacketStopSoundSound3Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Sound = PlayToClientPacketStopSoundSound3Tmp default: var PlayToClientPacketStopSoundSoundTmp struct { } ret.Sound = PlayToClientPacketStopSoundSoundTmp } return } func (ret *PlayToClientPacketStopSound) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Flags) if err != nil { return } switch ret.Flags { case 1: PlayToClientPacketStopSoundSource, ok := ret.Source.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketStopSoundSource) if err != nil { return } case 3: PlayToClientPacketStopSoundSource, ok := ret.Source.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketStopSoundSource) if err != nil { return } default: _, ok := ret.Source.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Flags { case 2: PlayToClientPacketStopSoundSound, ok := ret.Sound.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketStopSoundSound) if err != nil { return } case 3: PlayToClientPacketStopSoundSound, ok := ret.Sound.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketStopSoundSound) if err != nil { return } default: _, ok := ret.Sound.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketTabComplete struct { TransactionId int32 Start int32 Length int32 Matches []struct { Match string Tooltip *string } } func (ret *PlayToClientPacketTabComplete) Decode(r io.ReadSeeker) (err error) { ret.TransactionId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Start, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Length, err = proto_base.DecodeVarInt(r) if err != nil { return } var lPlayToClientPacketTabCompleteMatches int32 lPlayToClientPacketTabCompleteMatches, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Matches = []struct { Match string Tooltip *string }{} for range lPlayToClientPacketTabCompleteMatches { var PlayToClientPacketTabCompleteMatchesElement struct { Match string Tooltip *string } PlayToClientPacketTabCompleteMatchesElement.Match, err = proto_base.DecodeString(r) if err != nil { return } var PlayToClientPacketTabCompleteMatchesElementTooltipPresent bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTabCompleteMatchesElementTooltipPresent) if err != nil { return } if PlayToClientPacketTabCompleteMatchesElementTooltipPresent { var PlayToClientPacketTabCompleteMatchesElementTooltipPresentValue string PlayToClientPacketTabCompleteMatchesElementTooltipPresentValue, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketTabCompleteMatchesElement.Tooltip = &PlayToClientPacketTabCompleteMatchesElementTooltipPresentValue } ret.Matches = append(ret.Matches, PlayToClientPacketTabCompleteMatchesElement) } return } func (ret *PlayToClientPacketTabComplete) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.TransactionId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Start) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Length) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Matches))) if err != nil { return } for iPlayToClientPacketTabCompleteMatches := range len(ret.Matches) { err = proto_base.EncodeString(w, ret.Matches[iPlayToClientPacketTabCompleteMatches].Match) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Matches[iPlayToClientPacketTabCompleteMatches].Tooltip != nil) if err != nil { return } if ret.Matches[iPlayToClientPacketTabCompleteMatches].Tooltip != nil { err = proto_base.EncodeString(w, *ret.Matches[iPlayToClientPacketTabCompleteMatches].Tooltip) if err != nil { return } } } return } type PlayToClientPacketTags struct { BlockTags Tags ItemTags Tags FluidTags Tags EntityTags Tags } func (ret *PlayToClientPacketTags) Decode(r io.ReadSeeker) (err error) { err = ret.BlockTags.Decode(r) if err != nil { return } err = ret.ItemTags.Decode(r) if err != nil { return } err = ret.FluidTags.Decode(r) if err != nil { return } err = ret.EntityTags.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketTags) Encode(w io.Writer) (err error) { PlayToClientPacketTagsBlockTagsEncTmp := ret.BlockTags err = PlayToClientPacketTagsBlockTagsEncTmp.Encode(w) if err != nil { return } PlayToClientPacketTagsItemTagsEncTmp := ret.ItemTags err = PlayToClientPacketTagsItemTagsEncTmp.Encode(w) if err != nil { return } PlayToClientPacketTagsFluidTagsEncTmp := ret.FluidTags err = PlayToClientPacketTagsFluidTagsEncTmp.Encode(w) if err != nil { return } PlayToClientPacketTagsEntityTagsEncTmp := ret.EntityTags err = PlayToClientPacketTagsEntityTagsEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketTeams struct { Team string Mode int8 Name any FriendlyFire any NameTagVisibility any CollisionRule any Formatting any Prefix any Suffix any Players any } func (ret *PlayToClientPacketTeams) Decode(r io.ReadSeeker) (err error) { ret.Team, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Mode) if err != nil { return } switch ret.Mode { case 0: var PlayToClientPacketTeamsName0Tmp string PlayToClientPacketTeamsName0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Name = PlayToClientPacketTeamsName0Tmp case 2: var PlayToClientPacketTeamsName2Tmp string PlayToClientPacketTeamsName2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Name = PlayToClientPacketTeamsName2Tmp default: var PlayToClientPacketTeamsNameTmp struct { } ret.Name = PlayToClientPacketTeamsNameTmp } switch ret.Mode { case 0: var PlayToClientPacketTeamsFriendlyFire0Tmp int8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTeamsFriendlyFire0Tmp) if err != nil { return } ret.FriendlyFire = PlayToClientPacketTeamsFriendlyFire0Tmp case 2: var PlayToClientPacketTeamsFriendlyFire2Tmp int8 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTeamsFriendlyFire2Tmp) if err != nil { return } ret.FriendlyFire = PlayToClientPacketTeamsFriendlyFire2Tmp default: var PlayToClientPacketTeamsFriendlyFireTmp struct { } ret.FriendlyFire = PlayToClientPacketTeamsFriendlyFireTmp } switch ret.Mode { case 0: var PlayToClientPacketTeamsNameTagVisibility0Tmp string PlayToClientPacketTeamsNameTagVisibility0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.NameTagVisibility = PlayToClientPacketTeamsNameTagVisibility0Tmp case 2: var PlayToClientPacketTeamsNameTagVisibility2Tmp string PlayToClientPacketTeamsNameTagVisibility2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.NameTagVisibility = PlayToClientPacketTeamsNameTagVisibility2Tmp default: var PlayToClientPacketTeamsNameTagVisibilityTmp struct { } ret.NameTagVisibility = PlayToClientPacketTeamsNameTagVisibilityTmp } switch ret.Mode { case 0: var PlayToClientPacketTeamsCollisionRule0Tmp string PlayToClientPacketTeamsCollisionRule0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.CollisionRule = PlayToClientPacketTeamsCollisionRule0Tmp case 2: var PlayToClientPacketTeamsCollisionRule2Tmp string PlayToClientPacketTeamsCollisionRule2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.CollisionRule = PlayToClientPacketTeamsCollisionRule2Tmp default: var PlayToClientPacketTeamsCollisionRuleTmp struct { } ret.CollisionRule = PlayToClientPacketTeamsCollisionRuleTmp } switch ret.Mode { case 0: var PlayToClientPacketTeamsFormatting0Tmp int32 PlayToClientPacketTeamsFormatting0Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Formatting = PlayToClientPacketTeamsFormatting0Tmp case 2: var PlayToClientPacketTeamsFormatting2Tmp int32 PlayToClientPacketTeamsFormatting2Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Formatting = PlayToClientPacketTeamsFormatting2Tmp default: var PlayToClientPacketTeamsFormattingTmp struct { } ret.Formatting = PlayToClientPacketTeamsFormattingTmp } switch ret.Mode { case 0: var PlayToClientPacketTeamsPrefix0Tmp string PlayToClientPacketTeamsPrefix0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Prefix = PlayToClientPacketTeamsPrefix0Tmp case 2: var PlayToClientPacketTeamsPrefix2Tmp string PlayToClientPacketTeamsPrefix2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Prefix = PlayToClientPacketTeamsPrefix2Tmp default: var PlayToClientPacketTeamsPrefixTmp struct { } ret.Prefix = PlayToClientPacketTeamsPrefixTmp } switch ret.Mode { case 0: var PlayToClientPacketTeamsSuffix0Tmp string PlayToClientPacketTeamsSuffix0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Suffix = PlayToClientPacketTeamsSuffix0Tmp case 2: var PlayToClientPacketTeamsSuffix2Tmp string PlayToClientPacketTeamsSuffix2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Suffix = PlayToClientPacketTeamsSuffix2Tmp default: var PlayToClientPacketTeamsSuffixTmp struct { } ret.Suffix = PlayToClientPacketTeamsSuffixTmp } switch ret.Mode { case 0: var PlayToClientPacketTeamsPlayers0Tmp []string var lPlayToClientPacketTeamsPlayers0Tmp int32 lPlayToClientPacketTeamsPlayers0Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketTeamsPlayers0Tmp = []string{} for range lPlayToClientPacketTeamsPlayers0Tmp { var PlayToClientPacketTeamsPlayers0TmpElement string PlayToClientPacketTeamsPlayers0TmpElement, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketTeamsPlayers0Tmp = append(PlayToClientPacketTeamsPlayers0Tmp, PlayToClientPacketTeamsPlayers0TmpElement) } ret.Players = PlayToClientPacketTeamsPlayers0Tmp case 3: var PlayToClientPacketTeamsPlayers3Tmp []string var lPlayToClientPacketTeamsPlayers3Tmp int32 lPlayToClientPacketTeamsPlayers3Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketTeamsPlayers3Tmp = []string{} for range lPlayToClientPacketTeamsPlayers3Tmp { var PlayToClientPacketTeamsPlayers3TmpElement string PlayToClientPacketTeamsPlayers3TmpElement, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketTeamsPlayers3Tmp = append(PlayToClientPacketTeamsPlayers3Tmp, PlayToClientPacketTeamsPlayers3TmpElement) } ret.Players = PlayToClientPacketTeamsPlayers3Tmp case 4: var PlayToClientPacketTeamsPlayers4Tmp []string var lPlayToClientPacketTeamsPlayers4Tmp int32 lPlayToClientPacketTeamsPlayers4Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketTeamsPlayers4Tmp = []string{} for range lPlayToClientPacketTeamsPlayers4Tmp { var PlayToClientPacketTeamsPlayers4TmpElement string PlayToClientPacketTeamsPlayers4TmpElement, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketTeamsPlayers4Tmp = append(PlayToClientPacketTeamsPlayers4Tmp, PlayToClientPacketTeamsPlayers4TmpElement) } ret.Players = PlayToClientPacketTeamsPlayers4Tmp default: var PlayToClientPacketTeamsPlayersTmp struct { } ret.Players = PlayToClientPacketTeamsPlayersTmp } return } func (ret *PlayToClientPacketTeams) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Team) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Mode) if err != nil { return } switch ret.Mode { case 0: PlayToClientPacketTeamsName, ok := ret.Name.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsName) if err != nil { return } case 2: PlayToClientPacketTeamsName, ok := ret.Name.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsName) if err != nil { return } default: _, ok := ret.Name.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mode { case 0: PlayToClientPacketTeamsFriendlyFire, ok := ret.FriendlyFire.(int8) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketTeamsFriendlyFire) if err != nil { return } case 2: PlayToClientPacketTeamsFriendlyFire, ok := ret.FriendlyFire.(int8) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketTeamsFriendlyFire) if err != nil { return } default: _, ok := ret.FriendlyFire.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mode { case 0: PlayToClientPacketTeamsNameTagVisibility, ok := ret.NameTagVisibility.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsNameTagVisibility) if err != nil { return } case 2: PlayToClientPacketTeamsNameTagVisibility, ok := ret.NameTagVisibility.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsNameTagVisibility) if err != nil { return } default: _, ok := ret.NameTagVisibility.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mode { case 0: PlayToClientPacketTeamsCollisionRule, ok := ret.CollisionRule.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsCollisionRule) if err != nil { return } case 2: PlayToClientPacketTeamsCollisionRule, ok := ret.CollisionRule.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsCollisionRule) if err != nil { return } default: _, ok := ret.CollisionRule.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mode { case 0: PlayToClientPacketTeamsFormatting, ok := ret.Formatting.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketTeamsFormatting) if err != nil { return } case 2: PlayToClientPacketTeamsFormatting, ok := ret.Formatting.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketTeamsFormatting) if err != nil { return } default: _, ok := ret.Formatting.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mode { case 0: PlayToClientPacketTeamsPrefix, ok := ret.Prefix.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsPrefix) if err != nil { return } case 2: PlayToClientPacketTeamsPrefix, ok := ret.Prefix.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsPrefix) if err != nil { return } default: _, ok := ret.Prefix.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mode { case 0: PlayToClientPacketTeamsSuffix, ok := ret.Suffix.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsSuffix) if err != nil { return } case 2: PlayToClientPacketTeamsSuffix, ok := ret.Suffix.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTeamsSuffix) if err != nil { return } default: _, ok := ret.Suffix.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mode { case 0: PlayToClientPacketTeamsPlayers, ok := ret.Players.([]string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, int32(len(PlayToClientPacketTeamsPlayers))) if err != nil { return } for iPlayToClientPacketTeamsPlayers := range len(PlayToClientPacketTeamsPlayers) { err = proto_base.EncodeString(w, PlayToClientPacketTeamsPlayers[iPlayToClientPacketTeamsPlayers]) if err != nil { return } } case 3: PlayToClientPacketTeamsPlayers, ok := ret.Players.([]string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, int32(len(PlayToClientPacketTeamsPlayers))) if err != nil { return } for iPlayToClientPacketTeamsPlayers := range len(PlayToClientPacketTeamsPlayers) { err = proto_base.EncodeString(w, PlayToClientPacketTeamsPlayers[iPlayToClientPacketTeamsPlayers]) if err != nil { return } } case 4: PlayToClientPacketTeamsPlayers, ok := ret.Players.([]string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, int32(len(PlayToClientPacketTeamsPlayers))) if err != nil { return } for iPlayToClientPacketTeamsPlayers := range len(PlayToClientPacketTeamsPlayers) { err = proto_base.EncodeString(w, PlayToClientPacketTeamsPlayers[iPlayToClientPacketTeamsPlayers]) if err != nil { return } } default: _, ok := ret.Players.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketTileEntityData struct { Location Position Action uint8 NbtData nbt.Tag } func (ret *PlayToClientPacketTileEntityData) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Action) if err != nil { return } err = ret.NbtData.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketTileEntityData) Encode(w io.Writer) (err error) { PlayToClientPacketTileEntityDataLocationEncTmp := ret.Location err = PlayToClientPacketTileEntityDataLocationEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Action) if err != nil { return } PlayToClientPacketTileEntityDataNbtDataEncTmp := ret.NbtData err = PlayToClientPacketTileEntityDataNbtDataEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketTitle struct { Action int32 Text any FadeIn any Stay any FadeOut any } func (ret *PlayToClientPacketTitle) Decode(r io.ReadSeeker) (err error) { ret.Action, err = proto_base.DecodeVarInt(r) if err != nil { return } switch ret.Action { case 0: var PlayToClientPacketTitleText0Tmp string PlayToClientPacketTitleText0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Text = PlayToClientPacketTitleText0Tmp case 1: var PlayToClientPacketTitleText1Tmp string PlayToClientPacketTitleText1Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Text = PlayToClientPacketTitleText1Tmp case 2: var PlayToClientPacketTitleText2Tmp string PlayToClientPacketTitleText2Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.Text = PlayToClientPacketTitleText2Tmp default: var PlayToClientPacketTitleTextTmp struct { } ret.Text = PlayToClientPacketTitleTextTmp } switch ret.Action { case 3: var PlayToClientPacketTitleFadeIn3Tmp int32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTitleFadeIn3Tmp) if err != nil { return } ret.FadeIn = PlayToClientPacketTitleFadeIn3Tmp default: var PlayToClientPacketTitleFadeInTmp struct { } ret.FadeIn = PlayToClientPacketTitleFadeInTmp } switch ret.Action { case 3: var PlayToClientPacketTitleStay3Tmp int32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTitleStay3Tmp) if err != nil { return } ret.Stay = PlayToClientPacketTitleStay3Tmp default: var PlayToClientPacketTitleStayTmp struct { } ret.Stay = PlayToClientPacketTitleStayTmp } switch ret.Action { case 3: var PlayToClientPacketTitleFadeOut3Tmp int32 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTitleFadeOut3Tmp) if err != nil { return } ret.FadeOut = PlayToClientPacketTitleFadeOut3Tmp default: var PlayToClientPacketTitleFadeOutTmp struct { } ret.FadeOut = PlayToClientPacketTitleFadeOutTmp } return } func (ret *PlayToClientPacketTitle) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Action) if err != nil { return } switch ret.Action { case 0: PlayToClientPacketTitleText, ok := ret.Text.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTitleText) if err != nil { return } case 1: PlayToClientPacketTitleText, ok := ret.Text.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTitleText) if err != nil { return } case 2: PlayToClientPacketTitleText, ok := ret.Text.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToClientPacketTitleText) if err != nil { return } default: _, ok := ret.Text.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 3: PlayToClientPacketTitleFadeIn, ok := ret.FadeIn.(int32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketTitleFadeIn) if err != nil { return } default: _, ok := ret.FadeIn.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 3: PlayToClientPacketTitleStay, ok := ret.Stay.(int32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketTitleStay) if err != nil { return } default: _, ok := ret.Stay.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 3: PlayToClientPacketTitleFadeOut, ok := ret.FadeOut.(int32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketTitleFadeOut) if err != nil { return } default: _, ok := ret.FadeOut.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketTradeList struct { WindowId int32 Trades []struct { InputItem1 Slot OutputItem Slot InputItem2 *Slot TradeDisabled bool NbTradeUses int32 MaximumNbTradeUses int32 Xp int32 SpecialPrice int32 PriceMultiplier float32 Demand int32 } VillagerLevel int32 Experience int32 IsRegularVillager bool CanRestock bool } func (ret *PlayToClientPacketTradeList) Decode(r io.ReadSeeker) (err error) { ret.WindowId, err = proto_base.DecodeVarInt(r) if err != nil { return } var lPlayToClientPacketTradeListTrades uint8 err = binary.Read(r, binary.BigEndian, &lPlayToClientPacketTradeListTrades) if err != nil { return } ret.Trades = []struct { InputItem1 Slot OutputItem Slot InputItem2 *Slot TradeDisabled bool NbTradeUses int32 MaximumNbTradeUses int32 Xp int32 SpecialPrice int32 PriceMultiplier float32 Demand int32 }{} for range lPlayToClientPacketTradeListTrades { var PlayToClientPacketTradeListTradesElement struct { InputItem1 Slot OutputItem Slot InputItem2 *Slot TradeDisabled bool NbTradeUses int32 MaximumNbTradeUses int32 Xp int32 SpecialPrice int32 PriceMultiplier float32 Demand int32 } err = PlayToClientPacketTradeListTradesElement.InputItem1.Decode(r) if err != nil { return } err = PlayToClientPacketTradeListTradesElement.OutputItem.Decode(r) if err != nil { return } var PlayToClientPacketTradeListTradesElementInputItem2Present bool err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElementInputItem2Present) if err != nil { return } if PlayToClientPacketTradeListTradesElementInputItem2Present { var PlayToClientPacketTradeListTradesElementInputItem2PresentValue Slot err = PlayToClientPacketTradeListTradesElementInputItem2PresentValue.Decode(r) if err != nil { return } PlayToClientPacketTradeListTradesElement.InputItem2 = &PlayToClientPacketTradeListTradesElementInputItem2PresentValue } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElement.TradeDisabled) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElement.NbTradeUses) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElement.MaximumNbTradeUses) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElement.Xp) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElement.SpecialPrice) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElement.PriceMultiplier) if err != nil { return } err = binary.Read(r, binary.BigEndian, &PlayToClientPacketTradeListTradesElement.Demand) if err != nil { return } ret.Trades = append(ret.Trades, PlayToClientPacketTradeListTradesElement) } ret.VillagerLevel, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Experience, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.IsRegularVillager) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.CanRestock) if err != nil { return } return } func (ret *PlayToClientPacketTradeList) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, uint8(len(ret.Trades))) if err != nil { return } for iPlayToClientPacketTradeListTrades := range len(ret.Trades) { PlayToClientPacketTradeListTradesInnerInputItem1EncTmp := ret.Trades[iPlayToClientPacketTradeListTrades].InputItem1 err = PlayToClientPacketTradeListTradesInnerInputItem1EncTmp.Encode(w) if err != nil { return } PlayToClientPacketTradeListTradesInnerOutputItemEncTmp := ret.Trades[iPlayToClientPacketTradeListTrades].OutputItem err = PlayToClientPacketTradeListTradesInnerOutputItemEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].InputItem2 != nil) if err != nil { return } if ret.Trades[iPlayToClientPacketTradeListTrades].InputItem2 != nil { PlayToClientPacketTradeListTradesInnerInputItem2EncTmp := *ret.Trades[iPlayToClientPacketTradeListTrades].InputItem2 err = PlayToClientPacketTradeListTradesInnerInputItem2EncTmp.Encode(w) if err != nil { return } } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].TradeDisabled) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].NbTradeUses) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].MaximumNbTradeUses) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].Xp) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].SpecialPrice) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].PriceMultiplier) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Trades[iPlayToClientPacketTradeListTrades].Demand) if err != nil { return } } err = proto_base.EncodeVarInt(w, ret.VillagerLevel) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Experience) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.IsRegularVillager) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.CanRestock) if err != nil { return } return } type PlayToClientPacketTransaction struct { WindowId int8 Action int16 Accepted bool } func (ret *PlayToClientPacketTransaction) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Action) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Accepted) if err != nil { return } return } func (ret *PlayToClientPacketTransaction) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Action) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Accepted) if err != nil { return } return } type PlayToClientPacketUnloadChunk struct { ChunkX int32 ChunkZ int32 } func (ret *PlayToClientPacketUnloadChunk) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.ChunkX) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.ChunkZ) if err != nil { return } return } func (ret *PlayToClientPacketUnloadChunk) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.ChunkX) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.ChunkZ) if err != nil { return } return } type PlayToClientPacketUnlockRecipes struct { Action int32 CraftingBookOpen bool FilteringCraftable bool SmeltingBookOpen bool FilteringSmeltable bool BlastFurnaceOpen bool FilteringBlastFurnace bool SmokerBookOpen bool FilteringSmoker bool Recipes1 []string Recipes2 any } func (ret *PlayToClientPacketUnlockRecipes) Decode(r io.ReadSeeker) (err error) { ret.Action, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.CraftingBookOpen) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.FilteringCraftable) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.SmeltingBookOpen) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.FilteringSmeltable) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.BlastFurnaceOpen) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.FilteringBlastFurnace) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.SmokerBookOpen) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.FilteringSmoker) if err != nil { return } var lPlayToClientPacketUnlockRecipesRecipes1 int32 lPlayToClientPacketUnlockRecipesRecipes1, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Recipes1 = []string{} for range lPlayToClientPacketUnlockRecipesRecipes1 { var PlayToClientPacketUnlockRecipesRecipes1Element string PlayToClientPacketUnlockRecipesRecipes1Element, err = proto_base.DecodeString(r) if err != nil { return } ret.Recipes1 = append(ret.Recipes1, PlayToClientPacketUnlockRecipesRecipes1Element) } switch ret.Action { case 0: var PlayToClientPacketUnlockRecipesRecipes20Tmp []string var lPlayToClientPacketUnlockRecipesRecipes20Tmp int32 lPlayToClientPacketUnlockRecipesRecipes20Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } PlayToClientPacketUnlockRecipesRecipes20Tmp = []string{} for range lPlayToClientPacketUnlockRecipesRecipes20Tmp { var PlayToClientPacketUnlockRecipesRecipes20TmpElement string PlayToClientPacketUnlockRecipesRecipes20TmpElement, err = proto_base.DecodeString(r) if err != nil { return } PlayToClientPacketUnlockRecipesRecipes20Tmp = append(PlayToClientPacketUnlockRecipesRecipes20Tmp, PlayToClientPacketUnlockRecipesRecipes20TmpElement) } ret.Recipes2 = PlayToClientPacketUnlockRecipesRecipes20Tmp default: var PlayToClientPacketUnlockRecipesRecipes2Tmp struct { } ret.Recipes2 = PlayToClientPacketUnlockRecipesRecipes2Tmp } return } func (ret *PlayToClientPacketUnlockRecipes) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Action) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.CraftingBookOpen) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.FilteringCraftable) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.SmeltingBookOpen) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.FilteringSmeltable) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.BlastFurnaceOpen) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.FilteringBlastFurnace) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.SmokerBookOpen) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.FilteringSmoker) if err != nil { return } err = proto_base.EncodeVarInt(w, int32(len(ret.Recipes1))) if err != nil { return } for iPlayToClientPacketUnlockRecipesRecipes1 := range len(ret.Recipes1) { err = proto_base.EncodeString(w, ret.Recipes1[iPlayToClientPacketUnlockRecipesRecipes1]) if err != nil { return } } switch ret.Action { case 0: PlayToClientPacketUnlockRecipesRecipes2, ok := ret.Recipes2.([]string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, int32(len(PlayToClientPacketUnlockRecipesRecipes2))) if err != nil { return } for iPlayToClientPacketUnlockRecipesRecipes2 := range len(PlayToClientPacketUnlockRecipesRecipes2) { err = proto_base.EncodeString(w, PlayToClientPacketUnlockRecipesRecipes2[iPlayToClientPacketUnlockRecipesRecipes2]) if err != nil { return } } default: _, ok := ret.Recipes2.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketUpdateHealth struct { Health float32 Food int32 FoodSaturation float32 } func (ret *PlayToClientPacketUpdateHealth) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Health) if err != nil { return } ret.Food, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.FoodSaturation) if err != nil { return } return } func (ret *PlayToClientPacketUpdateHealth) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Health) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Food) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.FoodSaturation) if err != nil { return } return } type PlayToClientPacketUpdateLight struct { ChunkX int32 ChunkZ int32 TrustEdges bool SkyLightMask int32 BlockLightMask int32 EmptySkyLightMask int32 EmptyBlockLightMask int32 Data proto_base.RestBuffer } func (ret *PlayToClientPacketUpdateLight) Decode(r io.ReadSeeker) (err error) { ret.ChunkX, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ChunkZ, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.TrustEdges) if err != nil { return } ret.SkyLightMask, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.BlockLightMask, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.EmptySkyLightMask, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.EmptyBlockLightMask, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Data.Decode(r) if err != nil { return } return } func (ret *PlayToClientPacketUpdateLight) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ChunkX) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.ChunkZ) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.TrustEdges) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.SkyLightMask) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.BlockLightMask) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.EmptySkyLightMask) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.EmptyBlockLightMask) if err != nil { return } PlayToClientPacketUpdateLightDataEncTmp := ret.Data err = PlayToClientPacketUpdateLightDataEncTmp.Encode(w) if err != nil { return } return } type PlayToClientPacketUpdateTime struct { Age int64 Time int64 } func (ret *PlayToClientPacketUpdateTime) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Age) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Time) if err != nil { return } return } func (ret *PlayToClientPacketUpdateTime) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Age) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Time) if err != nil { return } return } type PlayToClientPacketUpdateViewDistance struct { ViewDistance int32 } func (ret *PlayToClientPacketUpdateViewDistance) Decode(r io.ReadSeeker) (err error) { ret.ViewDistance, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketUpdateViewDistance) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ViewDistance) if err != nil { return } return } type PlayToClientPacketUpdateViewPosition struct { ChunkX int32 ChunkZ int32 } func (ret *PlayToClientPacketUpdateViewPosition) Decode(r io.ReadSeeker) (err error) { ret.ChunkX, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ChunkZ, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToClientPacketUpdateViewPosition) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ChunkX) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.ChunkZ) if err != nil { return } return } type PlayToClientPacketVehicleMove struct { X float64 Y float64 Z float64 Yaw float32 Pitch float32 } func (ret *PlayToClientPacketVehicleMove) Decode(r io.ReadSeeker) (err error) { 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.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } return } func (ret *PlayToClientPacketVehicleMove) Encode(w io.Writer) (err error) { 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.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } return } type PlayToClientPacketWindowItems struct { WindowId uint8 Items []Slot } func (ret *PlayToClientPacketWindowItems) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } var lPlayToClientPacketWindowItemsItems int16 err = binary.Read(r, binary.BigEndian, &lPlayToClientPacketWindowItemsItems) if err != nil { return } ret.Items = []Slot{} for range lPlayToClientPacketWindowItemsItems { var PlayToClientPacketWindowItemsItemsElement Slot err = PlayToClientPacketWindowItemsItemsElement.Decode(r) if err != nil { return } ret.Items = append(ret.Items, PlayToClientPacketWindowItemsItemsElement) } return } func (ret *PlayToClientPacketWindowItems) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, int16(len(ret.Items))) if err != nil { return } for iPlayToClientPacketWindowItemsItems := range len(ret.Items) { PlayToClientPacketWindowItemsItemsInnerEncTmp := ret.Items[iPlayToClientPacketWindowItemsItems] err = PlayToClientPacketWindowItemsItemsInnerEncTmp.Encode(w) if err != nil { return } } return } type PlayToClientPacketWorldBorder struct { Action int32 Radius any X any Z any OldRadius any NewRadius any Speed any PortalBoundary any WarningTime any WarningBlocks any } func (ret *PlayToClientPacketWorldBorder) Decode(r io.ReadSeeker) (err error) { ret.Action, err = proto_base.DecodeVarInt(r) if err != nil { return } switch ret.Action { case 0: var PlayToClientPacketWorldBorderRadius0Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderRadius0Tmp) if err != nil { return } ret.Radius = PlayToClientPacketWorldBorderRadius0Tmp default: var PlayToClientPacketWorldBorderRadiusTmp struct { } ret.Radius = PlayToClientPacketWorldBorderRadiusTmp } switch ret.Action { case 2: var PlayToClientPacketWorldBorderX2Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderX2Tmp) if err != nil { return } ret.X = PlayToClientPacketWorldBorderX2Tmp case 3: var PlayToClientPacketWorldBorderX3Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderX3Tmp) if err != nil { return } ret.X = PlayToClientPacketWorldBorderX3Tmp default: var PlayToClientPacketWorldBorderXTmp struct { } ret.X = PlayToClientPacketWorldBorderXTmp } switch ret.Action { case 2: var PlayToClientPacketWorldBorderZ2Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderZ2Tmp) if err != nil { return } ret.Z = PlayToClientPacketWorldBorderZ2Tmp case 3: var PlayToClientPacketWorldBorderZ3Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderZ3Tmp) if err != nil { return } ret.Z = PlayToClientPacketWorldBorderZ3Tmp default: var PlayToClientPacketWorldBorderZTmp struct { } ret.Z = PlayToClientPacketWorldBorderZTmp } switch ret.Action { case 1: var PlayToClientPacketWorldBorderOldRadius1Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderOldRadius1Tmp) if err != nil { return } ret.OldRadius = PlayToClientPacketWorldBorderOldRadius1Tmp case 3: var PlayToClientPacketWorldBorderOldRadius3Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderOldRadius3Tmp) if err != nil { return } ret.OldRadius = PlayToClientPacketWorldBorderOldRadius3Tmp default: var PlayToClientPacketWorldBorderOldRadiusTmp struct { } ret.OldRadius = PlayToClientPacketWorldBorderOldRadiusTmp } switch ret.Action { case 1: var PlayToClientPacketWorldBorderNewRadius1Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderNewRadius1Tmp) if err != nil { return } ret.NewRadius = PlayToClientPacketWorldBorderNewRadius1Tmp case 3: var PlayToClientPacketWorldBorderNewRadius3Tmp float64 err = binary.Read(r, binary.BigEndian, &PlayToClientPacketWorldBorderNewRadius3Tmp) if err != nil { return } ret.NewRadius = PlayToClientPacketWorldBorderNewRadius3Tmp default: var PlayToClientPacketWorldBorderNewRadiusTmp struct { } ret.NewRadius = PlayToClientPacketWorldBorderNewRadiusTmp } switch ret.Action { case 1: var PlayToClientPacketWorldBorderSpeed1Tmp int64 PlayToClientPacketWorldBorderSpeed1Tmp, err = proto_base.DecodeVarLong(r) if err != nil { return } ret.Speed = PlayToClientPacketWorldBorderSpeed1Tmp case 3: var PlayToClientPacketWorldBorderSpeed3Tmp int64 PlayToClientPacketWorldBorderSpeed3Tmp, err = proto_base.DecodeVarLong(r) if err != nil { return } ret.Speed = PlayToClientPacketWorldBorderSpeed3Tmp default: var PlayToClientPacketWorldBorderSpeedTmp struct { } ret.Speed = PlayToClientPacketWorldBorderSpeedTmp } switch ret.Action { case 3: var PlayToClientPacketWorldBorderPortalBoundary3Tmp int32 PlayToClientPacketWorldBorderPortalBoundary3Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.PortalBoundary = PlayToClientPacketWorldBorderPortalBoundary3Tmp default: var PlayToClientPacketWorldBorderPortalBoundaryTmp struct { } ret.PortalBoundary = PlayToClientPacketWorldBorderPortalBoundaryTmp } switch ret.Action { case 3: var PlayToClientPacketWorldBorderWarningTime3Tmp int32 PlayToClientPacketWorldBorderWarningTime3Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.WarningTime = PlayToClientPacketWorldBorderWarningTime3Tmp case 4: var PlayToClientPacketWorldBorderWarningTime4Tmp int32 PlayToClientPacketWorldBorderWarningTime4Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.WarningTime = PlayToClientPacketWorldBorderWarningTime4Tmp default: var PlayToClientPacketWorldBorderWarningTimeTmp struct { } ret.WarningTime = PlayToClientPacketWorldBorderWarningTimeTmp } switch ret.Action { case 3: var PlayToClientPacketWorldBorderWarningBlocks3Tmp int32 PlayToClientPacketWorldBorderWarningBlocks3Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.WarningBlocks = PlayToClientPacketWorldBorderWarningBlocks3Tmp case 5: var PlayToClientPacketWorldBorderWarningBlocks5Tmp int32 PlayToClientPacketWorldBorderWarningBlocks5Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.WarningBlocks = PlayToClientPacketWorldBorderWarningBlocks5Tmp default: var PlayToClientPacketWorldBorderWarningBlocksTmp struct { } ret.WarningBlocks = PlayToClientPacketWorldBorderWarningBlocksTmp } return } func (ret *PlayToClientPacketWorldBorder) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Action) if err != nil { return } switch ret.Action { case 0: PlayToClientPacketWorldBorderRadius, ok := ret.Radius.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderRadius) if err != nil { return } default: _, ok := ret.Radius.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 2: PlayToClientPacketWorldBorderX, ok := ret.X.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderX) if err != nil { return } case 3: PlayToClientPacketWorldBorderX, ok := ret.X.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderX) if err != nil { return } default: _, ok := ret.X.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 2: PlayToClientPacketWorldBorderZ, ok := ret.Z.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderZ) if err != nil { return } case 3: PlayToClientPacketWorldBorderZ, ok := ret.Z.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderZ) if err != nil { return } default: _, ok := ret.Z.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 1: PlayToClientPacketWorldBorderOldRadius, ok := ret.OldRadius.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderOldRadius) if err != nil { return } case 3: PlayToClientPacketWorldBorderOldRadius, ok := ret.OldRadius.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderOldRadius) if err != nil { return } default: _, ok := ret.OldRadius.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 1: PlayToClientPacketWorldBorderNewRadius, ok := ret.NewRadius.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderNewRadius) if err != nil { return } case 3: PlayToClientPacketWorldBorderNewRadius, ok := ret.NewRadius.(float64) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToClientPacketWorldBorderNewRadius) if err != nil { return } default: _, ok := ret.NewRadius.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 1: PlayToClientPacketWorldBorderSpeed, ok := ret.Speed.(int64) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarLong(w, PlayToClientPacketWorldBorderSpeed) if err != nil { return } case 3: PlayToClientPacketWorldBorderSpeed, ok := ret.Speed.(int64) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarLong(w, PlayToClientPacketWorldBorderSpeed) if err != nil { return } default: _, ok := ret.Speed.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 3: PlayToClientPacketWorldBorderPortalBoundary, ok := ret.PortalBoundary.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldBorderPortalBoundary) if err != nil { return } default: _, ok := ret.PortalBoundary.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 3: PlayToClientPacketWorldBorderWarningTime, ok := ret.WarningTime.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldBorderWarningTime) if err != nil { return } case 4: PlayToClientPacketWorldBorderWarningTime, ok := ret.WarningTime.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldBorderWarningTime) if err != nil { return } default: _, ok := ret.WarningTime.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Action { case 3: PlayToClientPacketWorldBorderWarningBlocks, ok := ret.WarningBlocks.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldBorderWarningBlocks) if err != nil { return } case 5: PlayToClientPacketWorldBorderWarningBlocks, ok := ret.WarningBlocks.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToClientPacketWorldBorderWarningBlocks) if err != nil { return } default: _, ok := ret.WarningBlocks.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToClientPacketWorldEvent struct { EffectId int32 Location Position Data int32 Global bool } func (ret *PlayToClientPacketWorldEvent) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.EffectId) if err != nil { return } err = ret.Location.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Data) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Global) if err != nil { return } return } func (ret *PlayToClientPacketWorldEvent) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.EffectId) if err != nil { return } PlayToClientPacketWorldEventLocationEncTmp := ret.Location err = PlayToClientPacketWorldEventLocationEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Data) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Global) if err != nil { return } return } type PlayToClientPacketWorldParticles struct { ParticleId int32 LongDistance bool X float64 Y float64 Z float64 OffsetX float32 OffsetY float32 OffsetZ float32 ParticleData float32 Particles int32 Data any } func (ret *PlayToClientPacketWorldParticles) Decode(r io.ReadSeeker) (err error) { 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 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 } func (ret *PlayToClientPacketWorldParticles) Encode(w io.Writer) (err error) { 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 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 } type PlayToServerPacket struct { Name string Params any } var PlayToServerPacketNameMap = map[int32]string{0x00: "teleport_confirm", 0x01: "query_block_nbt", 0x02: "set_difficulty", 0x03: "chat", 0x04: "client_command", 0x05: "settings", 0x06: "tab_complete", 0x07: "transaction", 0x08: "enchant_item", 0x09: "window_click", 0x0a: "close_window", 0x0b: "custom_payload", 0x0c: "edit_book", 0x0d: "query_entity_nbt", 0x0e: "use_entity", 0x0f: "generate_structure", 0x10: "keep_alive", 0x11: "lock_difficulty", 0x12: "position", 0x13: "position_look", 0x14: "look", 0x15: "flying", 0x16: "vehicle_move", 0x17: "steer_boat", 0x18: "pick_item", 0x19: "craft_recipe_request", 0x1a: "abilities", 0x1b: "block_dig", 0x1c: "entity_action", 0x1d: "steer_vehicle", 0x1e: "recipe_book", 0x1f: "displayed_recipe", 0x20: "name_item", 0x21: "resource_pack_receive", 0x22: "advancement_tab", 0x23: "select_trade", 0x24: "set_beacon_effect", 0x25: "held_item_slot", 0x26: "update_command_block", 0x27: "update_command_block_minecart", 0x28: "set_creative_slot", 0x29: "update_jigsaw_block", 0x2a: "update_structure_block", 0x2b: "update_sign", 0x2c: "arm_animation", 0x2d: "spectate", 0x2e: "block_place", 0x2f: "use_item"} func (ret *PlayToServerPacket) Decode(r io.ReadSeeker) (err error) { var PlayToServerPacketNameKey int32 PlayToServerPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(PlayToServerPacketNameMap, PlayToServerPacketNameKey) if err != nil { return } switch ret.Name { case "abilities": var PlayToServerPacketParamsAbilitiesTmp PlayToServerPacketAbilities err = PlayToServerPacketParamsAbilitiesTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsAbilitiesTmp case "advancement_tab": var PlayToServerPacketParamsAdvancementTabTmp PlayToServerPacketAdvancementTab err = PlayToServerPacketParamsAdvancementTabTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsAdvancementTabTmp case "arm_animation": var PlayToServerPacketParamsArmAnimationTmp PlayToServerPacketArmAnimation err = PlayToServerPacketParamsArmAnimationTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsArmAnimationTmp case "block_dig": var PlayToServerPacketParamsBlockDigTmp PlayToServerPacketBlockDig err = PlayToServerPacketParamsBlockDigTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsBlockDigTmp case "block_place": var PlayToServerPacketParamsBlockPlaceTmp PlayToServerPacketBlockPlace err = PlayToServerPacketParamsBlockPlaceTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsBlockPlaceTmp case "chat": var PlayToServerPacketParamsChatTmp PlayToServerPacketChat err = PlayToServerPacketParamsChatTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsChatTmp case "client_command": var PlayToServerPacketParamsClientCommandTmp PlayToServerPacketClientCommand err = PlayToServerPacketParamsClientCommandTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsClientCommandTmp case "close_window": var PlayToServerPacketParamsCloseWindowTmp PlayToServerPacketCloseWindow err = PlayToServerPacketParamsCloseWindowTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsCloseWindowTmp case "craft_recipe_request": var PlayToServerPacketParamsCraftRecipeRequestTmp PlayToServerPacketCraftRecipeRequest err = PlayToServerPacketParamsCraftRecipeRequestTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsCraftRecipeRequestTmp case "custom_payload": var PlayToServerPacketParamsCustomPayloadTmp PlayToServerPacketCustomPayload err = PlayToServerPacketParamsCustomPayloadTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsCustomPayloadTmp case "displayed_recipe": var PlayToServerPacketParamsDisplayedRecipeTmp PlayToServerPacketDisplayedRecipe err = PlayToServerPacketParamsDisplayedRecipeTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsDisplayedRecipeTmp case "edit_book": var PlayToServerPacketParamsEditBookTmp PlayToServerPacketEditBook err = PlayToServerPacketParamsEditBookTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsEditBookTmp case "enchant_item": var PlayToServerPacketParamsEnchantItemTmp PlayToServerPacketEnchantItem err = PlayToServerPacketParamsEnchantItemTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsEnchantItemTmp case "entity_action": var PlayToServerPacketParamsEntityActionTmp PlayToServerPacketEntityAction err = PlayToServerPacketParamsEntityActionTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsEntityActionTmp case "flying": var PlayToServerPacketParamsFlyingTmp PlayToServerPacketFlying err = PlayToServerPacketParamsFlyingTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsFlyingTmp case "generate_structure": var PlayToServerPacketParamsGenerateStructureTmp PlayToServerPacketGenerateStructure err = PlayToServerPacketParamsGenerateStructureTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsGenerateStructureTmp case "held_item_slot": var PlayToServerPacketParamsHeldItemSlotTmp PlayToServerPacketHeldItemSlot err = PlayToServerPacketParamsHeldItemSlotTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsHeldItemSlotTmp case "keep_alive": var PlayToServerPacketParamsKeepAliveTmp PlayToServerPacketKeepAlive err = PlayToServerPacketParamsKeepAliveTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsKeepAliveTmp case "lock_difficulty": var PlayToServerPacketParamsLockDifficultyTmp PlayToServerPacketLockDifficulty err = PlayToServerPacketParamsLockDifficultyTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsLockDifficultyTmp case "look": var PlayToServerPacketParamsLookTmp PlayToServerPacketLook err = PlayToServerPacketParamsLookTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsLookTmp case "name_item": var PlayToServerPacketParamsNameItemTmp PlayToServerPacketNameItem err = PlayToServerPacketParamsNameItemTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsNameItemTmp case "pick_item": var PlayToServerPacketParamsPickItemTmp PlayToServerPacketPickItem err = PlayToServerPacketParamsPickItemTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsPickItemTmp case "position": var PlayToServerPacketParamsPositionTmp PlayToServerPacketPosition err = PlayToServerPacketParamsPositionTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsPositionTmp case "position_look": var PlayToServerPacketParamsPositionLookTmp PlayToServerPacketPositionLook err = PlayToServerPacketParamsPositionLookTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsPositionLookTmp case "query_block_nbt": var PlayToServerPacketParamsQueryBlockNbtTmp PlayToServerPacketQueryBlockNbt err = PlayToServerPacketParamsQueryBlockNbtTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsQueryBlockNbtTmp case "query_entity_nbt": var PlayToServerPacketParamsQueryEntityNbtTmp PlayToServerPacketQueryEntityNbt err = PlayToServerPacketParamsQueryEntityNbtTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsQueryEntityNbtTmp case "recipe_book": var PlayToServerPacketParamsRecipeBookTmp PlayToServerPacketRecipeBook err = PlayToServerPacketParamsRecipeBookTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsRecipeBookTmp case "resource_pack_receive": var PlayToServerPacketParamsResourcePackReceiveTmp PlayToServerPacketResourcePackReceive err = PlayToServerPacketParamsResourcePackReceiveTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsResourcePackReceiveTmp case "select_trade": var PlayToServerPacketParamsSelectTradeTmp PlayToServerPacketSelectTrade err = PlayToServerPacketParamsSelectTradeTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSelectTradeTmp case "set_beacon_effect": var PlayToServerPacketParamsSetBeaconEffectTmp PlayToServerPacketSetBeaconEffect err = PlayToServerPacketParamsSetBeaconEffectTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSetBeaconEffectTmp case "set_creative_slot": var PlayToServerPacketParamsSetCreativeSlotTmp PlayToServerPacketSetCreativeSlot err = PlayToServerPacketParamsSetCreativeSlotTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSetCreativeSlotTmp case "set_difficulty": var PlayToServerPacketParamsSetDifficultyTmp PlayToServerPacketSetDifficulty err = PlayToServerPacketParamsSetDifficultyTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSetDifficultyTmp case "settings": var PlayToServerPacketParamsSettingsTmp PlayToServerPacketSettings err = PlayToServerPacketParamsSettingsTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSettingsTmp case "spectate": var PlayToServerPacketParamsSpectateTmp PlayToServerPacketSpectate err = PlayToServerPacketParamsSpectateTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSpectateTmp case "steer_boat": var PlayToServerPacketParamsSteerBoatTmp PlayToServerPacketSteerBoat err = PlayToServerPacketParamsSteerBoatTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSteerBoatTmp case "steer_vehicle": var PlayToServerPacketParamsSteerVehicleTmp PlayToServerPacketSteerVehicle err = PlayToServerPacketParamsSteerVehicleTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsSteerVehicleTmp case "tab_complete": var PlayToServerPacketParamsTabCompleteTmp PlayToServerPacketTabComplete err = PlayToServerPacketParamsTabCompleteTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsTabCompleteTmp case "teleport_confirm": var PlayToServerPacketParamsTeleportConfirmTmp PlayToServerPacketTeleportConfirm err = PlayToServerPacketParamsTeleportConfirmTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsTeleportConfirmTmp case "transaction": var PlayToServerPacketParamsTransactionTmp PlayToServerPacketTransaction err = PlayToServerPacketParamsTransactionTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsTransactionTmp case "update_command_block": var PlayToServerPacketParamsUpdateCommandBlockTmp PlayToServerPacketUpdateCommandBlock err = PlayToServerPacketParamsUpdateCommandBlockTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsUpdateCommandBlockTmp case "update_command_block_minecart": var PlayToServerPacketParamsUpdateCommandBlockMinecartTmp PlayToServerPacketUpdateCommandBlockMinecart err = PlayToServerPacketParamsUpdateCommandBlockMinecartTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsUpdateCommandBlockMinecartTmp case "update_jigsaw_block": var PlayToServerPacketParamsUpdateJigsawBlockTmp PlayToServerPacketUpdateJigsawBlock err = PlayToServerPacketParamsUpdateJigsawBlockTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsUpdateJigsawBlockTmp case "update_sign": var PlayToServerPacketParamsUpdateSignTmp PlayToServerPacketUpdateSign err = PlayToServerPacketParamsUpdateSignTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsUpdateSignTmp case "update_structure_block": var PlayToServerPacketParamsUpdateStructureBlockTmp PlayToServerPacketUpdateStructureBlock err = PlayToServerPacketParamsUpdateStructureBlockTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsUpdateStructureBlockTmp case "use_entity": var PlayToServerPacketParamsUseEntityTmp PlayToServerPacketUseEntity err = PlayToServerPacketParamsUseEntityTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsUseEntityTmp case "use_item": var PlayToServerPacketParamsUseItemTmp PlayToServerPacketUseItem err = PlayToServerPacketParamsUseItemTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsUseItemTmp case "vehicle_move": var PlayToServerPacketParamsVehicleMoveTmp PlayToServerPacketVehicleMove err = PlayToServerPacketParamsVehicleMoveTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsVehicleMoveTmp case "window_click": var PlayToServerPacketParamsWindowClickTmp PlayToServerPacketWindowClick err = PlayToServerPacketParamsWindowClickTmp.Decode(r) if err != nil { return } ret.Params = PlayToServerPacketParamsWindowClickTmp } return } var PlayToServerPacketNameReverseMap = map[string]int32{"teleport_confirm": 0x00, "query_block_nbt": 0x01, "set_difficulty": 0x02, "chat": 0x03, "client_command": 0x04, "settings": 0x05, "tab_complete": 0x06, "transaction": 0x07, "enchant_item": 0x08, "window_click": 0x09, "close_window": 0x0a, "custom_payload": 0x0b, "edit_book": 0x0c, "query_entity_nbt": 0x0d, "use_entity": 0x0e, "generate_structure": 0x0f, "keep_alive": 0x10, "lock_difficulty": 0x11, "position": 0x12, "position_look": 0x13, "look": 0x14, "flying": 0x15, "vehicle_move": 0x16, "steer_boat": 0x17, "pick_item": 0x18, "craft_recipe_request": 0x19, "abilities": 0x1a, "block_dig": 0x1b, "entity_action": 0x1c, "steer_vehicle": 0x1d, "recipe_book": 0x1e, "displayed_recipe": 0x1f, "name_item": 0x20, "resource_pack_receive": 0x21, "advancement_tab": 0x22, "select_trade": 0x23, "set_beacon_effect": 0x24, "held_item_slot": 0x25, "update_command_block": 0x26, "update_command_block_minecart": 0x27, "set_creative_slot": 0x28, "update_jigsaw_block": 0x29, "update_structure_block": 0x2a, "update_sign": 0x2b, "arm_animation": 0x2c, "spectate": 0x2d, "block_place": 0x2e, "use_item": 0x2f} func (ret *PlayToServerPacket) Encode(w io.Writer) (err error) { var vPlayToServerPacketName int32 vPlayToServerPacketName, err = proto_base.ErroringIndex(PlayToServerPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vPlayToServerPacketName) if err != nil { return } switch ret.Name { case "abilities": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketAbilities) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "advancement_tab": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketAdvancementTab) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "arm_animation": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketArmAnimation) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "block_dig": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketBlockDig) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "block_place": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketBlockPlace) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "chat": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketChat) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "client_command": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketClientCommand) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "close_window": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketCloseWindow) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "craft_recipe_request": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketCraftRecipeRequest) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "custom_payload": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketCustomPayload) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "displayed_recipe": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketDisplayedRecipe) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "edit_book": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketEditBook) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "enchant_item": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketEnchantItem) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "entity_action": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketEntityAction) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "flying": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketFlying) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "generate_structure": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketGenerateStructure) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "held_item_slot": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketHeldItemSlot) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "keep_alive": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketKeepAlive) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "lock_difficulty": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketLockDifficulty) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "look": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketLook) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "name_item": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketNameItem) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "pick_item": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketPickItem) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "position": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketPosition) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "position_look": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketPositionLook) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "query_block_nbt": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketQueryBlockNbt) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "query_entity_nbt": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketQueryEntityNbt) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "recipe_book": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketRecipeBook) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "resource_pack_receive": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketResourcePackReceive) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "select_trade": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSelectTrade) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "set_beacon_effect": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSetBeaconEffect) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "set_creative_slot": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSetCreativeSlot) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "set_difficulty": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSetDifficulty) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "settings": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSettings) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "spectate": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSpectate) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "steer_boat": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSteerBoat) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "steer_vehicle": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketSteerVehicle) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "tab_complete": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketTabComplete) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "teleport_confirm": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketTeleportConfirm) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "transaction": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketTransaction) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_command_block": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketUpdateCommandBlock) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_command_block_minecart": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketUpdateCommandBlockMinecart) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_jigsaw_block": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketUpdateJigsawBlock) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_sign": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketUpdateSign) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "update_structure_block": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketUpdateStructureBlock) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "use_entity": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketUseEntity) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "use_item": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketUseItem) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "vehicle_move": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketVehicleMove) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "window_click": PlayToServerPacketParams, ok := ret.Params.(PlayToServerPacketWindowClick) if !ok { err = proto_base.BadTypeError return } PlayToServerPacketParamsEncTmp := PlayToServerPacketParams err = PlayToServerPacketParamsEncTmp.Encode(w) if err != nil { return } } return } type PlayToServerPacketAbilities struct { Flags int8 } func (ret *PlayToServerPacketAbilities) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Flags) if err != nil { return } return } func (ret *PlayToServerPacketAbilities) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Flags) if err != nil { return } return } type PlayToServerPacketAdvancementTab struct { Action int32 TabId any } func (ret *PlayToServerPacketAdvancementTab) Decode(r io.ReadSeeker) (err error) { ret.Action, err = proto_base.DecodeVarInt(r) if err != nil { return } switch ret.Action { case 0: var PlayToServerPacketAdvancementTabTabId0Tmp string PlayToServerPacketAdvancementTabTabId0Tmp, err = proto_base.DecodeString(r) if err != nil { return } ret.TabId = PlayToServerPacketAdvancementTabTabId0Tmp case 1: var PlayToServerPacketAdvancementTabTabId1Tmp struct { } ret.TabId = PlayToServerPacketAdvancementTabTabId1Tmp } return } func (ret *PlayToServerPacketAdvancementTab) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Action) if err != nil { return } switch ret.Action { case 0: PlayToServerPacketAdvancementTabTabId, ok := ret.TabId.(string) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeString(w, PlayToServerPacketAdvancementTabTabId) if err != nil { return } case 1: _, ok := ret.TabId.(struct { }) if !ok { err = proto_base.BadTypeError return } } return } type PlayToServerPacketArmAnimation struct { Hand int32 } func (ret *PlayToServerPacketArmAnimation) Decode(r io.ReadSeeker) (err error) { ret.Hand, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketArmAnimation) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Hand) if err != nil { return } return } type PlayToServerPacketBlockDig struct { Status int32 Location Position Face int8 } func (ret *PlayToServerPacketBlockDig) Decode(r io.ReadSeeker) (err error) { ret.Status, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Location.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Face) if err != nil { return } return } func (ret *PlayToServerPacketBlockDig) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Status) if err != nil { return } PlayToServerPacketBlockDigLocationEncTmp := ret.Location err = PlayToServerPacketBlockDigLocationEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Face) if err != nil { return } return } type PlayToServerPacketBlockPlace struct { Hand int32 Location Position Direction int32 CursorX float32 CursorY float32 CursorZ float32 InsideBlock bool } func (ret *PlayToServerPacketBlockPlace) Decode(r io.ReadSeeker) (err error) { ret.Hand, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Location.Decode(r) if err != nil { return } ret.Direction, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.CursorX) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.CursorY) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.CursorZ) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.InsideBlock) if err != nil { return } return } func (ret *PlayToServerPacketBlockPlace) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Hand) if err != nil { return } PlayToServerPacketBlockPlaceLocationEncTmp := ret.Location err = PlayToServerPacketBlockPlaceLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Direction) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.CursorX) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.CursorY) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.CursorZ) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.InsideBlock) if err != nil { return } return } type PlayToServerPacketChat struct { Message string } func (ret *PlayToServerPacketChat) Decode(r io.ReadSeeker) (err error) { ret.Message, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToServerPacketChat) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Message) if err != nil { return } return } type PlayToServerPacketClientCommand struct { ActionId int32 } func (ret *PlayToServerPacketClientCommand) Decode(r io.ReadSeeker) (err error) { ret.ActionId, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketClientCommand) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.ActionId) if err != nil { return } return } type PlayToServerPacketCloseWindow struct { WindowId uint8 } func (ret *PlayToServerPacketCloseWindow) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } return } func (ret *PlayToServerPacketCloseWindow) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } return } type PlayToServerPacketCraftRecipeRequest struct { WindowId int8 Recipe string MakeAll bool } func (ret *PlayToServerPacketCraftRecipeRequest) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } ret.Recipe, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.MakeAll) if err != nil { return } return } func (ret *PlayToServerPacketCraftRecipeRequest) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = proto_base.EncodeString(w, ret.Recipe) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.MakeAll) if err != nil { return } return } type PlayToServerPacketCustomPayload struct { Channel string Data proto_base.RestBuffer } func (ret *PlayToServerPacketCustomPayload) Decode(r io.ReadSeeker) (err error) { ret.Channel, err = proto_base.DecodeString(r) if err != nil { return } err = ret.Data.Decode(r) if err != nil { return } return } func (ret *PlayToServerPacketCustomPayload) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Channel) if err != nil { return } PlayToServerPacketCustomPayloadDataEncTmp := ret.Data err = PlayToServerPacketCustomPayloadDataEncTmp.Encode(w) if err != nil { return } return } type PlayToServerPacketDisplayedRecipe struct { RecipeId string } func (ret *PlayToServerPacketDisplayedRecipe) Decode(r io.ReadSeeker) (err error) { ret.RecipeId, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToServerPacketDisplayedRecipe) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.RecipeId) if err != nil { return } return } type PlayToServerPacketEditBook struct { NewBook Slot Signing bool Hand int32 } func (ret *PlayToServerPacketEditBook) Decode(r io.ReadSeeker) (err error) { err = ret.NewBook.Decode(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Signing) if err != nil { return } ret.Hand, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketEditBook) Encode(w io.Writer) (err error) { PlayToServerPacketEditBookNewBookEncTmp := ret.NewBook err = PlayToServerPacketEditBookNewBookEncTmp.Encode(w) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Signing) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Hand) if err != nil { return } return } type PlayToServerPacketEnchantItem struct { WindowId int8 Enchantment int8 } func (ret *PlayToServerPacketEnchantItem) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Enchantment) if err != nil { return } return } func (ret *PlayToServerPacketEnchantItem) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Enchantment) if err != nil { return } return } type PlayToServerPacketEntityAction struct { EntityId int32 ActionId int32 JumpBoost int32 } func (ret *PlayToServerPacketEntityAction) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.ActionId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.JumpBoost, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketEntityAction) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.ActionId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.JumpBoost) if err != nil { return } return } type PlayToServerPacketFlying struct { OnGround bool } func (ret *PlayToServerPacketFlying) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.OnGround) if err != nil { return } return } func (ret *PlayToServerPacketFlying) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.OnGround) if err != nil { return } return } type PlayToServerPacketGenerateStructure struct { Location Position Levels int32 KeepJigsaws bool } func (ret *PlayToServerPacketGenerateStructure) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } ret.Levels, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.KeepJigsaws) if err != nil { return } return } func (ret *PlayToServerPacketGenerateStructure) Encode(w io.Writer) (err error) { PlayToServerPacketGenerateStructureLocationEncTmp := ret.Location err = PlayToServerPacketGenerateStructureLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Levels) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.KeepJigsaws) if err != nil { return } return } type PlayToServerPacketHeldItemSlot struct { SlotId int16 } func (ret *PlayToServerPacketHeldItemSlot) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.SlotId) if err != nil { return } return } func (ret *PlayToServerPacketHeldItemSlot) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.SlotId) if err != nil { return } return } type PlayToServerPacketKeepAlive struct { KeepAliveId int64 } func (ret *PlayToServerPacketKeepAlive) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.KeepAliveId) if err != nil { return } return } func (ret *PlayToServerPacketKeepAlive) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.KeepAliveId) if err != nil { return } return } type PlayToServerPacketLockDifficulty struct { Locked bool } func (ret *PlayToServerPacketLockDifficulty) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Locked) if err != nil { return } return } func (ret *PlayToServerPacketLockDifficulty) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Locked) if err != nil { return } return } type PlayToServerPacketLook struct { Yaw float32 Pitch float32 OnGround bool } func (ret *PlayToServerPacketLook) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.OnGround) if err != nil { return } return } func (ret *PlayToServerPacketLook) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.OnGround) if err != nil { return } return } type PlayToServerPacketNameItem struct { Name string } func (ret *PlayToServerPacketNameItem) Decode(r io.ReadSeeker) (err error) { ret.Name, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToServerPacketNameItem) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Name) if err != nil { return } return } type PlayToServerPacketPickItem struct { Slot int32 } func (ret *PlayToServerPacketPickItem) Decode(r io.ReadSeeker) (err error) { ret.Slot, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketPickItem) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Slot) if err != nil { return } return } type PlayToServerPacketPosition struct { X float64 Y float64 Z float64 OnGround bool } func (ret *PlayToServerPacketPosition) Decode(r io.ReadSeeker) (err error) { 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.OnGround) if err != nil { return } return } func (ret *PlayToServerPacketPosition) Encode(w io.Writer) (err error) { 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.OnGround) if err != nil { return } return } type PlayToServerPacketPositionLook struct { X float64 Y float64 Z float64 Yaw float32 Pitch float32 OnGround bool } func (ret *PlayToServerPacketPositionLook) Decode(r io.ReadSeeker) (err error) { 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.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.OnGround) if err != nil { return } return } func (ret *PlayToServerPacketPositionLook) Encode(w io.Writer) (err error) { 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.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.OnGround) if err != nil { return } return } type PlayToServerPacketQueryBlockNbt struct { TransactionId int32 Location Position } func (ret *PlayToServerPacketQueryBlockNbt) Decode(r io.ReadSeeker) (err error) { ret.TransactionId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = ret.Location.Decode(r) if err != nil { return } return } func (ret *PlayToServerPacketQueryBlockNbt) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.TransactionId) if err != nil { return } PlayToServerPacketQueryBlockNbtLocationEncTmp := ret.Location err = PlayToServerPacketQueryBlockNbtLocationEncTmp.Encode(w) if err != nil { return } return } type PlayToServerPacketQueryEntityNbt struct { TransactionId int32 EntityId int32 } func (ret *PlayToServerPacketQueryEntityNbt) Decode(r io.ReadSeeker) (err error) { ret.TransactionId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketQueryEntityNbt) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.TransactionId) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } return } type PlayToServerPacketRecipeBook struct { BookId int32 BookOpen bool FilterActive bool } func (ret *PlayToServerPacketRecipeBook) Decode(r io.ReadSeeker) (err error) { ret.BookId, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.BookOpen) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.FilterActive) if err != nil { return } return } func (ret *PlayToServerPacketRecipeBook) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.BookId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.BookOpen) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.FilterActive) if err != nil { return } return } type PlayToServerPacketResourcePackReceive struct { Result int32 } func (ret *PlayToServerPacketResourcePackReceive) Decode(r io.ReadSeeker) (err error) { ret.Result, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketResourcePackReceive) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Result) if err != nil { return } return } type PlayToServerPacketSelectTrade struct { Slot int32 } func (ret *PlayToServerPacketSelectTrade) Decode(r io.ReadSeeker) (err error) { ret.Slot, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketSelectTrade) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Slot) if err != nil { return } return } type PlayToServerPacketSetBeaconEffect struct { PrimaryEffect int32 SecondaryEffect int32 } func (ret *PlayToServerPacketSetBeaconEffect) Decode(r io.ReadSeeker) (err error) { ret.PrimaryEffect, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.SecondaryEffect, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketSetBeaconEffect) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.PrimaryEffect) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.SecondaryEffect) if err != nil { return } return } type PlayToServerPacketSetCreativeSlot struct { Slot int16 Item Slot } func (ret *PlayToServerPacketSetCreativeSlot) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Slot) if err != nil { return } err = ret.Item.Decode(r) if err != nil { return } return } func (ret *PlayToServerPacketSetCreativeSlot) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Slot) if err != nil { return } PlayToServerPacketSetCreativeSlotItemEncTmp := ret.Item err = PlayToServerPacketSetCreativeSlotItemEncTmp.Encode(w) if err != nil { return } return } type PlayToServerPacketSetDifficulty struct { NewDifficulty uint8 } func (ret *PlayToServerPacketSetDifficulty) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.NewDifficulty) if err != nil { return } return } func (ret *PlayToServerPacketSetDifficulty) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.NewDifficulty) if err != nil { return } return } type PlayToServerPacketSettings struct { Locale string ViewDistance int8 ChatFlags int32 ChatColors bool SkinParts uint8 MainHand int32 } func (ret *PlayToServerPacketSettings) Decode(r io.ReadSeeker) (err error) { ret.Locale, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.ViewDistance) if err != nil { return } ret.ChatFlags, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.ChatColors) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.SkinParts) if err != nil { return } ret.MainHand, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketSettings) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Locale) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.ViewDistance) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.ChatFlags) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.ChatColors) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.SkinParts) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.MainHand) if err != nil { return } return } type PlayToServerPacketSpectate struct { Target uuid.UUID } func (ret *PlayToServerPacketSpectate) Decode(r io.ReadSeeker) (err error) { _, err = io.ReadFull(r, ret.Target[:]) if err != nil { return } return } func (ret *PlayToServerPacketSpectate) Encode(w io.Writer) (err error) { _, err = w.Write(ret.Target[:]) if err != nil { return } return } type PlayToServerPacketSteerBoat struct { LeftPaddle bool RightPaddle bool } func (ret *PlayToServerPacketSteerBoat) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.LeftPaddle) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.RightPaddle) if err != nil { return } return } func (ret *PlayToServerPacketSteerBoat) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.LeftPaddle) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.RightPaddle) if err != nil { return } return } type PlayToServerPacketSteerVehicle struct { Sideways float32 Forward float32 Jump uint8 } func (ret *PlayToServerPacketSteerVehicle) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Sideways) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Forward) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Jump) if err != nil { return } return } func (ret *PlayToServerPacketSteerVehicle) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Sideways) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Forward) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Jump) if err != nil { return } return } type PlayToServerPacketTabComplete struct { TransactionId int32 Text string } func (ret *PlayToServerPacketTabComplete) Decode(r io.ReadSeeker) (err error) { ret.TransactionId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Text, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToServerPacketTabComplete) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.TransactionId) if err != nil { return } err = proto_base.EncodeString(w, ret.Text) if err != nil { return } return } type PlayToServerPacketTeleportConfirm struct { TeleportId int32 } func (ret *PlayToServerPacketTeleportConfirm) Decode(r io.ReadSeeker) (err error) { ret.TeleportId, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketTeleportConfirm) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.TeleportId) if err != nil { return } return } type PlayToServerPacketTransaction struct { WindowId int8 Action int16 Accepted bool } func (ret *PlayToServerPacketTransaction) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Action) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Accepted) if err != nil { return } return } func (ret *PlayToServerPacketTransaction) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Action) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Accepted) if err != nil { return } return } type PlayToServerPacketUpdateCommandBlock struct { Location Position Command string Mode int32 Flags uint8 } func (ret *PlayToServerPacketUpdateCommandBlock) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } ret.Command, err = proto_base.DecodeString(r) if err != nil { return } ret.Mode, err = proto_base.DecodeVarInt(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Flags) if err != nil { return } return } func (ret *PlayToServerPacketUpdateCommandBlock) Encode(w io.Writer) (err error) { PlayToServerPacketUpdateCommandBlockLocationEncTmp := ret.Location err = PlayToServerPacketUpdateCommandBlockLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeString(w, ret.Command) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Mode) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Flags) if err != nil { return } return } type PlayToServerPacketUpdateCommandBlockMinecart struct { EntityId int32 Command string TrackOutput bool } func (ret *PlayToServerPacketUpdateCommandBlockMinecart) Decode(r io.ReadSeeker) (err error) { ret.EntityId, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Command, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.TrackOutput) if err != nil { return } return } func (ret *PlayToServerPacketUpdateCommandBlockMinecart) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.EntityId) if err != nil { return } err = proto_base.EncodeString(w, ret.Command) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.TrackOutput) if err != nil { return } return } type PlayToServerPacketUpdateJigsawBlock struct { Location Position Name string Target string Pool string FinalState string JointType string } func (ret *PlayToServerPacketUpdateJigsawBlock) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } ret.Name, err = proto_base.DecodeString(r) if err != nil { return } ret.Target, err = proto_base.DecodeString(r) if err != nil { return } ret.Pool, err = proto_base.DecodeString(r) if err != nil { return } ret.FinalState, err = proto_base.DecodeString(r) if err != nil { return } ret.JointType, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToServerPacketUpdateJigsawBlock) Encode(w io.Writer) (err error) { PlayToServerPacketUpdateJigsawBlockLocationEncTmp := ret.Location err = PlayToServerPacketUpdateJigsawBlockLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeString(w, ret.Name) if err != nil { return } err = proto_base.EncodeString(w, ret.Target) if err != nil { return } err = proto_base.EncodeString(w, ret.Pool) if err != nil { return } err = proto_base.EncodeString(w, ret.FinalState) if err != nil { return } err = proto_base.EncodeString(w, ret.JointType) if err != nil { return } return } type PlayToServerPacketUpdateSign struct { Location Position Text1 string Text2 string Text3 string Text4 string } func (ret *PlayToServerPacketUpdateSign) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } ret.Text1, err = proto_base.DecodeString(r) if err != nil { return } ret.Text2, err = proto_base.DecodeString(r) if err != nil { return } ret.Text3, err = proto_base.DecodeString(r) if err != nil { return } ret.Text4, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *PlayToServerPacketUpdateSign) Encode(w io.Writer) (err error) { PlayToServerPacketUpdateSignLocationEncTmp := ret.Location err = PlayToServerPacketUpdateSignLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeString(w, ret.Text1) if err != nil { return } err = proto_base.EncodeString(w, ret.Text2) if err != nil { return } err = proto_base.EncodeString(w, ret.Text3) if err != nil { return } err = proto_base.EncodeString(w, ret.Text4) if err != nil { return } return } type PlayToServerPacketUpdateStructureBlock struct { Location Position Action int32 Mode int32 Name string OffsetX int8 OffsetY int8 OffsetZ int8 SizeX int8 SizeY int8 SizeZ int8 Mirror int32 Rotation int32 Metadata string Integrity float32 Seed int64 Flags uint8 } func (ret *PlayToServerPacketUpdateStructureBlock) Decode(r io.ReadSeeker) (err error) { err = ret.Location.Decode(r) if err != nil { return } ret.Action, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Mode, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.DecodeString(r) 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.SizeX) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.SizeY) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.SizeZ) if err != nil { return } ret.Mirror, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Rotation, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Metadata, err = proto_base.DecodeString(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Integrity) if err != nil { return } ret.Seed, err = proto_base.DecodeVarLong(r) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Flags) if err != nil { return } return } func (ret *PlayToServerPacketUpdateStructureBlock) Encode(w io.Writer) (err error) { PlayToServerPacketUpdateStructureBlockLocationEncTmp := ret.Location err = PlayToServerPacketUpdateStructureBlockLocationEncTmp.Encode(w) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Action) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Mode) if err != nil { return } err = proto_base.EncodeString(w, ret.Name) 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.SizeX) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.SizeY) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.SizeZ) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Mirror) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Rotation) if err != nil { return } err = proto_base.EncodeString(w, ret.Metadata) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Integrity) if err != nil { return } err = proto_base.EncodeVarLong(w, ret.Seed) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Flags) if err != nil { return } return } type PlayToServerPacketUseEntity struct { Target int32 Mouse int32 X any Y any Z any Hand any Sneaking bool } func (ret *PlayToServerPacketUseEntity) Decode(r io.ReadSeeker) (err error) { ret.Target, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Mouse, err = proto_base.DecodeVarInt(r) if err != nil { return } switch ret.Mouse { case 2: var PlayToServerPacketUseEntityX2Tmp float32 err = binary.Read(r, binary.BigEndian, &PlayToServerPacketUseEntityX2Tmp) if err != nil { return } ret.X = PlayToServerPacketUseEntityX2Tmp default: var PlayToServerPacketUseEntityXTmp struct { } ret.X = PlayToServerPacketUseEntityXTmp } switch ret.Mouse { case 2: var PlayToServerPacketUseEntityY2Tmp float32 err = binary.Read(r, binary.BigEndian, &PlayToServerPacketUseEntityY2Tmp) if err != nil { return } ret.Y = PlayToServerPacketUseEntityY2Tmp default: var PlayToServerPacketUseEntityYTmp struct { } ret.Y = PlayToServerPacketUseEntityYTmp } switch ret.Mouse { case 2: var PlayToServerPacketUseEntityZ2Tmp float32 err = binary.Read(r, binary.BigEndian, &PlayToServerPacketUseEntityZ2Tmp) if err != nil { return } ret.Z = PlayToServerPacketUseEntityZ2Tmp default: var PlayToServerPacketUseEntityZTmp struct { } ret.Z = PlayToServerPacketUseEntityZTmp } switch ret.Mouse { case 0: var PlayToServerPacketUseEntityHand0Tmp int32 PlayToServerPacketUseEntityHand0Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Hand = PlayToServerPacketUseEntityHand0Tmp case 2: var PlayToServerPacketUseEntityHand2Tmp int32 PlayToServerPacketUseEntityHand2Tmp, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Hand = PlayToServerPacketUseEntityHand2Tmp default: var PlayToServerPacketUseEntityHandTmp struct { } ret.Hand = PlayToServerPacketUseEntityHandTmp } err = binary.Read(r, binary.BigEndian, &ret.Sneaking) if err != nil { return } return } func (ret *PlayToServerPacketUseEntity) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Target) if err != nil { return } err = proto_base.EncodeVarInt(w, ret.Mouse) if err != nil { return } switch ret.Mouse { case 2: PlayToServerPacketUseEntityX, ok := ret.X.(float32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToServerPacketUseEntityX) if err != nil { return } default: _, ok := ret.X.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mouse { case 2: PlayToServerPacketUseEntityY, ok := ret.Y.(float32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToServerPacketUseEntityY) if err != nil { return } default: _, ok := ret.Y.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mouse { case 2: PlayToServerPacketUseEntityZ, ok := ret.Z.(float32) if !ok { err = proto_base.BadTypeError return } err = binary.Write(w, binary.BigEndian, PlayToServerPacketUseEntityZ) if err != nil { return } default: _, ok := ret.Z.(struct { }) if !ok { err = proto_base.BadTypeError return } } switch ret.Mouse { case 0: PlayToServerPacketUseEntityHand, ok := ret.Hand.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToServerPacketUseEntityHand) if err != nil { return } case 2: PlayToServerPacketUseEntityHand, ok := ret.Hand.(int32) if !ok { err = proto_base.BadTypeError return } err = proto_base.EncodeVarInt(w, PlayToServerPacketUseEntityHand) if err != nil { return } default: _, ok := ret.Hand.(struct { }) if !ok { err = proto_base.BadTypeError return } } err = binary.Write(w, binary.BigEndian, ret.Sneaking) if err != nil { return } return } type PlayToServerPacketUseItem struct { Hand int32 } func (ret *PlayToServerPacketUseItem) Decode(r io.ReadSeeker) (err error) { ret.Hand, err = proto_base.DecodeVarInt(r) if err != nil { return } return } func (ret *PlayToServerPacketUseItem) Encode(w io.Writer) (err error) { err = proto_base.EncodeVarInt(w, ret.Hand) if err != nil { return } return } type PlayToServerPacketVehicleMove struct { X float64 Y float64 Z float64 Yaw float32 Pitch float32 } func (ret *PlayToServerPacketVehicleMove) Decode(r io.ReadSeeker) (err error) { 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.Yaw) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Pitch) if err != nil { return } return } func (ret *PlayToServerPacketVehicleMove) Encode(w io.Writer) (err error) { 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.Yaw) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Pitch) if err != nil { return } return } type PlayToServerPacketWindowClick struct { WindowId uint8 Slot int16 MouseButton int8 Action int16 Mode int8 Item Slot } func (ret *PlayToServerPacketWindowClick) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.WindowId) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Slot) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.MouseButton) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Action) if err != nil { return } err = binary.Read(r, binary.BigEndian, &ret.Mode) if err != nil { return } err = ret.Item.Decode(r) if err != nil { return } return } func (ret *PlayToServerPacketWindowClick) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.WindowId) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Slot) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.MouseButton) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Action) if err != nil { return } err = binary.Write(w, binary.BigEndian, ret.Mode) if err != nil { return } PlayToServerPacketWindowClickItemEncTmp := ret.Item err = PlayToServerPacketWindowClickItemEncTmp.Encode(w) if err != nil { return } return } type StatusToClientPacket struct { Name string Params any } var StatusToClientPacketNameMap = map[int32]string{0x00: "server_info", 0x01: "ping"} func (ret *StatusToClientPacket) Decode(r io.ReadSeeker) (err error) { var StatusToClientPacketNameKey int32 StatusToClientPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(StatusToClientPacketNameMap, StatusToClientPacketNameKey) if err != nil { return } switch ret.Name { case "ping": var StatusToClientPacketParamsPingTmp StatusToClientPacketPing err = StatusToClientPacketParamsPingTmp.Decode(r) if err != nil { return } ret.Params = StatusToClientPacketParamsPingTmp case "server_info": var StatusToClientPacketParamsServerInfoTmp StatusToClientPacketServerInfo err = StatusToClientPacketParamsServerInfoTmp.Decode(r) if err != nil { return } ret.Params = StatusToClientPacketParamsServerInfoTmp } return } var StatusToClientPacketNameReverseMap = map[string]int32{"server_info": 0x00, "ping": 0x01} func (ret *StatusToClientPacket) Encode(w io.Writer) (err error) { var vStatusToClientPacketName int32 vStatusToClientPacketName, err = proto_base.ErroringIndex(StatusToClientPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vStatusToClientPacketName) if err != nil { return } switch ret.Name { case "ping": StatusToClientPacketParams, ok := ret.Params.(StatusToClientPacketPing) if !ok { err = proto_base.BadTypeError return } StatusToClientPacketParamsEncTmp := StatusToClientPacketParams err = StatusToClientPacketParamsEncTmp.Encode(w) if err != nil { return } case "server_info": StatusToClientPacketParams, ok := ret.Params.(StatusToClientPacketServerInfo) if !ok { err = proto_base.BadTypeError return } StatusToClientPacketParamsEncTmp := StatusToClientPacketParams err = StatusToClientPacketParamsEncTmp.Encode(w) if err != nil { return } } return } type StatusToClientPacketPing struct { Time int64 } func (ret *StatusToClientPacketPing) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Time) if err != nil { return } return } func (ret *StatusToClientPacketPing) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Time) if err != nil { return } return } type StatusToClientPacketServerInfo struct { Response string } func (ret *StatusToClientPacketServerInfo) Decode(r io.ReadSeeker) (err error) { ret.Response, err = proto_base.DecodeString(r) if err != nil { return } return } func (ret *StatusToClientPacketServerInfo) Encode(w io.Writer) (err error) { err = proto_base.EncodeString(w, ret.Response) if err != nil { return } return } type StatusToServerPacket struct { Name string Params any } var StatusToServerPacketNameMap = map[int32]string{0x00: "ping_start", 0x01: "ping"} func (ret *StatusToServerPacket) Decode(r io.ReadSeeker) (err error) { var StatusToServerPacketNameKey int32 StatusToServerPacketNameKey, err = proto_base.DecodeVarInt(r) if err != nil { return } ret.Name, err = proto_base.ErroringIndex(StatusToServerPacketNameMap, StatusToServerPacketNameKey) if err != nil { return } switch ret.Name { case "ping": var StatusToServerPacketParamsPingTmp StatusToServerPacketPing err = StatusToServerPacketParamsPingTmp.Decode(r) if err != nil { return } ret.Params = StatusToServerPacketParamsPingTmp case "ping_start": var StatusToServerPacketParamsPingStartTmp StatusToServerPacketPingStart err = StatusToServerPacketParamsPingStartTmp.Decode(r) if err != nil { return } ret.Params = StatusToServerPacketParamsPingStartTmp } return } var StatusToServerPacketNameReverseMap = map[string]int32{"ping_start": 0x00, "ping": 0x01} func (ret *StatusToServerPacket) Encode(w io.Writer) (err error) { var vStatusToServerPacketName int32 vStatusToServerPacketName, err = proto_base.ErroringIndex(StatusToServerPacketNameReverseMap, ret.Name) if err != nil { return } err = proto_base.EncodeVarInt(w, vStatusToServerPacketName) if err != nil { return } switch ret.Name { case "ping": StatusToServerPacketParams, ok := ret.Params.(StatusToServerPacketPing) if !ok { err = proto_base.BadTypeError return } StatusToServerPacketParamsEncTmp := StatusToServerPacketParams err = StatusToServerPacketParamsEncTmp.Encode(w) if err != nil { return } case "ping_start": StatusToServerPacketParams, ok := ret.Params.(StatusToServerPacketPingStart) if !ok { err = proto_base.BadTypeError return } StatusToServerPacketParamsEncTmp := StatusToServerPacketParams err = StatusToServerPacketParamsEncTmp.Encode(w) if err != nil { return } } return } type StatusToServerPacketPing struct { Time int64 } func (ret *StatusToServerPacketPing) Decode(r io.ReadSeeker) (err error) { err = binary.Read(r, binary.BigEndian, &ret.Time) if err != nil { return } return } func (ret *StatusToServerPacketPing) Encode(w io.Writer) (err error) { err = binary.Write(w, binary.BigEndian, ret.Time) if err != nil { return } return } type StatusToServerPacketPingStart struct { } func (ret *StatusToServerPacketPingStart) Decode(r io.ReadSeeker) (err error) { return } func (ret *StatusToServerPacketPingStart) Encode(w io.Writer) (err error) { return }