From 195d34f32d7d04fcee2662949cbc43347ac3dcdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=9F=E8=92=BB?= Date: Fri, 20 Jun 2025 04:22:08 +0800 Subject: [PATCH] 1.21.6 Clientbound PlayState Packets --- .claude/settings.local.json | 6 +- codec/component/attribute_modifiers.go | 7 +- codec/component/axolotl_variant.go | 2 +- codec/component/banner_patterns.go | 11 +- codec/component/base_color.go | 2 +- codec/component/bees.go | 2 +- codec/component/block_entity_data.go | 2 +- codec/component/block_state.go | 2 +- codec/component/blocks_attacks.go | 25 +- codec/component/break_sound.go | 2 +- codec/component/bucket_entity_data.go | 2 +- codec/component/bundle_contents.go | 2 +- codec/component/can_break.go | 2 +- codec/component/can_place_on.go | 2 +- codec/component/cat_collar.go | 2 +- codec/component/cat_variant.go | 2 +- codec/component/charged_projectiles.go | 2 +- codec/component/chicken_variant.go | 2 +- codec/component/codecs.go | 3514 +++++----- codec/component/components.go | 386 +- codec/component/consumable.go | 27 +- codec/component/container.go | 2 +- codec/component/container_loot.go | 2 +- codec/component/cow_variant.go | 2 +- codec/component/creative_slot_lock.go | 2 +- codec/component/custom_data.go | 2 +- codec/component/custom_model_data.go | 2 +- codec/component/custom_name.go | 2 +- codec/component/damage.go | 2 +- codec/component/damage_resistant.go | 2 +- codec/component/death_protection.go | 2 +- codec/component/debug_stick_state.go | 2 +- codec/component/dyed_color.go | 2 +- codec/component/enchantable.go | 2 +- codec/component/enchantment_glint_override.go | 2 +- codec/component/enchantments.go | 7 +- codec/component/entity_data.go | 2 +- codec/component/equippable.go | 27 +- codec/component/firework_explosion.go | 8 +- codec/component/fireworks.go | 2 +- codec/component/food.go | 2 +- codec/component/fox_variant.go | 2 +- codec/component/frog_variant.go | 2 +- codec/component/glider.go | 2 +- codec/component/horse_variant.go | 2 +- codec/component/instrument.go | 2 +- codec/component/intangible_projectile.go | 2 +- codec/component/item_model.go | 2 +- codec/component/item_name.go | 2 +- codec/component/jukebox_playable.go | 2 +- codec/component/llama_variant.go | 2 +- codec/component/lock.go | 2 +- codec/component/lodestone_tracker.go | 2 +- codec/component/lore.go | 2 +- codec/component/map_color.go | 2 +- codec/component/map_decorations.go | 2 +- codec/component/map_id.go | 2 +- codec/component/map_post_processing.go | 2 +- codec/component/max_damage.go | 2 +- codec/component/max_stack_size.go | 2 +- codec/component/mooshroom_variant.go | 2 +- codec/component/note_block_sound.go | 2 +- codec/component/ominous_bottle_amplifier.go | 2 +- codec/component/painting_variant.go | 2 +- codec/component/parrot_variant.go | 2 +- codec/component/pig_variant.go | 2 +- codec/component/pot_decorations.go | 2 +- codec/component/potion_contents.go | 15 +- codec/component/potion_duration_scale.go | 2 +- codec/component/profile.go | 2 +- codec/component/provides_banner_patterns.go | 2 +- codec/component/provides_trim_material.go | 2 +- codec/component/rabbit_variant.go | 2 +- codec/component/rarity.go | 2 +- codec/component/recipes.go | 2 +- codec/component/repair_cost.go | 2 +- codec/component/repairable.go | 2 +- codec/component/salmon_size.go | 2 +- codec/component/sheep_color.go | 2 +- codec/component/shulker_color.go | 2 +- codec/component/stored_enchantments.go | 2 +- codec/component/suspicious_stew_effects.go | 2 +- codec/component/tool.go | 2 +- codec/component/tooltip_display.go | 2 +- codec/component/tooltip_style.go | 2 +- codec/component/trim.go | 3 +- codec/component/tropical_fish_base_color.go | 2 +- codec/component/tropical_fish_pattern.go | 2 +- .../component/tropical_fish_pattern_color.go | 2 +- codec/component/unbreakable.go | 2 +- codec/component/use_cooldown.go | 2 +- codec/component/use_remainder.go | 2 +- codec/component/villager_variant.go | 2 +- codec/component/weapon.go | 2 +- codec/component/wolf_collar.go | 2 +- codec/component/wolf_sound_variant.go | 2 +- codec/component/wolf_variant.go | 2 +- codec/component/writable_book_content.go | 2 +- codec/component/written_book_content.go | 2 +- codec/metadata/codecs.go | 262 + codec/metadata/metadata.go | 156 + codec/metadata/values.go | 303 + codec/packet/game/client/clear_dialog.go | 5 + codec/packet/game/client/codecs.go | 5732 +++++++++++++---- .../game/client/container_set_content.go | 2 +- .../packet/game/client/container_set_slot.go | 2 +- .../game/client/custom_report_details.go | 12 + codec/packet/game/client/merchant_offers.go | 30 + codec/packet/game/client/move_entity_pos.go | 8 + .../packet/game/client/move_entity_pos_rot.go | 11 + codec/packet/game/client/move_entity_rot.go | 8 + .../game/client/move_minecart_along_track.go | 17 + codec/packet/game/client/move_vehicle.go | 7 + codec/packet/game/client/open_book.go | 6 + codec/packet/game/client/open_screen.go | 9 + codec/packet/game/client/open_sign_editor.go | 9 + codec/packet/game/client/ping.go | 6 + codec/packet/game/client/ping_response.go | 6 + .../packet/game/client/place_ghost_recipe.go | 9 + codec/packet/game/client/player_abilities.go | 2 +- codec/packet/game/client/player_combat_end.go | 6 + .../packet/game/client/player_combat_enter.go | 5 + .../packet/game/client/player_combat_kill.go | 9 + .../packet/game/client/player_info_remove.go | 10 + .../packet/game/client/player_info_update.go | 224 + codec/packet/game/client/player_look_at.go | 16 + codec/packet/game/client/player_position.go | 14 +- codec/packet/game/client/player_rotation.go | 7 + codec/packet/game/client/projectile_power.go | 7 + codec/packet/game/client/recipe_book_add.go | 29 + .../packet/game/client/recipe_book_remove.go | 6 + .../game/client/recipe_book_settings.go | 12 + codec/packet/game/client/remove_entities.go | 6 + codec/packet/game/client/remove_mob_effect.go | 7 + codec/packet/game/client/reset_score.go | 1 + codec/packet/game/client/resource_pack_pop.go | 12 + .../packet/game/client/resource_pack_push.go | 17 + codec/packet/game/client/rotate_head.go | 9 + .../game/client/sections_blocks_update.go | 35 + .../game/client/select_advancements_tab.go | 8 + codec/packet/game/client/server_data.go | 13 + codec/packet/game/client/server_links.go | 16 + .../packet/game/client/set_action_bar_text.go | 8 + codec/packet/game/client/set_border_center.go | 6 + .../game/client/set_border_lerp_size.go | 6 + codec/packet/game/client/set_border_size.go | 6 + .../game/client/set_border_warning_delay.go | 6 + .../client/set_border_warning_distance.go | 6 + codec/packet/game/client/set_camera.go | 6 + .../game/client/set_chunk_cache_center.go | 6 + .../game/client/set_chunk_cache_radius.go | 6 + codec/packet/game/client/set_cursor_item.go | 8 + .../game/client/set_default_spawn_position.go | 9 + .../game/client/set_display_objective.go | 7 + codec/packet/game/client/set_entity_data.go | 11 + codec/packet/game/client/set_entity_link.go | 7 + codec/packet/game/client/set_entity_motion.go | 6 + codec/packet/game/client/set_equipment.go | 67 + codec/packet/game/client/set_experience.go | 8 + codec/packet/game/client/set_health.go | 10 + codec/packet/game/client/set_held_slot.go | 6 + codec/packet/game/client/set_objective.go | 29 + codec/packet/game/client/set_passengers.go | 7 + .../game/client/set_player_inventory.go | 9 + codec/packet/game/client/set_player_team.go | 58 + codec/packet/game/client/set_score.go | 28 + .../game/client/set_simulation_distance.go | 6 + codec/packet/game/client/set_subtitle_text.go | 8 + codec/packet/game/client/set_time.go | 8 + codec/packet/game/client/set_title_text.go | 8 + .../game/client/set_titles_animation.go | 8 + codec/packet/game/client/show_dialog.go | 11 + codec/packet/game/client/sound.go | 13 + codec/packet/game/client/sound_entity.go | 16 + .../packet/game/client/start_configuration.go | 5 + codec/packet/game/client/stop_sound.go | 34 + codec/packet/game/client/store_cookie.go | 7 + codec/packet/game/client/system_chat.go | 9 + codec/packet/game/client/tab_list.go | 8 + codec/packet/game/client/tag_query.go | 9 + codec/packet/game/client/take_item_entity.go | 8 + codec/packet/game/client/teleport_entity.go | 10 + .../game/client/test_instance_block_status.go | 15 + codec/packet/game/client/ticking_state.go | 7 + codec/packet/game/client/ticking_step.go | 6 + codec/packet/game/client/transfer.go | 7 + .../packet/game/client/update_advancements.go | 54 + codec/packet/game/client/update_attributes.go | 21 + codec/packet/game/client/update_mob_effect.go | 10 + codec/packet/game/client/update_recipes.go | 24 + codec/packet/game/client/update_tags.go | 15 + codec/packet/game/client/waypoint.go | 40 + codec/particle/codecs.go | 327 + codec/particle/particle.go | 115 + codec/particle/particles.go | 245 + codec/slot/component.go | 9 +- codec/slot/display/recipe/codecs.go | 275 + codec/slot/display/recipe/recipe_display.go | 117 + codec/slot/display/slot/codecs.go | 154 + codec/slot/display/slot/slot_display.go | 134 + codec/slot/{itemstack.go => item_stack.go} | 0 codec/slot/trade_item.go | 40 + go.mod | 7 + go.sum | 8 + 204 files changed, 10118 insertions(+), 3287 deletions(-) create mode 100644 codec/metadata/codecs.go create mode 100644 codec/metadata/metadata.go create mode 100644 codec/metadata/values.go create mode 100644 codec/packet/game/client/clear_dialog.go create mode 100644 codec/packet/game/client/custom_report_details.go create mode 100644 codec/packet/game/client/move_entity_pos.go create mode 100644 codec/packet/game/client/move_entity_pos_rot.go create mode 100644 codec/packet/game/client/move_entity_rot.go create mode 100644 codec/packet/game/client/move_minecart_along_track.go create mode 100644 codec/packet/game/client/move_vehicle.go create mode 100644 codec/packet/game/client/open_book.go create mode 100644 codec/packet/game/client/open_screen.go create mode 100644 codec/packet/game/client/open_sign_editor.go create mode 100644 codec/packet/game/client/ping.go create mode 100644 codec/packet/game/client/ping_response.go create mode 100644 codec/packet/game/client/place_ghost_recipe.go create mode 100644 codec/packet/game/client/player_combat_end.go create mode 100644 codec/packet/game/client/player_combat_enter.go create mode 100644 codec/packet/game/client/player_combat_kill.go create mode 100644 codec/packet/game/client/player_info_remove.go create mode 100644 codec/packet/game/client/player_info_update.go create mode 100644 codec/packet/game/client/player_look_at.go create mode 100644 codec/packet/game/client/player_rotation.go create mode 100644 codec/packet/game/client/projectile_power.go create mode 100644 codec/packet/game/client/recipe_book_add.go create mode 100644 codec/packet/game/client/recipe_book_remove.go create mode 100644 codec/packet/game/client/recipe_book_settings.go create mode 100644 codec/packet/game/client/remove_entities.go create mode 100644 codec/packet/game/client/remove_mob_effect.go create mode 100644 codec/packet/game/client/reset_score.go create mode 100644 codec/packet/game/client/resource_pack_pop.go create mode 100644 codec/packet/game/client/resource_pack_push.go create mode 100644 codec/packet/game/client/rotate_head.go create mode 100644 codec/packet/game/client/sections_blocks_update.go create mode 100644 codec/packet/game/client/select_advancements_tab.go create mode 100644 codec/packet/game/client/server_data.go create mode 100644 codec/packet/game/client/server_links.go create mode 100644 codec/packet/game/client/set_action_bar_text.go create mode 100644 codec/packet/game/client/set_border_center.go create mode 100644 codec/packet/game/client/set_border_lerp_size.go create mode 100644 codec/packet/game/client/set_border_size.go create mode 100644 codec/packet/game/client/set_border_warning_delay.go create mode 100644 codec/packet/game/client/set_border_warning_distance.go create mode 100644 codec/packet/game/client/set_camera.go create mode 100644 codec/packet/game/client/set_chunk_cache_center.go create mode 100644 codec/packet/game/client/set_chunk_cache_radius.go create mode 100644 codec/packet/game/client/set_cursor_item.go create mode 100644 codec/packet/game/client/set_default_spawn_position.go create mode 100644 codec/packet/game/client/set_display_objective.go create mode 100644 codec/packet/game/client/set_entity_data.go create mode 100644 codec/packet/game/client/set_entity_link.go create mode 100644 codec/packet/game/client/set_entity_motion.go create mode 100644 codec/packet/game/client/set_equipment.go create mode 100644 codec/packet/game/client/set_experience.go create mode 100644 codec/packet/game/client/set_health.go create mode 100644 codec/packet/game/client/set_held_slot.go create mode 100644 codec/packet/game/client/set_objective.go create mode 100644 codec/packet/game/client/set_passengers.go create mode 100644 codec/packet/game/client/set_player_inventory.go create mode 100644 codec/packet/game/client/set_player_team.go create mode 100644 codec/packet/game/client/set_score.go create mode 100644 codec/packet/game/client/set_simulation_distance.go create mode 100644 codec/packet/game/client/set_subtitle_text.go create mode 100644 codec/packet/game/client/set_time.go create mode 100644 codec/packet/game/client/set_title_text.go create mode 100644 codec/packet/game/client/set_titles_animation.go create mode 100644 codec/packet/game/client/show_dialog.go create mode 100644 codec/packet/game/client/sound.go create mode 100644 codec/packet/game/client/sound_entity.go create mode 100644 codec/packet/game/client/start_configuration.go create mode 100644 codec/packet/game/client/stop_sound.go create mode 100644 codec/packet/game/client/store_cookie.go create mode 100644 codec/packet/game/client/system_chat.go create mode 100644 codec/packet/game/client/tab_list.go create mode 100644 codec/packet/game/client/tag_query.go create mode 100644 codec/packet/game/client/take_item_entity.go create mode 100644 codec/packet/game/client/teleport_entity.go create mode 100644 codec/packet/game/client/test_instance_block_status.go create mode 100644 codec/packet/game/client/ticking_state.go create mode 100644 codec/packet/game/client/ticking_step.go create mode 100644 codec/packet/game/client/transfer.go create mode 100644 codec/packet/game/client/update_advancements.go create mode 100644 codec/packet/game/client/update_attributes.go create mode 100644 codec/packet/game/client/update_mob_effect.go create mode 100644 codec/packet/game/client/update_recipes.go create mode 100644 codec/packet/game/client/update_tags.go create mode 100644 codec/packet/game/client/waypoint.go create mode 100644 codec/particle/codecs.go create mode 100644 codec/particle/particle.go create mode 100644 codec/particle/particles.go create mode 100644 codec/slot/display/recipe/codecs.go create mode 100644 codec/slot/display/recipe/recipe_display.go create mode 100644 codec/slot/display/slot/codecs.go create mode 100644 codec/slot/display/slot/slot_display.go rename codec/slot/{itemstack.go => item_stack.go} (100%) create mode 100644 codec/slot/trade_item.go diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 9e055f2..e0f02c4 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -7,9 +7,11 @@ "Bash(grep:*)", "Bash(rg:*)", "Bash(go:*)", - "*", "Bash(./gen-packet.sh:*)", - "Bash(chmod:*)" + "Bash(chmod:*)", + "Bash(/root/go/bin/packetizer:*)", + "**", + "*" ], "deny": [] } diff --git a/codec/component/attribute_modifiers.go b/codec/component/attribute_modifiers.go index 1e8f3f3..dce2358 100644 --- a/codec/component/attribute_modifiers.go +++ b/codec/component/attribute_modifiers.go @@ -1,8 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" - pk "github.com/Tnze/go-mc/net/packet" + "git.konjactw.dev/patyhank/minego/codec/slot" ) //codec:gen @@ -12,8 +11,8 @@ type AttributeModifiers struct { //codec:gen type AttributeModifier struct { - AttributeID int32 `mc:"VarInt"` - ModifierID pk.Identifier + AttributeID int32 `mc:"VarInt"` + ModifierID string `mc:"Identifier"` Value float64 Operation int32 `mc:"VarInt"` // 0=Add, 1=Multiply base, 2=Multiply total Slot int32 `mc:"VarInt"` // 0=Any, 1=Main hand, 2=Off hand, etc. diff --git a/codec/component/axolotl_variant.go b/codec/component/axolotl_variant.go index cb734d6..c6959ee 100644 --- a/codec/component/axolotl_variant.go +++ b/codec/component/axolotl_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type AxolotlVariant struct { diff --git a/codec/component/banner_patterns.go b/codec/component/banner_patterns.go index e89600f..2dd8a77 100644 --- a/codec/component/banner_patterns.go +++ b/codec/component/banner_patterns.go @@ -1,8 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" - "github.com/Tnze/go-mc/net/packet" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) @@ -13,9 +12,11 @@ type BannerPatterns struct { //codec:gen type BannerLayer struct { - PatternType int32 `mc:"VarInt"` - AssetID pk.Option[packet.Identifier, *packet.Identifier] - TranslationKey pk.Option[pk.String, *pk.String] + Pattern int32 `mc:"VarInt"` + //opt:enum:Pattern:0 + AssetID pk.Identifier + //opt:enum:Pattern:0 + TranslationKey string Color DyeColor } diff --git a/codec/component/base_color.go b/codec/component/base_color.go index 6872d2d..f7aa321 100644 --- a/codec/component/base_color.go +++ b/codec/component/base_color.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type BaseColor struct { diff --git a/codec/component/bees.go b/codec/component/bees.go index 9c48617..f0802c1 100644 --- a/codec/component/bees.go +++ b/codec/component/bees.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/block_entity_data.go b/codec/component/block_entity_data.go index 0661d7b..3a90f48 100644 --- a/codec/component/block_entity_data.go +++ b/codec/component/block_entity_data.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/block_state.go b/codec/component/block_state.go index b3d61ad..f396656 100644 --- a/codec/component/block_state.go +++ b/codec/component/block_state.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type BlockState struct { diff --git a/codec/component/blocks_attacks.go b/codec/component/blocks_attacks.go index 03b7ac6..e3a2c28 100644 --- a/codec/component/blocks_attacks.go +++ b/codec/component/blocks_attacks.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) @@ -14,16 +14,29 @@ type BlocksAttacks struct { ItemDamageBase float32 ItemDamageFactor float32 BypassedBy pk.Option[pk.Identifier, *pk.Identifier] - BlockSound pk.Option[SoundEvent, *SoundEvent] - DisableSound pk.Option[SoundEvent, *SoundEvent] + HasBlockSound bool + //opt:optional:HasBlockSound + BlockSoundID int32 `mc:"VarInt"` + //opt:optional:HasBlockSound + //opt:id:BlockSoundID + BlockSound SoundEvent + + HasDisableSound bool + //opt:optional:HasDisableSound + DisableSoundID int32 `mc:"VarInt"` + //opt:optional:HasDisableSound + //opt:id:DisableSoundID + DisableSound SoundEvent } //codec:gen type DamageReduction struct { HorizontalBlockingAngle float32 - Type pk.Option[pk.IDSet, *pk.IDSet] - Base float32 - Factor float32 + HasType bool + //opt:optional:HasType + Type pk.IDSet + Base float32 + Factor float32 } func (*BlocksAttacks) Type() slot.ComponentID { diff --git a/codec/component/break_sound.go b/codec/component/break_sound.go index 5e3ba8e..8059527 100644 --- a/codec/component/break_sound.go +++ b/codec/component/break_sound.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/bucket_entity_data.go b/codec/component/bucket_entity_data.go index d3b75d5..f265f83 100644 --- a/codec/component/bucket_entity_data.go +++ b/codec/component/bucket_entity_data.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/bundle_contents.go b/codec/component/bundle_contents.go index bdafbfd..9bc28c7 100644 --- a/codec/component/bundle_contents.go +++ b/codec/component/bundle_contents.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type BundleContents struct { diff --git a/codec/component/can_break.go b/codec/component/can_break.go index f454187..97dce5e 100644 --- a/codec/component/can_break.go +++ b/codec/component/can_break.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type CanBreak struct { diff --git a/codec/component/can_place_on.go b/codec/component/can_place_on.go index 05d6cf1..a8d11cf 100644 --- a/codec/component/can_place_on.go +++ b/codec/component/can_place_on.go @@ -3,7 +3,7 @@ package component import ( "io" - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/cat_collar.go b/codec/component/cat_collar.go index 453f753..c2d1314 100644 --- a/codec/component/cat_collar.go +++ b/codec/component/cat_collar.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type CatCollar struct { diff --git a/codec/component/cat_variant.go b/codec/component/cat_variant.go index 2c05ee8..9b343e7 100644 --- a/codec/component/cat_variant.go +++ b/codec/component/cat_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type CatVariant struct { diff --git a/codec/component/charged_projectiles.go b/codec/component/charged_projectiles.go index 4a3e3cf..b17c6e8 100644 --- a/codec/component/charged_projectiles.go +++ b/codec/component/charged_projectiles.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type ChargedProjectiles struct { diff --git a/codec/component/chicken_variant.go b/codec/component/chicken_variant.go index 814cc02..9553005 100644 --- a/codec/component/chicken_variant.go +++ b/codec/component/chicken_variant.go @@ -3,7 +3,7 @@ package component import ( "io" - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/codecs.go b/codec/component/codecs.go index dbb8cea..0f8788c 100644 --- a/codec/component/codecs.go +++ b/codec/component/codecs.go @@ -1,18 +1,17 @@ -// Code generated by packetizer.go; DO NOT EDIT. +// Code generated by github.com/go-mc/packetizer; DO NOT EDIT. package component import ( + "errors" "io" - pk "github.com/Tnze/go-mc/net/packet" + "github.com/Tnze/go-mc/net/packet" ) -func (c *AttributeModifiers) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *AttributeModifiers) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Modifiers).ReadFrom(r) + temp, err = packet.Array(&c.Modifiers).ReadFrom(r) n += temp if err != nil { return n, err @@ -20,11 +19,38 @@ func (c *AttributeModifiers) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c AttributeModifiers) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c AttributeModifiers) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Modifiers).WriteTo(w) + temp, err = packet.Array(&c.Modifiers).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *AttributeModifier) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.AttributeID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Identifier)(&c.ModifierID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Value).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Operation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Slot).ReadFrom(r) n += temp if err != nil { return n, err @@ -32,31 +58,38 @@ func (c AttributeModifiers) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *AttributeModifier) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c AttributeModifier) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.AttributeID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.AttributeID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (&c.ModifierID).ReadFrom(r) + temp, err = (*packet.Identifier)(&c.ModifierID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Value).ReadFrom(r) + temp, err = (*packet.Double)(&c.Value).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Operation).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Operation).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Slot).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Slot).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *AxolotlVariant) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -64,31 +97,18 @@ func (c *AttributeModifier) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c AttributeModifier) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c AxolotlVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.AttributeID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (&c.ModifierID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Value).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Operation).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Slot).WriteTo(w) + return n, err +} +func (c *BannerPatterns) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Layers).ReadFrom(r) n += temp if err != nil { return n, err @@ -96,72 +116,35 @@ func (c AttributeModifier) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *AxolotlVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c BannerPatterns) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = packet.Array(&c.Layers).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c AxolotlVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c *BannerLayer) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Pattern).ReadFrom(r) n += temp if err != nil { return n, err } - return n, err -} - -func (c *BannerPatterns) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Layers).ReadFrom(r) - n += temp - if err != nil { - return n, err + if c.Pattern == 0 { + temp, err = (&c.AssetID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } } - return n, err -} - -func (c BannerPatterns) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Layers).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *BannerLayer) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.PatternType).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.AssetID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.TranslationKey).ReadFrom(r) - n += temp - if err != nil { - return n, err + if c.Pattern == 0 { + temp, err = (*packet.String)(&c.TranslationKey).ReadFrom(r) + n += temp + if err != nil { + return n, err + } } temp, err = (&c.Color).ReadFrom(r) n += temp @@ -171,24 +154,26 @@ func (c *BannerLayer) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BannerLayer) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BannerLayer) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.PatternType).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Pattern).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (&c.AssetID).WriteTo(w) - n += temp - if err != nil { - return n, err + if c.Pattern == 0 { + temp, err = (&c.AssetID).WriteTo(w) + n += temp + if err != nil { + return n, err + } } - temp, err = (&c.TranslationKey).WriteTo(w) - n += temp - if err != nil { - return n, err + if c.Pattern == 0 { + temp, err = (*packet.String)(&c.TranslationKey).WriteTo(w) + n += temp + if err != nil { + return n, err + } } temp, err = (&c.Color).WriteTo(w) n += temp @@ -197,12 +182,9 @@ func (c BannerLayer) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *DyeColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *DyeColor) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ColorID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.ColorID).ReadFrom(r) n += temp if err != nil { return n, err @@ -210,21 +192,16 @@ func (c *DyeColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DyeColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DyeColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ColorID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.ColorID).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BaseColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BaseColor) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Color).ReadFrom(r) n += temp @@ -234,9 +211,7 @@ func (c *BaseColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BaseColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BaseColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Color).WriteTo(w) n += temp @@ -245,12 +220,9 @@ func (c BaseColor) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *Bees) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Bees) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Bees).ReadFrom(r) + temp, err = packet.Array(&c.Bees).ReadFrom(r) n += temp if err != nil { return n, err @@ -258,11 +230,28 @@ func (c *Bees) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Bees) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Bees) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Bees).WriteTo(w) + temp, err = packet.Array(&c.Bees).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Bee) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.EntityData).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TicksInHive).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.MinTicksInHive).ReadFrom(r) n += temp if err != nil { return n, err @@ -270,21 +259,28 @@ func (c Bees) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Bee) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Bee) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.EntityData).ReadFrom(r) + temp, err = packet.NBT(&c.EntityData).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.TicksInHive).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.TicksInHive).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.MinTicksInHive).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.MinTicksInHive).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *BlockEntityData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -292,21 +288,18 @@ func (c *Bee) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Bee) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockEntityData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.EntityData).WriteTo(w) + temp, err = packet.NBT(&c.Data).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.TicksInHive).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.MinTicksInHive).WriteTo(w) + return n, err +} +func (c *BlockState) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Properties).ReadFrom(r) n += temp if err != nil { return n, err @@ -314,11 +307,23 @@ func (c Bee) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *BlockEntityData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c BlockState) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = packet.Array(&c.Properties).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *BlockStateProperty) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.Name).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.Value).ReadFrom(r) n += temp if err != nil { return n, err @@ -326,106 +331,48 @@ func (c *BlockEntityData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BlockEntityData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockStateProperty) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) + temp, err = (*packet.String)(&c.Name).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.Value).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BlockState) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BlocksAttacks) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Properties).ReadFrom(r) + temp, err = (*packet.Float)(&c.BlockDelaySeconds).ReadFrom(r) n += temp if err != nil { return n, err } - return n, err -} - -func (c BlockState) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Properties).WriteTo(w) + temp, err = (*packet.Float)(&c.DisableCooldownScale).ReadFrom(r) n += temp if err != nil { return n, err } - return n, err -} - -func (c *BlockStateProperty) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.String)(&c.Name).ReadFrom(r) + temp, err = packet.Array(&c.DamageReductions).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.String)(&c.Value).ReadFrom(r) + temp, err = (*packet.Float)(&c.ItemDamageThreshold).ReadFrom(r) n += temp if err != nil { return n, err } - return n, err -} - -func (c BlockStateProperty) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.String)(&c.Name).WriteTo(w) + temp, err = (*packet.Float)(&c.ItemDamageBase).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.String)(&c.Value).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *BlocksAttacks) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Float)(&c.BlockDelaySeconds).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.DisableCooldownScale).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.DamageReductions).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.ItemDamageThreshold).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.ItemDamageBase).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.ItemDamageFactor).ReadFrom(r) + temp, err = (*packet.Float)(&c.ItemDamageFactor).ReadFrom(r) n += temp if err != nil { return n, err @@ -435,49 +382,79 @@ func (c *BlocksAttacks) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (&c.BlockSound).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasBlockSound).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (&c.DisableSound).ReadFrom(r) + if c.HasBlockSound { + temp, err = (*packet.VarInt)(&c.BlockSoundID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.HasBlockSound { + if c.BlockSoundID == 0 { + temp, err = (&c.BlockSound).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + } + temp, err = (*packet.Boolean)(&c.HasDisableSound).ReadFrom(r) n += temp if err != nil { return n, err } + if c.HasDisableSound { + temp, err = (*packet.VarInt)(&c.DisableSoundID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.HasDisableSound { + if c.DisableSoundID == 0 { + temp, err = (&c.DisableSound).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + } return n, err } -func (c BlocksAttacks) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlocksAttacks) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Float)(&c.BlockDelaySeconds).WriteTo(w) + temp, err = (*packet.Float)(&c.BlockDelaySeconds).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.DisableCooldownScale).WriteTo(w) + temp, err = (*packet.Float)(&c.DisableCooldownScale).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.DamageReductions).WriteTo(w) + temp, err = packet.Array(&c.DamageReductions).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.ItemDamageThreshold).WriteTo(w) + temp, err = (*packet.Float)(&c.ItemDamageThreshold).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.ItemDamageBase).WriteTo(w) + temp, err = (*packet.Float)(&c.ItemDamageBase).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.ItemDamageFactor).WriteTo(w) + temp, err = (*packet.Float)(&c.ItemDamageFactor).WriteTo(w) n += temp if err != nil { return n, err @@ -487,39 +464,75 @@ func (c BlocksAttacks) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (&c.BlockSound).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasBlockSound).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (&c.DisableSound).WriteTo(w) + if c.HasBlockSound { + temp, err = (*packet.VarInt)(&c.BlockSoundID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.HasBlockSound { + if c.BlockSoundID == 0 { + temp, err = (&c.BlockSound).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + } + temp, err = (*packet.Boolean)(&c.HasDisableSound).WriteTo(w) n += temp if err != nil { return n, err } + if c.HasDisableSound { + temp, err = (*packet.VarInt)(&c.DisableSoundID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.HasDisableSound { + if c.DisableSoundID == 0 { + temp, err = (&c.DisableSound).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + } return n, err } - -func (c *DamageReduction) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *DamageReduction) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Float)(&c.HorizontalBlockingAngle).ReadFrom(r) + temp, err = (*packet.Float)(&c.HorizontalBlockingAngle).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (&c.Type).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasType).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Base).ReadFrom(r) + if c.HasType { + temp, err = (&c.Type).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Float)(&c.Base).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Factor).ReadFrom(r) + temp, err = (*packet.Float)(&c.Factor).ReadFrom(r) n += temp if err != nil { return n, err @@ -527,36 +540,38 @@ func (c *DamageReduction) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DamageReduction) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DamageReduction) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Float)(&c.HorizontalBlockingAngle).WriteTo(w) + temp, err = (*packet.Float)(&c.HorizontalBlockingAngle).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (&c.Type).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasType).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Base).WriteTo(w) + if c.HasType { + temp, err = (&c.Type).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Float)(&c.Base).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Factor).WriteTo(w) + temp, err = (*packet.Float)(&c.Factor).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BreakSound) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BreakSound) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.SoundData).ReadFrom(r) n += temp @@ -566,9 +581,7 @@ func (c *BreakSound) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BreakSound) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BreakSound) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.SoundData).WriteTo(w) n += temp @@ -577,12 +590,9 @@ func (c BreakSound) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *BucketEntityData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BucketEntityData) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -590,11 +600,18 @@ func (c *BucketEntityData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BucketEntityData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BucketEntityData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) + temp, err = packet.NBT(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *BundleContents) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Items).ReadFrom(r) n += temp if err != nil { return n, err @@ -602,11 +619,18 @@ func (c BucketEntityData) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *BundleContents) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c BundleContents) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Items).ReadFrom(r) + temp, err = packet.Array(&c.Items).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *CanBreak) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.BlockPredicates).ReadFrom(r) n += temp if err != nil { return n, err @@ -614,11 +638,18 @@ func (c *BundleContents) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BundleContents) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CanBreak) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Items).WriteTo(w) + temp, err = packet.Array(&c.BlockPredicates).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *CanPlaceOn) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.BlockPredicates).ReadFrom(r) n += temp if err != nil { return n, err @@ -626,57 +657,16 @@ func (c BundleContents) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *CanBreak) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c CanPlaceOn) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.BlockPredicates).ReadFrom(r) + temp, err = packet.Array(&c.BlockPredicates).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c CanBreak) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.BlockPredicates).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *CanPlaceOn) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.BlockPredicates).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c CanPlaceOn) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.BlockPredicates).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *BlockPredicate) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BlockPredicate) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Blocks).ReadFrom(r) n += temp @@ -693,12 +683,12 @@ func (c *BlockPredicate) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = pk.Array(&c.DataComponents).ReadFrom(r) + temp, err = packet.Array(&c.DataComponents).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.PartialDataComponentPredicates).ReadFrom(r) + temp, err = packet.Array(&c.PartialDataComponentPredicates).ReadFrom(r) n += temp if err != nil { return n, err @@ -706,9 +696,7 @@ func (c *BlockPredicate) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BlockPredicate) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockPredicate) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Blocks).WriteTo(w) n += temp @@ -725,29 +713,26 @@ func (c BlockPredicate) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = pk.Array(&c.DataComponents).WriteTo(w) + temp, err = packet.Array(&c.DataComponents).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.PartialDataComponentPredicates).WriteTo(w) + temp, err = packet.Array(&c.PartialDataComponentPredicates).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *Property) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Property) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.Name).ReadFrom(r) + temp, err = (*packet.String)(&c.Name).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.IsExactMatch).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.IsExactMatch).ReadFrom(r) n += temp if err != nil { return n, err @@ -770,16 +755,14 @@ func (c *Property) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Property) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Property) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.Name).WriteTo(w) + temp, err = (*packet.String)(&c.Name).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.IsExactMatch).WriteTo(w) + temp, err = (*packet.Boolean)(&c.IsExactMatch).WriteTo(w) n += temp if err != nil { return n, err @@ -801,17 +784,14 @@ func (c Property) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *ExactDataComponentMatcher) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ExactDataComponentMatcher) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Type).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.NBT(&c.Value).ReadFrom(r) + temp, err = packet.NBT(&c.Value).ReadFrom(r) n += temp if err != nil { return n, err @@ -819,16 +799,28 @@ func (c *ExactDataComponentMatcher) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ExactDataComponentMatcher) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ExactDataComponentMatcher) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Type).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.NBT(&c.Value).WriteTo(w) + temp, err = packet.NBT(&c.Value).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PartialDataComponentMatcher) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.NBT(&c.Predicate).ReadFrom(r) n += temp if err != nil { return n, err @@ -836,43 +828,21 @@ func (c ExactDataComponentMatcher) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *PartialDataComponentMatcher) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c PartialDataComponentMatcher) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Type).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.NBT(&c.Predicate).ReadFrom(r) + temp, err = packet.NBT(&c.Predicate).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c PartialDataComponentMatcher) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Type).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = pk.NBT(&c.Predicate).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *CatCollar) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CatCollar) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Color).ReadFrom(r) n += temp @@ -882,9 +852,7 @@ func (c *CatCollar) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CatCollar) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CatCollar) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Color).WriteTo(w) n += temp @@ -893,12 +861,9 @@ func (c CatCollar) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *CatVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CatVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -906,11 +871,18 @@ func (c *CatVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CatVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CatVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *ChargedProjectiles) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Projectiles).ReadFrom(r) n += temp if err != nil { return n, err @@ -918,11 +890,46 @@ func (c CatVariant) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *ChargedProjectiles) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c ChargedProjectiles) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Projectiles).ReadFrom(r) + temp, err = packet.Array(&c.Projectiles).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Consumable) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.ConsumeSeconds).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Animation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SoundID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.SoundID == 0 { + c.SoundEvent = new(SoundEvent) + temp, err = (*SoundEvent)(c.SoundEvent).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasConsumeParticles).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Effects).ReadFrom(r) n += temp if err != nil { return n, err @@ -930,145 +937,177 @@ func (c *ChargedProjectiles) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ChargedProjectiles) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Consumable) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Projectiles).WriteTo(w) + temp, err = (*packet.Float)(&c.ConsumeSeconds).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Animation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SoundID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.SoundID == 0 { + temp, err = (*SoundEvent)(c.SoundEvent).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasConsumeParticles).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Effects).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *Consumable) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Float)(&c.ConsumeSeconds).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Animation).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.Sound).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasConsumeParticles).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.Effects).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c Consumable) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Float)(&c.ConsumeSeconds).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Animation).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.Sound).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasConsumeParticles).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.Effects).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *SoundEvent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *SoundEvent) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.SoundEventID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (&c.FixedRange).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasFixedRange).ReadFrom(r) n += temp if err != nil { return n, err } + if c.HasFixedRange { + temp, err = (*packet.Float)(&c.FixedRange).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } return n, err } -func (c SoundEvent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c SoundEvent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.SoundEventID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (&c.FixedRange).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasFixedRange).WriteTo(w) n += temp if err != nil { return n, err } + if c.HasFixedRange { + temp, err = (*packet.Float)(&c.FixedRange).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } return n, err } - -func (c *ConsumeEffect) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ConsumeEffect) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Type).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) n += temp if err != nil { return n, err } + if c.Type == 0 { + temp, err = packet.Array(&c.ApplyEffects).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 0 { + temp, err = (*packet.Float)(&c.ApplyProbability).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 1 { + temp, err = (&c.RemoveEffects).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 3 { + temp, err = (*packet.Float)(&c.TeleportRandomlyDiameter).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 4 { + temp, err = (&c.PlaySound).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } return n, err } -func (c ConsumeEffect) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ConsumeEffect) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Type).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) n += temp if err != nil { return n, err } + if c.Type == 0 { + temp, err = packet.Array(&c.ApplyEffects).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 0 { + temp, err = (*packet.Float)(&c.ApplyProbability).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 1 { + temp, err = (&c.RemoveEffects).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 3 { + temp, err = (*packet.Float)(&c.TeleportRandomlyDiameter).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 4 { + temp, err = (&c.PlaySound).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } return n, err } - -func (c *Container) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Container) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Items).ReadFrom(r) + temp, err = packet.Array(&c.Items).ReadFrom(r) n += temp if err != nil { return n, err @@ -1076,23 +1115,18 @@ func (c *Container) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Container) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Container) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Items).WriteTo(w) + temp, err = packet.Array(&c.Items).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *ContainerLoot) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ContainerLoot) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -1100,23 +1134,18 @@ func (c *ContainerLoot) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ContainerLoot) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ContainerLoot) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) + temp, err = packet.NBT(&c.Data).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *CowVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CowVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -1124,31 +1153,25 @@ func (c *CowVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CowVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CowVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *CreativeSlotLock) ReadFrom(r io.Reader) (int64, error) { +func (c *CreativeSlotLock) ReadFrom(r io.Reader) (n int64, err error) { return 0, nil } -func (c CreativeSlotLock) WriteTo(w io.Writer) (int64, error) { +func (c CreativeSlotLock) WriteTo(w io.Writer) (n int64, err error) { return 0, nil } - -func (c *CustomData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CustomData) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -1156,11 +1179,33 @@ func (c *CustomData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CustomData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CustomData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) + temp, err = packet.NBT(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *CustomModelData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*Float32VarIntArray)(&c.Floats).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*BoolVarIntArray)(&c.Flags).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringVarIntArray)(&c.Strings).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int32VarIntVarIntArray)(&c.Colors).ReadFrom(r) n += temp if err != nil { return n, err @@ -1168,63 +1213,31 @@ func (c CustomData) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *CustomModelData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c CustomModelData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Floats).ReadFrom(r) + temp, err = (*Float32VarIntArray)(&c.Floats).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Flags).ReadFrom(r) + temp, err = (*BoolVarIntArray)(&c.Flags).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Strings).ReadFrom(r) + temp, err = (*StringVarIntArray)(&c.Strings).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Colors).ReadFrom(r) + temp, err = (*Int32VarIntVarIntArray)(&c.Colors).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c CustomModelData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Floats).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.Flags).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.Strings).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.Colors).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *CustomName) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CustomName) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Name).ReadFrom(r) n += temp @@ -1234,9 +1247,7 @@ func (c *CustomName) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CustomName) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CustomName) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Name).WriteTo(w) n += temp @@ -1245,12 +1256,9 @@ func (c CustomName) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *Damage) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Damage) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Damage).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Damage).ReadFrom(r) n += temp if err != nil { return n, err @@ -1258,21 +1266,16 @@ func (c *Damage) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Damage) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Damage) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Damage).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Damage).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *DamageResistant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *DamageResistant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Types).ReadFrom(r) n += temp @@ -1282,9 +1285,7 @@ func (c *DamageResistant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DamageResistant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DamageResistant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Types).WriteTo(w) n += temp @@ -1293,12 +1294,9 @@ func (c DamageResistant) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *DeathProtection) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *DeathProtection) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Effects).ReadFrom(r) + temp, err = packet.Array(&c.Effects).ReadFrom(r) n += temp if err != nil { return n, err @@ -1306,11 +1304,18 @@ func (c *DeathProtection) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DeathProtection) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DeathProtection) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Effects).WriteTo(w) + temp, err = packet.Array(&c.Effects).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *DebugStickState) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -1318,11 +1323,18 @@ func (c DeathProtection) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *DebugStickState) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c DebugStickState) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = packet.NBT(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *DyedColor) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Color).ReadFrom(r) n += temp if err != nil { return n, err @@ -1330,11 +1342,18 @@ func (c *DebugStickState) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DebugStickState) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DyedColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) + temp, err = (*packet.Int)(&c.Color).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Enchantable) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Value).ReadFrom(r) n += temp if err != nil { return n, err @@ -1342,11 +1361,18 @@ func (c DebugStickState) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *DyedColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Enchantable) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.Color).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Value).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *EnchantmentGlintOverride) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.HasGlint).ReadFrom(r) n += temp if err != nil { return n, err @@ -1354,11 +1380,18 @@ func (c *DyedColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DyedColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c EnchantmentGlintOverride) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.Color).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasGlint).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Enchantments) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Enchantments).ReadFrom(r) n += temp if err != nil { return n, err @@ -1366,11 +1399,23 @@ func (c DyedColor) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Enchantable) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Enchantments) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Value).ReadFrom(r) + temp, err = packet.Array(&c.Enchantments).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Enchantment) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).ReadFrom(r) n += temp if err != nil { return n, err @@ -1378,11 +1423,23 @@ func (c *Enchantable) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Enchantable) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Enchantment) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Value).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *EntityData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -1390,11 +1447,82 @@ func (c Enchantable) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *EnchantmentGlintOverride) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c EntityData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HasGlint).ReadFrom(r) + temp, err = packet.NBT(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Equippable) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Slot).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.EquipSoundID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.EquipSoundID == 0 { + c.EquipSoundEvent = new(SoundEvent) + temp, err = (*SoundEvent)(c.EquipSoundEvent).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasModel).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasModel { + temp, err = (*packet.Identifier)(&c.Model).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasCameraOverlay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasCameraOverlay { + temp, err = (*packet.Identifier)(&c.CameraOverlay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasAllowedEntities).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasAllowedEntities { + temp, err = (&c.AllowedEntitiesID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.Dispensable).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Swappable).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.DamageOnHurt).ReadFrom(r) n += temp if err != nil { return n, err @@ -1402,193 +1530,79 @@ func (c *EnchantmentGlintOverride) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c EnchantmentGlintOverride) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Equippable) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HasGlint).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Slot).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.EquipSoundID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.EquipSoundID == 0 { + temp, err = (*SoundEvent)(c.EquipSoundEvent).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasModel).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasModel { + temp, err = (*packet.Identifier)(&c.Model).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasCameraOverlay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasCameraOverlay { + temp, err = (*packet.Identifier)(&c.CameraOverlay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasAllowedEntities).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasAllowedEntities { + temp, err = (&c.AllowedEntitiesID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.Dispensable).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Swappable).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.DamageOnHurt).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *Enchantments) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Enchantments).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c Enchantments) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Enchantments).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *EntityData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c EntityData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Equippable) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Slot).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.EquipSound).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasModel).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.Model).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasCameraOverlay).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.CameraOverlay).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasAllowedEntities).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.AllowedEntities).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Dispensable).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Swappable).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.DamageOnHurt).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c Equippable) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Slot).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.EquipSound).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasModel).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.Model).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasCameraOverlay).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.CameraOverlay).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasAllowedEntities).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.AllowedEntities).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Dispensable).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Swappable).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.DamageOnHurt).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *FireworkExplosion) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *FireworkExplosion) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Explosion).ReadFrom(r) n += temp @@ -1598,9 +1612,7 @@ func (c *FireworkExplosion) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c FireworkExplosion) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c FireworkExplosion) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Explosion).WriteTo(w) n += temp @@ -1609,32 +1621,29 @@ func (c FireworkExplosion) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *FireworkExplosionData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *FireworkExplosionData) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Shape).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Shape).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Colors).ReadFrom(r) + temp, err = (*Int32VarIntArray)(&c.Colors).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.FadeColors).ReadFrom(r) + temp, err = (*Int32VarIntArray)(&c.FadeColors).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasTrail).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasTrail).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasTwinkle).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasTwinkle).ReadFrom(r) n += temp if err != nil { return n, err @@ -1642,31 +1651,43 @@ func (c *FireworkExplosionData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c FireworkExplosionData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c FireworkExplosionData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Shape).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Shape).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Colors).WriteTo(w) + temp, err = (*Int32VarIntArray)(&c.Colors).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.FadeColors).WriteTo(w) + temp, err = (*Int32VarIntArray)(&c.FadeColors).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasTrail).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasTrail).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasTwinkle).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasTwinkle).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Fireworks) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.FlightDuration).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Explosions).ReadFrom(r) n += temp if err != nil { return n, err @@ -1674,16 +1695,33 @@ func (c FireworkExplosionData) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Fireworks) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Fireworks) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.FlightDuration).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.FlightDuration).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Explosions).ReadFrom(r) + temp, err = packet.Array(&c.Explosions).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Food) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Nutrition).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.SaturationModifier).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.CanAlwaysEat).ReadFrom(r) n += temp if err != nil { return n, err @@ -1691,16 +1729,28 @@ func (c *Fireworks) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Fireworks) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Food) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.FlightDuration).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Nutrition).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Explosions).WriteTo(w) + temp, err = (*packet.Float)(&c.SaturationModifier).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.CanAlwaysEat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *FoxVariant) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -1708,21 +1758,18 @@ func (c Fireworks) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Food) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c FoxVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Nutrition).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.SaturationModifier).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.CanAlwaysEat).ReadFrom(r) + return n, err +} +func (c *FrogVariant) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -1730,89 +1777,25 @@ func (c *Food) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Food) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c FrogVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Nutrition).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.SaturationModifier).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.CanAlwaysEat).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *FoxVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c FoxVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *FrogVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c FrogVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Glider) ReadFrom(r io.Reader) (int64, error) { +func (c *Glider) ReadFrom(r io.Reader) (n int64, err error) { return 0, nil } -func (c Glider) WriteTo(w io.Writer) (int64, error) { +func (c Glider) WriteTo(w io.Writer) (n int64, err error) { return 0, nil } - -func (c *HorseVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *HorseVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -1820,21 +1803,16 @@ func (c *HorseVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c HorseVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c HorseVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *Instrument) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Instrument) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Instrument).ReadFrom(r) n += temp @@ -1844,9 +1822,7 @@ func (c *Instrument) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Instrument) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Instrument) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Instrument).WriteTo(w) n += temp @@ -1855,22 +1831,19 @@ func (c Instrument) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *InstrumentData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *InstrumentData) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.SoundEvent).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.SoundRange).ReadFrom(r) + temp, err = (*packet.Float)(&c.SoundRange).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Range).ReadFrom(r) + temp, err = (*packet.Float)(&c.Range).ReadFrom(r) n += temp if err != nil { return n, err @@ -1883,21 +1856,19 @@ func (c *InstrumentData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c InstrumentData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c InstrumentData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.SoundEvent).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.SoundRange).WriteTo(w) + temp, err = (*packet.Float)(&c.SoundRange).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Range).WriteTo(w) + temp, err = (*packet.Float)(&c.Range).WriteTo(w) n += temp if err != nil { return n, err @@ -1909,12 +1880,9 @@ func (c InstrumentData) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *IntangibleProjectile) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *IntangibleProjectile) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Empty).ReadFrom(r) + temp, err = packet.NBT(&c.Empty).ReadFrom(r) n += temp if err != nil { return n, err @@ -1922,21 +1890,16 @@ func (c *IntangibleProjectile) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c IntangibleProjectile) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c IntangibleProjectile) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Empty).WriteTo(w) + temp, err = packet.NBT(&c.Empty).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *ItemModel) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ItemModel) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Model).ReadFrom(r) n += temp @@ -1946,9 +1909,7 @@ func (c *ItemModel) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ItemModel) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ItemModel) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Model).WriteTo(w) n += temp @@ -1957,10 +1918,7 @@ func (c ItemModel) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *ItemName) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ItemName) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Name).ReadFrom(r) n += temp @@ -1970,9 +1928,7 @@ func (c *ItemName) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ItemName) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ItemName) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Name).WriteTo(w) n += temp @@ -1981,10 +1937,7 @@ func (c ItemName) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *JukeboxSongData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *JukeboxSongData) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.SoundEvent).ReadFrom(r) n += temp @@ -1996,12 +1949,12 @@ func (c *JukeboxSongData) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Duration).ReadFrom(r) + temp, err = (*packet.Float)(&c.Duration).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Output).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Output).ReadFrom(r) n += temp if err != nil { return n, err @@ -2009,9 +1962,7 @@ func (c *JukeboxSongData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c JukeboxSongData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c JukeboxSongData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.SoundEvent).WriteTo(w) n += temp @@ -2023,12 +1974,21 @@ func (c JukeboxSongData) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Duration).WriteTo(w) + temp, err = (*packet.Float)(&c.Duration).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Output).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Output).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *LlamaVariant) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -2036,11 +1996,18 @@ func (c JukeboxSongData) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *LlamaVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c LlamaVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Lock) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.Key).ReadFrom(r) n += temp if err != nil { return n, err @@ -2048,47 +2015,18 @@ func (c *LlamaVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c LlamaVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Lock) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = packet.NBT(&c.Key).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *Lock) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *LodestoneTracker) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Key).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c Lock) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.NBT(&c.Key).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *LodestoneTracker) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Boolean)(&c.HasGlobalPosition).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasGlobalPosition).ReadFrom(r) n += temp if err != nil { return n, err @@ -2103,7 +2041,7 @@ func (c *LodestoneTracker) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.Tracked).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.Tracked).ReadFrom(r) n += temp if err != nil { return n, err @@ -2111,11 +2049,9 @@ func (c *LodestoneTracker) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c LodestoneTracker) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c LodestoneTracker) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HasGlobalPosition).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasGlobalPosition).WriteTo(w) n += temp if err != nil { return n, err @@ -2130,19 +2066,16 @@ func (c LodestoneTracker) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.Tracked).WriteTo(w) + temp, err = (*packet.Boolean)(&c.Tracked).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *Lore) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Lore) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Lines).ReadFrom(r) + temp, err = packet.Array(&c.Lines).ReadFrom(r) n += temp if err != nil { return n, err @@ -2150,23 +2083,18 @@ func (c *Lore) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Lore) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Lore) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Lines).WriteTo(w) + temp, err = packet.Array(&c.Lines).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *MapColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *MapColor) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.Color).ReadFrom(r) + temp, err = (*packet.Int)(&c.Color).ReadFrom(r) n += temp if err != nil { return n, err @@ -2174,23 +2102,18 @@ func (c *MapColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c MapColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c MapColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.Color).WriteTo(w) + temp, err = (*packet.Int)(&c.Color).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *MapDecorations) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *MapDecorations) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -2198,23 +2121,18 @@ func (c *MapDecorations) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c MapDecorations) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c MapDecorations) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) + temp, err = packet.NBT(&c.Data).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *MapID) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *MapID) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.MapID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.MapID).ReadFrom(r) n += temp if err != nil { return n, err @@ -2222,23 +2140,18 @@ func (c *MapID) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c MapID) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c MapID) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.MapID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.MapID).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *MapPostProcessing) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *MapPostProcessing) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.PostProcessingType).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.PostProcessingType).ReadFrom(r) n += temp if err != nil { return n, err @@ -2246,23 +2159,18 @@ func (c *MapPostProcessing) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c MapPostProcessing) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c MapPostProcessing) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.PostProcessingType).WriteTo(w) + temp, err = (*packet.VarInt)(&c.PostProcessingType).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *MaxDamage) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *MaxDamage) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Damage).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Damage).ReadFrom(r) n += temp if err != nil { return n, err @@ -2270,23 +2178,18 @@ func (c *MaxDamage) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c MaxDamage) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c MaxDamage) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Damage).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Damage).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *MaxStackSize) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *MaxStackSize) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Size).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Size).ReadFrom(r) n += temp if err != nil { return n, err @@ -2294,23 +2197,18 @@ func (c *MaxStackSize) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c MaxStackSize) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c MaxStackSize) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Size).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Size).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *MooshroomVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *MooshroomVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -2318,21 +2216,16 @@ func (c *MooshroomVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c MooshroomVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c MooshroomVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *NoteBlockSound) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *NoteBlockSound) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Sound).ReadFrom(r) n += temp @@ -2342,9 +2235,7 @@ func (c *NoteBlockSound) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c NoteBlockSound) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c NoteBlockSound) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Sound).WriteTo(w) n += temp @@ -2353,12 +2244,9 @@ func (c NoteBlockSound) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *OminousBottleAmplifier) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *OminousBottleAmplifier) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Amplifier).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Amplifier).ReadFrom(r) n += temp if err != nil { return n, err @@ -2366,28 +2254,23 @@ func (c *OminousBottleAmplifier) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c OminousBottleAmplifier) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c OminousBottleAmplifier) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Amplifier).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Amplifier).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *PaintingVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *PaintingVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.Width).ReadFrom(r) + temp, err = (*packet.Int)(&c.Width).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.Height).ReadFrom(r) + temp, err = (*packet.Int)(&c.Height).ReadFrom(r) n += temp if err != nil { return n, err @@ -2410,16 +2293,14 @@ func (c *PaintingVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c PaintingVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c PaintingVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.Width).WriteTo(w) + temp, err = (*packet.Int)(&c.Width).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.Height).WriteTo(w) + temp, err = (*packet.Int)(&c.Height).WriteTo(w) n += temp if err != nil { return n, err @@ -2441,12 +2322,9 @@ func (c PaintingVariant) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *ParrotVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ParrotVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -2454,11 +2332,18 @@ func (c *ParrotVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ParrotVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ParrotVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PigVariant) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -2466,11 +2351,18 @@ func (c ParrotVariant) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *PigVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c PigVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PotDecorations) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*Int32PrefixedArrayVarIntArray)(&c.Decorations).ReadFrom(r) n += temp if err != nil { return n, err @@ -2478,11 +2370,43 @@ func (c *PigVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c PigVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c PotDecorations) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*Int32PrefixedArrayVarIntArray)(&c.Decorations).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PotionContents) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.HasPotionID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PotionID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasCustomColor).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.CustomColor).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.CustomEffects).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.CustomName).ReadFrom(r) n += temp if err != nil { return n, err @@ -2490,11 +2414,48 @@ func (c PigVariant) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *PotDecorations) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c PotionContents) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Decorations).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasPotionID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PotionID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasCustomColor).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.CustomColor).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.CustomEffects).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.CustomName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PotionEffect) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.TypeID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Details).ReadFrom(r) n += temp if err != nil { return n, err @@ -2502,11 +2463,107 @@ func (c *PotDecorations) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c PotDecorations) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c PotionEffect) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Decorations).WriteTo(w) + temp, err = (*packet.VarInt)(&c.TypeID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Details).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PotionEffectDetails) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Amplifier).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Duration).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Ambient).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowParticles).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowIcon).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasHiddenEffect).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasHiddenEffect { + c.HiddenEffect = new(PotionEffect) + temp, err = (*PotionEffect)(c.HiddenEffect).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c PotionEffectDetails) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Amplifier).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Duration).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Ambient).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowParticles).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowIcon).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasHiddenEffect).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasHiddenEffect { + temp, err = (*PotionEffect)(c.HiddenEffect).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *PotionDurationScale) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.EffectMultiplier).ReadFrom(r) n += temp if err != nil { return n, err @@ -2514,277 +2571,18 @@ func (c PotDecorations) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *PotionContents) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c PotionDurationScale) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HasPotionID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.PotionID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasCustomColor).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Int)(&c.CustomColor).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.CustomEffects).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.String)(&c.CustomName).ReadFrom(r) + temp, err = (*packet.Float)(&c.EffectMultiplier).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c PotionContents) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c *Profile) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HasPotionID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.PotionID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasCustomColor).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Int)(&c.CustomColor).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.CustomEffects).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.String)(&c.CustomName).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *PotionEffect) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.TypeID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Amplifier).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Duration).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Ambient).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowParticles).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowIcon).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasHiddenEffect).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.HiddenEffect).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c PotionEffect) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.TypeID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Amplifier).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Duration).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Ambient).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowParticles).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowIcon).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasHiddenEffect).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.HiddenEffect).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *PotionEffectExtraDetails) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Amplifier).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Duration).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Ambient).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowParticles).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowIcon).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasHiddenEffect).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c PotionEffectExtraDetails) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Amplifier).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Duration).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Ambient).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowParticles).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowIcon).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasHiddenEffect).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *PotionDurationScale) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Float)(&c.EffectMultiplier).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c PotionDurationScale) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Float)(&c.EffectMultiplier).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Profile) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Boolean)(&c.HasName).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasName).ReadFrom(r) n += temp if err != nil { return n, err @@ -2794,7 +2592,7 @@ func (c *Profile) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasUniqueID).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasUniqueID).ReadFrom(r) n += temp if err != nil { return n, err @@ -2804,7 +2602,7 @@ func (c *Profile) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = pk.Array(&c.Properties).ReadFrom(r) + temp, err = packet.Array(&c.Properties).ReadFrom(r) n += temp if err != nil { return n, err @@ -2812,11 +2610,9 @@ func (c *Profile) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Profile) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Profile) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HasName).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasName).WriteTo(w) n += temp if err != nil { return n, err @@ -2826,7 +2622,7 @@ func (c Profile) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasUniqueID).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasUniqueID).WriteTo(w) n += temp if err != nil { return n, err @@ -2836,29 +2632,26 @@ func (c Profile) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = pk.Array(&c.Properties).WriteTo(w) + temp, err = packet.Array(&c.Properties).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *ProfileProperty) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ProfileProperty) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.Name).ReadFrom(r) + temp, err = (*packet.String)(&c.Name).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.String)(&c.Value).ReadFrom(r) + temp, err = (*packet.String)(&c.Value).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasSignature).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasSignature).ReadFrom(r) n += temp if err != nil { return n, err @@ -2871,21 +2664,19 @@ func (c *ProfileProperty) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ProfileProperty) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ProfileProperty) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.Name).WriteTo(w) + temp, err = (*packet.String)(&c.Name).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.String)(&c.Value).WriteTo(w) + temp, err = (*packet.String)(&c.Value).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasSignature).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasSignature).WriteTo(w) n += temp if err != nil { return n, err @@ -2897,10 +2688,7 @@ func (c ProfileProperty) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *ProvidesBannerPatterns) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ProvidesBannerPatterns) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Key).ReadFrom(r) n += temp @@ -2910,9 +2698,7 @@ func (c *ProvidesBannerPatterns) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ProvidesBannerPatterns) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ProvidesBannerPatterns) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Key).WriteTo(w) n += temp @@ -2921,12 +2707,9 @@ func (c ProvidesBannerPatterns) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *RabbitVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *RabbitVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -2934,11 +2717,18 @@ func (c *RabbitVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c RabbitVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c RabbitVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Rarity) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Rarity).ReadFrom(r) n += temp if err != nil { return n, err @@ -2946,11 +2736,18 @@ func (c RabbitVariant) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Rarity) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Rarity) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Rarity).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Rarity).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Recipes) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -2958,11 +2755,18 @@ func (c *Rarity) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Rarity) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Recipes) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Rarity).WriteTo(w) + temp, err = packet.NBT(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RepairCost) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Cost).ReadFrom(r) n += temp if err != nil { return n, err @@ -2970,57 +2774,16 @@ func (c Rarity) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Recipes) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c RepairCost) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Cost).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c Recipes) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.NBT(&c.Data).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *RepairCost) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Cost).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c RepairCost) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Cost).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Repairable) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Repairable) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Items).ReadFrom(r) n += temp @@ -3030,9 +2793,7 @@ func (c *Repairable) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Repairable) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Repairable) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Items).WriteTo(w) n += temp @@ -3041,12 +2802,9 @@ func (c Repairable) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *SalmonSize) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *SalmonSize) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.SizeType).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.SizeType).ReadFrom(r) n += temp if err != nil { return n, err @@ -3054,21 +2812,16 @@ func (c *SalmonSize) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c SalmonSize) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c SalmonSize) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.SizeType).WriteTo(w) + temp, err = (*packet.VarInt)(&c.SizeType).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *SheepColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *SheepColor) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Color).ReadFrom(r) n += temp @@ -3078,9 +2831,7 @@ func (c *SheepColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c SheepColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c SheepColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Color).WriteTo(w) n += temp @@ -3089,10 +2840,7 @@ func (c SheepColor) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *ShulkerColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ShulkerColor) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Color).ReadFrom(r) n += temp @@ -3102,9 +2850,7 @@ func (c *ShulkerColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ShulkerColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ShulkerColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Color).WriteTo(w) n += temp @@ -3113,12 +2859,9 @@ func (c ShulkerColor) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *StoredEnchantments) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *StoredEnchantments) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Enchantments).ReadFrom(r) + temp, err = packet.Array(&c.Enchantments).ReadFrom(r) n += temp if err != nil { return n, err @@ -3126,11 +2869,18 @@ func (c *StoredEnchantments) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c StoredEnchantments) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c StoredEnchantments) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Enchantments).WriteTo(w) + temp, err = packet.Array(&c.Enchantments).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SuspiciousStewEffects) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Effects).ReadFrom(r) n += temp if err != nil { return n, err @@ -3138,11 +2888,23 @@ func (c StoredEnchantments) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *SuspiciousStewEffects) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c SuspiciousStewEffects) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Effects).ReadFrom(r) + temp, err = packet.Array(&c.Effects).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SuspiciousStewEffect) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.TypeID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Duration).ReadFrom(r) n += temp if err != nil { return n, err @@ -3150,11 +2912,33 @@ func (c *SuspiciousStewEffects) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c SuspiciousStewEffects) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c SuspiciousStewEffect) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Effects).WriteTo(w) + temp, err = (*packet.VarInt)(&c.TypeID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Duration).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Tool) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Rules).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.DefaultMiningSpeed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.DamagePerBlock).ReadFrom(r) n += temp if err != nil { return n, err @@ -3162,94 +2946,33 @@ func (c SuspiciousStewEffects) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *SuspiciousStewEffect) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Tool) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.TypeID).ReadFrom(r) + temp, err = packet.Array(&c.Rules).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Duration).ReadFrom(r) + temp, err = (*packet.Float)(&c.DefaultMiningSpeed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.DamagePerBlock).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c SuspiciousStewEffect) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.TypeID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Duration).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Tool) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Rules).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.DefaultMiningSpeed).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.DamagePerBlock).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c Tool) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Rules).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.DefaultMiningSpeed).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.DamagePerBlock).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *ToolRule) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ToolRule) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Blocks).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasSpeed).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasSpeed).ReadFrom(r) n += temp if err != nil { return n, err @@ -3259,7 +2982,7 @@ func (c *ToolRule) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasCorrectDropForBlocks).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasCorrectDropForBlocks).ReadFrom(r) n += temp if err != nil { return n, err @@ -3272,16 +2995,14 @@ func (c *ToolRule) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ToolRule) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ToolRule) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Blocks).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasSpeed).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasSpeed).WriteTo(w) n += temp if err != nil { return n, err @@ -3291,7 +3012,7 @@ func (c ToolRule) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasCorrectDropForBlocks).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasCorrectDropForBlocks).WriteTo(w) n += temp if err != nil { return n, err @@ -3303,17 +3024,14 @@ func (c ToolRule) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *TooltipDisplay) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *TooltipDisplay) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HideTooltip).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HideTooltip).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.HiddenComponents).ReadFrom(r) + temp, err = (*Int32VarIntVarIntArray)(&c.HiddenComponents).ReadFrom(r) n += temp if err != nil { return n, err @@ -3321,26 +3039,21 @@ func (c *TooltipDisplay) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c TooltipDisplay) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TooltipDisplay) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.HideTooltip).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HideTooltip).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.HiddenComponents).WriteTo(w) + temp, err = (*Int32VarIntVarIntArray)(&c.HiddenComponents).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *TooltipStyle) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *TooltipStyle) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Style).ReadFrom(r) n += temp @@ -3350,9 +3063,7 @@ func (c *TooltipStyle) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c TooltipStyle) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TooltipStyle) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Style).WriteTo(w) n += temp @@ -3361,10 +3072,7 @@ func (c TooltipStyle) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *Trim) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Trim) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.TrimMaterial).ReadFrom(r) n += temp @@ -3379,9 +3087,7 @@ func (c *Trim) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Trim) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Trim) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.TrimMaterial).WriteTo(w) n += temp @@ -3395,17 +3101,14 @@ func (c Trim) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *TrimMaterial) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *TrimMaterial) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.Suffix).ReadFrom(r) + temp, err = (*packet.String)(&c.Suffix).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Overrides).ReadFrom(r) + temp, err = packet.Array(&c.Overrides).ReadFrom(r) n += temp if err != nil { return n, err @@ -3418,16 +3121,14 @@ func (c *TrimMaterial) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c TrimMaterial) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TrimMaterial) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.Suffix).WriteTo(w) + temp, err = (*packet.String)(&c.Suffix).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Overrides).WriteTo(w) + temp, err = packet.Array(&c.Overrides).WriteTo(w) n += temp if err != nil { return n, err @@ -3439,17 +3140,43 @@ func (c TrimMaterial) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *TrimPattern) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *TrimOverride) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.AssetName).ReadFrom(r) + temp, err = (&c.MaterialType).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.TemplateItem).ReadFrom(r) + temp, err = (*packet.String)(&c.OverrideAssetName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c TrimOverride) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.MaterialType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.OverrideAssetName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *TrimPattern) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.AssetName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TemplateItem).ReadFrom(r) n += temp if err != nil { return n, err @@ -3459,7 +3186,7 @@ func (c *TrimPattern) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.Decal).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.Decal).ReadFrom(r) n += temp if err != nil { return n, err @@ -3467,16 +3194,14 @@ func (c *TrimPattern) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c TrimPattern) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TrimPattern) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.AssetName).WriteTo(w) + temp, err = (*packet.String)(&c.AssetName).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.TemplateItem).WriteTo(w) + temp, err = (*packet.VarInt)(&c.TemplateItem).WriteTo(w) n += temp if err != nil { return n, err @@ -3486,17 +3211,14 @@ func (c TrimPattern) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.Decal).WriteTo(w) + temp, err = (*packet.Boolean)(&c.Decal).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *TropicalFishBaseColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *TropicalFishBaseColor) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Color).ReadFrom(r) n += temp @@ -3506,9 +3228,7 @@ func (c *TropicalFishBaseColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c TropicalFishBaseColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TropicalFishBaseColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Color).WriteTo(w) n += temp @@ -3517,12 +3237,9 @@ func (c TropicalFishBaseColor) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *TropicalFishPattern) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *TropicalFishPattern) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Pattern).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Pattern).ReadFrom(r) n += temp if err != nil { return n, err @@ -3530,21 +3247,16 @@ func (c *TropicalFishPattern) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c TropicalFishPattern) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TropicalFishPattern) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Pattern).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Pattern).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *TropicalFishPatternColor) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *TropicalFishPatternColor) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Color).ReadFrom(r) n += temp @@ -3554,9 +3266,7 @@ func (c *TropicalFishPatternColor) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c TropicalFishPatternColor) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TropicalFishPatternColor) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Color).WriteTo(w) n += temp @@ -3565,20 +3275,16 @@ func (c TropicalFishPatternColor) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *Unbreakable) ReadFrom(r io.Reader) (int64, error) { +func (c *Unbreakable) ReadFrom(r io.Reader) (n int64, err error) { return 0, nil } -func (c Unbreakable) WriteTo(w io.Writer) (int64, error) { +func (c Unbreakable) WriteTo(w io.Writer) (n int64, err error) { return 0, nil } - -func (c *UseCooldown) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *UseCooldown) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Float)(&c.Seconds).ReadFrom(r) + temp, err = (*packet.Float)(&c.Seconds).ReadFrom(r) n += temp if err != nil { return n, err @@ -3591,11 +3297,9 @@ func (c *UseCooldown) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c UseCooldown) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c UseCooldown) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Float)(&c.Seconds).WriteTo(w) + temp, err = (*packet.Float)(&c.Seconds).WriteTo(w) n += temp if err != nil { return n, err @@ -3607,10 +3311,7 @@ func (c UseCooldown) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *UseRemainder) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *UseRemainder) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Remainder).ReadFrom(r) n += temp @@ -3620,9 +3321,7 @@ func (c *UseRemainder) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c UseRemainder) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c UseRemainder) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Remainder).WriteTo(w) n += temp @@ -3631,12 +3330,9 @@ func (c UseRemainder) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *VillagerVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *VillagerVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -3644,11 +3340,23 @@ func (c *VillagerVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c VillagerVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c VillagerVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Weapon) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.DamagePerAttack).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.DisableBlockingFor).ReadFrom(r) n += temp if err != nil { return n, err @@ -3656,43 +3364,21 @@ func (c VillagerVariant) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Weapon) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Weapon) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.DamagePerAttack).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.DamagePerAttack).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.DisableBlockingFor).ReadFrom(r) + temp, err = (*packet.Float)(&c.DisableBlockingFor).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c Weapon) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.DamagePerAttack).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.DisableBlockingFor).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *WolfCollar) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *WolfCollar) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Color).ReadFrom(r) n += temp @@ -3702,9 +3388,7 @@ func (c *WolfCollar) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c WolfCollar) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c WolfCollar) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Color).WriteTo(w) n += temp @@ -3713,12 +3397,9 @@ func (c WolfCollar) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *WolfSoundVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *WolfSoundVariant) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -3726,11 +3407,18 @@ func (c *WolfSoundVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c WolfSoundVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c WolfSoundVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *WolfVariant) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Variant).ReadFrom(r) n += temp if err != nil { return n, err @@ -3738,11 +3426,18 @@ func (c WolfSoundVariant) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *WolfVariant) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c WolfVariant) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Variant).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *WritableBookContent) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Pages).ReadFrom(r) n += temp if err != nil { return n, err @@ -3750,52 +3445,23 @@ func (c *WolfVariant) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c WolfVariant) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c WritableBookContent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Variant).WriteTo(w) + temp, err = packet.Array(&c.Pages).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *WritableBookContent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *WritableBookPage) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Pages).ReadFrom(r) + temp, err = (*packet.String)(&c.RawContent).ReadFrom(r) n += temp if err != nil { return n, err } - return n, err -} - -func (c WritableBookContent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Pages).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *WritableBookPage) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.String)(&c.RawContent).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.HasFilteredContent).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasFilteredContent).ReadFrom(r) n += temp if err != nil { return n, err @@ -3808,16 +3474,14 @@ func (c *WritableBookPage) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c WritableBookPage) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c WritableBookPage) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.RawContent).WriteTo(w) + temp, err = (*packet.String)(&c.RawContent).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasFilteredContent).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasFilteredContent).WriteTo(w) n += temp if err != nil { return n, err @@ -3829,17 +3493,14 @@ func (c WritableBookPage) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *WrittenBookContent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *WrittenBookContent) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.RawTitle).ReadFrom(r) + temp, err = (*packet.String)(&c.RawTitle).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasFilteredTitle).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasFilteredTitle).ReadFrom(r) n += temp if err != nil { return n, err @@ -3849,17 +3510,17 @@ func (c *WrittenBookContent) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.String)(&c.Author).ReadFrom(r) + temp, err = (*packet.String)(&c.Author).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Generation).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Generation).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Pages).ReadFrom(r) + temp, err = packet.Array(&c.Pages).ReadFrom(r) n += temp if err != nil { return n, err @@ -3867,16 +3528,14 @@ func (c *WrittenBookContent) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c WrittenBookContent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c WrittenBookContent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.RawTitle).WriteTo(w) + temp, err = (*packet.String)(&c.RawTitle).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasFilteredTitle).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasFilteredTitle).WriteTo(w) n += temp if err != nil { return n, err @@ -3886,34 +3545,31 @@ func (c WrittenBookContent) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.String)(&c.Author).WriteTo(w) + temp, err = (*packet.String)(&c.Author).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Generation).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Generation).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Pages).WriteTo(w) + temp, err = packet.Array(&c.Pages).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *WrittenBookPage) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *WrittenBookPage) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.RawContent).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasFilteredContent).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.HasFilteredContent).ReadFrom(r) n += temp if err != nil { return n, err @@ -3926,16 +3582,14 @@ func (c *WrittenBookPage) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c WrittenBookPage) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c WrittenBookPage) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.RawContent).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Boolean)(&c.HasFilteredContent).WriteTo(w) + temp, err = (*packet.Boolean)(&c.HasFilteredContent).WriteTo(w) n += temp if err != nil { return n, err @@ -3947,3 +3601,267 @@ func (c WrittenBookPage) WriteTo(w io.Writer) (int64, error) { } return n, err } + +// BoolVarIntArray a utility type for encoding/decoding packet.Boolean -> bool[packet.VarInt] slice. +type BoolVarIntArray []bool + +func (a BoolVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { + return n, err + } else { + n += nn + } + for i := 0; i < size; i++ { + nn, err := packet.Boolean(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } + } + return n, nil +} + +func (a *BoolVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.Boolean + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, bool(elem)) + } + + return n, err +} + +// Int32VarIntArray a utility type for encoding/decoding packet.Int -> int32[packet.VarInt] slice. +type Int32VarIntArray []int32 + +func (a Int32VarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { + return n, err + } else { + n += nn + } + for i := 0; i < size; i++ { + nn, err := packet.Int(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } + } + return n, nil +} + +func (a *Int32VarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.Int + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int32(elem)) + } + + return n, err +} + +// Int32PrefixedArrayVarIntArray a utility type for encoding/decoding packet.Int -> int32[packet.VarInt] slice. +type Int32PrefixedArrayVarIntArray []int32 + +func (a Int32PrefixedArrayVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { + return n, err + } else { + n += nn + } + for i := 0; i < size; i++ { + nn, err := packet.Int(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } + } + return n, nil +} + +func (a *Int32PrefixedArrayVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.Int + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int32(elem)) + } + + return n, err +} + +// StringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice. +type StringVarIntArray []string + +func (a StringVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { + return n, err + } else { + n += nn + } + for i := 0; i < size; i++ { + nn, err := packet.String(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } + } + return n, nil +} + +func (a *StringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.String + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, string(elem)) + } + + return n, err +} + +// Int32VarIntVarIntArray a utility type for encoding/decoding packet.VarInt -> int32[packet.VarInt] slice. +type Int32VarIntVarIntArray []int32 + +func (a Int32VarIntVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { + return n, err + } else { + n += nn + } + for i := 0; i < size; i++ { + nn, err := packet.VarInt(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } + } + return n, nil +} + +func (a *Int32VarIntVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.VarInt + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int32(elem)) + } + + return n, err +} + +// Float32VarIntArray a utility type for encoding/decoding packet.Float -> float32[packet.VarInt] slice. +type Float32VarIntArray []float32 + +func (a Float32VarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { + return n, err + } else { + n += nn + } + for i := 0; i < size; i++ { + nn, err := packet.Float(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } + } + return n, nil +} + +func (a *Float32VarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.Float + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, float32(elem)) + } + + return n, err +} diff --git a/codec/component/components.go b/codec/component/components.go index 38d7e34..37e4317 100644 --- a/codec/component/components.go +++ b/codec/component/components.go @@ -1,102 +1,294 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" func init() { - slot.RegisterComponent(&CustomData{}) - slot.RegisterComponent(&MaxStackSize{}) - slot.RegisterComponent(&MaxDamage{}) - slot.RegisterComponent(&Damage{}) - slot.RegisterComponent(&Unbreakable{}) - slot.RegisterComponent(&CustomName{}) - slot.RegisterComponent(&ItemName{}) - slot.RegisterComponent(&ItemModel{}) - slot.RegisterComponent(&Lore{}) - slot.RegisterComponent(&Rarity{}) - slot.RegisterComponent(&Enchantments{}) - slot.RegisterComponent(&CanPlaceOn{}) - slot.RegisterComponent(&CanBreak{}) - slot.RegisterComponent(&AttributeModifiers{}) - slot.RegisterComponent(&CustomModelData{}) - slot.RegisterComponent(&TooltipDisplay{}) - slot.RegisterComponent(&RepairCost{}) - slot.RegisterComponent(&CreativeSlotLock{}) - slot.RegisterComponent(&EnchantmentGlintOverride{}) - slot.RegisterComponent(&IntangibleProjectile{}) - slot.RegisterComponent(&Food{}) - slot.RegisterComponent(&Consumable{}) - slot.RegisterComponent(&UseRemainder{}) - slot.RegisterComponent(&UseCooldown{}) - slot.RegisterComponent(&DamageResistant{}) - slot.RegisterComponent(&Tool{}) - slot.RegisterComponent(&Weapon{}) - slot.RegisterComponent(&Enchantable{}) - slot.RegisterComponent(&Equippable{}) - slot.RegisterComponent(&Repairable{}) - slot.RegisterComponent(&Glider{}) - slot.RegisterComponent(&TooltipStyle{}) - slot.RegisterComponent(&DeathProtection{}) - slot.RegisterComponent(&BlocksAttacks{}) - slot.RegisterComponent(&StoredEnchantments{}) - slot.RegisterComponent(&DyedColor{}) - slot.RegisterComponent(&MapColor{}) - slot.RegisterComponent(&MapID{}) - slot.RegisterComponent(&MapDecorations{}) - slot.RegisterComponent(&MapPostProcessing{}) - slot.RegisterComponent(&ChargedProjectiles{}) - slot.RegisterComponent(&BundleContents{}) - slot.RegisterComponent(&PotionContents{}) - slot.RegisterComponent(&PotionDurationScale{}) - slot.RegisterComponent(&SuspiciousStewEffects{}) - slot.RegisterComponent(&WritableBookContent{}) - slot.RegisterComponent(&WrittenBookContent{}) - slot.RegisterComponent(&Trim{}) - slot.RegisterComponent(&DebugStickState{}) - slot.RegisterComponent(&EntityData{}) - slot.RegisterComponent(&BucketEntityData{}) - slot.RegisterComponent(&BlockEntityData{}) - slot.RegisterComponent(&Instrument{}) - slot.RegisterComponent(&ProvidesTrimMaterial{}) - slot.RegisterComponent(&OminousBottleAmplifier{}) - slot.RegisterComponent(&JukeboxPlayable{}) - slot.RegisterComponent(&ProvidesBannerPatterns{}) - slot.RegisterComponent(&Recipes{}) - slot.RegisterComponent(&LodestoneTracker{}) - slot.RegisterComponent(&FireworkExplosion{}) - slot.RegisterComponent(&Fireworks{}) - slot.RegisterComponent(&Profile{}) - slot.RegisterComponent(&NoteBlockSound{}) - slot.RegisterComponent(&BannerPatterns{}) - slot.RegisterComponent(&BaseColor{}) - slot.RegisterComponent(&PotDecorations{}) - slot.RegisterComponent(&Container{}) - slot.RegisterComponent(&BlockState{}) - slot.RegisterComponent(&Bees{}) - slot.RegisterComponent(&Lock{}) - slot.RegisterComponent(&ContainerLoot{}) - slot.RegisterComponent(&BreakSound{}) - slot.RegisterComponent(&VillagerVariant{}) - slot.RegisterComponent(&WolfVariant{}) - slot.RegisterComponent(&WolfSoundVariant{}) - slot.RegisterComponent(&WolfCollar{}) - slot.RegisterComponent(&FoxVariant{}) - slot.RegisterComponent(&SalmonSize{}) - slot.RegisterComponent(&ParrotVariant{}) - slot.RegisterComponent(&TropicalFishPattern{}) - slot.RegisterComponent(&TropicalFishBaseColor{}) - slot.RegisterComponent(&TropicalFishPatternColor{}) - slot.RegisterComponent(&MooshroomVariant{}) - slot.RegisterComponent(&RabbitVariant{}) - slot.RegisterComponent(&PigVariant{}) - slot.RegisterComponent(&CowVariant{}) - slot.RegisterComponent(&ChickenVariant{}) - slot.RegisterComponent(&FrogVariant{}) - slot.RegisterComponent(&HorseVariant{}) - slot.RegisterComponent(&PaintingVariant{}) - slot.RegisterComponent(&LlamaVariant{}) - slot.RegisterComponent(&AxolotlVariant{}) - slot.RegisterComponent(&CatVariant{}) - slot.RegisterComponent(&CatCollar{}) - slot.RegisterComponent(&SheepColor{}) - slot.RegisterComponent(&ShulkerColor{}) + slot.RegisterComponent(func() slot.Component { + return &CustomData{} + }) + slot.RegisterComponent(func() slot.Component { + return &MaxStackSize{} + }) + slot.RegisterComponent(func() slot.Component { + return &MaxDamage{} + }) + slot.RegisterComponent(func() slot.Component { + return &Damage{} + }) + slot.RegisterComponent(func() slot.Component { + return &Unbreakable{} + }) + slot.RegisterComponent(func() slot.Component { + return &CustomName{} + }) + slot.RegisterComponent(func() slot.Component { + return &ItemName{} + }) + slot.RegisterComponent(func() slot.Component { + return &ItemModel{} + }) + slot.RegisterComponent(func() slot.Component { + return &Lore{} + }) + slot.RegisterComponent(func() slot.Component { + return &Rarity{} + }) + slot.RegisterComponent(func() slot.Component { + return &Enchantments{} + }) + slot.RegisterComponent(func() slot.Component { + return &CanPlaceOn{} + }) + slot.RegisterComponent(func() slot.Component { + return &CanBreak{} + }) + slot.RegisterComponent(func() slot.Component { + return &AttributeModifiers{} + }) + slot.RegisterComponent(func() slot.Component { + return &CustomModelData{} + }) + slot.RegisterComponent(func() slot.Component { + return &TooltipDisplay{} + }) + slot.RegisterComponent(func() slot.Component { + return &RepairCost{} + }) + slot.RegisterComponent(func() slot.Component { + return &CreativeSlotLock{} + }) + slot.RegisterComponent(func() slot.Component { + return &EnchantmentGlintOverride{} + }) + slot.RegisterComponent(func() slot.Component { + return &IntangibleProjectile{} + }) + slot.RegisterComponent(func() slot.Component { + return &Food{} + }) + slot.RegisterComponent(func() slot.Component { + return &Consumable{} + }) + slot.RegisterComponent(func() slot.Component { + return &UseRemainder{} + }) + slot.RegisterComponent(func() slot.Component { + return &UseCooldown{} + }) + slot.RegisterComponent(func() slot.Component { + return &DamageResistant{} + }) + slot.RegisterComponent(func() slot.Component { + return &Tool{} + }) + slot.RegisterComponent(func() slot.Component { + return &Weapon{} + }) + slot.RegisterComponent(func() slot.Component { + return &Enchantable{} + }) + slot.RegisterComponent(func() slot.Component { + return &Equippable{} + }) + slot.RegisterComponent(func() slot.Component { + return &Repairable{} + }) + slot.RegisterComponent(func() slot.Component { + return &Glider{} + }) + slot.RegisterComponent(func() slot.Component { + return &TooltipStyle{} + }) + slot.RegisterComponent(func() slot.Component { + return &DeathProtection{} + }) + slot.RegisterComponent(func() slot.Component { + return &BlocksAttacks{} + }) + slot.RegisterComponent(func() slot.Component { + return &StoredEnchantments{} + }) + slot.RegisterComponent(func() slot.Component { + return &DyedColor{} + }) + slot.RegisterComponent(func() slot.Component { + return &MapColor{} + }) + slot.RegisterComponent(func() slot.Component { + return &MapID{} + }) + slot.RegisterComponent(func() slot.Component { + return &MapDecorations{} + }) + slot.RegisterComponent(func() slot.Component { + return &MapPostProcessing{} + }) + slot.RegisterComponent(func() slot.Component { + return &ChargedProjectiles{} + }) + slot.RegisterComponent(func() slot.Component { + return &BundleContents{} + }) + slot.RegisterComponent(func() slot.Component { + return &PotionContents{} + }) + slot.RegisterComponent(func() slot.Component { + return &PotionDurationScale{} + }) + slot.RegisterComponent(func() slot.Component { + return &SuspiciousStewEffects{} + }) + slot.RegisterComponent(func() slot.Component { + return &WritableBookContent{} + }) + slot.RegisterComponent(func() slot.Component { + return &WrittenBookContent{} + }) + slot.RegisterComponent(func() slot.Component { + return &Trim{} + }) + slot.RegisterComponent(func() slot.Component { + return &DebugStickState{} + }) + slot.RegisterComponent(func() slot.Component { + return &EntityData{} + }) + slot.RegisterComponent(func() slot.Component { + return &BucketEntityData{} + }) + slot.RegisterComponent(func() slot.Component { + return &BlockEntityData{} + }) + slot.RegisterComponent(func() slot.Component { + return &Instrument{} + }) + slot.RegisterComponent(func() slot.Component { + return &ProvidesTrimMaterial{} + }) + slot.RegisterComponent(func() slot.Component { + return &OminousBottleAmplifier{} + }) + slot.RegisterComponent(func() slot.Component { + return &JukeboxPlayable{} + }) + slot.RegisterComponent(func() slot.Component { + return &ProvidesBannerPatterns{} + }) + slot.RegisterComponent(func() slot.Component { + return &Recipes{} + }) + slot.RegisterComponent(func() slot.Component { + return &LodestoneTracker{} + }) + slot.RegisterComponent(func() slot.Component { + return &FireworkExplosion{} + }) + slot.RegisterComponent(func() slot.Component { + return &Fireworks{} + }) + slot.RegisterComponent(func() slot.Component { + return &Profile{} + }) + slot.RegisterComponent(func() slot.Component { + return &NoteBlockSound{} + }) + slot.RegisterComponent(func() slot.Component { + return &BannerPatterns{} + }) + slot.RegisterComponent(func() slot.Component { + return &BaseColor{} + }) + slot.RegisterComponent(func() slot.Component { + return &PotDecorations{} + }) + slot.RegisterComponent(func() slot.Component { + return &Container{} + }) + slot.RegisterComponent(func() slot.Component { + return &BlockState{} + }) + slot.RegisterComponent(func() slot.Component { + return &Bees{} + }) + slot.RegisterComponent(func() slot.Component { + return &Lock{} + }) + slot.RegisterComponent(func() slot.Component { + return &ContainerLoot{} + }) + slot.RegisterComponent(func() slot.Component { + return &BreakSound{} + }) + slot.RegisterComponent(func() slot.Component { + return &VillagerVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &WolfVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &WolfSoundVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &WolfCollar{} + }) + slot.RegisterComponent(func() slot.Component { + return &FoxVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &SalmonSize{} + }) + slot.RegisterComponent(func() slot.Component { + return &ParrotVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &TropicalFishPattern{} + }) + slot.RegisterComponent(func() slot.Component { + return &TropicalFishBaseColor{} + }) + slot.RegisterComponent(func() slot.Component { + return &TropicalFishPatternColor{} + }) + slot.RegisterComponent(func() slot.Component { + return &MooshroomVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &RabbitVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &PigVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &CowVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &ChickenVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &FrogVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &HorseVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &PaintingVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &LlamaVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &AxolotlVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &CatVariant{} + }) + slot.RegisterComponent(func() slot.Component { + return &CatCollar{} + }) + slot.RegisterComponent(func() slot.Component { + return &SheepColor{} + }) + slot.RegisterComponent(func() slot.Component { + return &ShulkerColor{} + }) } diff --git a/codec/component/consumable.go b/codec/component/consumable.go index 8069dd2..fb4d599 100644 --- a/codec/component/consumable.go +++ b/codec/component/consumable.go @@ -1,29 +1,42 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" ) //codec:gen type Consumable struct { - ConsumeSeconds float32 - Animation int32 `mc:"VarInt"` // 0=none, 1=eat, 2=drink, etc. - Sound SoundEvent + ConsumeSeconds float32 + Animation int32 `mc:"VarInt"` // 0=none, 1=eat, 2=drink, etc. + SoundID int32 `mc:"VarInt"` + //opt:id:SoundID + SoundEvent *SoundEvent HasConsumeParticles bool Effects []ConsumeEffect } //codec:gen type SoundEvent struct { - SoundEventID packet.Identifier - FixedRange packet.Option[packet.Float, *packet.Float] + SoundEventID packet.Identifier + HasFixedRange bool + //opt:optional:HasFixedRange + FixedRange float32 } //codec:gen type ConsumeEffect struct { Type int32 `mc:"VarInt"` - // Data varies by type - would need custom handling + //opt:enum:Type:0 + ApplyEffects []PotionEffect + //opt:enum:Type:0 + ApplyProbability float32 + //opt:enum:Type:1 + RemoveEffects packet.IDSet + //opt:enum:Type:3 + TeleportRandomlyDiameter float32 + //opt:enum:Type:4 + PlaySound SoundEvent } func (*Consumable) Type() slot.ComponentID { diff --git a/codec/component/container.go b/codec/component/container.go index c5a2e4d..57e536f 100644 --- a/codec/component/container.go +++ b/codec/component/container.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Container struct { diff --git a/codec/component/container_loot.go b/codec/component/container_loot.go index 4b0da21..222a6a4 100644 --- a/codec/component/container_loot.go +++ b/codec/component/container_loot.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/cow_variant.go b/codec/component/cow_variant.go index f51161f..0e8d6a8 100644 --- a/codec/component/cow_variant.go +++ b/codec/component/cow_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type CowVariant struct { diff --git a/codec/component/creative_slot_lock.go b/codec/component/creative_slot_lock.go index 88bb0fa..d51ee0a 100644 --- a/codec/component/creative_slot_lock.go +++ b/codec/component/creative_slot_lock.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type CreativeSlotLock struct { diff --git a/codec/component/custom_data.go b/codec/component/custom_data.go index aed9374..b09ada2 100644 --- a/codec/component/custom_data.go +++ b/codec/component/custom_data.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/custom_model_data.go b/codec/component/custom_model_data.go index 636615e..31931f5 100644 --- a/codec/component/custom_model_data.go +++ b/codec/component/custom_model_data.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type CustomModelData struct { diff --git a/codec/component/custom_name.go b/codec/component/custom_name.go index b21d12d..ee9b397 100644 --- a/codec/component/custom_name.go +++ b/codec/component/custom_name.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" ) diff --git a/codec/component/damage.go b/codec/component/damage.go index 742f1af..3b2fae7 100644 --- a/codec/component/damage.go +++ b/codec/component/damage.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Damage struct { diff --git a/codec/component/damage_resistant.go b/codec/component/damage_resistant.go index 22117f6..7c7b4c3 100644 --- a/codec/component/damage_resistant.go +++ b/codec/component/damage_resistant.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/death_protection.go b/codec/component/death_protection.go index 4a6a523..e72aa92 100644 --- a/codec/component/death_protection.go +++ b/codec/component/death_protection.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type DeathProtection struct { diff --git a/codec/component/debug_stick_state.go b/codec/component/debug_stick_state.go index d14d5a4..e9b106a 100644 --- a/codec/component/debug_stick_state.go +++ b/codec/component/debug_stick_state.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/dyed_color.go b/codec/component/dyed_color.go index a62f6da..01a5c23 100644 --- a/codec/component/dyed_color.go +++ b/codec/component/dyed_color.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type DyedColor struct { diff --git a/codec/component/enchantable.go b/codec/component/enchantable.go index f19de60..b8b5881 100644 --- a/codec/component/enchantable.go +++ b/codec/component/enchantable.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Enchantable struct { diff --git a/codec/component/enchantment_glint_override.go b/codec/component/enchantment_glint_override.go index 2f3629c..e69c70a 100644 --- a/codec/component/enchantment_glint_override.go +++ b/codec/component/enchantment_glint_override.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type EnchantmentGlintOverride struct { diff --git a/codec/component/enchantments.go b/codec/component/enchantments.go index 109f0d5..1c0bc33 100644 --- a/codec/component/enchantments.go +++ b/codec/component/enchantments.go @@ -1,15 +1,16 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Enchantments struct { Enchantments []Enchantment } +//codec:gen type Enchantment struct { - TypeID int32 `mc:"VarInt"` - Level int32 `mc:"VarInt"` + Type int32 `mc:"VarInt"` + Level int32 `mc:"VarInt"` } func (*Enchantments) Type() slot.ComponentID { diff --git a/codec/component/entity_data.go b/codec/component/entity_data.go index a488da5..f44cad2 100644 --- a/codec/component/entity_data.go +++ b/codec/component/entity_data.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/equippable.go b/codec/component/equippable.go index f561958..fe658a9 100644 --- a/codec/component/equippable.go +++ b/codec/component/equippable.go @@ -1,23 +1,28 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) //codec:gen type Equippable struct { - Slot int32 `mc:"VarInt"` // 0=mainhand, 1=feet, 2=legs, etc. - EquipSound SoundEvent - HasModel bool - Model pk.Option[pk.Identifier, *pk.Identifier] - HasCameraOverlay bool - CameraOverlay pk.Option[pk.Identifier, *pk.Identifier] + Slot int32 `mc:"VarInt"` // 0=mainhand, 1=feet, 2=legs, etc. + EquipSoundID int32 `mc:"VarInt"` + //opt:id:EquipSoundID + EquipSoundEvent *SoundEvent + HasModel bool + //opt:optional:HasModel + Model string `mc:"Identifier"` + HasCameraOverlay bool + //opt:optional:HasCameraOverlay + CameraOverlay string `mc:"Identifier"` HasAllowedEntities bool - AllowedEntities pk.Option[pk.IDSet, *pk.IDSet] - Dispensable bool - Swappable bool - DamageOnHurt bool + //opt:optional:HasAllowedEntities + AllowedEntitiesID pk.IDSet + Dispensable bool + Swappable bool + DamageOnHurt bool } func (*Equippable) Type() slot.ComponentID { diff --git a/codec/component/firework_explosion.go b/codec/component/firework_explosion.go index 9c92811..3e1b40a 100644 --- a/codec/component/firework_explosion.go +++ b/codec/component/firework_explosion.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type FireworkExplosion struct { @@ -9,9 +9,9 @@ type FireworkExplosion struct { //codec:gen type FireworkExplosionData struct { - Shape int32 `mc:"VarInt"` - Colors []int32 `mc:"PrefixedArray"` - FadeColors []int32 `mc:"PrefixedArray"` + Shape int32 `mc:"VarInt"` + Colors []int32 + FadeColors []int32 HasTrail bool HasTwinkle bool } diff --git a/codec/component/fireworks.go b/codec/component/fireworks.go index dd18938..c626b15 100644 --- a/codec/component/fireworks.go +++ b/codec/component/fireworks.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Fireworks struct { diff --git a/codec/component/food.go b/codec/component/food.go index 8f07ae3..8cfca97 100644 --- a/codec/component/food.go +++ b/codec/component/food.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Food struct { diff --git a/codec/component/fox_variant.go b/codec/component/fox_variant.go index 45c9405..484ca30 100644 --- a/codec/component/fox_variant.go +++ b/codec/component/fox_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type FoxVariant struct { diff --git a/codec/component/frog_variant.go b/codec/component/frog_variant.go index a226f46..b420c2f 100644 --- a/codec/component/frog_variant.go +++ b/codec/component/frog_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type FrogVariant struct { diff --git a/codec/component/glider.go b/codec/component/glider.go index a495a38..319e50b 100644 --- a/codec/component/glider.go +++ b/codec/component/glider.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Glider struct { diff --git a/codec/component/horse_variant.go b/codec/component/horse_variant.go index e33feb2..e311ad4 100644 --- a/codec/component/horse_variant.go +++ b/codec/component/horse_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type HorseVariant struct { diff --git a/codec/component/instrument.go b/codec/component/instrument.go index 657fc2c..85691f4 100644 --- a/codec/component/instrument.go +++ b/codec/component/instrument.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/intangible_projectile.go b/codec/component/intangible_projectile.go index 3a0132c..cf97804 100644 --- a/codec/component/intangible_projectile.go +++ b/codec/component/intangible_projectile.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/item_model.go b/codec/component/item_model.go index 2383330..514b8d0 100644 --- a/codec/component/item_model.go +++ b/codec/component/item_model.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/item_name.go b/codec/component/item_name.go index ac209dd..4321a43 100644 --- a/codec/component/item_name.go +++ b/codec/component/item_name.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" ) diff --git a/codec/component/jukebox_playable.go b/codec/component/jukebox_playable.go index 091e5d1..68ce21c 100644 --- a/codec/component/jukebox_playable.go +++ b/codec/component/jukebox_playable.go @@ -3,7 +3,7 @@ package component import ( "io" - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/llama_variant.go b/codec/component/llama_variant.go index da3d1b1..2b1cc73 100644 --- a/codec/component/llama_variant.go +++ b/codec/component/llama_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type LlamaVariant struct { diff --git a/codec/component/lock.go b/codec/component/lock.go index 7994c89..21f8625 100644 --- a/codec/component/lock.go +++ b/codec/component/lock.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/lodestone_tracker.go b/codec/component/lodestone_tracker.go index ae1f660..e1b6643 100644 --- a/codec/component/lodestone_tracker.go +++ b/codec/component/lodestone_tracker.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/lore.go b/codec/component/lore.go index e30d649..367000e 100644 --- a/codec/component/lore.go +++ b/codec/component/lore.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" ) diff --git a/codec/component/map_color.go b/codec/component/map_color.go index bdeeb2a..98b569c 100644 --- a/codec/component/map_color.go +++ b/codec/component/map_color.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type MapColor struct { diff --git a/codec/component/map_decorations.go b/codec/component/map_decorations.go index d42c4d4..cd6fa7f 100644 --- a/codec/component/map_decorations.go +++ b/codec/component/map_decorations.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/map_id.go b/codec/component/map_id.go index 80fd245..8e94efa 100644 --- a/codec/component/map_id.go +++ b/codec/component/map_id.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type MapID struct { diff --git a/codec/component/map_post_processing.go b/codec/component/map_post_processing.go index bde7dcc..a1c8a16 100644 --- a/codec/component/map_post_processing.go +++ b/codec/component/map_post_processing.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type MapPostProcessing struct { diff --git a/codec/component/max_damage.go b/codec/component/max_damage.go index 6087b21..1ba8c53 100644 --- a/codec/component/max_damage.go +++ b/codec/component/max_damage.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type MaxDamage struct { diff --git a/codec/component/max_stack_size.go b/codec/component/max_stack_size.go index e739d3b..86413ab 100644 --- a/codec/component/max_stack_size.go +++ b/codec/component/max_stack_size.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type MaxStackSize struct { diff --git a/codec/component/mooshroom_variant.go b/codec/component/mooshroom_variant.go index 08e6321..1be1872 100644 --- a/codec/component/mooshroom_variant.go +++ b/codec/component/mooshroom_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type MooshroomVariant struct { diff --git a/codec/component/note_block_sound.go b/codec/component/note_block_sound.go index ccc52bb..fc9b240 100644 --- a/codec/component/note_block_sound.go +++ b/codec/component/note_block_sound.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/ominous_bottle_amplifier.go b/codec/component/ominous_bottle_amplifier.go index 1beec52..d3ff2b0 100644 --- a/codec/component/ominous_bottle_amplifier.go +++ b/codec/component/ominous_bottle_amplifier.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type OminousBottleAmplifier struct { diff --git a/codec/component/painting_variant.go b/codec/component/painting_variant.go index bcd18fb..01b2c85 100644 --- a/codec/component/painting_variant.go +++ b/codec/component/painting_variant.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/parrot_variant.go b/codec/component/parrot_variant.go index 8883b2f..b751dc7 100644 --- a/codec/component/parrot_variant.go +++ b/codec/component/parrot_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type ParrotVariant struct { diff --git a/codec/component/pig_variant.go b/codec/component/pig_variant.go index 7f56467..dbd44a5 100644 --- a/codec/component/pig_variant.go +++ b/codec/component/pig_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type PigVariant struct { diff --git a/codec/component/pot_decorations.go b/codec/component/pot_decorations.go index c80b503..00bae72 100644 --- a/codec/component/pot_decorations.go +++ b/codec/component/pot_decorations.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type PotDecorations struct { diff --git a/codec/component/potion_contents.go b/codec/component/potion_contents.go index 0bcfcb2..1beded8 100644 --- a/codec/component/potion_contents.go +++ b/codec/component/potion_contents.go @@ -1,8 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" - pk "github.com/Tnze/go-mc/net/packet" + "git.konjactw.dev/patyhank/minego/codec/slot" ) //codec:gen @@ -19,23 +18,19 @@ type PotionContents struct { type PotionEffect struct { TypeID int32 `mc:"VarInt"` - Amplifier int32 `mc:"VarInt"` - Duration int32 `mc:"VarInt"` - Ambient bool - ShowParticles bool - ShowIcon bool - HasHiddenEffect bool - HiddenEffect pk.Option[PotionEffectExtraDetails, *PotionEffectExtraDetails] + Details PotionEffectDetails } //codec:gen -type PotionEffectExtraDetails struct { +type PotionEffectDetails struct { Amplifier int32 `mc:"VarInt"` Duration int32 `mc:"VarInt"` Ambient bool ShowParticles bool ShowIcon bool HasHiddenEffect bool + //opt:optional:HasHiddenEffect + HiddenEffect *PotionEffect } func (*PotionContents) Type() slot.ComponentID { diff --git a/codec/component/potion_duration_scale.go b/codec/component/potion_duration_scale.go index b381d75..5abe519 100644 --- a/codec/component/potion_duration_scale.go +++ b/codec/component/potion_duration_scale.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type PotionDurationScale struct { diff --git a/codec/component/profile.go b/codec/component/profile.go index 5a6bb36..26c3da9 100644 --- a/codec/component/profile.go +++ b/codec/component/profile.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/provides_banner_patterns.go b/codec/component/provides_banner_patterns.go index e2f1656..c5fd361 100644 --- a/codec/component/provides_banner_patterns.go +++ b/codec/component/provides_banner_patterns.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/provides_trim_material.go b/codec/component/provides_trim_material.go index e2cc4ec..7660fbd 100644 --- a/codec/component/provides_trim_material.go +++ b/codec/component/provides_trim_material.go @@ -3,7 +3,7 @@ package component import ( "io" - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/rabbit_variant.go b/codec/component/rabbit_variant.go index 83cb8e7..7a3b9e9 100644 --- a/codec/component/rabbit_variant.go +++ b/codec/component/rabbit_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type RabbitVariant struct { diff --git a/codec/component/rarity.go b/codec/component/rarity.go index 37966d5..572658c 100644 --- a/codec/component/rarity.go +++ b/codec/component/rarity.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Rarity struct { diff --git a/codec/component/recipes.go b/codec/component/recipes.go index 2adaded..91b1c2a 100644 --- a/codec/component/recipes.go +++ b/codec/component/recipes.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/nbt" ) diff --git a/codec/component/repair_cost.go b/codec/component/repair_cost.go index e827057..1ded72e 100644 --- a/codec/component/repair_cost.go +++ b/codec/component/repair_cost.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type RepairCost struct { diff --git a/codec/component/repairable.go b/codec/component/repairable.go index eeccb57..ecb1408 100644 --- a/codec/component/repairable.go +++ b/codec/component/repairable.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/salmon_size.go b/codec/component/salmon_size.go index 5c12458..d71f6c0 100644 --- a/codec/component/salmon_size.go +++ b/codec/component/salmon_size.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type SalmonSize struct { diff --git a/codec/component/sheep_color.go b/codec/component/sheep_color.go index 84a683c..280b9a6 100644 --- a/codec/component/sheep_color.go +++ b/codec/component/sheep_color.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type SheepColor struct { diff --git a/codec/component/shulker_color.go b/codec/component/shulker_color.go index c2d63a6..a4b0561 100644 --- a/codec/component/shulker_color.go +++ b/codec/component/shulker_color.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type ShulkerColor struct { diff --git a/codec/component/stored_enchantments.go b/codec/component/stored_enchantments.go index 839636f..6063033 100644 --- a/codec/component/stored_enchantments.go +++ b/codec/component/stored_enchantments.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type StoredEnchantments struct { diff --git a/codec/component/suspicious_stew_effects.go b/codec/component/suspicious_stew_effects.go index 7d4dc89..99fd5e7 100644 --- a/codec/component/suspicious_stew_effects.go +++ b/codec/component/suspicious_stew_effects.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type SuspiciousStewEffects struct { diff --git a/codec/component/tool.go b/codec/component/tool.go index d6dd0d3..25f4276 100644 --- a/codec/component/tool.go +++ b/codec/component/tool.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/tooltip_display.go b/codec/component/tooltip_display.go index d58f322..b753742 100644 --- a/codec/component/tooltip_display.go +++ b/codec/component/tooltip_display.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type TooltipDisplay struct { diff --git a/codec/component/tooltip_style.go b/codec/component/tooltip_style.go index cdc3bfa..0d9500b 100644 --- a/codec/component/tooltip_style.go +++ b/codec/component/tooltip_style.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/trim.go b/codec/component/trim.go index 9648808..0a72e08 100644 --- a/codec/component/trim.go +++ b/codec/component/trim.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" pk "github.com/Tnze/go-mc/net/packet" ) @@ -19,6 +19,7 @@ type TrimMaterial struct { Description chat.Message } +//codec:gen type TrimOverride struct { MaterialType pk.Identifier OverrideAssetName string diff --git a/codec/component/tropical_fish_base_color.go b/codec/component/tropical_fish_base_color.go index 93f84da..0dc89c3 100644 --- a/codec/component/tropical_fish_base_color.go +++ b/codec/component/tropical_fish_base_color.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type TropicalFishBaseColor struct { diff --git a/codec/component/tropical_fish_pattern.go b/codec/component/tropical_fish_pattern.go index fe8bfc9..4dbd836 100644 --- a/codec/component/tropical_fish_pattern.go +++ b/codec/component/tropical_fish_pattern.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type TropicalFishPattern struct { diff --git a/codec/component/tropical_fish_pattern_color.go b/codec/component/tropical_fish_pattern_color.go index e14b2c1..452f81f 100644 --- a/codec/component/tropical_fish_pattern_color.go +++ b/codec/component/tropical_fish_pattern_color.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type TropicalFishPatternColor struct { diff --git a/codec/component/unbreakable.go b/codec/component/unbreakable.go index 3bde2f3..f3dbca3 100644 --- a/codec/component/unbreakable.go +++ b/codec/component/unbreakable.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Unbreakable struct { diff --git a/codec/component/use_cooldown.go b/codec/component/use_cooldown.go index 70468bc..da6dded 100644 --- a/codec/component/use_cooldown.go +++ b/codec/component/use_cooldown.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/use_remainder.go b/codec/component/use_remainder.go index c6efe73..3fa8357 100644 --- a/codec/component/use_remainder.go +++ b/codec/component/use_remainder.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type UseRemainder struct { diff --git a/codec/component/villager_variant.go b/codec/component/villager_variant.go index 2dac2d5..7dba3ec 100644 --- a/codec/component/villager_variant.go +++ b/codec/component/villager_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type VillagerVariant struct { diff --git a/codec/component/weapon.go b/codec/component/weapon.go index d809104..abd57de 100644 --- a/codec/component/weapon.go +++ b/codec/component/weapon.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type Weapon struct { diff --git a/codec/component/wolf_collar.go b/codec/component/wolf_collar.go index 47fb441..446cfbb 100644 --- a/codec/component/wolf_collar.go +++ b/codec/component/wolf_collar.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type WolfCollar struct { diff --git a/codec/component/wolf_sound_variant.go b/codec/component/wolf_sound_variant.go index 3c32f7e..79cb182 100644 --- a/codec/component/wolf_sound_variant.go +++ b/codec/component/wolf_sound_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type WolfSoundVariant struct { diff --git a/codec/component/wolf_variant.go b/codec/component/wolf_variant.go index 8a00da1..1ef924f 100644 --- a/codec/component/wolf_variant.go +++ b/codec/component/wolf_variant.go @@ -1,6 +1,6 @@ package component -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type WolfVariant struct { diff --git a/codec/component/writable_book_content.go b/codec/component/writable_book_content.go index da92f55..157105b 100644 --- a/codec/component/writable_book_content.go +++ b/codec/component/writable_book_content.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/component/written_book_content.go b/codec/component/written_book_content.go index 1f19496..0c4cd2b 100644 --- a/codec/component/written_book_content.go +++ b/codec/component/written_book_content.go @@ -1,7 +1,7 @@ package component import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/chat" pk "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/metadata/codecs.go b/codec/metadata/codecs.go new file mode 100644 index 0000000..349799b --- /dev/null +++ b/codec/metadata/codecs.go @@ -0,0 +1,262 @@ +// Code generated by github.com/go-mc/packetizer; DO NOT EDIT. + +package metadata + +import ( + "io" + + "github.com/Tnze/go-mc/net/packet" +) + +func (c *Rotation) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Rotation) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *NBT) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.Data).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c NBT) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.NBT(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Particles) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Particles).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Particles) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Particles).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *VillagerData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Profession).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c VillagerData) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Profession).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *GlobalPosition) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Dimension).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Position).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c GlobalPosition) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Dimension).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Position).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *OptGlobalPosition) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.GlobalPosition).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c OptGlobalPosition) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.GlobalPosition).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Vector3) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Vector3) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Quaternion) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.W).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Quaternion) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.W).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} diff --git a/codec/metadata/metadata.go b/codec/metadata/metadata.go new file mode 100644 index 0000000..a2677b6 --- /dev/null +++ b/codec/metadata/metadata.go @@ -0,0 +1,156 @@ +package metadata + +import ( + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +type MetadataType int32 + +const ( + MetadataByte MetadataType = iota + MetadataVarInt + MetadataVarLong + MetadataFloat + MetadataString + MetadataChat + MetadataOptChat + MetadataSlot + MetadataBoolean + MetadataRotation + MetadataPosition + MetadataOptPosition + MetadataDirection + MetadataOptLivingEntity + MetadataBlockState + MetadataOptBlockState + MetadataNBT + MetadataParticle + MetadataParticles + MetadataVillagerData + MetadataOptVarInt + MetadataPose + MetadataCatVariant + MetadataCowVariant + MetadataWolfVariant + MetadataWolfSoundVariant + MetadataFrogVariant + MetadataPigVariant + MetadataChickenVariant + MetadataOptGlobalPosition + MetadataPaintingVariant + MetadataSnifferVariant + MetadataArmadilloState + MetadataVector3 + MetadataQuaternion +) + +type entityMetadata interface { + EntityMetadataType() MetadataType + pk.Field +} + +type EntityMetadata struct { + Data map[uint8]entityMetadata +} + +func (m EntityMetadata) WriteTo(w io.Writer) (int64, error) { + n := int64(0) + for u, metadata := range m.Data { + n1, err := pk.UnsignedByte(u).WriteTo(w) + n += n1 + if err != nil { + return n, err + } + n2, err := pk.VarInt(metadata.EntityMetadataType()).WriteTo(w) + n += n2 + if err != nil { + return n, err + } + + n3, err := metadata.WriteTo(w) + n += n3 + if err != nil { + return n, err + } + } + n4, err := pk.UnsignedByte(0xff).WriteTo(w) + n += n4 + if err != nil { + return n, err + } + return n, nil +} + +func (m *EntityMetadata) ReadFrom(r io.Reader) (int64, error) { + var index uint8 + n, err := (*pk.UnsignedByte)(&index).ReadFrom(r) + if err != nil { + return n, err + } + for index != 0xff { + var typeId MetadataType + n1, err := (*pk.VarInt)(&typeId).ReadFrom(r) + n += n1 + if err != nil { + return n, err + } + + metadata := metadataType[typeId]() + n2, err := metadata.ReadFrom(r) + n += n2 + if err != nil { + return n, err + } + m.Data[index] = metadata + + n3, err := (*pk.UnsignedByte)(&index).ReadFrom(r) + n += n3 + if err != nil { + return n, err + } + } + return n, nil +} + +type metadataCreator func() entityMetadata + +var metadataType = map[MetadataType]metadataCreator{} + +func init() { + metadataType[MetadataByte] = func() entityMetadata { return &Byte{} } + metadataType[MetadataVarInt] = func() entityMetadata { return &VarInt{} } + metadataType[MetadataVarLong] = func() entityMetadata { return &VarLong{} } + metadataType[MetadataFloat] = func() entityMetadata { return &Float{} } + metadataType[MetadataString] = func() entityMetadata { return &String{} } + metadataType[MetadataChat] = func() entityMetadata { return &Chat{} } + metadataType[MetadataOptChat] = func() entityMetadata { return &OptChat{} } + metadataType[MetadataSlot] = func() entityMetadata { return &Slot{} } + metadataType[MetadataBoolean] = func() entityMetadata { return &Boolean{} } + metadataType[MetadataRotation] = func() entityMetadata { return &Rotation{} } + metadataType[MetadataPosition] = func() entityMetadata { return &Position{} } + metadataType[MetadataOptPosition] = func() entityMetadata { return &OptPosition{} } + metadataType[MetadataDirection] = func() entityMetadata { return &Direction{} } + metadataType[MetadataOptLivingEntity] = func() entityMetadata { return &OptLivingEntity{} } + metadataType[MetadataBlockState] = func() entityMetadata { return &BlockState{} } + metadataType[MetadataOptBlockState] = func() entityMetadata { return &OptBlockState{} } + metadataType[MetadataNBT] = func() entityMetadata { return &NBT{} } + metadataType[MetadataParticle] = func() entityMetadata { return &Particle{} } + metadataType[MetadataParticles] = func() entityMetadata { return &Particles{} } + metadataType[MetadataVillagerData] = func() entityMetadata { return &VillagerData{} } + metadataType[MetadataOptVarInt] = func() entityMetadata { return &OptVarInt{} } + metadataType[MetadataPose] = func() entityMetadata { return &Pose{} } + metadataType[MetadataCatVariant] = func() entityMetadata { return &CatVariant{} } + metadataType[MetadataCowVariant] = func() entityMetadata { return &CowVariant{} } + metadataType[MetadataWolfVariant] = func() entityMetadata { return &WolfVariant{} } + metadataType[MetadataWolfSoundVariant] = func() entityMetadata { return &WolfSoundVariant{} } + metadataType[MetadataFrogVariant] = func() entityMetadata { return &FrogVariant{} } + metadataType[MetadataPigVariant] = func() entityMetadata { return &PigVariant{} } + metadataType[MetadataChickenVariant] = func() entityMetadata { return &ChickenVariant{} } + metadataType[MetadataOptGlobalPosition] = func() entityMetadata { return &OptGlobalPosition{} } + metadataType[MetadataPaintingVariant] = func() entityMetadata { return &PaintingVariant{} } + metadataType[MetadataSnifferVariant] = func() entityMetadata { return &SnifferVariant{} } + metadataType[MetadataArmadilloState] = func() entityMetadata { return &ArmadilloState{} } + metadataType[MetadataVector3] = func() entityMetadata { return &Vector3{} } + metadataType[MetadataQuaternion] = func() entityMetadata { return &Quaternion{} } +} diff --git a/codec/metadata/values.go b/codec/metadata/values.go new file mode 100644 index 0000000..db97b22 --- /dev/null +++ b/codec/metadata/values.go @@ -0,0 +1,303 @@ +package metadata + +import ( + "git.konjactw.dev/patyhank/minego/codec/component" + "git.konjactw.dev/patyhank/minego/codec/particle" + "git.konjactw.dev/patyhank/minego/codec/slot" + "github.com/Tnze/go-mc/chat" + "github.com/Tnze/go-mc/nbt" + pk "github.com/Tnze/go-mc/net/packet" +) + +type Byte struct { + pk.Byte +} + +func (b Byte) EntityMetadataType() MetadataType { + return MetadataByte +} + +type VarInt struct { + pk.VarInt +} + +func (b VarInt) EntityMetadataType() MetadataType { + return MetadataVarInt +} + +type VarLong struct { + pk.VarLong +} + +func (b VarLong) EntityMetadataType() MetadataType { + return MetadataVarLong +} + +type Float struct { + pk.Float +} + +func (b Float) EntityMetadataType() MetadataType { + return MetadataFloat +} + +type String struct { + pk.String +} + +func (b String) EntityMetadataType() MetadataType { + return MetadataString +} + +type Chat struct { + chat.Message +} + +func (b Chat) EntityMetadataType() MetadataType { + return MetadataChat +} + +type OptChat struct { + pk.Option[chat.Message, *chat.Message] +} + +func (b OptChat) EntityMetadataType() MetadataType { + return MetadataChat +} + +type Slot struct { + slot.Slot +} + +func (b Slot) EntityMetadataType() MetadataType { + return MetadataSlot +} + +type Boolean struct { + pk.Boolean +} + +func (b Boolean) EntityMetadataType() MetadataType { + return MetadataBoolean +} + +//codec:gen +type Rotation struct { + X, Y, Z float32 +} + +func (b Rotation) EntityMetadataType() MetadataType { + return MetadataRotation +} + +type Position struct { + pk.Position +} + +func (b Position) EntityMetadataType() MetadataType { + return MetadataPosition +} + +type OptPosition struct { + pk.Option[pk.Position, *pk.Position] +} + +func (b OptPosition) EntityMetadataType() MetadataType { + return MetadataOptPosition +} + +type Direction struct { + pk.VarInt +} + +func (b Direction) EntityMetadataType() MetadataType { + return MetadataDirection +} + +type OptLivingEntity struct { + pk.Option[pk.UUID, *pk.UUID] +} + +func (b OptLivingEntity) EntityMetadataType() MetadataType { + return MetadataOptLivingEntity +} + +type BlockState struct { + pk.VarInt +} + +func (b BlockState) EntityMetadataType() MetadataType { + return MetadataBlockState +} + +type OptBlockState struct { + pk.VarInt +} + +func (b OptBlockState) EntityMetadataType() MetadataType { + return MetadataOptBlockState +} + +//codec:gen +type NBT struct { + Data nbt.RawMessage `mc:"NBT"` +} + +func (b NBT) EntityMetadataType() MetadataType { + return MetadataNBT +} + +type Particle struct { + particle.Particle +} + +func (b Particle) EntityMetadataType() MetadataType { + return MetadataParticle +} + +//codec:gen +type Particles struct { + Particles []particle.Particle +} + +func (b Particles) EntityMetadataType() MetadataType { + return MetadataParticles +} + +//codec:gen +type VillagerData struct { + Type, Profession, Level int32 `mc:"VarInt"` +} + +func (b VillagerData) EntityMetadataType() MetadataType { + return MetadataVillagerData +} + +type OptVarInt struct { + pk.Option[pk.VarInt, *pk.VarInt] +} + +func (b OptVarInt) EntityMetadataType() MetadataType { + return MetadataOptVarInt +} + +type Pose struct { + pk.VarInt +} + +func (b Pose) EntityMetadataType() MetadataType { + return MetadataPose +} + +type CatVariant struct { + pk.VarInt +} + +func (b CatVariant) EntityMetadataType() MetadataType { + return MetadataCatVariant +} + +type CowVariant struct { + pk.VarInt +} + +func (CowVariant) EntityMetadataType() MetadataType { + return MetadataCowVariant +} + +type WolfVariant struct { + pk.VarInt +} + +func (WolfVariant) EntityMetadataType() MetadataType { + return MetadataWolfVariant +} + +type WolfSoundVariant struct { + pk.VarInt +} + +func (WolfSoundVariant) EntityMetadataType() MetadataType { + return MetadataWolfSoundVariant +} + +type FrogVariant struct { + pk.VarInt +} + +func (FrogVariant) EntityMetadataType() MetadataType { + return MetadataFrogVariant +} + +type PigVariant struct { + pk.VarInt +} + +func (PigVariant) EntityMetadataType() MetadataType { + return MetadataPigVariant +} + +type ChickenVariant struct { + pk.VarInt +} + +func (ChickenVariant) EntityMetadataType() MetadataType { + return MetadataChickenVariant +} + +//codec:gen +type GlobalPosition struct { + Dimension pk.Identifier + Position pk.Position +} + +//codec:gen +type OptGlobalPosition struct { + GlobalPosition pk.Option[GlobalPosition, *GlobalPosition] +} + +func (OptGlobalPosition) EntityMetadataType() MetadataType { + return MetadataOptGlobalPosition +} + +type PaintingVariant struct { + pk.OptID[component.PaintingVariant, *component.PaintingVariant] +} + +func (PaintingVariant) EntityMetadataType() MetadataType { + return MetadataPaintingVariant +} + +type SnifferVariant struct { + pk.VarInt +} + +func (SnifferVariant) EntityMetadataType() MetadataType { + return MetadataSnifferVariant +} + +type ArmadilloState struct { + pk.VarInt +} + +func (ArmadilloState) EntityMetadataType() MetadataType { + return MetadataArmadilloState +} + +//codec:gen +type Vector3 struct { + X, Y, Z float32 +} + +func (Vector3) EntityMetadataType() MetadataType { + return MetadataVector3 +} + +//codec:gen +type Quaternion struct { + X, Y, Z, W float32 +} + +func (Quaternion) EntityMetadataType() MetadataType { + return MetadataQuaternion +} diff --git a/codec/packet/game/client/clear_dialog.go b/codec/packet/game/client/clear_dialog.go new file mode 100644 index 0000000..050b933 --- /dev/null +++ b/codec/packet/game/client/clear_dialog.go @@ -0,0 +1,5 @@ +package client + +//codec:gen +type ClearDialog struct { +} diff --git a/codec/packet/game/client/codecs.go b/codec/packet/game/client/codecs.go index f903127..3ab1b91 100644 --- a/codec/packet/game/client/codecs.go +++ b/codec/packet/game/client/codecs.go @@ -1,78 +1,79 @@ -// Code generated by packetizer.go; DO NOT EDIT. +// Code generated by github.com/go-mc/packetizer; DO NOT EDIT. package client import ( + "errors" "io" - pk "github.com/Tnze/go-mc/net/packet" + "git.konjactw.dev/patyhank/minego/codec/component" + "github.com/Tnze/go-mc/net/packet" + "github.com/google/uuid" ) -func (c *AddEntity) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *AddEntity) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.ID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.UUID)(&c.UUID).ReadFrom(r) + temp, err = (*packet.UUID)(&c.UUID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Type).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.X).ReadFrom(r) + temp, err = (*packet.Double)(&c.X).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Y).ReadFrom(r) + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Z).ReadFrom(r) + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.XRot).ReadFrom(r) + temp, err = (*packet.Byte)(&c.XRot).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.YRot).ReadFrom(r) + temp, err = (*packet.Byte)(&c.YRot).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.YHeadRot).ReadFrom(r) + temp, err = (*packet.Byte)(&c.YHeadRot).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Data).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.VelocityX).ReadFrom(r) + temp, err = (*packet.Short)(&c.VelocityX).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.VelocityY).ReadFrom(r) + temp, err = (*packet.Short)(&c.VelocityY).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.VelocityZ).ReadFrom(r) + temp, err = (*packet.Short)(&c.VelocityZ).ReadFrom(r) n += temp if err != nil { return n, err @@ -80,71 +81,83 @@ func (c *AddEntity) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c AddEntity) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c AddEntity) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.ID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.UUID)(&c.UUID).WriteTo(w) + temp, err = (*packet.UUID)(&c.UUID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Type).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.X).WriteTo(w) + temp, err = (*packet.Double)(&c.X).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Y).WriteTo(w) + temp, err = (*packet.Double)(&c.Y).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Z).WriteTo(w) + temp, err = (*packet.Double)(&c.Z).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.XRot).WriteTo(w) + temp, err = (*packet.Byte)(&c.XRot).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.YRot).WriteTo(w) + temp, err = (*packet.Byte)(&c.YRot).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.YHeadRot).WriteTo(w) + temp, err = (*packet.Byte)(&c.YHeadRot).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Data).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Data).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.VelocityX).WriteTo(w) + temp, err = (*packet.Short)(&c.VelocityX).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.VelocityY).WriteTo(w) + temp, err = (*packet.Short)(&c.VelocityY).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.VelocityZ).WriteTo(w) + temp, err = (*packet.Short)(&c.VelocityZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Animate) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.Action).ReadFrom(r) n += temp if err != nil { return n, err @@ -152,16 +165,33 @@ func (c AddEntity) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Animate) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Animate) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Action).ReadFrom(r) + temp, err = (*packet.UnsignedByte)(&c.Action).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *StatsData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.CategoryID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.StatID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Value).ReadFrom(r) n += temp if err != nil { return n, err @@ -169,16 +199,28 @@ func (c *Animate) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Animate) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c StatsData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.CategoryID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Action).WriteTo(w) + temp, err = (*packet.VarInt)(&c.StatID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Value).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *AwardStats) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Stats).ReadFrom(r) n += temp if err != nil { return n, err @@ -186,21 +228,18 @@ func (c Animate) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *StatsData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c AwardStats) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.CategoryID).ReadFrom(r) + temp, err = packet.Array(&c.Stats).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.StatID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Value).ReadFrom(r) + return n, err +} +func (c *BlockChangedAck) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Sequence).ReadFrom(r) n += temp if err != nil { return n, err @@ -208,81 +247,18 @@ func (c *StatsData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c StatsData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockChangedAck) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.CategoryID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.StatID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.Value).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Sequence).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *AwardStats) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BlockDestruction) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Stats).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c AwardStats) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Stats).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *BlockChangedAck) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Sequence).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c BlockChangedAck) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Sequence).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *BlockDestruction) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.ID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.ID).ReadFrom(r) n += temp if err != nil { return n, err @@ -292,7 +268,7 @@ func (c *BlockDestruction) ReadFrom(r io.Reader) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Progress).ReadFrom(r) + temp, err = (*packet.UnsignedByte)(&c.Progress).ReadFrom(r) n += temp if err != nil { return n, err @@ -300,11 +276,9 @@ func (c *BlockDestruction) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BlockDestruction) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockDestruction) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.ID).WriteTo(w) n += temp if err != nil { return n, err @@ -314,29 +288,26 @@ func (c BlockDestruction) WriteTo(w io.Writer) (int64, error) { if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Progress).WriteTo(w) + temp, err = (*packet.UnsignedByte)(&c.Progress).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BlockEntityData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BlockEntityData) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Position).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Type).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.NBT(&c.Data).ReadFrom(r) + temp, err = packet.NBT(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -344,48 +315,43 @@ func (c *BlockEntityData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BlockEntityData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockEntityData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Position).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Type).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.NBT(&c.Data).WriteTo(w) + temp, err = packet.NBT(&c.Data).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BlockEvent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BlockEvent) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Position).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.EventType).ReadFrom(r) + temp, err = (*packet.UnsignedByte)(&c.EventType).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Data).ReadFrom(r) + temp, err = (*packet.UnsignedByte)(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Block).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Block).ReadFrom(r) n += temp if err != nil { return n, err @@ -393,43 +359,38 @@ func (c *BlockEvent) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BlockEvent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockEvent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Position).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.EventType).WriteTo(w) + temp, err = (*packet.UnsignedByte)(&c.EventType).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Data).WriteTo(w) + temp, err = (*packet.UnsignedByte)(&c.Data).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Block).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Block).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BlockUpdate) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BlockUpdate) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Position).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.BlockState).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.BlockState).ReadFrom(r) n += temp if err != nil { return n, err @@ -437,28 +398,23 @@ func (c *BlockUpdate) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BlockUpdate) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BlockUpdate) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Position).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.BlockState).WriteTo(w) + temp, err = (*packet.VarInt)(&c.BlockState).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BossEvent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BossEvent) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.UUID)(&c.UUID).ReadFrom(r) + temp, err = (*packet.UUID)(&c.UUID).ReadFrom(r) n += temp if err != nil { return n, err @@ -471,11 +427,9 @@ func (c *BossEvent) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BossEvent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BossEvent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.UUID)(&c.UUID).WriteTo(w) + temp, err = (*packet.UUID)(&c.UUID).WriteTo(w) n += temp if err != nil { return n, err @@ -487,32 +441,29 @@ func (c BossEvent) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *BossEventOpAdd) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BossEventOpAdd) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Message).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Progress).ReadFrom(r) + temp, err = (*packet.Float)(&c.Progress).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Color).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Color).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Overlay).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Overlay).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Flags).ReadFrom(r) + temp, err = (*packet.UnsignedByte)(&c.Flags).ReadFrom(r) n += temp if err != nil { return n, err @@ -520,51 +471,45 @@ func (c *BossEventOpAdd) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BossEventOpAdd) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BossEventOpAdd) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Message).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Progress).WriteTo(w) + temp, err = (*packet.Float)(&c.Progress).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Color).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Color).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Overlay).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Overlay).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.UnsignedByte)(&c.Flags).WriteTo(w) + temp, err = (*packet.UnsignedByte)(&c.Flags).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BossEventOpRemove) ReadFrom(r io.Reader) (int64, error) { +func (c *BossEventOpRemove) ReadFrom(r io.Reader) (n int64, err error) { return 0, nil } -func (c BossEventOpRemove) WriteTo(w io.Writer) (int64, error) { +func (c BossEventOpRemove) WriteTo(w io.Writer) (n int64, err error) { return 0, nil } - -func (c *BossEventOpUpdate) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BossEventOpUpdate) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Float)(&c.Progress).ReadFrom(r) + temp, err = (*packet.Float)(&c.Progress).ReadFrom(r) n += temp if err != nil { return n, err @@ -572,21 +517,16 @@ func (c *BossEventOpUpdate) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BossEventOpUpdate) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BossEventOpUpdate) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Float)(&c.Progress).WriteTo(w) + temp, err = (*packet.Float)(&c.Progress).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *BossEventOpUpdateName) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BossEventOpUpdateName) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Message).ReadFrom(r) n += temp @@ -596,9 +536,7 @@ func (c *BossEventOpUpdateName) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BossEventOpUpdateName) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BossEventOpUpdateName) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Message).WriteTo(w) n += temp @@ -607,17 +545,14 @@ func (c BossEventOpUpdateName) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *BossEventOpUpdateStyle) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *BossEventOpUpdateStyle) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Color).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Color).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Overlay).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Overlay).ReadFrom(r) n += temp if err != nil { return n, err @@ -625,16 +560,23 @@ func (c *BossEventOpUpdateStyle) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c BossEventOpUpdateStyle) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c BossEventOpUpdateStyle) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Color).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Color).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Overlay).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Overlay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *BossEventOpUpdateProperties) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.UnsignedByte)(&c.Flags).ReadFrom(r) n += temp if err != nil { return n, err @@ -642,119 +584,90 @@ func (c BossEventOpUpdateStyle) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *BossEventOpUpdateProperties) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c BossEventOpUpdateProperties) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.UnsignedByte)(&c.Flags).ReadFrom(r) + temp, err = (*packet.UnsignedByte)(&c.Flags).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c BossEventOpUpdateProperties) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.UnsignedByte)(&c.Flags).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *BundleDelimiter) ReadFrom(r io.Reader) (int64, error) { +func (c *BundleDelimiter) ReadFrom(r io.Reader) (n int64, err error) { return 0, nil } -func (c BundleDelimiter) WriteTo(w io.Writer) (int64, error) { +func (c BundleDelimiter) WriteTo(w io.Writer) (n int64, err error) { + return 0, nil +} +func (c *ChangeDifficulty) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*Int8VarIntArray)(&c.Difficulty).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Locked).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c ChangeDifficulty) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*Int8VarIntArray)(&c.Difficulty).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Locked).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *ChunkBatchFinished) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BatchSize).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c ChunkBatchFinished) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BatchSize).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *ChunkBatchStart) ReadFrom(r io.Reader) (n int64, err error) { return 0, nil } -func (c *ChangeDifficulty) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Difficulty).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Locked).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c ChangeDifficulty) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = pk.Array(&c.Difficulty).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.Locked).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *ChunkBatchFinished) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.BatchSize).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c ChunkBatchFinished) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.BatchSize).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *ChunkBatchStart) ReadFrom(r io.Reader) (int64, error) { +func (c ChunkBatchStart) WriteTo(w io.Writer) (n int64, err error) { return 0, nil } - -func (c ChunkBatchStart) WriteTo(w io.Writer) (int64, error) { - return 0, nil -} - -func (c *ChunkBiomes) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ChunkBiomes) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.ChunkX).ReadFrom(r) + temp, err = (*packet.Int)(&c.ChunkX).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.ChunkZ).ReadFrom(r) + temp, err = (*packet.Int)(&c.ChunkZ).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.ByteArray)(&c.Data).ReadFrom(r) + temp, err = (*packet.ByteArray)(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -762,21 +675,28 @@ func (c *ChunkBiomes) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ChunkBiomes) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ChunkBiomes) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.ChunkX).WriteTo(w) + temp, err = (*packet.Int)(&c.ChunkX).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.ChunkZ).WriteTo(w) + temp, err = (*packet.Int)(&c.ChunkZ).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.ByteArray)(&c.Data).WriteTo(w) + temp, err = (*packet.ByteArray)(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *ClearTitles) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.Reset).ReadFrom(r) n += temp if err != nil { return n, err @@ -784,11 +704,18 @@ func (c ChunkBiomes) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *ClearTitles) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c ClearTitles) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.Reset).ReadFrom(r) + temp, err = (*packet.Boolean)(&c.Reset).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *CloseContainer) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WindowID).ReadFrom(r) n += temp if err != nil { return n, err @@ -796,47 +723,18 @@ func (c *ClearTitles) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ClearTitles) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CloseContainer) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Boolean)(&c.Reset).WriteTo(w) + temp, err = (*packet.VarInt)(&c.WindowID).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *CloseContainer) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CommandSuggestionsMatch) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.WindowID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c CloseContainer) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.WindowID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *CommandSuggestionsMatch) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.String)(&c.Match).ReadFrom(r) + temp, err = (*packet.String)(&c.Match).ReadFrom(r) n += temp if err != nil { return n, err @@ -849,11 +747,9 @@ func (c *CommandSuggestionsMatch) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CommandSuggestionsMatch) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CommandSuggestionsMatch) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.String)(&c.Match).WriteTo(w) + temp, err = (*packet.String)(&c.Match).WriteTo(w) n += temp if err != nil { return n, err @@ -865,27 +761,24 @@ func (c CommandSuggestionsMatch) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *CommandSuggestions) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CommandSuggestions) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.ID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Start).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Start).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Length).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Length).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Matches).ReadFrom(r) + temp, err = packet.Array(&c.Matches).ReadFrom(r) n += temp if err != nil { return n, err @@ -893,26 +786,38 @@ func (c *CommandSuggestions) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CommandSuggestions) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CommandSuggestions) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.ID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Start).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Start).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Length).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Length).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Matches).WriteTo(w) + temp, err = packet.Array(&c.Matches).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Commands) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Nodes).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.RootIndex).ReadFrom(r) n += temp if err != nil { return n, err @@ -920,55 +825,33 @@ func (c CommandSuggestions) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *Commands) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Commands) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Nodes).ReadFrom(r) + temp, err = packet.Array(&c.Nodes).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.RootIndex).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.RootIndex).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c Commands) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c *SetContainerContent) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Nodes).WriteTo(w) + temp, err = (*packet.VarInt)(&c.WindowID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.RootIndex).WriteTo(w) + temp, err = (*packet.VarInt)(&c.StateID).ReadFrom(r) n += temp if err != nil { return n, err } - return n, err -} - -func (c *SetContainerContent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.WindowID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.StateID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.Slots).ReadFrom(r) + temp, err = packet.Array(&c.Slots).ReadFrom(r) n += temp if err != nil { return n, err @@ -981,21 +864,19 @@ func (c *SetContainerContent) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c SetContainerContent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c SetContainerContent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.WindowID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.WindowID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.StateID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.StateID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Slots).WriteTo(w) + temp, err = packet.Array(&c.Slots).WriteTo(w) n += temp if err != nil { return n, err @@ -1007,22 +888,19 @@ func (c SetContainerContent) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *ContainerSetData) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ContainerSetData) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Byte)(&c.ContainerID).ReadFrom(r) + temp, err = (*packet.Byte)(&c.ContainerID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.ID).ReadFrom(r) + temp, err = (*packet.Short)(&c.ID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.Value).ReadFrom(r) + temp, err = (*packet.Short)(&c.Value).ReadFrom(r) n += temp if err != nil { return n, err @@ -1030,43 +908,38 @@ func (c *ContainerSetData) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ContainerSetData) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ContainerSetData) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Byte)(&c.ContainerID).WriteTo(w) + temp, err = (*packet.Byte)(&c.ContainerID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.ID).WriteTo(w) + temp, err = (*packet.Short)(&c.ID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.Value).WriteTo(w) + temp, err = (*packet.Short)(&c.Value).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *ContainerSetSlot) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ContainerSetSlot) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ContainerID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.ContainerID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.StateID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.StateID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.Slot).ReadFrom(r) + temp, err = (*packet.Short)(&c.Slot).ReadFrom(r) n += temp if err != nil { return n, err @@ -1079,21 +952,19 @@ func (c *ContainerSetSlot) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ContainerSetSlot) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ContainerSetSlot) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.ContainerID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.ContainerID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.StateID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.StateID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Short)(&c.Slot).WriteTo(w) + temp, err = (*packet.Short)(&c.Slot).WriteTo(w) n += temp if err != nil { return n, err @@ -1105,10 +976,7 @@ func (c ContainerSetSlot) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *CookieRequest) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CookieRequest) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Key).ReadFrom(r) n += temp @@ -1118,9 +986,7 @@ func (c *CookieRequest) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CookieRequest) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CookieRequest) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Key).WriteTo(w) n += temp @@ -1129,17 +995,14 @@ func (c CookieRequest) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *Cooldown) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Cooldown) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Identifier)(&c.CooldownGroup).ReadFrom(r) + temp, err = (*packet.Identifier)(&c.CooldownGroup).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Duration).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Duration).ReadFrom(r) n += temp if err != nil { return n, err @@ -1147,16 +1010,28 @@ func (c *Cooldown) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Cooldown) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Cooldown) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Identifier)(&c.CooldownGroup).WriteTo(w) + temp, err = (*packet.Identifier)(&c.CooldownGroup).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.Duration).WriteTo(w) + temp, err = (*packet.VarInt)(&c.Duration).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *CustomChatCompletions) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Action).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringVarIntArray)(&c.Entries).ReadFrom(r) n += temp if err != nil { return n, err @@ -1164,50 +1039,28 @@ func (c Cooldown) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *CustomChatCompletions) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c CustomChatCompletions) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.Action).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.Action).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = pk.Array(&c.Entries).ReadFrom(r) + temp, err = (*StringVarIntArray)(&c.Entries).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c CustomChatCompletions) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.Action).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = pk.Array(&c.Entries).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *CustomPayload) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *CustomPayload) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Channel).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.ByteArray)(&c.Data).ReadFrom(r) + temp, err = (*packet.ByteArray)(&c.Data).ReadFrom(r) n += temp if err != nil { return n, err @@ -1215,16 +1068,33 @@ func (c *CustomPayload) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c CustomPayload) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c CustomPayload) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Channel).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.ByteArray)(&c.Data).WriteTo(w) + temp, err = (*packet.ByteArray)(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *DamageEventPos) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) n += temp if err != nil { return n, err @@ -1232,70 +1102,43 @@ func (c CustomPayload) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *DamageEventPos) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c DamageEventPos) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Double)(&c.X).ReadFrom(r) + temp, err = (*packet.Double)(&c.X).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Y).ReadFrom(r) + temp, err = (*packet.Double)(&c.Y).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Z).ReadFrom(r) + temp, err = (*packet.Double)(&c.Z).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c DamageEventPos) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c *DamageEvent) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Double)(&c.X).WriteTo(w) + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Y).WriteTo(w) + temp, err = (*packet.VarInt)(&c.SourceType).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Z).WriteTo(w) + temp, err = (*packet.VarInt)(&c.SourceCauseID).ReadFrom(r) n += temp if err != nil { return n, err } - return n, err -} - -func (c *DamageEvent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.SourceType).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.SourceCauseID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.SourceDirectID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.SourceDirectID).ReadFrom(r) n += temp if err != nil { return n, err @@ -1308,26 +1151,24 @@ func (c *DamageEvent) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DamageEvent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DamageEvent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.SourceType).WriteTo(w) + temp, err = (*packet.VarInt)(&c.SourceType).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.SourceCauseID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.SourceCauseID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.SourceDirectID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.SourceDirectID).WriteTo(w) n += temp if err != nil { return n, err @@ -1339,17 +1180,14 @@ func (c DamageEvent) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *DebugSample) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *DebugSample) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Sample).ReadFrom(r) + temp, err = (*Int64VarIntArray)(&c.Sample).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.DebugSampleType).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.DebugSampleType).ReadFrom(r) n += temp if err != nil { return n, err @@ -1357,16 +1195,23 @@ func (c *DebugSample) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DebugSample) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DebugSample) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = pk.Array(&c.Sample).WriteTo(w) + temp, err = (*Int64VarIntArray)(&c.Sample).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.DebugSampleType).WriteTo(w) + temp, err = (*packet.VarInt)(&c.DebugSampleType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *DeleteChat) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.ByteArray)(&c.MessageSignature).ReadFrom(r) n += temp if err != nil { return n, err @@ -1374,33 +1219,16 @@ func (c DebugSample) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *DeleteChat) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c DeleteChat) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.ByteArray)(&c.MessageSignature).ReadFrom(r) + temp, err = (*packet.ByteArray)(&c.MessageSignature).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c DeleteChat) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.ByteArray)(&c.MessageSignature).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Disconnect) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *Disconnect) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Reason).ReadFrom(r) n += temp @@ -1410,9 +1238,7 @@ func (c *Disconnect) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Disconnect) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Disconnect) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Reason).WriteTo(w) n += temp @@ -1421,17 +1247,14 @@ func (c Disconnect) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *DisguisedChat) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *DisguisedChat) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Message).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.ByteArray)(&c.ChatType).ReadFrom(r) + temp, err = (*packet.ByteArray)(&c.ChatType).ReadFrom(r) n += temp if err != nil { return n, err @@ -1439,16 +1262,28 @@ func (c *DisguisedChat) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c DisguisedChat) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c DisguisedChat) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Message).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.ByteArray)(&c.ChatType).WriteTo(w) + temp, err = (*packet.ByteArray)(&c.ChatType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *EntityEvent) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.EventID).ReadFrom(r) n += temp if err != nil { return n, err @@ -1456,16 +1291,68 @@ func (c DisguisedChat) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *EntityEvent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c EntityEvent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.EntityID).ReadFrom(r) + temp, err = (*packet.Int)(&c.EntityID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.EventID).ReadFrom(r) + temp, err = (*packet.Byte)(&c.EventID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *TeleportEntity) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Yaw).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).ReadFrom(r) n += temp if err != nil { return n, err @@ -1473,16 +1360,73 @@ func (c *EntityEvent) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c EntityEvent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c TeleportEntity) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.EntityID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Byte)(&c.EventID).WriteTo(w) + temp, err = (*packet.Double)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Yaw).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Vec3) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) n += temp if err != nil { return n, err @@ -1490,179 +1434,38 @@ func (c EntityEvent) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *TeleportEntity) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c Vec3) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).ReadFrom(r) + temp, err = (*packet.Double)(&c.X).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.X).ReadFrom(r) + temp, err = (*packet.Double)(&c.Y).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Y).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Z).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.VelocityX).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.VelocityY).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.VelocityZ).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.Yaw).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.Pitch).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.OnGround).ReadFrom(r) + temp, err = (*packet.Double)(&c.Z).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c TeleportEntity) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c *Explode) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).WriteTo(w) + temp, err = (*packet.Double)(&c.CenterX).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.X).WriteTo(w) + temp, err = (*packet.Double)(&c.CenterY).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.Y).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Z).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.VelocityX).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.VelocityY).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.VelocityZ).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.Yaw).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.Pitch).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.OnGround).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Vec3) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Double)(&c.X).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Y).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Z).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c Vec3) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Double)(&c.X).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Y).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Z).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Explode) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Double)(&c.CenterX).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.CenterY).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.CenterZ).ReadFrom(r) + temp, err = (*packet.Double)(&c.CenterZ).ReadFrom(r) n += temp if err != nil { return n, err @@ -1675,21 +1478,19 @@ func (c *Explode) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c Explode) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c Explode) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Double)(&c.CenterX).WriteTo(w) + temp, err = (*packet.Double)(&c.CenterX).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.CenterY).WriteTo(w) + temp, err = (*packet.Double)(&c.CenterY).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Double)(&c.CenterZ).WriteTo(w) + temp, err = (*packet.Double)(&c.CenterZ).WriteTo(w) n += temp if err != nil { return n, err @@ -1701,17 +1502,14 @@ func (c Explode) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *ChunkPos) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ChunkPos) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.X).ReadFrom(r) + temp, err = (*packet.Int)(&c.X).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.Z).ReadFrom(r) + temp, err = (*packet.Int)(&c.Z).ReadFrom(r) n += temp if err != nil { return n, err @@ -1719,26 +1517,21 @@ func (c *ChunkPos) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ChunkPos) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ChunkPos) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.X).WriteTo(w) + temp, err = (*packet.Int)(&c.X).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.Z).WriteTo(w) + temp, err = (*packet.Int)(&c.Z).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *ForgetLevelChunk) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *ForgetLevelChunk) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Pos).ReadFrom(r) n += temp @@ -1748,9 +1541,7 @@ func (c *ForgetLevelChunk) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c ForgetLevelChunk) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c ForgetLevelChunk) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (&c.Pos).WriteTo(w) n += temp @@ -1759,17 +1550,14 @@ func (c ForgetLevelChunk) WriteTo(w io.Writer) (int64, error) { } return n, err } - -func (c *GameEvent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *GameEvent) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.UnsignedByte)(&c.Event).ReadFrom(r) + temp, err = (*packet.UnsignedByte)(&c.Event).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Param).ReadFrom(r) + temp, err = (*packet.Float)(&c.Param).ReadFrom(r) n += temp if err != nil { return n, err @@ -1777,16 +1565,33 @@ func (c *GameEvent) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c GameEvent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c GameEvent) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.UnsignedByte)(&c.Event).WriteTo(w) + temp, err = (*packet.UnsignedByte)(&c.Event).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Param).WriteTo(w) + temp, err = (*packet.Float)(&c.Param).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *OpenHorseScreen) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WindowID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.InventoryColumnsSize).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.EntityID).ReadFrom(r) n += temp if err != nil { return n, err @@ -1794,21 +1599,33 @@ func (c GameEvent) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *OpenHorseScreen) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c OpenHorseScreen) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.WindowID).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.WindowID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.InventoryColumnsSize).ReadFrom(r) + temp, err = (*packet.VarInt)(&c.InventoryColumnsSize).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.EntityID).ReadFrom(r) + temp, err = (*packet.Int)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *HurtAnimation) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Yaw).ReadFrom(r) n += temp if err != nil { return n, err @@ -1816,21 +1633,58 @@ func (c *OpenHorseScreen) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c OpenHorseScreen) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c HurtAnimation) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.WindowID).WriteTo(w) + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.VarInt)(&c.InventoryColumnsSize).WriteTo(w) + temp, err = (*packet.Float)(&c.Yaw).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.EntityID).WriteTo(w) + return n, err +} +func (c *InitializeWorldBorder) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.OldDiameter).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.NewDiameter).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarLong)(&c.Speed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PortalTeleportBoundary).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.WarningBlocks).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.WarningTime).ReadFrom(r) n += temp if err != nil { return n, err @@ -1838,16 +1692,53 @@ func (c OpenHorseScreen) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *HurtAnimation) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c InitializeWorldBorder) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).ReadFrom(r) + temp, err = (*packet.Double)(&c.X).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Float)(&c.Yaw).ReadFrom(r) + temp, err = (*packet.Double)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.OldDiameter).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.NewDiameter).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarLong)(&c.Speed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PortalTeleportBoundary).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.WarningBlocks).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.WarningTime).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *KeepAlive) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Long)(&c.ID).ReadFrom(r) n += temp if err != nil { return n, err @@ -1855,33 +1746,23 @@ func (c *HurtAnimation) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c HurtAnimation) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c KeepAlive) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.VarInt)(&c.EntityID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.Yaw).WriteTo(w) + temp, err = (*packet.Long)(&c.ID).WriteTo(w) n += temp if err != nil { return n, err } return n, err } - -func (c *LevelChunkWithLight) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error +func (c *LevelChunkWithLight) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.X).ReadFrom(r) + temp, err = (*packet.Int)(&c.X).ReadFrom(r) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.Z).ReadFrom(r) + temp, err = (*packet.Int)(&c.Z).ReadFrom(r) n += temp if err != nil { return n, err @@ -1894,16 +1775,3555 @@ func (c *LevelChunkWithLight) ReadFrom(r io.Reader) (int64, error) { return n, err } -func (c LevelChunkWithLight) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error +func (c LevelChunkWithLight) WriteTo(w io.Writer) (n int64, err error) { var temp int64 - temp, err = (*pk.Int)(&c.X).WriteTo(w) + temp, err = (*packet.Int)(&c.X).WriteTo(w) n += temp if err != nil { return n, err } - temp, err = (*pk.Int)(&c.Z).WriteTo(w) + temp, err = (*packet.Int)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *LevelEvent) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Type).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pos).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Data).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.GlobalEvent).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c LevelEvent) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Type).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pos).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.GlobalEvent).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *GlobalPos) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Dimension).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pos).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c GlobalPos) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Dimension).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pos).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *CommonPlayerSpawnInfo) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.DimensionType).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Identifier)(&c.Dimension).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Long)(&c.Seed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.GameType).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.PreviousGameType).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsDebug).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsFlat).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.LastDeathLocation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PortalCooldown).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SeaLevel).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c CommonPlayerSpawnInfo) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.DimensionType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Identifier)(&c.Dimension).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Long)(&c.Seed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.GameType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.PreviousGameType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsDebug).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsFlat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.LastDeathLocation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PortalCooldown).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SeaLevel).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Login) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.PlayerID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Hardcore).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringIdentifierVarIntArray)(&c.Levels).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.MaxPlayers).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.ChunkRadius).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SimulationDistance).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ReducedDebugInfo).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowDeathScreen).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.DoLimitedCrafting).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CommonPlayerSpawnInfo).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.EnforcesSecureChat).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Login) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.PlayerID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Hardcore).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringIdentifierVarIntArray)(&c.Levels).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.MaxPlayers).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.ChunkRadius).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SimulationDistance).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ReducedDebugInfo).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowDeathScreen).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.DoLimitedCrafting).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CommonPlayerSpawnInfo).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.EnforcesSecureChat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *MapIcon) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Type).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Direction).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.DisplayName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c MapIcon) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Type).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Direction).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.DisplayName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *MapData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.MapID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Scale).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Locked).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c MapData) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.MapID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Scale).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Locked).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *TradeOption) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Input).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Output).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasSecondInput).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasSecondInput { + temp, err = (&c.SecondInput).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.TradeDisabled).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.TradeUses).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.MaxTradeUses).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Experience).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.SpecialPrice).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.PriceMultiplier).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Demand).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c TradeOption) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Input).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Output).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasSecondInput).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasSecondInput { + temp, err = (&c.SecondInput).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.TradeDisabled).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.TradeUses).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.MaxTradeUses).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Experience).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.SpecialPrice).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.PriceMultiplier).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Demand).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *MerchantOffers) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WindowID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Offers).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Experience).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsRegular).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.CanRestock).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c MerchantOffers) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WindowID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Offers).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Experience).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsRegular).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.CanRestock).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateEntityPosition) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateEntityPosition) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateEntityPositionAndRotation) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Yaw).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateEntityPositionAndRotation) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.DeltaZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Yaw).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateEntityRotation) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Yaw).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateEntityRotation) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Yaw).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.OnGround).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *MinecartStep) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Yaw).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Weight).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c MinecartStep) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Yaw).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Weight).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *MoveMinecartAlongTrack) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Steps).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c MoveMinecartAlongTrack) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Steps).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *MoveVehicle) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Yaw).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c MoveVehicle) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Yaw).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *OpenBook) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Hand).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c OpenBook) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Hand).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *OpenSignEditor) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Location).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Front).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c OpenSignEditor) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Location).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Front).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Ping) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.ID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Ping) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.ID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PingResponse) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Long)(&c.Payload).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PingResponse) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Long)(&c.Payload).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlaceGhostRecipe) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WindowID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.RecipeDisplay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlaceGhostRecipe) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WindowID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.RecipeDisplay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerAbilities) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Byte)(&c.Flags).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.FlyingSpeed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.WalkingSpeed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerAbilities) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Byte)(&c.Flags).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.FlyingSpeed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.WalkingSpeed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *EndCombat) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Duration).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c EndCombat) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Duration).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *EnterCombat) ReadFrom(r io.Reader) (n int64, err error) { + return 0, nil +} + +func (c EnterCombat) WriteTo(w io.Writer) (n int64, err error) { + return 0, nil +} +func (c *CombatDeath) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.PlayerID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Message).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c CombatDeath) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.PlayerID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Message).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoRemove) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*UuidUUIDUUIDVarIntArray)(&c.UUIDs).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoRemove) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*UuidUUIDUUIDVarIntArray)(&c.UUIDs).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoAddPlayer) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.Name).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Properties).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoAddPlayer) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.Name).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Properties).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoChatData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.UUID)(&c.ChatSessionID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Session).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoChatData) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.UUID)(&c.ChatSessionID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Session).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoInitializeChat) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Data).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoInitializeChat) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoUpdateGameMode) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.GameMode).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoUpdateGameMode) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.GameMode).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoUpdateListed) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.Listed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoUpdateListed) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.Listed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoUpdateLatency) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Ping).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoUpdateLatency) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Ping).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoUpdateDisplayName) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.DisplayName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoUpdateDisplayName) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.DisplayName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoUpdateListPriority) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Priority).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoUpdateListPriority) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Priority).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerInfoUpdateHat) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.Visible).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerInfoUpdateHat) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.Visible).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *LookedAtEntity) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.LookType).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c LookedAtEntity) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.LookType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *LookAt) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.LookType).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.TargetX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.TargetY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.TargetZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasLookedAtEntity).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasLookedAtEntity { + c.LookedAtEntity = new(LookedAtEntity) + temp, err = (*LookedAtEntity)(c.LookedAtEntity).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c LookAt) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.LookType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.TargetX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.TargetY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.TargetZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasLookedAtEntity).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasLookedAtEntity { + temp, err = (*LookedAtEntity)(c.LookedAtEntity).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *PlayerPosition) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.YRot).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.XRot).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Flags).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerPosition) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.VelocityZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.YRot).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.XRot).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Flags).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PlayerRotation) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Yaw).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PlayerRotation) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Yaw).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RecipeIngredients) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Data).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c RecipeIngredients) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Recipe) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.RecipeID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Display).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.GroupID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CategoryID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasIngredients).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasIngredients { + temp, err = (&c.Ingredients).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Byte)(&c.Flags).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Recipe) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.RecipeID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Display).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.GroupID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CategoryID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasIngredients).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasIngredients { + temp, err = (&c.Ingredients).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Byte)(&c.Flags).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RecipeBookAdd) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Recipes).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Replace).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c RecipeBookAdd) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Recipes).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Replace).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RecipeBookRemove) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*Int32VarIntVarIntArray)(&c.Recipes).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c RecipeBookRemove) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*Int32VarIntVarIntArray)(&c.Recipes).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RecipeBookSettings) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.CraftingRecipeBookOpen).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.CraftingRecipeBookFilterEnabled).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmeltingRecipeBookOpen).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmeltingRecipeBookFilterEnabled).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.BlastingFurnaceRecipeBookOpen).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmokingRecipeBookOpen).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmokingRecipeBookFilterEnabled).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c RecipeBookSettings) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.CraftingRecipeBookOpen).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.CraftingRecipeBookFilterEnabled).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmeltingRecipeBookOpen).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmeltingRecipeBookFilterEnabled).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.BlastingFurnaceRecipeBookOpen).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmokingRecipeBookOpen).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SmokingRecipeBookFilterEnabled).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RemoveEntities) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*Int32VarIntVarIntArray)(&c.EntityIDs).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c RemoveEntities) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*Int32VarIntVarIntArray)(&c.EntityIDs).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RemoveMobEffect) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.EffectID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c RemoveMobEffect) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.EffectID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RemoveResourcePacket) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.HasUUID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasUUID { + temp, err = (*packet.UUID)(&c.UUID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c RemoveResourcePacket) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.HasUUID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasUUID { + temp, err = (*packet.UUID)(&c.UUID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *AddResourcePack) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.UUID)(&c.UUID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.URL).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.Hash).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Forced).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasPromptMessage).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasPromptMessage { + temp, err = (&c.PromptMessage).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c AddResourcePack) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.UUID)(&c.UUID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.URL).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.Hash).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Forced).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasPromptMessage).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasPromptMessage { + temp, err = (&c.PromptMessage).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *Respawn) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.CommonPlayerSpawnInfo).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.DataToKeep).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Respawn) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.CommonPlayerSpawnInfo).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.DataToKeep).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetHeadRotation) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.HeadYaw).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetHeadRotation) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.HeadYaw).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateSectionsBlocks) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Long)(&c.ChunkSectionPosition).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int64VarLongVarIntArray)(&c.Blocks).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateSectionsBlocks) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Long)(&c.ChunkSectionPosition).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int64VarLongVarIntArray)(&c.Blocks).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SelectAdvancementsTab) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.HasIdentifier).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasIdentifier { + temp, err = (*packet.Identifier)(&c.Identifier).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c SelectAdvancementsTab) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.HasIdentifier).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasIdentifier { + temp, err = (*packet.Identifier)(&c.Identifier).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *ServerData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.MOTD).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasIcon).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasIcon { + temp, err = (*Int8VarIntArray)(&c.Icon).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c ServerData) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.MOTD).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasIcon).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasIcon { + temp, err = (*Int8VarIntArray)(&c.Icon).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *SetActionBarText) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Text).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetActionBarText) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Text).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetBorderCenter) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetBorderCenter) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetBorderSize) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.Diameter).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetBorderSize) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.Diameter).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetBorderWarningDelay) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WarningTime).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetBorderWarningDelay) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WarningTime).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetBorderWarningDistance) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WarningBlocks).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetBorderWarningDistance) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.WarningBlocks).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetCamera) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.CameraID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetCamera) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.CameraID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetCenterChunk) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetCenterChunk) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetRenderDistance) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ViewDistance).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetRenderDistance) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ViewDistance).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetCursorItem) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.CarriedItem).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetCursorItem) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.CarriedItem).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetDefaultSpawnPosition) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Location).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Angle).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetDefaultSpawnPosition) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Location).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Angle).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *DisplayObjective) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Position).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.ScoreName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c DisplayObjective) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Position).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.ScoreName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetEntityMetadata) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Metadata).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetEntityMetadata) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Metadata).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetEntityLink) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.AttachedEntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.HoldingEntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetEntityLink) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.AttachedEntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.HoldingEntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetEquipment) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetEquipment) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetExperience) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.ExperienceBar).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TotalExperience).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetExperience) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.ExperienceBar).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Level).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TotalExperience).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetHealth) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Health).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Food).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.FoodSaturation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetHealth) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Health).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Food).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.FoodSaturation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetHeldItem) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Slot).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetHeldItem) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Slot).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *ObjectivesData) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Value).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasNumberFormat).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasNumberFormat { + c.NumberFormat = new(ScoreNumberFormat) + temp, err = (*ScoreNumberFormat)(c.NumberFormat).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c ObjectivesData) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Value).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasNumberFormat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasNumberFormat { + temp, err = (*ScoreNumberFormat)(c.NumberFormat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *UpdateObjectives) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.ObjectiveName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Mode).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.Mode == 0 { + temp, err = (&c.Create).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Mode == 2 { + temp, err = (&c.Update).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c UpdateObjectives) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.ObjectiveName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Mode).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.Mode == 0 { + temp, err = (&c.Create).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Mode == 2 { + temp, err = (&c.Update).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *SetPassengers) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int32VarIntVarIntArray)(&c.Passengers).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetPassengers) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int32VarIntVarIntArray)(&c.Passengers).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetPlayerInventory) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Slot).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Data).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetPlayerInventory) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Slot).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Data).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateTeams) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.TeamName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Type).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.Type == 0 { + temp, err = (&c.CreateTeam).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 1 { + temp, err = (&c.RemoveTeam).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 2 { + temp, err = (&c.UpdateTeam).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 3 { + temp, err = (&c.AddEntities).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 4 { + temp, err = (&c.RemoveEntities).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c UpdateTeams) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.TeamName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Type).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.Type == 0 { + temp, err = (&c.CreateTeam).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 1 { + temp, err = (&c.RemoveTeam).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 2 { + temp, err = (&c.UpdateTeam).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 3 { + temp, err = (&c.AddEntities).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.Type == 4 { + temp, err = (&c.RemoveEntities).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *UpdateTeamsCreateTeam) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.TeamDisplayName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.FriendlyFlags).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.NameTagVisibility).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CollisionRule).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TeamColor).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamPrefix).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamSuffix).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringStringVarIntArray)(&c.Entities).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateTeamsCreateTeam) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.TeamDisplayName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.FriendlyFlags).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.NameTagVisibility).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CollisionRule).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TeamColor).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamPrefix).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamSuffix).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringStringVarIntArray)(&c.Entities).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateTeamsRemoveTeam) ReadFrom(r io.Reader) (n int64, err error) { + return 0, nil +} + +func (c UpdateTeamsRemoveTeam) WriteTo(w io.Writer) (n int64, err error) { + return 0, nil +} +func (c *UpdateTeamsUpdateTeam) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.DisplayName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.FriendlyFlags).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.NameTagVisibility).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CollisionRule).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TeamColor).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamPrefix).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamSuffix).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateTeamsUpdateTeam) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.DisplayName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.FriendlyFlags).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.NameTagVisibility).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CollisionRule).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.TeamColor).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamPrefix).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.TeamSuffix).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateTeamsAddEntities) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*StringStringVarIntArray)(&c.Entities).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateTeamsAddEntities) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*StringStringVarIntArray)(&c.Entities).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateTeamsRemoveEntities) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*StringStringVarIntArray)(&c.Entities).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateTeamsRemoveEntities) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*StringStringVarIntArray)(&c.Entities).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *ScoreNumberFormat) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.NumberFormat).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.NumberFormat == 1 { + temp, err = packet.NBT(&c.StyledTag).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.NumberFormat == 2 { + temp, err = (&c.Content).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c ScoreNumberFormat) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.NumberFormat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.NumberFormat == 1 { + temp, err = packet.NBT(&c.StyledTag).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.NumberFormat == 2 { + temp, err = (&c.Content).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *UpdateScore) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.EntityName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.ObjectiveName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Value).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasDisplayName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasDisplayName { + temp, err = (&c.DisplayName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasScoreFormat).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasScoreFormat { + temp, err = (&c.NumberFormat).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c UpdateScore) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.EntityName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.ObjectiveName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Value).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasDisplayName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasDisplayName { + temp, err = (&c.DisplayName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasScoreFormat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasScoreFormat { + temp, err = (&c.NumberFormat).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *SetSimulationDistance) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Distance).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetSimulationDistance) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Distance).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetSubtitleText) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.SubtitleText).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetSubtitleText) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.SubtitleText).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetTime) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Long)(&c.WorldAge).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Long)(&c.TimeOfDay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.TimeOfDayIncreasing).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetTime) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Long)(&c.WorldAge).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Long)(&c.TimeOfDay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.TimeOfDayIncreasing).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetTitleText) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Text).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetTitleText) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Text).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetTitleAnimationTimes) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.FadeIn).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Stay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.FadeOut).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetTitleAnimationTimes) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.FadeIn).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Stay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.FadeOut).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SoundEffect) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.SoundID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.SoundID == 0 { + c.SoundEvent = new(component.SoundEvent) + temp, err = (*component.SoundEvent)(c.SoundEvent).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Int)(&c.EffectPositionX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.EffectPositionY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.EffectPositionZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Volume).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Long)(&c.Seed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SoundEffect) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.SoundID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.SoundID == 0 { + temp, err = (*component.SoundEvent)(c.SoundEvent).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Int)(&c.EffectPositionX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.EffectPositionY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.EffectPositionZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Volume).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Long)(&c.Seed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *EntitySoundEffect) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.SoundEvent).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SoundCategory).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.EntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Volume).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Seed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c EntitySoundEffect) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.SoundEvent).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.SoundCategory).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Volume).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Pitch).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Seed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateLight) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ChunkX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.ChunkZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Data).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateLight) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ChunkX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.ChunkZ).WriteTo(w) n += temp if err != nil { return n, err @@ -1916,514 +5336,354 @@ func (c LevelChunkWithLight) WriteTo(w io.Writer) (int64, error) { return n, err } -func (c *LevelEvent) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Int)(&c.Type).ReadFrom(r) - n += temp - if err != nil { +// Int8VarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice. +type Int8VarIntArray []int8 + +func (a Int8VarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (&c.Pos).ReadFrom(r) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.Byte(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } - temp, err = (*pk.Int)(&c.Data).ReadFrom(r) - n += temp - if err != nil { - return n, err + return n, nil +} + +func (a *Int8VarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn } - temp, err = (*pk.Boolean)(&c.GlobalEvent).ReadFrom(r) - n += temp - if err != nil { - return n, err + if size < 0 { + return n, errors.New("array length less than zero") } + + for i := 0; i < int(size); i++ { + var elem packet.Byte + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int8(elem)) + } + return n, err } -func (c LevelEvent) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Int)(&c.Type).WriteTo(w) - n += temp - if err != nil { +// StringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice. +type StringVarIntArray []string + +func (a StringVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (&c.Pos).WriteTo(w) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.String(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } - temp, err = (*pk.Int)(&c.Data).WriteTo(w) - n += temp - if err != nil { - return n, err + return n, nil +} + +func (a *StringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn } - temp, err = (*pk.Boolean)(&c.GlobalEvent).WriteTo(w) - n += temp - if err != nil { - return n, err + if size < 0 { + return n, errors.New("array length less than zero") } + + for i := 0; i < int(size); i++ { + var elem packet.String + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, string(elem)) + } + return n, err } -func (c *GlobalPos) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Identifier)(&c.Dimension).ReadFrom(r) - n += temp - if err != nil { +// Int64VarIntArray a utility type for encoding/decoding packet.Long -> int64[packet.VarInt] slice. +type Int64VarIntArray []int64 + +func (a Int64VarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (&c.Pos).ReadFrom(r) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.Long(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } + return n, nil +} + +func (a *Int64VarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.Long + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int64(elem)) + } + return n, err } -func (c GlobalPos) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Identifier)(&c.Dimension).WriteTo(w) - n += temp - if err != nil { +// StringIdentifierVarIntArray a utility type for encoding/decoding packet.Identifier -> string[packet.VarInt] slice. +type StringIdentifierVarIntArray []string + +func (a StringIdentifierVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (&c.Pos).WriteTo(w) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.Identifier(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } + return n, nil +} + +func (a *StringIdentifierVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + for i := 0; i < int(size); i++ { + var elem packet.Identifier + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, string(elem)) + } + return n, err } -func (c *CommonPlayerSpawnInfo) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.DimensionType).ReadFrom(r) - n += temp - if err != nil { +// UuidUUIDUUIDVarIntArray a utility type for encoding/decoding packet.UUID -> uuid.UUID[packet.VarInt] slice. +type UuidUUIDUUIDVarIntArray []uuid.UUID + +func (a UuidUUIDUUIDVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (*pk.Identifier)(&c.Dimension).ReadFrom(r) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.UUID(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } - temp, err = (*pk.Long)(&c.Seed).ReadFrom(r) - n += temp - if err != nil { - return n, err + return n, nil +} + +func (a *UuidUUIDUUIDVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn } - temp, err = (*pk.UnsignedByte)(&c.GameType).ReadFrom(r) - n += temp - if err != nil { - return n, err + if size < 0 { + return n, errors.New("array length less than zero") } - temp, err = (*pk.Byte)(&c.PreviousGameType).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.IsDebug).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.IsFlat).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.LastDeathLocation).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.PortalCooldown).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.SeaLevel).ReadFrom(r) - n += temp - if err != nil { - return n, err + + for i := 0; i < int(size); i++ { + var elem packet.UUID + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, uuid.UUID(elem)) } + return n, err } -func (c CommonPlayerSpawnInfo) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.DimensionType).WriteTo(w) - n += temp - if err != nil { +// Int32VarIntVarIntArray a utility type for encoding/decoding packet.VarInt -> int32[packet.VarInt] slice. +type Int32VarIntVarIntArray []int32 + +func (a Int32VarIntVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (*pk.Identifier)(&c.Dimension).WriteTo(w) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.VarInt(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } - temp, err = (*pk.Long)(&c.Seed).WriteTo(w) - n += temp - if err != nil { - return n, err + return n, nil +} + +func (a *Int32VarIntVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn } - temp, err = (*pk.UnsignedByte)(&c.GameType).WriteTo(w) - n += temp - if err != nil { - return n, err + if size < 0 { + return n, errors.New("array length less than zero") } - temp, err = (*pk.Byte)(&c.PreviousGameType).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.IsDebug).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.IsFlat).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.LastDeathLocation).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.PortalCooldown).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.SeaLevel).WriteTo(w) - n += temp - if err != nil { - return n, err + + for i := 0; i < int(size); i++ { + var elem packet.VarInt + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int32(elem)) } + return n, err } -func (c *Login) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.PlayerID).ReadFrom(r) - n += temp - if err != nil { +// Int64VarLongVarIntArray a utility type for encoding/decoding packet.VarLong -> int64[packet.VarInt] slice. +type Int64VarLongVarIntArray []int64 + +func (a Int64VarLongVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (*pk.Boolean)(&c.Hardcore).ReadFrom(r) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.VarLong(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } - temp, err = pk.Array(&c.Levels).ReadFrom(r) - n += temp - if err != nil { - return n, err + return n, nil +} + +func (a *Int64VarLongVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn } - temp, err = (*pk.VarInt)(&c.MaxPlayers).ReadFrom(r) - n += temp - if err != nil { - return n, err + if size < 0 { + return n, errors.New("array length less than zero") } - temp, err = (*pk.VarInt)(&c.ChunkRadius).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.SimulationDistance).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ReducedDebugInfo).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowDeathScreen).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.DoLimitedCrafting).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.CommonPlayerSpawnInfo).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.EnforcesSecureChat).ReadFrom(r) - n += temp - if err != nil { - return n, err + + for i := 0; i < int(size); i++ { + var elem packet.VarLong + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int64(elem)) } + return n, err } -func (c Login) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.PlayerID).WriteTo(w) - n += temp - if err != nil { +// StringStringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice. +type StringStringVarIntArray []string + +func (a StringStringVarIntArray) WriteTo(w io.Writer) (n int64, err error) { + size := len(a) + if nn, err := packet.VarInt(size).WriteTo(w); err != nil { return n, err + } else { + n += nn } - temp, err = (*pk.Boolean)(&c.Hardcore).WriteTo(w) - n += temp - if err != nil { - return n, err + for i := 0; i < size; i++ { + nn, err := packet.String(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } } - temp, err = pk.Array(&c.Levels).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.MaxPlayers).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.ChunkRadius).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.VarInt)(&c.SimulationDistance).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ReducedDebugInfo).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.ShowDeathScreen).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.DoLimitedCrafting).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.CommonPlayerSpawnInfo).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Boolean)(&c.EnforcesSecureChat).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err + return n, nil } -func (c *PlayerAbilities) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.UnsignedByte)(&c.Flags).ReadFrom(r) - n += temp - if err != nil { - return n, err +func (a *StringStringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { + var size packet.VarInt + if nn, err := size.ReadFrom(r); err != nil { + return nn, err + } else { + n += nn } - temp, err = (*pk.Float)(&c.FlyingSpeed).ReadFrom(r) - n += temp - if err != nil { - return n, err + if size < 0 { + return n, errors.New("array length less than zero") } - temp, err = (*pk.Float)(&c.WalkingSpeed).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} -func (c PlayerAbilities) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.UnsignedByte)(&c.Flags).WriteTo(w) - n += temp - if err != nil { - return n, err + for i := 0; i < int(size); i++ { + var elem packet.String + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, string(elem)) } - temp, err = (*pk.Float)(&c.FlyingSpeed).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.WalkingSpeed).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} -func (c *PositionMoveRotation) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Double)(&c.X).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Y).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Z).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.YRot).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.XRot).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c PositionMoveRotation) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.Double)(&c.X).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Y).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Double)(&c.Z).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.YRot).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.Float)(&c.XRot).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *PlayerPosition) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.ID).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.Change).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.UnsignedByte)(&c.Relatives).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c PlayerPosition) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (*pk.VarInt)(&c.ID).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (&c.Change).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.UnsignedByte)(&c.Relatives).WriteTo(w) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c *Respawn) ReadFrom(r io.Reader) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (&c.CommonPlayerSpawnInfo).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.UnsignedByte)(&c.DataToKeep).ReadFrom(r) - n += temp - if err != nil { - return n, err - } - return n, err -} - -func (c Respawn) WriteTo(w io.Writer) (int64, error) { - var n int64 - var err error - var temp int64 - temp, err = (&c.CommonPlayerSpawnInfo).WriteTo(w) - n += temp - if err != nil { - return n, err - } - temp, err = (*pk.UnsignedByte)(&c.DataToKeep).WriteTo(w) - n += temp - if err != nil { - return n, err - } return n, err } diff --git a/codec/packet/game/client/container_set_content.go b/codec/packet/game/client/container_set_content.go index 4175c86..8604bbf 100644 --- a/codec/packet/game/client/container_set_content.go +++ b/codec/packet/game/client/container_set_content.go @@ -1,6 +1,6 @@ package client -import "git.konjactw.dev/patyhank/minego/codec/data/slot" +import "git.konjactw.dev/patyhank/minego/codec/slot" //codec:gen type SetContainerContent struct { diff --git a/codec/packet/game/client/container_set_slot.go b/codec/packet/game/client/container_set_slot.go index 9e6e4d4..9d7a5f6 100644 --- a/codec/packet/game/client/container_set_slot.go +++ b/codec/packet/game/client/container_set_slot.go @@ -1,7 +1,7 @@ package client import ( - "git.konjactw.dev/patyhank/minego/codec/data/slot" + "git.konjactw.dev/patyhank/minego/codec/slot" "github.com/Tnze/go-mc/data/packetid" "github.com/Tnze/go-mc/net/packet" ) diff --git a/codec/packet/game/client/custom_report_details.go b/codec/packet/game/client/custom_report_details.go new file mode 100644 index 0000000..70836a0 --- /dev/null +++ b/codec/packet/game/client/custom_report_details.go @@ -0,0 +1,12 @@ +package client + +//codec:gen +type ReportDetails struct { + Title string + Description string +} + +//codec:gen +type CustomReportDetails struct { + Details []ReportDetails +} diff --git a/codec/packet/game/client/merchant_offers.go b/codec/packet/game/client/merchant_offers.go index da13c8e..928ee4d 100644 --- a/codec/packet/game/client/merchant_offers.go +++ b/codec/packet/game/client/merchant_offers.go @@ -1 +1,31 @@ package client + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot" +) + +//codec:gen +type TradeOption struct { + Input slot.TradeSlot + Output slot.Slot + HasSecondInput bool + //opt:optional:HasSecondInput + SecondInput slot.TradeSlot + TradeDisabled bool + TradeUses int32 + MaxTradeUses int32 + Experience int32 + SpecialPrice int32 + PriceMultiplier float32 + Demand int32 +} + +//codec:gen +type MerchantOffers struct { + WindowID int32 `mc:"VarInt"` + Offers []TradeOption + Level int32 `mc:"VarInt"` + Experience int32 `mc:"VarInt"` + IsRegular bool + CanRestock bool +} diff --git a/codec/packet/game/client/move_entity_pos.go b/codec/packet/game/client/move_entity_pos.go new file mode 100644 index 0000000..3814206 --- /dev/null +++ b/codec/packet/game/client/move_entity_pos.go @@ -0,0 +1,8 @@ +package client + +//codec:gen +type UpdateEntityPosition struct { + EntityID int32 `mc:"VarInt"` + DeltaX, DeltaY, DeltaZ int16 + OnGround bool +} diff --git a/codec/packet/game/client/move_entity_pos_rot.go b/codec/packet/game/client/move_entity_pos_rot.go new file mode 100644 index 0000000..d9d2989 --- /dev/null +++ b/codec/packet/game/client/move_entity_pos_rot.go @@ -0,0 +1,11 @@ +package client + +import pk "github.com/Tnze/go-mc/net/packet" + +//codec:gen +type UpdateEntityPositionAndRotation struct { + EntityID int32 `mc:"VarInt"` + DeltaX, DeltaY, DeltaZ int16 + Yaw, Pitch pk.Angle + OnGround bool +} diff --git a/codec/packet/game/client/move_entity_rot.go b/codec/packet/game/client/move_entity_rot.go new file mode 100644 index 0000000..e547d87 --- /dev/null +++ b/codec/packet/game/client/move_entity_rot.go @@ -0,0 +1,8 @@ +package client + +//codec:gen +type UpdateEntityRotation struct { + EntityID int32 `mc:"VarInt"` + Yaw, Pitch float32 + OnGround bool +} diff --git a/codec/packet/game/client/move_minecart_along_track.go b/codec/packet/game/client/move_minecart_along_track.go new file mode 100644 index 0000000..a47c454 --- /dev/null +++ b/codec/packet/game/client/move_minecart_along_track.go @@ -0,0 +1,17 @@ +package client + +import pk "github.com/Tnze/go-mc/net/packet" + +//codec:gen +type MinecartStep struct { + X, Y, Z float64 + VelocityX, VelocityY, VelocityZ float64 + Yaw, Pitch pk.Angle + Weight float32 +} + +//codec:gen +type MoveMinecartAlongTrack struct { + EntityID int32 `mc:"VarInt"` + Steps []MinecartStep +} diff --git a/codec/packet/game/client/move_vehicle.go b/codec/packet/game/client/move_vehicle.go new file mode 100644 index 0000000..d95ed2b --- /dev/null +++ b/codec/packet/game/client/move_vehicle.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type MoveVehicle struct { + X, Y, Z float64 + Yaw, Pitch float32 +} diff --git a/codec/packet/game/client/open_book.go b/codec/packet/game/client/open_book.go new file mode 100644 index 0000000..4ea2dbf --- /dev/null +++ b/codec/packet/game/client/open_book.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type OpenBook struct { + Hand int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/open_screen.go b/codec/packet/game/client/open_screen.go new file mode 100644 index 0000000..c7b98b5 --- /dev/null +++ b/codec/packet/game/client/open_screen.go @@ -0,0 +1,9 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +type OpenScreen struct { + WindowID int32 `mc:"VarInt"` + WindowType int32 `mc:"VarInt"` + WindowTitle chat.Message +} diff --git a/codec/packet/game/client/open_sign_editor.go b/codec/packet/game/client/open_sign_editor.go new file mode 100644 index 0000000..8014150 --- /dev/null +++ b/codec/packet/game/client/open_sign_editor.go @@ -0,0 +1,9 @@ +package client + +import pk "github.com/Tnze/go-mc/net/packet" + +//codec:gen +type OpenSignEditor struct { + Location pk.Position + Front bool +} diff --git a/codec/packet/game/client/ping.go b/codec/packet/game/client/ping.go new file mode 100644 index 0000000..8dc5510 --- /dev/null +++ b/codec/packet/game/client/ping.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type Ping struct { + ID int32 +} diff --git a/codec/packet/game/client/ping_response.go b/codec/packet/game/client/ping_response.go new file mode 100644 index 0000000..3b20335 --- /dev/null +++ b/codec/packet/game/client/ping_response.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type PingResponse struct { + Payload int64 +} diff --git a/codec/packet/game/client/place_ghost_recipe.go b/codec/packet/game/client/place_ghost_recipe.go new file mode 100644 index 0000000..2422ced --- /dev/null +++ b/codec/packet/game/client/place_ghost_recipe.go @@ -0,0 +1,9 @@ +package client + +import "git.konjactw.dev/patyhank/minego/codec/slot/display/recipe" + +//codec:gen +type PlaceGhostRecipe struct { + WindowID int32 `mc:"VarInt"` + RecipeDisplay recipe.Display +} diff --git a/codec/packet/game/client/player_abilities.go b/codec/packet/game/client/player_abilities.go index b84c041..6fbdda9 100644 --- a/codec/packet/game/client/player_abilities.go +++ b/codec/packet/game/client/player_abilities.go @@ -8,7 +8,7 @@ var _ ClientboundPacket = (*PlayerAbilities)(nil) //codec:gen type PlayerAbilities struct { - Flags uint8 + Flags int8 FlyingSpeed float32 WalkingSpeed float32 } diff --git a/codec/packet/game/client/player_combat_end.go b/codec/packet/game/client/player_combat_end.go new file mode 100644 index 0000000..50ac35a --- /dev/null +++ b/codec/packet/game/client/player_combat_end.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type EndCombat struct { + Duration int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/player_combat_enter.go b/codec/packet/game/client/player_combat_enter.go new file mode 100644 index 0000000..183d927 --- /dev/null +++ b/codec/packet/game/client/player_combat_enter.go @@ -0,0 +1,5 @@ +package client + +//codec:gen +type EnterCombat struct { +} diff --git a/codec/packet/game/client/player_combat_kill.go b/codec/packet/game/client/player_combat_kill.go new file mode 100644 index 0000000..9512fbf --- /dev/null +++ b/codec/packet/game/client/player_combat_kill.go @@ -0,0 +1,9 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +//codec:gen +type CombatDeath struct { + PlayerID int32 `mc:"VarInt"` + Message chat.Message +} diff --git a/codec/packet/game/client/player_info_remove.go b/codec/packet/game/client/player_info_remove.go new file mode 100644 index 0000000..5dcbd9c --- /dev/null +++ b/codec/packet/game/client/player_info_remove.go @@ -0,0 +1,10 @@ +package client + +import ( + "github.com/google/uuid" +) + +//codec:gen +type PlayerInfoRemove struct { + UUIDs []uuid.UUID `mc:"UUID"` +} diff --git a/codec/packet/game/client/player_info_update.go b/codec/packet/game/client/player_info_update.go new file mode 100644 index 0000000..e0d0688 --- /dev/null +++ b/codec/packet/game/client/player_info_update.go @@ -0,0 +1,224 @@ +package client + +import ( + "github.com/Tnze/go-mc/chat" + "github.com/Tnze/go-mc/chat/sign" + pk "github.com/Tnze/go-mc/net/packet" + "github.com/Tnze/go-mc/yggdrasil/user" + "github.com/google/uuid" + "io" +) + +type PlayerInfo interface { + pk.Field + playerInfoBitMask() int +} + +type PlayerInfoUpdate struct { + Players map[uuid.UUID][]PlayerInfo +} + +func (p PlayerInfoUpdate) WriteTo(w io.Writer) (n int64, err error) { + bitset := pk.NewFixedBitSet(8) + for _, infos := range p.Players { + for _, info := range infos { + bitset.Set(info.playerInfoBitMask(), true) + } + } + n1, err := bitset.WriteTo(w) + if err != nil { + return n1, err + } + n += n1 + n2, err := pk.VarInt(len(p.Players)).WriteTo(w) + if err != nil { + return n1 + n2, err + } + n += n2 + for playerUUID, infos := range p.Players { + n3, err := (*pk.UUID)(&playerUUID).WriteTo(w) + if err != nil { + return n1 + n2 + n3, err + } + n += n3 + for _, info := range infos { + n4, err := info.WriteTo(w) + if err != nil { + return n1 + n2 + n3 + n4, err + } + n += n4 + } + } + return +} + +func (p *PlayerInfoUpdate) ReadFrom(r io.Reader) (n int64, err error) { + bitset := pk.NewFixedBitSet(8) + n1, err := bitset.ReadFrom(r) + if err != nil { + return n1, err + } + m := make(map[uuid.UUID][]PlayerInfo) + + var playerLens pk.VarInt + n2, err := playerLens.ReadFrom(r) + if err != nil { + return n1 + n2, err + } + for i := 0; i < int(playerLens); i++ { + var playerUUID uuid.UUID + n3, err := (*pk.UUID)(&playerUUID).ReadFrom(r) + if err != nil { + return n1 + n2 + n3, err + } + var temp int64 + var infos []PlayerInfo + if bitset.Get(0x01) { + n4, err := playerInfoRead(&infos, &PlayerInfoAddPlayer{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + if bitset.Get(0x02) { + n4, err := playerInfoRead(&infos, &PlayerInfoInitializeChat{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + if bitset.Get(0x04) { + n4, err := playerInfoRead(&infos, &PlayerInfoUpdateGameMode{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + if bitset.Get(0x08) { + n4, err := playerInfoRead(&infos, &PlayerInfoUpdateListed{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + if bitset.Get(0x10) { + n4, err := playerInfoRead(&infos, &PlayerInfoUpdateLatency{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + if bitset.Get(0x20) { + n4, err := playerInfoRead(&infos, &PlayerInfoUpdateDisplayName{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + if bitset.Get(0x40) { + n4, err := playerInfoRead(&infos, &PlayerInfoUpdateListPriority{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + if bitset.Get(0x80) { + n4, err := playerInfoRead(&infos, &PlayerInfoUpdateHat{}, r) + if err != nil { + return n1 + n2 + n3 + n4, err + } + temp += n4 + } + + m[playerUUID] = infos + } + return +} + +func playerInfoRead(infos *[]PlayerInfo, info PlayerInfo, r io.Reader) (int64, error) { + n, err := info.ReadFrom(r) + if err != nil { + return n, err + } + *infos = append(*infos, info) + return n, err +} + +//codec:gen +type PlayerInfoAddPlayer struct { + Name string + Properties []user.Property +} + +//codec:gen +type PlayerInfoChatData struct { + ChatSessionID uuid.UUID `mc:"UUID"` + Session sign.Session +} + +//codec:gen +type PlayerInfoInitializeChat struct { + Data pk.Option[PlayerInfoChatData, *PlayerInfoChatData] +} + +//codec:gen +type PlayerInfoUpdateGameMode struct { + GameMode int32 `mc:"VarInt"` +} + +//codec:gen +type PlayerInfoUpdateListed struct { + Listed bool +} + +//codec:gen +type PlayerInfoUpdateLatency struct { + Ping int32 `mc:"VarInt"` +} + +//codec:gen +type PlayerInfoUpdateDisplayName struct { + DisplayName pk.Option[chat.Message, *chat.Message] +} + +//codec:gen +type PlayerInfoUpdateListPriority struct { + Priority int32 `mc:"VarInt"` +} + +//codec:gen +type PlayerInfoUpdateHat struct { + Visible bool +} + +func (PlayerInfoAddPlayer) playerInfoBitMask() int { + return 0x01 +} + +func (PlayerInfoInitializeChat) playerInfoBitMask() int { + return 0x02 +} + +func (PlayerInfoUpdateGameMode) playerInfoBitMask() int { + return 0x04 +} + +func (PlayerInfoUpdateListed) playerInfoBitMask() int { + return 0x08 +} + +func (PlayerInfoUpdateLatency) playerInfoBitMask() int { + return 0x10 +} + +func (PlayerInfoUpdateDisplayName) playerInfoBitMask() int { + return 0x20 +} + +func (PlayerInfoUpdateListPriority) playerInfoBitMask() int { + return 0x40 +} + +func (PlayerInfoUpdateHat) playerInfoBitMask() int { + return 0x80 +} diff --git a/codec/packet/game/client/player_look_at.go b/codec/packet/game/client/player_look_at.go new file mode 100644 index 0000000..d87ecc0 --- /dev/null +++ b/codec/packet/game/client/player_look_at.go @@ -0,0 +1,16 @@ +package client + +//codec:gen +type LookedAtEntity struct { + EntityID int32 `mc:"VarInt"` + LookType int32 `mc:"VarInt"` +} + +//codec:gen +type LookAt struct { + LookType int32 `mc:"VarInt"` // Feet = 0 Eyes = 1 + TargetX, TargetY, TargetZ float64 + HasLookedAtEntity bool + //opt:optional:HasLookedAtEntity + LookedAtEntity *LookedAtEntity +} diff --git a/codec/packet/game/client/player_position.go b/codec/packet/game/client/player_position.go index 2d9784d..b5349fd 100644 --- a/codec/packet/game/client/player_position.go +++ b/codec/packet/game/client/player_position.go @@ -6,17 +6,13 @@ import ( var _ ClientboundPacket = (*PlayerPosition)(nil) -//codec:gen -type PositionMoveRotation struct { - X, Y, Z float64 - YRot, XRot float32 -} - //codec:gen type PlayerPosition struct { - ID int32 `mc:"VarInt"` - Change PositionMoveRotation - Relatives uint8 + ID int32 `mc:"VarInt"` + X, Y, Z float64 + VelocityX, VelocityY, VelocityZ float64 + YRot, XRot float32 + Flags int32 } func (PlayerPosition) ClientboundPacketID() packetid.ClientboundPacketID { diff --git a/codec/packet/game/client/player_rotation.go b/codec/packet/game/client/player_rotation.go new file mode 100644 index 0000000..7095bf6 --- /dev/null +++ b/codec/packet/game/client/player_rotation.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type PlayerRotation struct { + Yaw float32 + Pitch float32 +} diff --git a/codec/packet/game/client/projectile_power.go b/codec/packet/game/client/projectile_power.go new file mode 100644 index 0000000..d2545cb --- /dev/null +++ b/codec/packet/game/client/projectile_power.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type ProjectilePower struct { + EntityID int32 + Power float64 +} diff --git a/codec/packet/game/client/recipe_book_add.go b/codec/packet/game/client/recipe_book_add.go new file mode 100644 index 0000000..799670c --- /dev/null +++ b/codec/packet/game/client/recipe_book_add.go @@ -0,0 +1,29 @@ +package client + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot/display/recipe" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type RecipeIngredients struct { + Data []pk.IDSet +} + +//codec:gen +type Recipe struct { + RecipeID int32 `mc:"VarInt"` + Display recipe.Display + GroupID int32 `mc:"VarInt"` + CategoryID int32 `mc:"VarInt"` + HasIngredients bool + //opt:optional:HasIngredients + Ingredients RecipeIngredients + Flags int8 +} + +//codec:gen +type RecipeBookAdd struct { + Recipes []Recipe + Replace bool +} diff --git a/codec/packet/game/client/recipe_book_remove.go b/codec/packet/game/client/recipe_book_remove.go new file mode 100644 index 0000000..d78c051 --- /dev/null +++ b/codec/packet/game/client/recipe_book_remove.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type RecipeBookRemove struct { + Recipes []int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/recipe_book_settings.go b/codec/packet/game/client/recipe_book_settings.go new file mode 100644 index 0000000..9946cbc --- /dev/null +++ b/codec/packet/game/client/recipe_book_settings.go @@ -0,0 +1,12 @@ +package client + +//codec:gen +type RecipeBookSettings struct { + CraftingRecipeBookOpen bool + CraftingRecipeBookFilterEnabled bool + SmeltingRecipeBookOpen bool + SmeltingRecipeBookFilterEnabled bool + BlastingFurnaceRecipeBookOpen bool + SmokingRecipeBookOpen bool + SmokingRecipeBookFilterEnabled bool +} diff --git a/codec/packet/game/client/remove_entities.go b/codec/packet/game/client/remove_entities.go new file mode 100644 index 0000000..490e0fd --- /dev/null +++ b/codec/packet/game/client/remove_entities.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type RemoveEntities struct { + EntityIDs []int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/remove_mob_effect.go b/codec/packet/game/client/remove_mob_effect.go new file mode 100644 index 0000000..19e0774 --- /dev/null +++ b/codec/packet/game/client/remove_mob_effect.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type RemoveMobEffect struct { + EntityID int32 + EffectID int32 +} diff --git a/codec/packet/game/client/reset_score.go b/codec/packet/game/client/reset_score.go new file mode 100644 index 0000000..da13c8e --- /dev/null +++ b/codec/packet/game/client/reset_score.go @@ -0,0 +1 @@ +package client diff --git a/codec/packet/game/client/resource_pack_pop.go b/codec/packet/game/client/resource_pack_pop.go new file mode 100644 index 0000000..6168208 --- /dev/null +++ b/codec/packet/game/client/resource_pack_pop.go @@ -0,0 +1,12 @@ +package client + +import ( + "github.com/google/uuid" +) + +//codec:gen +type RemoveResourcePacket struct { + HasUUID bool + //opt:optional:HasUUID + UUID uuid.UUID `mc:"UUID"` +} diff --git a/codec/packet/game/client/resource_pack_push.go b/codec/packet/game/client/resource_pack_push.go new file mode 100644 index 0000000..d4d5837 --- /dev/null +++ b/codec/packet/game/client/resource_pack_push.go @@ -0,0 +1,17 @@ +package client + +import ( + "github.com/Tnze/go-mc/chat" + "github.com/google/uuid" +) + +//codec:gen +type AddResourcePack struct { + UUID uuid.UUID `mc:"UUID"` + URL string + Hash string + Forced bool + HasPromptMessage bool + //opt:optional:HasPromptMessage + PromptMessage chat.Message +} diff --git a/codec/packet/game/client/rotate_head.go b/codec/packet/game/client/rotate_head.go new file mode 100644 index 0000000..8990c4b --- /dev/null +++ b/codec/packet/game/client/rotate_head.go @@ -0,0 +1,9 @@ +package client + +import pk "github.com/Tnze/go-mc/net/packet" + +//codec:gen +type SetHeadRotation struct { + EntityID int32 `mc:"VarInt"` + HeadYaw pk.Angle +} diff --git a/codec/packet/game/client/sections_blocks_update.go b/codec/packet/game/client/sections_blocks_update.go new file mode 100644 index 0000000..11e8074 --- /dev/null +++ b/codec/packet/game/client/sections_blocks_update.go @@ -0,0 +1,35 @@ +package client + +//codec:gen +type UpdateSectionsBlocks struct { + ChunkSectionPosition int64 + Blocks []int64 `mc:"VarLong"` +} + +func (s *UpdateSectionsBlocks) SetSectionPos(x, y, z int32) { + s.ChunkSectionPosition = ((int64(x) & 0x3FFFFF) << 42) | (int64(y) & 0xFFFFF) | ((int64(z) & 0x3FFFFF) << 20) +} + +func (s UpdateSectionsBlocks) ToSectionPos() (x, y, z int32) { + sectionX := int32(s.ChunkSectionPosition >> 42) + sectionY := int32(s.ChunkSectionPosition << 44 >> 44) + sectionZ := int32(s.ChunkSectionPosition >> 22 >> 42) + return sectionX, sectionY, sectionZ +} + +func (s *UpdateSectionsBlocks) AddBlock(x, y, z int, stateID int32) { + s.Blocks = append(s.Blocks, int64(stateID)<<12|(int64(x)<<8|int64(y)<<4|int64(z))) +} + +func (s UpdateSectionsBlocks) ParseBlocks() map[[3]int32]int32 { + m := make(map[[3]int32]int32) + for _, block := range s.Blocks { + blockStateId := block >> 12 + blockLocalX := (block >> 8) & 0xF + blockLocalY := block & 0xF + blockLocalZ := (block >> 4) & 0xF + + m[[3]int32{int32(blockLocalX), int32(blockLocalY), int32(blockLocalZ)}] = int32(blockStateId) + } + return m +} diff --git a/codec/packet/game/client/select_advancements_tab.go b/codec/packet/game/client/select_advancements_tab.go new file mode 100644 index 0000000..56dd204 --- /dev/null +++ b/codec/packet/game/client/select_advancements_tab.go @@ -0,0 +1,8 @@ +package client + +//codec:gen +type SelectAdvancementsTab struct { + HasIdentifier bool + //opt:optional:HasIdentifier + Identifier string `mc:"Identifier"` +} diff --git a/codec/packet/game/client/server_data.go b/codec/packet/game/client/server_data.go new file mode 100644 index 0000000..cb7616e --- /dev/null +++ b/codec/packet/game/client/server_data.go @@ -0,0 +1,13 @@ +package client + +import ( + "github.com/Tnze/go-mc/chat" +) + +//codec:gen +type ServerData struct { + MOTD chat.Message + HasIcon bool + //opt:optional:HasIcon + Icon []int8 `mc:"Byte"` +} diff --git a/codec/packet/game/client/server_links.go b/codec/packet/game/client/server_links.go new file mode 100644 index 0000000..4806545 --- /dev/null +++ b/codec/packet/game/client/server_links.go @@ -0,0 +1,16 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +type ServerLinkData struct { + IsBuiltin bool + //opt:enum:IsBuiltin:true + Type int32 `mc:"VarInt"` + //opt:enum:IsBuiltin:false + Name chat.Message + URL string +} + +//codec:gen +type ServerLinks struct { +} diff --git a/codec/packet/game/client/set_action_bar_text.go b/codec/packet/game/client/set_action_bar_text.go new file mode 100644 index 0000000..a28637f --- /dev/null +++ b/codec/packet/game/client/set_action_bar_text.go @@ -0,0 +1,8 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +//codec:gen +type SetActionBarText struct { + Text chat.Message +} diff --git a/codec/packet/game/client/set_border_center.go b/codec/packet/game/client/set_border_center.go new file mode 100644 index 0000000..36a1a6d --- /dev/null +++ b/codec/packet/game/client/set_border_center.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetBorderCenter struct { + X, Z float64 +} diff --git a/codec/packet/game/client/set_border_lerp_size.go b/codec/packet/game/client/set_border_lerp_size.go new file mode 100644 index 0000000..bc14c09 --- /dev/null +++ b/codec/packet/game/client/set_border_lerp_size.go @@ -0,0 +1,6 @@ +package client + +type SetBorderLerpSize struct { + OldDiameter, NewDiameter float64 + Speed int64 `mc:"VarLong"` +} diff --git a/codec/packet/game/client/set_border_size.go b/codec/packet/game/client/set_border_size.go new file mode 100644 index 0000000..e855842 --- /dev/null +++ b/codec/packet/game/client/set_border_size.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetBorderSize struct { + Diameter float64 +} diff --git a/codec/packet/game/client/set_border_warning_delay.go b/codec/packet/game/client/set_border_warning_delay.go new file mode 100644 index 0000000..e6ab2f8 --- /dev/null +++ b/codec/packet/game/client/set_border_warning_delay.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetBorderWarningDelay struct { + WarningTime int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_border_warning_distance.go b/codec/packet/game/client/set_border_warning_distance.go new file mode 100644 index 0000000..86fd80e --- /dev/null +++ b/codec/packet/game/client/set_border_warning_distance.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetBorderWarningDistance struct { + WarningBlocks int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_camera.go b/codec/packet/game/client/set_camera.go new file mode 100644 index 0000000..f31bd65 --- /dev/null +++ b/codec/packet/game/client/set_camera.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetCamera struct { + CameraID int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_chunk_cache_center.go b/codec/packet/game/client/set_chunk_cache_center.go new file mode 100644 index 0000000..723bf20 --- /dev/null +++ b/codec/packet/game/client/set_chunk_cache_center.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetCenterChunk struct { + X, Z int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_chunk_cache_radius.go b/codec/packet/game/client/set_chunk_cache_radius.go new file mode 100644 index 0000000..1f96e7a --- /dev/null +++ b/codec/packet/game/client/set_chunk_cache_radius.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetRenderDistance struct { + ViewDistance int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_cursor_item.go b/codec/packet/game/client/set_cursor_item.go new file mode 100644 index 0000000..2dcd3fd --- /dev/null +++ b/codec/packet/game/client/set_cursor_item.go @@ -0,0 +1,8 @@ +package client + +import "git.konjactw.dev/patyhank/minego/codec/slot" + +//codec:gen +type SetCursorItem struct { + CarriedItem slot.Slot +} diff --git a/codec/packet/game/client/set_default_spawn_position.go b/codec/packet/game/client/set_default_spawn_position.go new file mode 100644 index 0000000..dab8219 --- /dev/null +++ b/codec/packet/game/client/set_default_spawn_position.go @@ -0,0 +1,9 @@ +package client + +import pk "github.com/Tnze/go-mc/net/packet" + +//codec:gen +type SetDefaultSpawnPosition struct { + Location pk.Position + Angle float32 +} diff --git a/codec/packet/game/client/set_display_objective.go b/codec/packet/game/client/set_display_objective.go new file mode 100644 index 0000000..7bfe920 --- /dev/null +++ b/codec/packet/game/client/set_display_objective.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type DisplayObjective struct { + Position int32 `mc:"VarInt"` + ScoreName string +} diff --git a/codec/packet/game/client/set_entity_data.go b/codec/packet/game/client/set_entity_data.go new file mode 100644 index 0000000..ff62529 --- /dev/null +++ b/codec/packet/game/client/set_entity_data.go @@ -0,0 +1,11 @@ +package client + +import ( + "git.konjactw.dev/patyhank/minego/codec/metadata" +) + +//codec:gen +type SetEntityMetadata struct { + EntityID int32 `mc:"VarInt"` + Metadata metadata.EntityMetadata +} diff --git a/codec/packet/game/client/set_entity_link.go b/codec/packet/game/client/set_entity_link.go new file mode 100644 index 0000000..e3f4e7d --- /dev/null +++ b/codec/packet/game/client/set_entity_link.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type SetEntityLink struct { + AttachedEntityID int32 + HoldingEntityID int32 // leader, -1 to detach +} diff --git a/codec/packet/game/client/set_entity_motion.go b/codec/packet/game/client/set_entity_motion.go new file mode 100644 index 0000000..1ab11c1 --- /dev/null +++ b/codec/packet/game/client/set_entity_motion.go @@ -0,0 +1,6 @@ +package client + +type SetEntityVelocity struct { + EntityID int32 `mc:"VarInt"` + VelocityX, VelocityY, VelocityZ int16 +} diff --git a/codec/packet/game/client/set_equipment.go b/codec/packet/game/client/set_equipment.go new file mode 100644 index 0000000..68d0cdc --- /dev/null +++ b/codec/packet/game/client/set_equipment.go @@ -0,0 +1,67 @@ +package client + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot" + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +type EquipmentData struct { + Slot int8 + Item slot.Slot +} + +type Equipment []EquipmentData + +func (e Equipment) WriteTo(w io.Writer) (n int64, err error) { + for i, equipment := range e { + b := equipment.Slot + if len(e)-1 == i { + b |= -128 + } + + n1, err := pk.Byte(b).WriteTo(w) + n += n1 + if err != nil { + return n, err + } + n2, err := equipment.Item.WriteTo(w) + n += n2 + if err != nil { + return n, err + } + } + return +} + +func (e *Equipment) ReadFrom(r io.Reader) (n int64, err error) { + for { + var b pk.Byte + n1, err := b.ReadFrom(r) + n += n1 + if err != nil { + return n, err + } + + var equipment EquipmentData + equipment.Slot = int8(b & 127) + n2, err := equipment.Item.ReadFrom(r) + n += n2 + if err != nil { + return n, err + } + + *e = append(*e, equipment) + if n&-128 == 0 { + break + } + } + + return +} + +//codec:gen +type SetEquipment struct { + EntityID int32 `mc:"VarInt"` + Equipment +} diff --git a/codec/packet/game/client/set_experience.go b/codec/packet/game/client/set_experience.go new file mode 100644 index 0000000..3375347 --- /dev/null +++ b/codec/packet/game/client/set_experience.go @@ -0,0 +1,8 @@ +package client + +//codec:gen +type SetExperience struct { + ExperienceBar float32 + Level int32 `mc:"VarInt"` + TotalExperience int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_health.go b/codec/packet/game/client/set_health.go new file mode 100644 index 0000000..67d5b7c --- /dev/null +++ b/codec/packet/game/client/set_health.go @@ -0,0 +1,10 @@ +package client + +import "git.konjactw.dev/patyhank/minego/codec/metadata" + +//codec:gen +type SetHealth struct { + Health float32 + Food metadata.VarInt + FoodSaturation float32 +} diff --git a/codec/packet/game/client/set_held_slot.go b/codec/packet/game/client/set_held_slot.go new file mode 100644 index 0000000..3483a16 --- /dev/null +++ b/codec/packet/game/client/set_held_slot.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetHeldItem struct { + Slot int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_objective.go b/codec/packet/game/client/set_objective.go new file mode 100644 index 0000000..86488b3 --- /dev/null +++ b/codec/packet/game/client/set_objective.go @@ -0,0 +1,29 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +//codec:gen +type ObjectivesData struct { + Value chat.Message + HasNumberFormat bool + //opt:optional:HasNumberFormat + NumberFormat *ScoreNumberFormat +} + +type ObjectivesCreateData struct { + ObjectivesData +} + +type ObjectivesUpdateData struct { + ObjectivesData +} + +//codec:gen +type UpdateObjectives struct { + ObjectiveName string + Mode int8 + //opt:enum:Mode:0 + Create ObjectivesCreateData + //opt:enum:Mode:2 + Update ObjectivesUpdateData +} diff --git a/codec/packet/game/client/set_passengers.go b/codec/packet/game/client/set_passengers.go new file mode 100644 index 0000000..a1716d9 --- /dev/null +++ b/codec/packet/game/client/set_passengers.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type SetPassengers struct { + EntityID int32 `mc:"VarInt"` + Passengers []int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_player_inventory.go b/codec/packet/game/client/set_player_inventory.go new file mode 100644 index 0000000..6c16797 --- /dev/null +++ b/codec/packet/game/client/set_player_inventory.go @@ -0,0 +1,9 @@ +package client + +import "git.konjactw.dev/patyhank/minego/codec/slot" + +//codec:gen +type SetPlayerInventory struct { + Slot int32 `mc:"VarInt"` + Data slot.Slot +} diff --git a/codec/packet/game/client/set_player_team.go b/codec/packet/game/client/set_player_team.go new file mode 100644 index 0000000..0a07cd0 --- /dev/null +++ b/codec/packet/game/client/set_player_team.go @@ -0,0 +1,58 @@ +package client + +import ( + "github.com/Tnze/go-mc/chat" +) + +//codec:gen +type UpdateTeams struct { + TeamName string + Type int8 + //opt:enum:Type:0 + CreateTeam UpdateTeamsCreateTeam + //opt:enum:Type:1 + RemoveTeam UpdateTeamsRemoveTeam + //opt:enum:Type:2 + UpdateTeam UpdateTeamsUpdateTeam + //opt:enum:Type:3 + AddEntities UpdateTeamsAddEntities + //opt:enum:Type:4 + RemoveEntities UpdateTeamsRemoveEntities +} + +//codec:gen +type UpdateTeamsCreateTeam struct { + TeamDisplayName chat.Message + FriendlyFlags int8 + NameTagVisibility int32 `mc:"VarInt"` + CollisionRule int32 `mc:"VarInt"` + TeamColor int32 `mc:"VarInt"` + TeamPrefix chat.Message + TeamSuffix chat.Message + Entities []string `mc:"String"` +} + +//codec:gen +type UpdateTeamsRemoveTeam struct { +} + +//codec:gen +type UpdateTeamsUpdateTeam struct { + DisplayName chat.Message + FriendlyFlags int8 + NameTagVisibility int32 `mc:"VarInt"` + CollisionRule int32 `mc:"VarInt"` + TeamColor int32 `mc:"VarInt"` + TeamPrefix chat.Message + TeamSuffix chat.Message +} + +//codec:gen +type UpdateTeamsAddEntities struct { + Entities []string `mc:"String"` +} + +//codec:gen +type UpdateTeamsRemoveEntities struct { + Entities []string `mc:"String"` +} diff --git a/codec/packet/game/client/set_score.go b/codec/packet/game/client/set_score.go new file mode 100644 index 0000000..787d30c --- /dev/null +++ b/codec/packet/game/client/set_score.go @@ -0,0 +1,28 @@ +package client + +import ( + "github.com/Tnze/go-mc/chat" + "github.com/Tnze/go-mc/nbt" +) + +//codec:gen +type ScoreNumberFormat struct { + NumberFormat int32 + //opt:enum:NumberFormat:1 + StyledTag nbt.RawMessage `mc:"NBT"` + //opt:enum:NumberFormat:2 + Content chat.Message +} + +//codec:gen +type UpdateScore struct { + EntityName string + ObjectiveName string + Value int32 `mc:"VarInt"` + HasDisplayName bool + //opt:optional:HasDisplayName + DisplayName chat.Message + HasScoreFormat bool + //opt:optional:HasScoreFormat + NumberFormat ScoreNumberFormat +} diff --git a/codec/packet/game/client/set_simulation_distance.go b/codec/packet/game/client/set_simulation_distance.go new file mode 100644 index 0000000..1afabb3 --- /dev/null +++ b/codec/packet/game/client/set_simulation_distance.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type SetSimulationDistance struct { + Distance int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/set_subtitle_text.go b/codec/packet/game/client/set_subtitle_text.go new file mode 100644 index 0000000..dc72ee8 --- /dev/null +++ b/codec/packet/game/client/set_subtitle_text.go @@ -0,0 +1,8 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +//codec:gen +type SetSubtitleText struct { + SubtitleText chat.Message +} diff --git a/codec/packet/game/client/set_time.go b/codec/packet/game/client/set_time.go new file mode 100644 index 0000000..8156b94 --- /dev/null +++ b/codec/packet/game/client/set_time.go @@ -0,0 +1,8 @@ +package client + +//codec:gen +type SetTime struct { + WorldAge int64 + TimeOfDay int64 + TimeOfDayIncreasing bool +} diff --git a/codec/packet/game/client/set_title_text.go b/codec/packet/game/client/set_title_text.go new file mode 100644 index 0000000..0fcb31f --- /dev/null +++ b/codec/packet/game/client/set_title_text.go @@ -0,0 +1,8 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +//codec:gen +type SetTitleText struct { + Text chat.Message +} diff --git a/codec/packet/game/client/set_titles_animation.go b/codec/packet/game/client/set_titles_animation.go new file mode 100644 index 0000000..9a27590 --- /dev/null +++ b/codec/packet/game/client/set_titles_animation.go @@ -0,0 +1,8 @@ +package client + +//codec:gen +type SetTitleAnimationTimes struct { + FadeIn int32 + Stay int32 + FadeOut int32 +} diff --git a/codec/packet/game/client/show_dialog.go b/codec/packet/game/client/show_dialog.go new file mode 100644 index 0000000..edaefc0 --- /dev/null +++ b/codec/packet/game/client/show_dialog.go @@ -0,0 +1,11 @@ +package client + +import ( + "github.com/Tnze/go-mc/nbt" +) + +type ShowDialog struct { + DialogID int32 `mc:"VarInt"` + //opt:id:DialogID + DialogData nbt.RawMessage `mc:"NBT"` +} diff --git a/codec/packet/game/client/sound.go b/codec/packet/game/client/sound.go new file mode 100644 index 0000000..a2e1bc3 --- /dev/null +++ b/codec/packet/game/client/sound.go @@ -0,0 +1,13 @@ +package client + +import "git.konjactw.dev/patyhank/minego/codec/component" + +//codec:gen +type SoundEffect struct { + SoundID int32 `mc:"VarInt"` + //opt:id:SoundID + SoundEvent *component.SoundEvent + EffectPositionX, EffectPositionY, EffectPositionZ int32 + Volume, Pitch float32 + Seed int64 +} diff --git a/codec/packet/game/client/sound_entity.go b/codec/packet/game/client/sound_entity.go new file mode 100644 index 0000000..075c37e --- /dev/null +++ b/codec/packet/game/client/sound_entity.go @@ -0,0 +1,16 @@ +package client + +import ( + "git.konjactw.dev/patyhank/minego/codec/component" + "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type EntitySoundEffect struct { + SoundEvent packet.OptID[component.SoundEvent, *component.SoundEvent] + SoundCategory int32 `mc:"VarInt"` + EntityID int32 `mc:"VarInt"` + Volume float32 + Pitch float32 + Seed int32 +} diff --git a/codec/packet/game/client/start_configuration.go b/codec/packet/game/client/start_configuration.go new file mode 100644 index 0000000..35dacbb --- /dev/null +++ b/codec/packet/game/client/start_configuration.go @@ -0,0 +1,5 @@ +package client + +//codec:gen +type StartConfiguration struct { +} diff --git a/codec/packet/game/client/stop_sound.go b/codec/packet/game/client/stop_sound.go new file mode 100644 index 0000000..b553f64 --- /dev/null +++ b/codec/packet/game/client/stop_sound.go @@ -0,0 +1,34 @@ +package client + +import ( + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +type StopSound struct { + Flags int8 + Source int32 `mc:"VarInt"` + Sound string `mc:"Identifier"` +} + +func (s StopSound) WriteTo(w io.Writer) (n int64, err error) { + pk.Byte(s.Flags).WriteTo(w) + if s.Flags&0x01 != 0 { + pk.VarInt(s.Source).WriteTo(w) + } + if s.Flags&0x02 != 0 { + pk.Identifier(s.Sound).WriteTo(w) + } + return +} + +func (s *StopSound) ReadFrom(r io.Reader) (n int64, err error) { + (*pk.Byte)(&s.Flags).ReadFrom(r) + if s.Flags&0x01 != 0 { + (*pk.VarInt)(&s.Source).ReadFrom(r) + } + if s.Flags&0x02 != 0 { + (*pk.Identifier)(&s.Sound).ReadFrom(r) + } + return +} diff --git a/codec/packet/game/client/store_cookie.go b/codec/packet/game/client/store_cookie.go new file mode 100644 index 0000000..2d706d6 --- /dev/null +++ b/codec/packet/game/client/store_cookie.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type StoreCookie struct { + Key string `mc:"Identifier"` + Payload []int8 `mc:"Byte"` +} diff --git a/codec/packet/game/client/system_chat.go b/codec/packet/game/client/system_chat.go new file mode 100644 index 0000000..ca64832 --- /dev/null +++ b/codec/packet/game/client/system_chat.go @@ -0,0 +1,9 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +//codec:gen +type SystemChatMessage struct { + Content chat.Message + Overlay bool +} diff --git a/codec/packet/game/client/tab_list.go b/codec/packet/game/client/tab_list.go new file mode 100644 index 0000000..acca0a7 --- /dev/null +++ b/codec/packet/game/client/tab_list.go @@ -0,0 +1,8 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +type SetTabListHeaderAndFooter struct { + Header chat.Message + Footer chat.Message +} diff --git a/codec/packet/game/client/tag_query.go b/codec/packet/game/client/tag_query.go new file mode 100644 index 0000000..ded20f7 --- /dev/null +++ b/codec/packet/game/client/tag_query.go @@ -0,0 +1,9 @@ +package client + +import "github.com/Tnze/go-mc/nbt" + +//codec:gen +type TagQueryResponse struct { + TransactionID int32 `mc:"VarInt"` + NBT nbt.RawMessage `mc:"NBT"` +} diff --git a/codec/packet/game/client/take_item_entity.go b/codec/packet/game/client/take_item_entity.go new file mode 100644 index 0000000..f26701a --- /dev/null +++ b/codec/packet/game/client/take_item_entity.go @@ -0,0 +1,8 @@ +package client + +//codec:gen +type PickupItem struct { + CollectedEntityID int32 `mc:"VarInt"` + CollectorEntityID int32 `mc:"VarInt"` + PickupItemCount int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/teleport_entity.go b/codec/packet/game/client/teleport_entity.go new file mode 100644 index 0000000..14380ec --- /dev/null +++ b/codec/packet/game/client/teleport_entity.go @@ -0,0 +1,10 @@ +package client + +type SynchronizeVehiclePosition struct { + EntityID int32 `mc:"VarInt"` + X, Y, Z float64 + VelocityX, VelocityY, VelocityZ float64 + Yaw, Pitch float32 + Flags int32 + OnGround bool +} diff --git a/codec/packet/game/client/test_instance_block_status.go b/codec/packet/game/client/test_instance_block_status.go new file mode 100644 index 0000000..1015515 --- /dev/null +++ b/codec/packet/game/client/test_instance_block_status.go @@ -0,0 +1,15 @@ +package client + +import "github.com/Tnze/go-mc/chat" + +//codec:gen +type TestInstanceBlockStatus struct { + Status chat.Message + HasSize bool + //opt:optional:HasSize + SizeX float64 + //opt:optional:HasSize + SizeY float64 + //opt:optional:HasSize + SizeZ float64 +} diff --git a/codec/packet/game/client/ticking_state.go b/codec/packet/game/client/ticking_state.go new file mode 100644 index 0000000..83ee5dd --- /dev/null +++ b/codec/packet/game/client/ticking_state.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type SetTickingState struct { + TickRate float32 + IsFrozen bool +} diff --git a/codec/packet/game/client/ticking_step.go b/codec/packet/game/client/ticking_step.go new file mode 100644 index 0000000..f92b57c --- /dev/null +++ b/codec/packet/game/client/ticking_step.go @@ -0,0 +1,6 @@ +package client + +//codec:gen +type StepTick struct { + TickSteps int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/transfer.go b/codec/packet/game/client/transfer.go new file mode 100644 index 0000000..8d8886a --- /dev/null +++ b/codec/packet/game/client/transfer.go @@ -0,0 +1,7 @@ +package client + +//codec:gen +type Transfer struct { + Host string + Port int32 `mc:"VarInt"` +} diff --git a/codec/packet/game/client/update_advancements.go b/codec/packet/game/client/update_advancements.go new file mode 100644 index 0000000..d233ad1 --- /dev/null +++ b/codec/packet/game/client/update_advancements.go @@ -0,0 +1,54 @@ +package client + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot" + "github.com/Tnze/go-mc/chat" +) + +//codec:gen +type AdvancementDisplay struct { + Title chat.Message + Description chat.Message + Icon slot.Slot + FrameType int32 `mc:"VarInt"` + Flags int32 + HasBackgroundTexture bool + //opt:optional:HasBackgroundTexture + BackgroundTexture string `mc:"Identifier"` + X, Y float32 +} + +//codec:gen +type AdvancementRequirements struct { + OR []string +} + +//codec:gen +type Advancement struct { + ID string `mc:"Identifier"` + HasParentID bool + //opt:optional:HasParentID + ParentID string + HasDisplayData bool + //opt:optional:HasDisplayData + DisplayData AdvancementDisplay + Requirements []AdvancementRequirements + SendTelemetryData bool +} + +type AdvancementProgress struct { + ID string `mc:"Identifier"` + CriterionId string `mc:"Identifier"` + HasAchieved bool + //opt:optional:HasAchieved + AchievingDate int64 +} + +//codec:gen +type UpdateAdvancements struct { + Clear bool + Advancements []Advancement + RemovedIds []string `mc:"Identifier"` + Progress []AdvancementProgress + ShowAdvancementsToast bool +} diff --git a/codec/packet/game/client/update_attributes.go b/codec/packet/game/client/update_attributes.go new file mode 100644 index 0000000..1c7c73d --- /dev/null +++ b/codec/packet/game/client/update_attributes.go @@ -0,0 +1,21 @@ +package client + +//codec:gen +type AttributeModifier struct { + Id string `mc:"Identifier"` + Amount float64 + Operation int8 +} + +//codec:gen +type Attribute struct { + Id int32 `mc:"VarInt"` + Value float64 + Modifiers []AttributeModifier +} + +//codec:gen +type UpdateAttributes struct { + EntityID int32 `mc:"VarInt"` + Attributes []Attribute +} diff --git a/codec/packet/game/client/update_mob_effect.go b/codec/packet/game/client/update_mob_effect.go new file mode 100644 index 0000000..c2d9748 --- /dev/null +++ b/codec/packet/game/client/update_mob_effect.go @@ -0,0 +1,10 @@ +package client + +//codec:gen +type EntityEffect struct { + EntityID int32 `mc:"VarInt"` + EffectID int32 `mc:"VarInt"` + Amplifier int32 `mc:"VarInt"` + Duration int32 `mc:"VarInt"` + Flags int8 +} diff --git a/codec/packet/game/client/update_recipes.go b/codec/packet/game/client/update_recipes.go new file mode 100644 index 0000000..66d417f --- /dev/null +++ b/codec/packet/game/client/update_recipes.go @@ -0,0 +1,24 @@ +package client + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot/display/slot" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type PropertySet struct { + Id string `mc:"Identifier"` + Items []int32 `mc:"VarInt"` +} + +//codec:gen +type StonecutterRecipe struct { + Ingredient pk.IDSet + SlotDisplay slot.Display +} + +//codec:gen +type UpdateRecipes struct { + PropertySets []PropertySet + StonecutterRecipes []StonecutterRecipe +} diff --git a/codec/packet/game/client/update_tags.go b/codec/packet/game/client/update_tags.go new file mode 100644 index 0000000..196b043 --- /dev/null +++ b/codec/packet/game/client/update_tags.go @@ -0,0 +1,15 @@ +package client + +type Tag struct { + Name string `mc:"Identifier"` + Entries []int32 `mc:"VarInt"` +} + +type RegistryTag struct { + Registry string `mc:"Identifier"` + Tags []Tag +} + +type UpdateTags struct { + Data []RegistryTag +} diff --git a/codec/packet/game/client/waypoint.go b/codec/packet/game/client/waypoint.go new file mode 100644 index 0000000..a4ee833 --- /dev/null +++ b/codec/packet/game/client/waypoint.go @@ -0,0 +1,40 @@ +package client + +import "github.com/google/uuid" + +//codec:gen +type WaypointColor struct { + R, G, B uint8 +} + +//codec:gen +type WaypointVec3i struct { + X, Y, Z int32 `mc:"VarInt"` +} + +type WaypointChunkPos struct { + X, Z int32 `mc:"VarInt"` +} + +type WaypointAzimuth struct { + Angle float32 +} + +type Waypoint struct { + Operation int32 `mc:"VarInt"` + IsUUIDIdentifier bool + //opt:enum:IsUUIDIdentifier:true + UUID uuid.UUID `mc:"UUID"` + //opt:enum:IsUUIDIdentifier:false + Name string + HasColor bool + //opt:optional:HasColor + Color WaypointColor + WaypointType int32 `mc:"VarInt"` + //opt:enum:WaypointType:1 + WaypointPlayerPos WaypointVec3i + //opt:enum:WaypointType:2 + WaypointChunkPos WaypointChunkPos + //opt:enum:WaypointType:3 + WaypointAzimuth WaypointAzimuth +} diff --git a/codec/particle/codecs.go b/codec/particle/codecs.go new file mode 100644 index 0000000..1ae3d7a --- /dev/null +++ b/codec/particle/codecs.go @@ -0,0 +1,327 @@ +// Code generated by github.com/go-mc/packetizer; DO NOT EDIT. + +package particle + +import ( + "io" + + "github.com/Tnze/go-mc/net/packet" +) + +func (c *Block) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Block) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *BlockMarker) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c BlockMarker) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Dust) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Color).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Scale).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Dust) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Color).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Scale).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *DustColorTransition) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.FromColor).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.ToColor).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Scale).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c DustColorTransition) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.FromColor).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.ToColor).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Scale).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *EntityEffect) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Color).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c EntityEffect) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Color).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *FallingDust) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c FallingDust) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *TintedLeaves) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Color).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c TintedLeaves) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Int)(&c.Color).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SculkCharge) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Roll).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SculkCharge) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Roll).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Item) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Item).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Item) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Item).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Trail) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Color).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Duration).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Trail) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Double)(&c.X).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Y).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Z).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Color).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Duration).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Shriek) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Delay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Shriek) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Delay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *DustPillar) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c DustPillar) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *BlockCrumble) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c BlockCrumble) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.BlockState).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} diff --git a/codec/particle/particle.go b/codec/particle/particle.go new file mode 100644 index 0000000..1b76790 --- /dev/null +++ b/codec/particle/particle.go @@ -0,0 +1,115 @@ +package particle + +import ( + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +type ParticleData interface { + io.ReaderFrom + io.WriterTo + ParticleID() int32 +} + +type Particle struct { + ID int32 + Data ParticleData +} + +func (p *Particle) ReadFrom(r io.Reader) (int64, error) { + n, err := (*pk.VarInt)(&p.ID).ReadFrom(r) + if err != nil { + return n, err + } + + switch p.ID { + case 1: // Block + data := &Block{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 2: // BlockMarker + data := &BlockMarker{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 13: // Dust + data := &Dust{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 14: // DustColorTransition + data := &DustColorTransition{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 20: // EntityEffect + data := &EntityEffect{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 28: // FallingDust + data := &FallingDust{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 35: // TintedLeaves + data := &TintedLeaves{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 37: // SculkCharge + data := &SculkCharge{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 46: // Item + data := &Item{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 47: // Vibration + data := &Vibration{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 48: // Trail + data := &Trail{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 102: // Shriek + data := &Shriek{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 108: // DustPillar + data := &DustPillar{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + case 112: // BlockCrumble + data := &BlockCrumble{} + n2, err := data.ReadFrom(r) + p.Data = data + return n + n2, err + default: + // BasicParticle - no additional data + p.Data = nil + return n, nil + } +} + +func (p Particle) WriteTo(w io.Writer) (int64, error) { + n, err := (*pk.VarInt)(&p.ID).WriteTo(w) + if err != nil { + return n, err + } + + if p.Data == nil { + return n, nil + } + + n2, err := p.Data.WriteTo(w) + return n + n2, err +} diff --git a/codec/particle/particles.go b/codec/particle/particles.go new file mode 100644 index 0000000..265f60b --- /dev/null +++ b/codec/particle/particles.go @@ -0,0 +1,245 @@ +package particle + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot" + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +// BasicParticle for Particle Type Other +type BasicParticle struct { + ID int32 +} + +func (b *BasicParticle) ReadFrom(r io.Reader) (int64, error) { + return (*pk.VarInt)(&b.ID).ReadFrom(r) +} + +func (b BasicParticle) WriteTo(w io.Writer) (int64, error) { + return (*pk.VarInt)(&b.ID).WriteTo(w) +} + +func (b BasicParticle) ParticleID() int32 { + return b.ID +} + +// Block for Particle Type 1 +// +//codec:gen +type Block struct { + BlockState int32 `mc:"VarInt"` +} + +func (b Block) ParticleID() int32 { + return 1 +} + +// BlockMarker for Particle Type 2 +// +//codec:gen +type BlockMarker struct { + BlockState int32 `mc:"VarInt"` +} + +func (b BlockMarker) ParticleID() int32 { + return 2 +} + +// Dust for Particle Type 13 +// +//codec:gen +type Dust struct { + Color int32 + Scale float32 +} + +func (d Dust) ParticleID() int32 { + return 13 +} + +// DustColorTransition for Particle Type 14 +// +//codec:gen +type DustColorTransition struct { + FromColor int32 + ToColor int32 + Scale float32 +} + +func (d DustColorTransition) ParticleID() int32 { + return 14 +} + +// EntityEffect for Particle Type 20 +// +//codec:gen +type EntityEffect struct { + Color int32 +} + +func (e EntityEffect) ParticleID() int32 { + return 20 +} + +// FallingDust for Particle Type 28 +// +//codec:gen +type FallingDust struct { + BlockState int32 `mc:"VarInt"` +} + +func (f FallingDust) ParticleID() int32 { + return 28 +} + +// TintedLeaves for Particle Type 35 +// +//codec:gen +type TintedLeaves struct { + Color int32 +} + +func (t TintedLeaves) ParticleID() int32 { + return 35 +} + +// SculkCharge for Particle Type 37 +// +//codec:gen +type SculkCharge struct { + Roll float32 +} + +func (s SculkCharge) ParticleID() int32 { + return 37 +} + +// Item for Particle Type 46 +// +//codec:gen +type Item struct { + Item slot.Slot +} + +func (i Item) ParticleID() int32 { + return 46 +} + +// Vibration for Particle Type 47 +type Vibration struct { + Type int32 `mc:"VarInt"` + //if Type eq 0 + BlockPosition pk.Position + //elif Type eq 1 + EntityID int32 + EntityEyeHeight float32 + //end + Ticks int32 `mc:"VarInt"` +} + +func (v Vibration) WriteTo(w io.Writer) (n int64, err error) { + (*pk.VarInt)(&v.Type).WriteTo(w) + n += 4 + switch v.Type { + case 0: + n1, err := v.BlockPosition.WriteTo(w) + if err != nil { + return n + n1, err + } + case 1: + n1, err := (*pk.VarInt)(&v.EntityID).WriteTo(w) + if err != nil { + return n + n1, err + } + n2, err := (*pk.Float)(&v.EntityEyeHeight).WriteTo(w) + if err != nil { + return n + n1 + n2, err + } + n += n1 + n2 + } + n2, err := (*pk.VarInt)(&v.Ticks).WriteTo(w) + if err != nil { + return n + n2, err + } + return n + n2, err +} + +func (v *Vibration) ReadFrom(r io.Reader) (int64, error) { + n, err := (*pk.VarInt)(&v.Type).ReadFrom(r) + if err != nil { + return n, err + } + switch v.Type { + case 0: + n1, err := v.BlockPosition.ReadFrom(r) + if err != nil { + return n + n1, err + } + return n + n1, err + case 1: + n1, err := (*pk.VarInt)(&v.EntityID).ReadFrom(r) + if err != nil { + return n + n1, err + } + n2, err := (*pk.Float)(&v.EntityEyeHeight).ReadFrom(r) + if err != nil { + return n + n1 + n2, err + } + return n + n1 + n2, err + } + n2, err := (*pk.VarInt)(&v.Ticks).ReadFrom(r) + if err != nil { + return n + n2, err + } + return n + n2, err +} + +func (v Vibration) ParticleID() int32 { + return 47 +} + +// Trail for Particle Type 48 +// +//codec:gen +type Trail struct { + X, Y, Z float64 + Color int32 + Duration int32 `mc:"VarInt"` +} + +func (t Trail) ParticleID() int32 { + return 48 +} + +// Shriek for Particle Type 102 +// +//codec:gen +type Shriek struct { + Delay int32 `mc:"VarInt"` +} + +func (s Shriek) ParticleID() int32 { + return 102 +} + +// DustPillar for Particle Type 108 +// +//codec:gen +type DustPillar struct { + BlockState int32 `mc:"VarInt"` +} + +func (d DustPillar) ParticleID() int32 { + return 108 +} + +// BlockCrumble for Particle Type 112 +// +//codec:gen +type BlockCrumble struct { + BlockState int32 `mc:"VarInt"` +} + +func (b BlockCrumble) ParticleID() int32 { + return 112 +} diff --git a/codec/slot/component.go b/codec/slot/component.go index aa9f45a..cb3a98f 100644 --- a/codec/slot/component.go +++ b/codec/slot/component.go @@ -10,13 +10,14 @@ type Component interface { } type ComponentID int32 +type componentCreator func() Component -var components = make(map[ComponentID]Component) +var components = make(map[ComponentID]componentCreator) func ComponentFromID(id ComponentID) Component { - return components[id] + return components[id]() } -func RegisterComponent(c Component) { - components[c.Type()] = c +func RegisterComponent(c componentCreator) { + components[c().Type()] = c } diff --git a/codec/slot/display/recipe/codecs.go b/codec/slot/display/recipe/codecs.go new file mode 100644 index 0000000..8dc6f3f --- /dev/null +++ b/codec/slot/display/recipe/codecs.go @@ -0,0 +1,275 @@ +// Code generated by github.com/go-mc/packetizer; DO NOT EDIT. + +package recipe + +import ( + "io" + + "github.com/Tnze/go-mc/net/packet" +) + +func (c *Shapeless) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Ingredients).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Shapeless) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Ingredients).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Shaped) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Width).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Height).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Ingredients).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Shaped) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Width).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Height).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Ingredients).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Furnace) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Ingredient).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Fuel).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CookingTime).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Experience).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Furnace) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Ingredient).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Fuel).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CookingTime).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.Experience).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Stonecutter) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Ingredient).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Stonecutter) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Ingredient).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Smithing) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Template).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Base).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Addition).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Smithing) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Template).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Base).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Addition).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Result).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.CraftingStation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} diff --git a/codec/slot/display/recipe/recipe_display.go b/codec/slot/display/recipe/recipe_display.go new file mode 100644 index 0000000..65e84ff --- /dev/null +++ b/codec/slot/display/recipe/recipe_display.go @@ -0,0 +1,117 @@ +package recipe + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot/display/slot" + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +type DisplayType int32 + +const ( + DisplayCraftingShapeless DisplayType = 0 + iota + DisplayCraftingShaped + DisplayFurnace + DisplayStonecutter + DisplaySmithing +) + +type Display struct { + Display RecipeDisplay +} + +func (d Display) WriteTo(w io.Writer) (n int64, err error) { + pk.VarInt(d.Display.RecipeType()).WriteTo(w) + return d.Display.WriteTo(w) +} + +func (d *Display) ReadFrom(r io.Reader) (n int64, err error) { + var displayType DisplayType + _, err = (*pk.VarInt)(&displayType).ReadFrom(r) + if err != nil { + return + } + switch displayType { + case DisplayCraftingShapeless: + d.Display = new(Shapeless) + case DisplayCraftingShaped: + d.Display = new(Shaped) + case DisplayFurnace: + d.Display = new(Furnace) + case DisplayStonecutter: + d.Display = new(Stonecutter) + case DisplaySmithing: + d.Display = new(Smithing) + } + if d.Display != nil { + return d.Display.ReadFrom(r) + } + return +} + +type RecipeDisplay interface { + RecipeType() DisplayType + pk.Field +} + +//codec:gen +type Shapeless struct { + Ingredients []slot.Display + Result slot.Display + CraftingStation slot.Display +} + +func (i Shapeless) RecipeType() DisplayType { + return DisplayCraftingShapeless +} + +//codec:gen +type Shaped struct { + Width int32 `mc:"VarInt"` + Height int32 `mc:"VarInt"` + Ingredients []slot.Display + Result slot.Display + CraftingStation slot.Display +} + +func (i Shaped) RecipeType() DisplayType { + return DisplayCraftingShaped +} + +//codec:gen +type Furnace struct { + Ingredient slot.Display + Fuel slot.Display + Result slot.Display + CraftingStation slot.Display + CookingTime int32 `mc:"VarInt"` + Experience float32 +} + +func (i Furnace) RecipeType() DisplayType { + return DisplayFurnace +} + +//codec:gen +type Stonecutter struct { + Ingredient slot.Display + Result slot.Display + CraftingStation slot.Display +} + +func (i Stonecutter) RecipeType() DisplayType { + return DisplayStonecutter +} + +//codec:gen +type Smithing struct { + Template slot.Display + Base slot.Display + Addition slot.Display + Result slot.Display + CraftingStation slot.Display +} + +func (i Smithing) RecipeType() DisplayType { + return DisplaySmithing +} diff --git a/codec/slot/display/slot/codecs.go b/codec/slot/display/slot/codecs.go new file mode 100644 index 0000000..e8d99c2 --- /dev/null +++ b/codec/slot/display/slot/codecs.go @@ -0,0 +1,154 @@ +// Code generated by github.com/go-mc/packetizer; DO NOT EDIT. + +package slot + +import ( + "io" + + "github.com/Tnze/go-mc/net/packet" +) + +func (c *Item) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Item) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.ID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *ItemStack) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.ItemStack).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c ItemStack) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.ItemStack).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Tag) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Tag).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Tag) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Tag).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SmithingTrim) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Base).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Trim).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Remainder).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SmithingTrim) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Base).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Trim).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Remainder).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *WithRemainder) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Ingredient).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Remainder).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c WithRemainder) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Ingredient).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Remainder).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Composite) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Displays).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Composite) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Displays).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} diff --git a/codec/slot/display/slot/slot_display.go b/codec/slot/display/slot/slot_display.go new file mode 100644 index 0000000..19dd383 --- /dev/null +++ b/codec/slot/display/slot/slot_display.go @@ -0,0 +1,134 @@ +package slot + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot" + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +type DisplayType int32 + +const ( + DisplayEmpty DisplayType = iota + DisplayItem + DisplayItemStack + DisplayTag + DisplaySmithingTrim + DisplayWithRemainder + DisplayComposite +) + +type Display struct { + SlotDisplay +} + +func (s Display) WriteTo(w io.Writer) (n int64, err error) { + pk.VarInt(s.SlotDisplay.SlotDisplayType()).WriteTo(w) + s.SlotDisplay.WriteTo(w) + return +} + +func (s *Display) ReadFrom(r io.Reader) (n int64, err error) { + var displayType DisplayType + _, err = (*pk.VarInt)(&displayType).ReadFrom(r) + if err != nil { + return + } + switch displayType { + case DisplayEmpty: + return + case DisplayItem: + var item Item + if _, err = item.ReadFrom(r); err != nil { + return + } + case DisplayItemStack: + var itemStack ItemStack + if _, err = itemStack.ReadFrom(r); err != nil { + return + } + case DisplayTag: + var tag Tag + if _, err = tag.ReadFrom(r); err != nil { + return + } + case DisplaySmithingTrim: + var trim SmithingTrim + if _, err = trim.ReadFrom(r); err != nil { + return + } + case DisplayWithRemainder: + var remainder WithRemainder + if _, err = remainder.ReadFrom(r); err != nil { + return + } + case DisplayComposite: + var composite Composite + if _, err = composite.ReadFrom(r); err != nil { + return + } + } + return +} + +type SlotDisplay interface { + SlotDisplayType() DisplayType + pk.Field +} + +//codec:gen +type Item struct { + ID int32 `mc:"VarInt"` +} + +func (i Item) SlotDisplayType() DisplayType { + return DisplayItem +} + +//codec:gen +type ItemStack struct { + ItemStack slot.Slot +} + +func (i ItemStack) SlotDisplayType() DisplayType { + return DisplayItemStack +} + +//codec:gen +type Tag struct { + Tag pk.Identifier +} + +func (i Tag) SlotDisplayType() DisplayType { + return DisplayTag +} + +//codec:gen +type SmithingTrim struct { + Base Display + Trim Display + Remainder Display +} + +func (i SmithingTrim) SlotDisplayType() DisplayType { + return DisplaySmithingTrim +} + +//codec:gen +type WithRemainder struct { + Ingredient Display + Remainder Display +} + +func (i WithRemainder) SlotDisplayType() DisplayType { + return DisplayWithRemainder +} + +//codec:gen +type Composite struct { + Displays []Display +} + +func (i Composite) SlotDisplayType() DisplayType { + return DisplayComposite +} diff --git a/codec/slot/itemstack.go b/codec/slot/item_stack.go similarity index 100% rename from codec/slot/itemstack.go rename to codec/slot/item_stack.go diff --git a/codec/slot/trade_item.go b/codec/slot/trade_item.go new file mode 100644 index 0000000..ca69848 --- /dev/null +++ b/codec/slot/trade_item.go @@ -0,0 +1,40 @@ +package slot + +import ( + pk "github.com/Tnze/go-mc/net/packet" + "io" +) + +type TradeSlot struct { + ID int32 + Count int32 + Components []Component +} + +func (t TradeSlot) WriteTo(w io.Writer) (n int64, err error) { + pk.VarInt(t.ID).WriteTo(w) + pk.VarInt(t.Count).WriteTo(w) + pk.VarInt(len(t.Components)).WriteTo(w) + for _, component := range t.Components { + pk.VarInt(component.Type()).WriteTo(w) + component.WriteTo(w) + } + return +} + +func (t *TradeSlot) ReadFrom(r io.Reader) (n int64, err error) { + (*pk.VarInt)(&t.ID).ReadFrom(r) + (*pk.VarInt)(&t.Count).ReadFrom(r) + var lens pk.VarInt + lens.ReadFrom(r) + t.Components = make([]Component, lens) + for i := range t.Components { + var id pk.VarInt + id.ReadFrom(r) + c := ComponentFromID(ComponentID(id)) + c.ReadFrom(r) + t.Components[i] = c + } + + return +} diff --git a/go.mod b/go.mod index a5d9b7a..b43bf5e 100644 --- a/go.mod +++ b/go.mod @@ -7,4 +7,11 @@ require ( github.com/google/uuid v1.6.0 ) +require ( + github.com/go-mc/packetizer v0.0.0-20250619063049-ad94ce2fdd81 // indirect + golang.org/x/mod v0.25.0 // indirect + golang.org/x/sync v0.15.0 // indirect + golang.org/x/tools v0.34.0 // indirect +) + replace github.com/Tnze/go-mc v1.20.3-0.20241224032005-539b4a3a7f03 => git.konjactw.dev/patyhank/go-mc v1.20.3-0.20250619063151-133e3fab4ac2 diff --git a/go.sum b/go.sum index 1caaf35..b6d8c78 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,12 @@ git.konjactw.dev/patyhank/go-mc v1.20.3-0.20250619063151-133e3fab4ac2 h1:KiA1OsQQGjrKxev45URJPwvyuVwen9Bb4TzjEg/ojz8= git.konjactw.dev/patyhank/go-mc v1.20.3-0.20250619063151-133e3fab4ac2/go.mod h1:e3pBU8tqRfYDHrhtZRtyfGdYijA86b1fF3XgnEDSgHk= +github.com/go-mc/packetizer v0.0.0-20250619063049-ad94ce2fdd81 h1:bh+bDxNGccHJSEOmuAFUTktDeIfeQAYecgbbrqe117I= +github.com/go-mc/packetizer v0.0.0-20250619063049-ad94ce2fdd81/go.mod h1:ISw1JFh5bBZtPc01+ayKUBWMHI+IM11Dk/DH0IUiEVc= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= +golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=