From 06863ef84518d6f9935a759c53937519c2e674ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=9F=E8=92=BB?= Date: Fri, 20 Jun 2025 07:46:29 +0800 Subject: [PATCH] 1.21.6 Serverbound PlayState Packets --- codec/component/codecs.go | 176 +- codec/packet/game/client/codecs.go | 2106 +++++++++++++++-- codec/packet/game/client/level_particles.go | 14 + codec/packet/game/client/open_screen.go | 1 + codec/packet/game/client/packet.go | 828 ++++++- .../{ping_response.go => pong_response.go} | 0 codec/packet/game/client/reset_score.go | 8 + codec/packet/game/client/resource_pack_pop.go | 2 +- .../game/client/set_border_lerp_size.go | 1 + codec/packet/game/client/set_entity_motion.go | 1 + codec/packet/game/client/show_dialog.go | 1 + codec/packet/game/client/tab_list.go | 1 + codec/packet/game/client/teleport_entity.go | 1 + .../packet/game/client/update_advancements.go | 1 + codec/packet/game/client/update_tags.go | 3 + codec/packet/game/client/waypoint.go | 3 + .../game/server/accept_teleportation.go | 18 + .../game/server/block_entity_tag_query.go | 22 + .../game/server/bundle_item_selected.go | 19 + codec/packet/game/server/change_difficulty.go | 18 + codec/packet/game/server/change_game_mode.go | 18 + codec/packet/game/server/chat.go | 29 + codec/packet/game/server/chat_ack.go | 18 + codec/packet/game/server/chat_command.go | 18 + .../packet/game/server/chat_command_signed.go | 33 + .../packet/game/server/chat_session_update.go | 23 + .../game/server/chunk_batch_received.go | 18 + codec/packet/game/server/client_command.go | 18 + .../packet/game/server/client_information.go | 26 + codec/packet/game/server/client_tick_end.go | 17 + .../packet/game/server/command_suggestion.go | 19 + .../game/server/configuration_acknowledged.go | 17 + .../game/server/container_button_click.go | 19 + codec/packet/game/server/container_click.go | 33 + codec/packet/game/server/container_close.go | 18 + .../server/container_slot_state_changed.go | 20 + codec/packet/game/server/cookie_response.go | 21 + .../packet/game/server/custom_click_action.go | 22 + codec/packet/game/server/custom_payload.go | 19 + .../game/server/debug_sample_subscription.go | 18 + codec/packet/game/server/edit_book.go | 22 + codec/packet/game/server/entity_tag_query.go | 19 + codec/packet/game/server/interact.go | 28 + codec/packet/game/server/jigsaw_generate.go | 23 + codec/packet/game/server/keep_alive.go | 18 + codec/packet/game/server/lock_difficulty.go | 18 + codec/packet/game/server/move_player_pos.go | 19 + .../packet/game/server/move_player_pos_rot.go | 20 + codec/packet/game/server/move_player_rot.go | 19 + .../game/server/move_player_status_only.go | 18 + codec/packet/game/server/move_vehicle.go | 20 + codec/packet/game/server/packet.go | 16 +- codec/packet/game/server/paddle_boat.go | 18 + .../game/server/pick_item_from_block.go | 22 + .../game/server/pick_item_from_entity.go | 19 + codec/packet/game/server/ping_request.go | 18 + codec/packet/game/server/place_recipe.go | 20 + codec/packet/game/server/player_abilities.go | 18 + codec/packet/game/server/player_action.go | 24 + codec/packet/game/server/player_command.go | 20 + codec/packet/game/server/player_input.go | 18 + codec/packet/game/server/player_loaded.go | 17 + codec/packet/game/server/pong.go | 17 + .../server/recipe_book_change_settings.go | 20 + .../game/server/recipe_book_seen_recipe.go | 18 + codec/packet/game/server/rename_item.go | 18 + codec/packet/game/server/resource_pack.go | 22 + codec/packet/game/server/seen_advancements.go | 20 + codec/packet/game/server/select_trade.go | 18 + codec/packet/game/server/set_beacon.go | 23 + codec/packet/game/server/set_carried_item.go | 18 + codec/packet/game/server/set_command_block.go | 24 + .../game/server/set_command_minecart.go | 20 + .../game/server/set_creative_mode_slot.go | 22 + codec/packet/game/server/set_jigsaw_block.go | 28 + .../packet/game/server/set_structure_block.go | 32 + codec/packet/game/server/set_test_block.go | 23 + codec/packet/game/server/sign_update.go | 23 + codec/packet/game/server/swing.go | 18 + .../packet/game/server/teleport_to_entity.go | 21 + .../game/server/test_instance_block_action.go | 33 + codec/packet/game/server/use_item.go | 20 + codec/packet/game/server/use_item_on.go | 27 + codec/slot/hashed_item.go | 20 + 84 files changed, 4293 insertions(+), 274 deletions(-) create mode 100644 codec/packet/game/client/level_particles.go rename codec/packet/game/client/{ping_response.go => pong_response.go} (100%) create mode 100644 codec/packet/game/server/accept_teleportation.go create mode 100644 codec/packet/game/server/block_entity_tag_query.go create mode 100644 codec/packet/game/server/bundle_item_selected.go create mode 100644 codec/packet/game/server/change_difficulty.go create mode 100644 codec/packet/game/server/change_game_mode.go create mode 100644 codec/packet/game/server/chat.go create mode 100644 codec/packet/game/server/chat_ack.go create mode 100644 codec/packet/game/server/chat_command.go create mode 100644 codec/packet/game/server/chat_command_signed.go create mode 100644 codec/packet/game/server/chat_session_update.go create mode 100644 codec/packet/game/server/chunk_batch_received.go create mode 100644 codec/packet/game/server/client_command.go create mode 100644 codec/packet/game/server/client_information.go create mode 100644 codec/packet/game/server/client_tick_end.go create mode 100644 codec/packet/game/server/command_suggestion.go create mode 100644 codec/packet/game/server/configuration_acknowledged.go create mode 100644 codec/packet/game/server/container_button_click.go create mode 100644 codec/packet/game/server/container_click.go create mode 100644 codec/packet/game/server/container_close.go create mode 100644 codec/packet/game/server/container_slot_state_changed.go create mode 100644 codec/packet/game/server/cookie_response.go create mode 100644 codec/packet/game/server/custom_click_action.go create mode 100644 codec/packet/game/server/custom_payload.go create mode 100644 codec/packet/game/server/debug_sample_subscription.go create mode 100644 codec/packet/game/server/edit_book.go create mode 100644 codec/packet/game/server/entity_tag_query.go create mode 100644 codec/packet/game/server/interact.go create mode 100644 codec/packet/game/server/jigsaw_generate.go create mode 100644 codec/packet/game/server/keep_alive.go create mode 100644 codec/packet/game/server/lock_difficulty.go create mode 100644 codec/packet/game/server/move_player_pos.go create mode 100644 codec/packet/game/server/move_player_pos_rot.go create mode 100644 codec/packet/game/server/move_player_rot.go create mode 100644 codec/packet/game/server/move_player_status_only.go create mode 100644 codec/packet/game/server/move_vehicle.go create mode 100644 codec/packet/game/server/paddle_boat.go create mode 100644 codec/packet/game/server/pick_item_from_block.go create mode 100644 codec/packet/game/server/pick_item_from_entity.go create mode 100644 codec/packet/game/server/ping_request.go create mode 100644 codec/packet/game/server/place_recipe.go create mode 100644 codec/packet/game/server/player_abilities.go create mode 100644 codec/packet/game/server/player_action.go create mode 100644 codec/packet/game/server/player_command.go create mode 100644 codec/packet/game/server/player_input.go create mode 100644 codec/packet/game/server/player_loaded.go create mode 100644 codec/packet/game/server/pong.go create mode 100644 codec/packet/game/server/recipe_book_change_settings.go create mode 100644 codec/packet/game/server/recipe_book_seen_recipe.go create mode 100644 codec/packet/game/server/rename_item.go create mode 100644 codec/packet/game/server/resource_pack.go create mode 100644 codec/packet/game/server/seen_advancements.go create mode 100644 codec/packet/game/server/select_trade.go create mode 100644 codec/packet/game/server/set_beacon.go create mode 100644 codec/packet/game/server/set_carried_item.go create mode 100644 codec/packet/game/server/set_command_block.go create mode 100644 codec/packet/game/server/set_command_minecart.go create mode 100644 codec/packet/game/server/set_creative_mode_slot.go create mode 100644 codec/packet/game/server/set_jigsaw_block.go create mode 100644 codec/packet/game/server/set_structure_block.go create mode 100644 codec/packet/game/server/set_test_block.go create mode 100644 codec/packet/game/server/sign_update.go create mode 100644 codec/packet/game/server/swing.go create mode 100644 codec/packet/game/server/teleport_to_entity.go create mode 100644 codec/packet/game/server/test_instance_block_action.go create mode 100644 codec/packet/game/server/use_item.go create mode 100644 codec/packet/game/server/use_item_on.go create mode 100644 codec/slot/hashed_item.go diff --git a/codec/component/codecs.go b/codec/component/codecs.go index 0f8788c..1496c27 100644 --- a/codec/component/codecs.go +++ b/codec/component/codecs.go @@ -3646,94 +3646,6 @@ func (a *BoolVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { 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 @@ -3822,6 +3734,94 @@ func (a *Int32VarIntVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { 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 +} + // Float32VarIntArray a utility type for encoding/decoding packet.Float -> float32[packet.VarInt] slice. type Float32VarIntArray []float32 diff --git a/codec/packet/game/client/codecs.go b/codec/packet/game/client/codecs.go index 3ab1b91..cccfe00 100644 --- a/codec/packet/game/client/codecs.go +++ b/codec/packet/game/client/codecs.go @@ -694,6 +694,13 @@ func (c ChunkBiomes) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *ClearDialog) ReadFrom(r io.Reader) (n int64, err error) { + return 0, nil +} + +func (c ClearDialog) WriteTo(w io.Writer) (n int64, err error) { + return 0, nil +} func (c *ClearTitles) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (*packet.Boolean)(&c.Reset).ReadFrom(r) @@ -1082,6 +1089,54 @@ func (c CustomPayload) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *ReportDetails) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.Title).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.Description).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c ReportDetails) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.Title).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.String)(&c.Description).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *CustomReportDetails) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Details).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c CustomReportDetails) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.Details).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) @@ -1843,6 +1898,125 @@ func (c LevelEvent) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *Particle) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.LongDistance).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.AlwaysVisible).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.Float)(&c.OffsetX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.OffsetY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.OffsetZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.MaxSpeed).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Count).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Particle).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Particle) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.LongDistance).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.AlwaysVisible).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.Float)(&c.OffsetX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.OffsetY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.OffsetZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Float)(&c.MaxSpeed).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Int)(&c.Count).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Particle).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) @@ -2783,6 +2957,45 @@ func (c OpenBook) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *OpenScreen) 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.WindowType).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.WindowTitle).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c OpenScreen) 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.VarInt)(&c.WindowType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.WindowTitle).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) @@ -2831,25 +3044,6 @@ func (c Ping) WriteTo(w io.Writer) (n int64, err error) { } 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) @@ -3424,6 +3618,54 @@ func (c PlayerRotation) WriteTo(w io.Writer) (n int64, err error) { } 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 *ProjectilePower) 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.Double)(&c.Power).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c ProjectilePower) 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.Double)(&c.Power).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) @@ -3701,7 +3943,50 @@ func (c RemoveMobEffect) WriteTo(w io.Writer) (n int64, err error) { } return n, err } -func (c *RemoveResourcePacket) ReadFrom(r io.Reader) (n int64, err error) { +func (c *ResetScore) 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.Boolean)(&c.HasObjectiveName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasObjectiveName { + temp, err = (*packet.String)(&c.ObjectiveName).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c ResetScore) 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.Boolean)(&c.HasObjectiveName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasObjectiveName { + temp, err = (*packet.String)(&c.ObjectiveName).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *RemoveResourcePack) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (*packet.Boolean)(&c.HasUUID).ReadFrom(r) n += temp @@ -3718,7 +4003,7 @@ func (c *RemoveResourcePacket) ReadFrom(r io.Reader) (n int64, err error) { return n, err } -func (c RemoveResourcePacket) WriteTo(w io.Writer) (n int64, err error) { +func (c RemoveResourcePack) WriteTo(w io.Writer) (n int64, err error) { var temp int64 temp, err = (*packet.Boolean)(&c.HasUUID).WriteTo(w) n += temp @@ -3940,7 +4225,7 @@ func (c *ServerData) ReadFrom(r io.Reader) (n int64, err error) { return n, err } if c.HasIcon { - temp, err = (*Int8VarIntArray)(&c.Icon).ReadFrom(r) + temp, err = (*Int8ByteVarIntArray)(&c.Icon).ReadFrom(r) n += temp if err != nil { return n, err @@ -3962,7 +4247,7 @@ func (c ServerData) WriteTo(w io.Writer) (n int64, err error) { return n, err } if c.HasIcon { - temp, err = (*Int8VarIntArray)(&c.Icon).WriteTo(w) + temp, err = (*Int8ByteVarIntArray)(&c.Icon).WriteTo(w) n += temp if err != nil { return n, err @@ -3970,6 +4255,13 @@ func (c ServerData) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *ServerLinks) ReadFrom(r io.Reader) (n int64, err error) { + return 0, nil +} + +func (c ServerLinks) WriteTo(w io.Writer) (n int64, err error) { + return 0, nil +} func (c *SetActionBarText) ReadFrom(r io.Reader) (n int64, err error) { var temp int64 temp, err = (&c.Text).ReadFrom(r) @@ -4018,6 +4310,45 @@ func (c SetBorderCenter) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *SetBorderLerpSize) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + 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 + } + return n, err +} + +func (c SetBorderLerpSize) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + 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 + } + 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) @@ -4277,6 +4608,55 @@ func (c SetEntityLink) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *SetEntityVelocity) 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.VelocityX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.VelocityY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.VelocityZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetEntityVelocity) 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.VelocityX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.VelocityY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Short)(&c.VelocityZ).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) @@ -5133,6 +5513,39 @@ func (c SetTitleAnimationTimes) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *ShowDialog) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.DialogID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.DialogID == 0 { + temp, err = packet.NBT(&c.DialogData).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c ShowDialog) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.DialogID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.DialogID == 0 { + temp, err = packet.NBT(&c.DialogData).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) @@ -5296,6 +5709,863 @@ func (c EntitySoundEffect) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *StartConfiguration) ReadFrom(r io.Reader) (n int64, err error) { + return 0, nil +} + +func (c StartConfiguration) WriteTo(w io.Writer) (n int64, err error) { + return 0, nil +} +func (c *StoreCookie) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Key).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int8ByteVarIntArray)(&c.Payload).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c StoreCookie) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Key).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int8ByteVarIntArray)(&c.Payload).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SystemChatMessage) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Content).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Overlay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SystemChatMessage) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Content).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.Overlay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SetTabListHeaderAndFooter) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Header).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Footer).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetTabListHeaderAndFooter) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Header).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Footer).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *TagQueryResponse) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.TransactionID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.NBT(&c.NBT).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c TagQueryResponse) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.TransactionID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.NBT(&c.NBT).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PickupItem) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.CollectedEntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CollectorEntityID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PickupItemCount).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PickupItem) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.CollectedEntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.CollectorEntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.PickupItemCount).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *SynchronizeVehiclePosition) 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.Int)(&c.Flags).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 SynchronizeVehiclePosition) 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.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.Int)(&c.Flags).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 *TestInstanceBlockStatus) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Status).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasSize).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasSize { + temp, err = (*packet.Double)(&c.SizeX).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.HasSize { + temp, err = (*packet.Double)(&c.SizeY).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.HasSize { + temp, err = (*packet.Double)(&c.SizeZ).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c TestInstanceBlockStatus) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Status).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasSize).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasSize { + temp, err = (*packet.Double)(&c.SizeX).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.HasSize { + temp, err = (*packet.Double)(&c.SizeY).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.HasSize { + temp, err = (*packet.Double)(&c.SizeZ).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *SetTickingState) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.TickRate).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsFrozen).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c SetTickingState) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.TickRate).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsFrozen).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *StepTick) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.TickSteps).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c StepTick) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.TickSteps).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Transfer) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.Host).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Port).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Transfer) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.String)(&c.Host).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.Port).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *AdvancementDisplay) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (&c.Title).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Description).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Icon).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.FrameType).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 + } + temp, err = (*packet.Boolean)(&c.HasBackgroundTexture).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasBackgroundTexture { + temp, err = (*packet.Identifier)(&c.BackgroundTexture).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + 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 + } + return n, err +} + +func (c AdvancementDisplay) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (&c.Title).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Description).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (&c.Icon).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.FrameType).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 + } + temp, err = (*packet.Boolean)(&c.HasBackgroundTexture).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasBackgroundTexture { + temp, err = (*packet.Identifier)(&c.BackgroundTexture).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + 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 + } + return n, err +} +func (c *AdvancementRequirements) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*StringVarIntArray)(&c.OR).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c AdvancementRequirements) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*StringVarIntArray)(&c.OR).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Advancement) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.ID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasParentID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasParentID { + temp, err = (*packet.String)(&c.ParentID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasDisplayData).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasDisplayData { + temp, err = (&c.DisplayData).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = packet.Array(&c.Requirements).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SendTelemetryData).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Advancement) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.ID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasParentID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasParentID { + temp, err = (*packet.String)(&c.ParentID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasDisplayData).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasDisplayData { + temp, err = (&c.DisplayData).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = packet.Array(&c.Requirements).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.SendTelemetryData).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *AdvancementProgress) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.ID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Identifier)(&c.CriterionId).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasAchieved).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasAchieved { + temp, err = (*packet.Long)(&c.AchievingDate).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c AdvancementProgress) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.ID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Identifier)(&c.CriterionId).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.HasAchieved).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasAchieved { + temp, err = (*packet.Long)(&c.AchievingDate).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + return n, err +} +func (c *UpdateAdvancements) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.Clear).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Advancements).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringIdentifierVarIntArray)(&c.RemovedIds).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Progress).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowAdvancementsToast).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateAdvancements) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Boolean)(&c.Clear).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Advancements).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*StringIdentifierVarIntArray)(&c.RemovedIds).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Progress).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.ShowAdvancementsToast).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.Identifier)(&c.Id).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Amount).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Operation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c AttributeModifier) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Id).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Double)(&c.Amount).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Byte)(&c.Operation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Attribute) 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.Value).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Modifiers).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c Attribute) 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.Value).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Modifiers).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateAttributes) 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.Attributes).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateAttributes) 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.Attributes).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) @@ -5335,6 +6605,576 @@ func (c UpdateLight) WriteTo(w io.Writer) (n int64, err error) { } return n, err } +func (c *EntityEffect) 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.EffectID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + 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.Byte)(&c.Flags).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.VarInt)(&c.EntityID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.VarInt)(&c.EffectID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + 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.Byte)(&c.Flags).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *PropertySet) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Id).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int32VarIntVarIntArray)(&c.Items).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c PropertySet) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Id).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int32VarIntVarIntArray)(&c.Items).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *StonecutterRecipe) 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.SlotDisplay).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c StonecutterRecipe) 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.SlotDisplay).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateRecipes) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.PropertySets).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.StonecutterRecipes).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c UpdateRecipes) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = packet.Array(&c.PropertySets).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.StonecutterRecipes).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 = (*packet.Identifier)(&c.Name).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int32VarIntVarIntArray)(&c.Entries).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 = (*packet.Identifier)(&c.Name).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*Int32VarIntVarIntArray)(&c.Entries).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *RegistryTag) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Registry).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Tags).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c RegistryTag) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Identifier)(&c.Registry).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = packet.Array(&c.Tags).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *UpdateTags) 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 UpdateTags) 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 *WaypointColor) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.UnsignedByte)(&c.R).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.G).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.B).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c WaypointColor) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.UnsignedByte)(&c.R).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.G).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.UnsignedByte)(&c.B).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *WaypointVec3i) 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.Y).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 WaypointVec3i) 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.Y).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 *WaypointChunkPos) 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 WaypointChunkPos) 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 *WaypointAzimuth) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Angle).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + return n, err +} + +func (c WaypointAzimuth) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.Float)(&c.Angle).WriteTo(w) + n += temp + if err != nil { + return n, err + } + return n, err +} +func (c *Waypoint) ReadFrom(r io.Reader) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Operation).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsUUIDIdentifier).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.IsUUIDIdentifier == true { + temp, err = (*packet.UUID)(&c.UUID).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.IsUUIDIdentifier == false { + temp, err = (*packet.String)(&c.Name).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasColor).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.HasColor { + temp, err = (&c.Color).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.VarInt)(&c.WaypointType).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + if c.WaypointType == 1 { + temp, err = (&c.WaypointPlayerPos).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.WaypointType == 2 { + temp, err = (&c.WaypointChunkPos).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + if c.WaypointType == 3 { + temp, err = (&c.WaypointAzimuth).ReadFrom(r) + n += temp + if err != nil { + return n, err + } + } + return n, err +} + +func (c Waypoint) WriteTo(w io.Writer) (n int64, err error) { + var temp int64 + temp, err = (*packet.VarInt)(&c.Operation).WriteTo(w) + n += temp + if err != nil { + return n, err + } + temp, err = (*packet.Boolean)(&c.IsUUIDIdentifier).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.IsUUIDIdentifier == true { + temp, err = (*packet.UUID)(&c.UUID).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.IsUUIDIdentifier == false { + temp, err = (*packet.String)(&c.Name).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.Boolean)(&c.HasColor).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.HasColor { + temp, err = (&c.Color).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + temp, err = (*packet.VarInt)(&c.WaypointType).WriteTo(w) + n += temp + if err != nil { + return n, err + } + if c.WaypointType == 1 { + temp, err = (&c.WaypointPlayerPos).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.WaypointType == 2 { + temp, err = (&c.WaypointChunkPos).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + if c.WaypointType == 3 { + temp, err = (&c.WaypointAzimuth).WriteTo(w) + n += temp + if err != nil { + return n, err + } + } + 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 +} + +// Int8ByteVarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice. +type Int8ByteVarIntArray []int8 + +func (a Int8ByteVarIntArray) 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.Byte(a[i]).WriteTo(w) + n += nn + if err != nil { + return n, err + } + } + return n, nil +} + +func (a *Int8ByteVarIntArray) 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.Byte + if nn, err := elem.ReadFrom(r); err != nil { + return n, err + } else { + n += nn + } + *a = append(*a, int8(elem)) + } + + return n, err +} // Int8VarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice. type Int8VarIntArray []int8 @@ -5380,50 +7220,6 @@ func (a *Int8VarIntArray) ReadFrom(r io.Reader) (n int64, err error) { 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 -} - // Int64VarIntArray a utility type for encoding/decoding packet.Long -> int64[packet.VarInt] slice. type Int64VarIntArray []int64 @@ -5512,94 +7308,6 @@ func (a *StringIdentifierVarIntArray) ReadFrom(r io.Reader) (n int64, err error) return n, err } -// 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 - } - for i := 0; i < size; i++ { - nn, err := packet.UUID(a[i]).WriteTo(w) - n += nn - 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 - } - if size < 0 { - return n, errors.New("array length less than zero") - } - - 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 -} - -// 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 -} - // Int64VarLongVarIntArray a utility type for encoding/decoding packet.VarLong -> int64[packet.VarInt] slice. type Int64VarLongVarIntArray []int64 @@ -5687,3 +7395,91 @@ func (a *StringStringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) { 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 +} + +// 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 + } + for i := 0; i < size; i++ { + nn, err := packet.UUID(a[i]).WriteTo(w) + n += nn + 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 + } + if size < 0 { + return n, errors.New("array length less than zero") + } + + 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 +} diff --git a/codec/packet/game/client/level_particles.go b/codec/packet/game/client/level_particles.go new file mode 100644 index 0000000..ac2dd72 --- /dev/null +++ b/codec/packet/game/client/level_particles.go @@ -0,0 +1,14 @@ +package client + +import "git.konjactw.dev/patyhank/minego/codec/particle" + +//codec:gen +type Particle struct { + LongDistance bool + AlwaysVisible bool + X, Y, Z float64 + OffsetX, OffsetY, OffsetZ float32 + MaxSpeed float32 + Count int32 + Particle particle.Particle +} diff --git a/codec/packet/game/client/open_screen.go b/codec/packet/game/client/open_screen.go index c7b98b5..6d1003a 100644 --- a/codec/packet/game/client/open_screen.go +++ b/codec/packet/game/client/open_screen.go @@ -2,6 +2,7 @@ package client import "github.com/Tnze/go-mc/chat" +//codec:gen type OpenScreen struct { WindowID int32 `mc:"VarInt"` WindowType int32 `mc:"VarInt"` diff --git a/codec/packet/game/client/packet.go b/codec/packet/game/client/packet.go index 604fc85..ae27fef 100644 --- a/codec/packet/game/client/packet.go +++ b/codec/packet/game/client/packet.go @@ -8,35 +8,809 @@ import ( type ClientboundPacket interface { packet.Field + PacketID() packetid.ClientboundPacketID } -var ClientboundPackets = make(map[packetid.ClientboundPacketID]ClientboundPacket) +type clientBoundPacketCreator func() ClientboundPacket + +var ClientboundPackets = make(map[packetid.ClientboundPacketID]clientBoundPacketCreator) func init() { - ClientboundPackets[packetid.ClientboundAddEntity] = &AddEntity{} - ClientboundPackets[packetid.ClientboundAnimate] = &Animate{} - ClientboundPackets[packetid.ClientboundAwardStats] = &AwardStats{} - ClientboundPackets[packetid.ClientboundBlockChangedAck] = &BlockChangedAck{} - ClientboundPackets[packetid.ClientboundBlockDestruction] = &BlockDestruction{} - ClientboundPackets[packetid.ClientboundBlockEntityData] = &BlockEntityData{} - ClientboundPackets[packetid.ClientboundBlockEvent] = &BlockEvent{} - ClientboundPackets[packetid.ClientboundBlockUpdate] = &BlockUpdate{} - ClientboundPackets[packetid.ClientboundBossEvent] = &BossEvent{} - ClientboundPackets[packetid.ClientboundChangeDifficulty] = &ChangeDifficulty{} - ClientboundPackets[packetid.ClientboundChunkBatchFinished] = &ChunkBatchFinished{} - ClientboundPackets[packetid.ClientboundChunkBatchStart] = &ChunkBatchStart{} - ClientboundPackets[packetid.ClientboundChunksBiomes] = &ChunkBiomes{} - ClientboundPackets[packetid.ClientboundClearTitles] = &ClearTitles{} - ClientboundPackets[packetid.ClientboundContainerClose] = &CloseContainer{} - ClientboundPackets[packetid.ClientboundCommandSuggestions] = &CommandSuggestions{} - ClientboundPackets[packetid.ClientboundCommands] = &Commands{} - ClientboundPackets[packetid.ClientboundContainerSetData] = &ContainerSetData{} - ClientboundPackets[packetid.ClientboundContainerSetSlot] = &ContainerSetSlot{} - ClientboundPackets[packetid.ClientboundCooldown] = &Cooldown{} - ClientboundPackets[packetid.ClientboundCustomChatCompletions] = &CustomChatCompletions{} - ClientboundPackets[packetid.ClientboundDamageEvent] = &DamageEvent{} - ClientboundPackets[packetid.ClientboundDebugSample] = &DebugSample{} - ClientboundPackets[packetid.ClientboundDeleteChat] = &DeleteChat{} - ClientboundPackets[packetid.ClientboundDisguisedChat] = &DisguisedChat{} - ClientboundPackets[packetid.ClientboundEntityEvent] = &EntityEvent{} + registerPacket(func() ClientboundPacket { + return &AddEntity{} + }) + registerPacket(func() ClientboundPacket { + return &Animate{} + }) + registerPacket(func() ClientboundPacket { + return &AwardStats{} + }) + registerPacket(func() ClientboundPacket { + return &BlockChangedAck{} + }) + registerPacket(func() ClientboundPacket { + return &BlockDestruction{} + }) + registerPacket(func() ClientboundPacket { + return &BlockEntityData{} + }) + registerPacket(func() ClientboundPacket { + return &BlockEvent{} + }) + registerPacket(func() ClientboundPacket { + return &BlockUpdate{} + }) + registerPacket(func() ClientboundPacket { + return &BossEvent{} + }) + registerPacket(func() ClientboundPacket { + return &ChangeDifficulty{} + }) + registerPacket(func() ClientboundPacket { + return &ChunkBatchFinished{} + }) + registerPacket(func() ClientboundPacket { + return &ChunkBatchStart{} + }) + registerPacket(func() ClientboundPacket { + return &ChunkBiomes{} + }) + registerPacket(func() ClientboundPacket { + return &ClearTitles{} + }) + registerPacket(func() ClientboundPacket { + return &CommandSuggestions{} + }) + registerPacket(func() ClientboundPacket { + return &Commands{} + }) + registerPacket(func() ClientboundPacket { + return &CloseContainer{} + }) + registerPacket(func() ClientboundPacket { + return &SetContainerContent{} + }) + registerPacket(func() ClientboundPacket { + return &ContainerSetData{} + }) + registerPacket(func() ClientboundPacket { + return &ContainerSetSlot{} + }) + registerPacket(func() ClientboundPacket { + return &CookieRequest{} + }) + registerPacket(func() ClientboundPacket { + return &Cooldown{} + }) + registerPacket(func() ClientboundPacket { + return &CustomChatCompletions{} + }) + registerPacket(func() ClientboundPacket { + return &CustomPayload{} + }) + registerPacket(func() ClientboundPacket { + return &DamageEvent{} + }) + registerPacket(func() ClientboundPacket { + return &DebugSample{} + }) + registerPacket(func() ClientboundPacket { + return &DeleteChat{} + }) + registerPacket(func() ClientboundPacket { + return &Disconnect{} + }) + registerPacket(func() ClientboundPacket { + return &DisguisedChat{} + }) + registerPacket(func() ClientboundPacket { + return &EntityEvent{} + }) + registerPacket(func() ClientboundPacket { + return &TeleportEntity{} + }) + registerPacket(func() ClientboundPacket { + return &Explode{} + }) + registerPacket(func() ClientboundPacket { + return &ForgetLevelChunk{} + }) + registerPacket(func() ClientboundPacket { + return &GameEvent{} + }) + registerPacket(func() ClientboundPacket { + return &OpenHorseScreen{} + }) + registerPacket(func() ClientboundPacket { + return &HurtAnimation{} + }) + registerPacket(func() ClientboundPacket { + return &InitializeWorldBorder{} + }) + registerPacket(func() ClientboundPacket { + return &KeepAlive{} + }) + registerPacket(func() ClientboundPacket { + return &LevelChunkWithLight{} + }) + registerPacket(func() ClientboundPacket { + return &LevelEvent{} + }) + registerPacket(func() ClientboundPacket { + return &Particle{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateLight{} + }) + registerPacket(func() ClientboundPacket { + return &Login{} + }) + registerPacket(func() ClientboundPacket { + return &MapData{} + }) + registerPacket(func() ClientboundPacket { + return &MerchantOffers{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateEntityPosition{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateEntityPositionAndRotation{} + }) + registerPacket(func() ClientboundPacket { + return &MoveMinecartAlongTrack{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateEntityRotation{} + }) + registerPacket(func() ClientboundPacket { + return &MoveVehicle{} + }) + registerPacket(func() ClientboundPacket { + return &OpenBook{} + }) + registerPacket(func() ClientboundPacket { + return &OpenScreen{} + }) + registerPacket(func() ClientboundPacket { + return &OpenSignEditor{} + }) + registerPacket(func() ClientboundPacket { + return &Ping{} + }) + registerPacket(func() ClientboundPacket { + return &PingResponse{} + }) + registerPacket(func() ClientboundPacket { + return &PlaceGhostRecipe{} + }) + registerPacket(func() ClientboundPacket { + return &PlayerAbilities{} + }) + registerPacket(func() ClientboundPacket { + return &EndCombat{} + }) + registerPacket(func() ClientboundPacket { + return &EnterCombat{} + }) + registerPacket(func() ClientboundPacket { + return &CombatDeath{} + }) + registerPacket(func() ClientboundPacket { + return &PlayerInfoRemove{} + }) + registerPacket(func() ClientboundPacket { + return &PlayerInfoUpdate{} + }) + registerPacket(func() ClientboundPacket { + return &LookAt{} + }) + registerPacket(func() ClientboundPacket { + return &PlayerPosition{} + }) + registerPacket(func() ClientboundPacket { + return &PlayerRotation{} + }) + registerPacket(func() ClientboundPacket { + return &RecipeBookAdd{} + }) + registerPacket(func() ClientboundPacket { + return &RecipeBookRemove{} + }) + registerPacket(func() ClientboundPacket { + return &RecipeBookSettings{} + }) + registerPacket(func() ClientboundPacket { + return &RemoveEntities{} + }) + registerPacket(func() ClientboundPacket { + return &RemoveMobEffect{} + }) + registerPacket(func() ClientboundPacket { + return &ResetScore{} + }) + registerPacket(func() ClientboundPacket { + return &AddResourcePack{} + }) + registerPacket(func() ClientboundPacket { + return &RemoveResourcePack{} + }) + registerPacket(func() ClientboundPacket { + return &Respawn{} + }) + registerPacket(func() ClientboundPacket { + return &SetHeadRotation{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateSectionsBlocks{} + }) + registerPacket(func() ClientboundPacket { + return &SelectAdvancementsTab{} + }) + registerPacket(func() ClientboundPacket { + return &ServerData{} + }) + registerPacket(func() ClientboundPacket { + return &SetActionBarText{} + }) + registerPacket(func() ClientboundPacket { + return &SetBorderCenter{} + }) + registerPacket(func() ClientboundPacket { + return &SetBorderLerpSize{} + }) + registerPacket(func() ClientboundPacket { + return &SetBorderSize{} + }) + registerPacket(func() ClientboundPacket { + return &SetBorderWarningDelay{} + }) + registerPacket(func() ClientboundPacket { + return &SetBorderWarningDistance{} + }) + registerPacket(func() ClientboundPacket { + return &SetCamera{} + }) + registerPacket(func() ClientboundPacket { + return &SetCenterChunk{} + }) + registerPacket(func() ClientboundPacket { + return &SetRenderDistance{} + }) + registerPacket(func() ClientboundPacket { + return &SetCursorItem{} + }) + registerPacket(func() ClientboundPacket { + return &SetDefaultSpawnPosition{} + }) + registerPacket(func() ClientboundPacket { + return &DisplayObjective{} + }) + registerPacket(func() ClientboundPacket { + return &SetEntityMetadata{} + }) + registerPacket(func() ClientboundPacket { + return &SetEntityLink{} + }) + registerPacket(func() ClientboundPacket { + return &SetEntityVelocity{} + }) + registerPacket(func() ClientboundPacket { + return &SetEquipment{} + }) + registerPacket(func() ClientboundPacket { + return &SetExperience{} + }) + registerPacket(func() ClientboundPacket { + return &SetHealth{} + }) + registerPacket(func() ClientboundPacket { + return &SetHeldItem{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateObjectives{} + }) + registerPacket(func() ClientboundPacket { + return &SetPassengers{} + }) + registerPacket(func() ClientboundPacket { + return &SetPlayerInventory{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateTeams{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateScore{} + }) + registerPacket(func() ClientboundPacket { + return &SetSimulationDistance{} + }) + registerPacket(func() ClientboundPacket { + return &SetSubtitleText{} + }) + registerPacket(func() ClientboundPacket { + return &SetTime{} + }) + registerPacket(func() ClientboundPacket { + return &SetTitleText{} + }) + registerPacket(func() ClientboundPacket { + return &SetTitleAnimationTimes{} + }) + registerPacket(func() ClientboundPacket { + return &EntitySoundEffect{} + }) + registerPacket(func() ClientboundPacket { + return &SoundEffect{} + }) + registerPacket(func() ClientboundPacket { + return &StartConfiguration{} + }) + registerPacket(func() ClientboundPacket { + return &StopSound{} + }) + registerPacket(func() ClientboundPacket { + return &StoreCookie{} + }) + registerPacket(func() ClientboundPacket { + return &SystemChatMessage{} + }) + registerPacket(func() ClientboundPacket { + return &SetTabListHeaderAndFooter{} + }) + registerPacket(func() ClientboundPacket { + return &TagQueryResponse{} + }) + registerPacket(func() ClientboundPacket { + return &PickupItem{} + }) + registerPacket(func() ClientboundPacket { + return &SynchronizeVehiclePosition{} + }) + registerPacket(func() ClientboundPacket { + return &TestInstanceBlockStatus{} + }) + registerPacket(func() ClientboundPacket { + return &SetTickingState{} + }) + registerPacket(func() ClientboundPacket { + return &StepTick{} + }) + registerPacket(func() ClientboundPacket { + return &Transfer{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateAdvancements{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateAttributes{} + }) + registerPacket(func() ClientboundPacket { + return &EntityEffect{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateRecipes{} + }) + registerPacket(func() ClientboundPacket { + return &UpdateTags{} + }) + registerPacket(func() ClientboundPacket { + return &ProjectilePower{} + }) + registerPacket(func() ClientboundPacket { + return &CustomReportDetails{} + }) + registerPacket(func() ClientboundPacket { + return &ServerLinks{} + }) + registerPacket(func() ClientboundPacket { + return &Waypoint{} + }) + registerPacket(func() ClientboundPacket { + return &ClearDialog{} + }) + registerPacket(func() ClientboundPacket { + return &ShowDialog{} + }) +} + +func registerPacket(creator clientBoundPacketCreator) { + ClientboundPackets[creator().PacketID()] = creator +} + +func (AddEntity) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundAddEntity +} +func (Animate) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundAnimate +} +func (AwardStats) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundAwardStats +} +func (BlockChangedAck) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundBlockChangedAck +} +func (BlockDestruction) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundBlockDestruction +} +func (BlockEntityData) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundBlockEntityData +} +func (BlockEvent) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundBlockEvent +} +func (BlockUpdate) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundBlockUpdate +} +func (BossEvent) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundBossEvent +} +func (ChangeDifficulty) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundChangeDifficulty +} +func (ChunkBatchFinished) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundChunkBatchFinished +} +func (ChunkBatchStart) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundChunkBatchStart +} +func (ChunkBiomes) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundChunksBiomes +} +func (ClearTitles) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundClearTitles +} +func (CommandSuggestions) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundCommandSuggestions +} +func (Commands) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundCommands +} +func (CloseContainer) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundContainerClose +} +func (SetContainerContent) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundContainerSetContent +} +func (ContainerSetData) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundContainerSetData +} +func (ContainerSetSlot) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundContainerSetSlot +} +func (CookieRequest) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundCookieRequest +} +func (Cooldown) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundCooldown +} +func (CustomChatCompletions) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundCustomChatCompletions +} +func (CustomPayload) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundCustomPayload +} +func (DamageEvent) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundDamageEvent +} +func (DebugSample) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundDebugSample +} +func (DeleteChat) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundDeleteChat +} +func (Disconnect) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundDisconnect +} +func (DisguisedChat) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundDisguisedChat +} +func (EntityEvent) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundEntityEvent +} +func (TeleportEntity) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundEntityPositionSync +} +func (Explode) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundExplode +} +func (ForgetLevelChunk) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundForgetLevelChunk +} +func (GameEvent) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundGameEvent +} +func (OpenHorseScreen) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundHorseScreenOpen +} +func (HurtAnimation) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundHurtAnimation +} +func (InitializeWorldBorder) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundInitializeBorder +} +func (KeepAlive) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundKeepAlive +} +func (LevelChunkWithLight) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundLevelChunkWithLight +} +func (LevelEvent) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundLevelEvent +} +func (Particle) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundLevelParticles +} +func (UpdateLight) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundLightUpdate +} +func (Login) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundLogin +} +func (MapData) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundMapItemData +} +func (MerchantOffers) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundMerchantOffers +} +func (UpdateEntityPosition) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundMoveEntityPos +} +func (UpdateEntityPositionAndRotation) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundMoveEntityPosRot +} +func (MoveMinecartAlongTrack) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundMoveMinecartAlongTrack +} +func (UpdateEntityRotation) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundMoveEntityRot +} +func (MoveVehicle) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundMoveVehicle +} +func (OpenBook) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundOpenBook +} +func (OpenScreen) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundOpenScreen +} +func (OpenSignEditor) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundOpenSignEditor +} +func (Ping) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPing +} +func (PingResponse) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPongResponse +} +func (PlaceGhostRecipe) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlaceGhostRecipe +} +func (PlayerAbilities) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerAbilities +} +func (EndCombat) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerCombatEnd +} +func (EnterCombat) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerCombatEnter +} +func (CombatDeath) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerCombatKill +} +func (PlayerInfoRemove) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerInfoRemove +} +func (PlayerInfoUpdate) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerInfoUpdate +} +func (LookAt) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerLookAt +} +func (PlayerPosition) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerPosition +} +func (PlayerRotation) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundPlayerRotation +} +func (RecipeBookAdd) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundRecipeBookAdd +} +func (RecipeBookRemove) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundRecipeBookRemove +} +func (RecipeBookSettings) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundRecipeBookSettings +} +func (RemoveEntities) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundRemoveEntities +} +func (RemoveMobEffect) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundRemoveMobEffect +} +func (ResetScore) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundResetScore +} +func (AddResourcePack) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundResourcePackPop +} +func (RemoveResourcePack) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundResourcePackPush +} +func (Respawn) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundRespawn +} +func (SetHeadRotation) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundRotateHead +} +func (UpdateSectionsBlocks) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSectionBlocksUpdate +} +func (SelectAdvancementsTab) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSelectAdvancementsTab +} +func (ServerData) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundServerData +} +func (SetActionBarText) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetActionBarText +} +func (SetBorderCenter) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetBorderCenter +} +func (SetBorderLerpSize) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetBorderLerpSize +} +func (SetBorderSize) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetBorderSize +} +func (SetBorderWarningDelay) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetBorderWarningDelay +} +func (SetBorderWarningDistance) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetBorderWarningDistance +} +func (SetCamera) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetCamera +} +func (SetCenterChunk) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetChunkCacheCenter +} +func (SetRenderDistance) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetChunkCacheRadius +} +func (SetCursorItem) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetCursorItem +} +func (SetDefaultSpawnPosition) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetDefaultSpawnPosition +} +func (DisplayObjective) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetDisplayObjective +} +func (SetEntityMetadata) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetEntityData +} +func (SetEntityLink) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetEntityLink +} +func (SetEntityVelocity) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetEntityMotion +} +func (SetEquipment) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetEquipment +} +func (SetExperience) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetExperience +} +func (SetHealth) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetHealth +} +func (SetHeldItem) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetHeldSlot +} +func (UpdateObjectives) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetObjective +} +func (SetPassengers) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetPassengers +} +func (SetPlayerInventory) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetPlayerInventory +} +func (UpdateTeams) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetPlayerTeam +} +func (UpdateScore) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetScore +} +func (SetSimulationDistance) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetSimulationDistance +} +func (SetSubtitleText) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetSubtitleText +} +func (SetTime) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetTime +} +func (SetTitleText) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetTitleText +} +func (SetTitleAnimationTimes) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSetTitlesAnimation +} +func (EntitySoundEffect) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSoundEntity +} +func (SoundEffect) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSound +} +func (StartConfiguration) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundStartConfiguration +} +func (StopSound) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundStopSound +} +func (StoreCookie) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundStoreCookie +} +func (SystemChatMessage) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundSystemChat +} +func (SetTabListHeaderAndFooter) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTabList +} +func (TagQueryResponse) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTagQuery +} +func (PickupItem) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTakeItemEntity +} +func (SynchronizeVehiclePosition) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTeleportEntity +} +func (TestInstanceBlockStatus) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTestInstanceBlockStatus +} +func (SetTickingState) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTickingState +} +func (StepTick) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTickingStep +} +func (Transfer) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundTransfer +} +func (UpdateAdvancements) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundUpdateAdvancements +} +func (UpdateAttributes) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundUpdateAttributes +} +func (EntityEffect) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundUpdateMobEffect +} +func (UpdateRecipes) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundUpdateRecipes +} +func (UpdateTags) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundUpdateTags +} +func (ProjectilePower) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundProjectilePower +} +func (CustomReportDetails) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundCustomReportDetails +} +func (ServerLinks) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundServerLinks +} +func (Waypoint) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundWaypoint +} +func (ClearDialog) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundClearDialog +} +func (ShowDialog) PacketID() packetid.ClientboundPacketID { + return packetid.ClientboundShowDialog } diff --git a/codec/packet/game/client/ping_response.go b/codec/packet/game/client/pong_response.go similarity index 100% rename from codec/packet/game/client/ping_response.go rename to codec/packet/game/client/pong_response.go diff --git a/codec/packet/game/client/reset_score.go b/codec/packet/game/client/reset_score.go index da13c8e..79ca427 100644 --- a/codec/packet/game/client/reset_score.go +++ b/codec/packet/game/client/reset_score.go @@ -1 +1,9 @@ package client + +//codec:gen +type ResetScore struct { + EntityName string + HasObjectiveName bool + //opt:optional:HasObjectiveName + ObjectiveName string +} diff --git a/codec/packet/game/client/resource_pack_pop.go b/codec/packet/game/client/resource_pack_pop.go index 6168208..9e9906c 100644 --- a/codec/packet/game/client/resource_pack_pop.go +++ b/codec/packet/game/client/resource_pack_pop.go @@ -5,7 +5,7 @@ import ( ) //codec:gen -type RemoveResourcePacket struct { +type RemoveResourcePack struct { HasUUID bool //opt:optional:HasUUID UUID uuid.UUID `mc:"UUID"` diff --git a/codec/packet/game/client/set_border_lerp_size.go b/codec/packet/game/client/set_border_lerp_size.go index bc14c09..88056dd 100644 --- a/codec/packet/game/client/set_border_lerp_size.go +++ b/codec/packet/game/client/set_border_lerp_size.go @@ -1,5 +1,6 @@ package client +//codec:gen type SetBorderLerpSize struct { OldDiameter, NewDiameter float64 Speed int64 `mc:"VarLong"` diff --git a/codec/packet/game/client/set_entity_motion.go b/codec/packet/game/client/set_entity_motion.go index 1ab11c1..e8b0ce0 100644 --- a/codec/packet/game/client/set_entity_motion.go +++ b/codec/packet/game/client/set_entity_motion.go @@ -1,5 +1,6 @@ package client +//codec:gen type SetEntityVelocity struct { EntityID int32 `mc:"VarInt"` VelocityX, VelocityY, VelocityZ int16 diff --git a/codec/packet/game/client/show_dialog.go b/codec/packet/game/client/show_dialog.go index edaefc0..e9eb50a 100644 --- a/codec/packet/game/client/show_dialog.go +++ b/codec/packet/game/client/show_dialog.go @@ -4,6 +4,7 @@ import ( "github.com/Tnze/go-mc/nbt" ) +//codec:gen type ShowDialog struct { DialogID int32 `mc:"VarInt"` //opt:id:DialogID diff --git a/codec/packet/game/client/tab_list.go b/codec/packet/game/client/tab_list.go index acca0a7..218e8d5 100644 --- a/codec/packet/game/client/tab_list.go +++ b/codec/packet/game/client/tab_list.go @@ -2,6 +2,7 @@ package client import "github.com/Tnze/go-mc/chat" +//codec:gen type SetTabListHeaderAndFooter struct { Header chat.Message Footer chat.Message diff --git a/codec/packet/game/client/teleport_entity.go b/codec/packet/game/client/teleport_entity.go index 14380ec..ce35925 100644 --- a/codec/packet/game/client/teleport_entity.go +++ b/codec/packet/game/client/teleport_entity.go @@ -1,5 +1,6 @@ package client +//codec:gen type SynchronizeVehiclePosition struct { EntityID int32 `mc:"VarInt"` X, Y, Z float64 diff --git a/codec/packet/game/client/update_advancements.go b/codec/packet/game/client/update_advancements.go index d233ad1..a07dbde 100644 --- a/codec/packet/game/client/update_advancements.go +++ b/codec/packet/game/client/update_advancements.go @@ -36,6 +36,7 @@ type Advancement struct { SendTelemetryData bool } +//codec:gen type AdvancementProgress struct { ID string `mc:"Identifier"` CriterionId string `mc:"Identifier"` diff --git a/codec/packet/game/client/update_tags.go b/codec/packet/game/client/update_tags.go index 196b043..31d3ac3 100644 --- a/codec/packet/game/client/update_tags.go +++ b/codec/packet/game/client/update_tags.go @@ -1,15 +1,18 @@ package client +//codec:gen type Tag struct { Name string `mc:"Identifier"` Entries []int32 `mc:"VarInt"` } +//codec:gen type RegistryTag struct { Registry string `mc:"Identifier"` Tags []Tag } +//codec:gen type UpdateTags struct { Data []RegistryTag } diff --git a/codec/packet/game/client/waypoint.go b/codec/packet/game/client/waypoint.go index a4ee833..716f0f2 100644 --- a/codec/packet/game/client/waypoint.go +++ b/codec/packet/game/client/waypoint.go @@ -12,14 +12,17 @@ type WaypointVec3i struct { X, Y, Z int32 `mc:"VarInt"` } +//codec:gen type WaypointChunkPos struct { X, Z int32 `mc:"VarInt"` } +//codec:gen type WaypointAzimuth struct { Angle float32 } +//codec:gen type Waypoint struct { Operation int32 `mc:"VarInt"` IsUUIDIdentifier bool diff --git a/codec/packet/game/server/accept_teleportation.go b/codec/packet/game/server/accept_teleportation.go new file mode 100644 index 0000000..76b1399 --- /dev/null +++ b/codec/packet/game/server/accept_teleportation.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type AcceptTeleportation struct { + TeleportID int32 `mc:"VarInt"` +} + +func (AcceptTeleportation) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundAcceptTeleportation +} + +func init() { + registerPacket(packetid.ServerboundAcceptTeleportation, func() ServerboundPacket { + return &AcceptTeleportation{} + }) +} diff --git a/codec/packet/game/server/block_entity_tag_query.go b/codec/packet/game/server/block_entity_tag_query.go new file mode 100644 index 0000000..ed3646f --- /dev/null +++ b/codec/packet/game/server/block_entity_tag_query.go @@ -0,0 +1,22 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type BlockEntityTagQuery struct { + TransactionID int32 `mc:"VarInt"` + Location pk.Position +} + +func (BlockEntityTagQuery) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundBlockEntityTagQuery +} + +func init() { + registerPacket(packetid.ServerboundBlockEntityTagQuery, func() ServerboundPacket { + return &BlockEntityTagQuery{} + }) +} diff --git a/codec/packet/game/server/bundle_item_selected.go b/codec/packet/game/server/bundle_item_selected.go new file mode 100644 index 0000000..b611c7e --- /dev/null +++ b/codec/packet/game/server/bundle_item_selected.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type BundleItemSelected struct { + SlotOfBundle int32 `mc:"VarInt"` + SlotInBundle int32 `mc:"VarInt"` +} + +func (BundleItemSelected) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundBundleItemSelected +} + +func init() { + registerPacket(packetid.ServerboundBundleItemSelected, func() ServerboundPacket { + return &BundleItemSelected{} + }) +} diff --git a/codec/packet/game/server/change_difficulty.go b/codec/packet/game/server/change_difficulty.go new file mode 100644 index 0000000..a0a1c98 --- /dev/null +++ b/codec/packet/game/server/change_difficulty.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ChangeDifficulty struct { + Difficulty uint8 +} + +func (ChangeDifficulty) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChangeDifficulty +} + +func init() { + registerPacket(packetid.ServerboundChangeDifficulty, func() ServerboundPacket { + return &ChangeDifficulty{} + }) +} diff --git a/codec/packet/game/server/change_game_mode.go b/codec/packet/game/server/change_game_mode.go new file mode 100644 index 0000000..9e52f50 --- /dev/null +++ b/codec/packet/game/server/change_game_mode.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ChangeGameMode struct { + GameMode int32 `mc:"VarInt"` +} + +func (ChangeGameMode) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChangeGameMode +} + +func init() { + registerPacket(packetid.ServerboundChangeGameMode, func() ServerboundPacket { + return &ChangeGameMode{} + }) +} diff --git a/codec/packet/game/server/chat.go b/codec/packet/game/server/chat.go new file mode 100644 index 0000000..5b6ec34 --- /dev/null +++ b/codec/packet/game/server/chat.go @@ -0,0 +1,29 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type Chat struct { + Message string + Timestamp int64 + Salt int64 + HasSignature bool + //opt:optional:HasSignature + Signature []byte `mc:"ByteArray"` + MessageCount int32 `mc:"VarInt"` + Acknowledged pk.FixedBitSet `mc:"FixedBitSet" size:"20"` + Checksum int8 +} + +func (Chat) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChat +} + +func init() { + registerPacket(packetid.ServerboundChat, func() ServerboundPacket { + return &Chat{} + }) +} diff --git a/codec/packet/game/server/chat_ack.go b/codec/packet/game/server/chat_ack.go new file mode 100644 index 0000000..20d4775 --- /dev/null +++ b/codec/packet/game/server/chat_ack.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ChatAck struct { + MessageCount int32 `mc:"VarInt"` +} + +func (ChatAck) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChatAck +} + +func init() { + registerPacket(packetid.ServerboundChatAck, func() ServerboundPacket { + return &ChatAck{} + }) +} diff --git a/codec/packet/game/server/chat_command.go b/codec/packet/game/server/chat_command.go new file mode 100644 index 0000000..64d1de2 --- /dev/null +++ b/codec/packet/game/server/chat_command.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ChatCommand struct { + Command string +} + +func (ChatCommand) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChatCommand +} + +func init() { + registerPacket(packetid.ServerboundChatCommand, func() ServerboundPacket { + return &ChatCommand{} + }) +} diff --git a/codec/packet/game/server/chat_command_signed.go b/codec/packet/game/server/chat_command_signed.go new file mode 100644 index 0000000..6ce5997 --- /dev/null +++ b/codec/packet/game/server/chat_command_signed.go @@ -0,0 +1,33 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type SignedSignatures struct { + ArgumentName string + Signature []byte `mc:"ByteArray"` +} + +//codec:gen +type ChatCommandSigned struct { + Command string + Timestamp int64 + Salt int64 + ArgumentSignatures []SignedSignatures + MessageCount int32 `mc:"VarInt"` + Acknowledged pk.FixedBitSet `mc:"FixedBitSet" size:"20"` + Checksum int8 +} + +func (ChatCommandSigned) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChatCommandSigned +} + +func init() { + registerPacket(packetid.ServerboundChatCommandSigned, func() ServerboundPacket { + return &ChatCommandSigned{} + }) +} diff --git a/codec/packet/game/server/chat_session_update.go b/codec/packet/game/server/chat_session_update.go new file mode 100644 index 0000000..38139d7 --- /dev/null +++ b/codec/packet/game/server/chat_session_update.go @@ -0,0 +1,23 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + "github.com/Tnze/go-mc/yggdrasil/user" + "github.com/google/uuid" +) + +//codec:gen +type ChatSessionUpdate struct { + SessionId uuid.UUID `mc:"UUID"` + PublicKey user.PublicKey +} + +func (ChatSessionUpdate) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChatSessionUpdate +} + +func init() { + registerPacket(packetid.ServerboundChatSessionUpdate, func() ServerboundPacket { + return &ChatSessionUpdate{} + }) +} diff --git a/codec/packet/game/server/chunk_batch_received.go b/codec/packet/game/server/chunk_batch_received.go new file mode 100644 index 0000000..bf1bd83 --- /dev/null +++ b/codec/packet/game/server/chunk_batch_received.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ChunkBatchReceived struct { + ChunksPerTick float32 +} + +func (ChunkBatchReceived) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundChunkBatchReceived +} + +func init() { + registerPacket(packetid.ServerboundChunkBatchReceived, func() ServerboundPacket { + return &ChunkBatchReceived{} + }) +} diff --git a/codec/packet/game/server/client_command.go b/codec/packet/game/server/client_command.go new file mode 100644 index 0000000..9ed7b0f --- /dev/null +++ b/codec/packet/game/server/client_command.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ClientCommand struct { + Action int32 `mc:"VarInt"` +} + +func (ClientCommand) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundClientCommand +} + +func init() { + registerPacket(packetid.ServerboundClientCommand, func() ServerboundPacket { + return &ClientCommand{} + }) +} diff --git a/codec/packet/game/server/client_information.go b/codec/packet/game/server/client_information.go new file mode 100644 index 0000000..10424a5 --- /dev/null +++ b/codec/packet/game/server/client_information.go @@ -0,0 +1,26 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ClientInformation struct { + Location string + ViewDistance int8 + ChatMode int32 `mc:"VarInt"` + ChatColor bool + DisplayedSkinParts uint8 + MainHand int32 `mc:"VarInt"` + EnableTextFiltering bool + AllowListing bool + ParticleStatus int32 `mc:"VarInt"` +} + +func (ClientInformation) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundClientInformation +} + +func init() { + registerPacket(packetid.ServerboundClientInformation, func() ServerboundPacket { + return &ClientInformation{} + }) +} diff --git a/codec/packet/game/server/client_tick_end.go b/codec/packet/game/server/client_tick_end.go new file mode 100644 index 0000000..5b24bde --- /dev/null +++ b/codec/packet/game/server/client_tick_end.go @@ -0,0 +1,17 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ClientTickEnd struct { +} + +func (ClientTickEnd) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundClientTickEnd +} + +func init() { + registerPacket(packetid.ServerboundClientTickEnd, func() ServerboundPacket { + return &ClientTickEnd{} + }) +} diff --git a/codec/packet/game/server/command_suggestion.go b/codec/packet/game/server/command_suggestion.go new file mode 100644 index 0000000..ef05083 --- /dev/null +++ b/codec/packet/game/server/command_suggestion.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type CommandSuggestion struct { + TransactionID int32 `mc:"VarInt"` + Text string +} + +func (CommandSuggestion) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundCommandSuggestion +} + +func init() { + registerPacket(packetid.ServerboundCommandSuggestion, func() ServerboundPacket { + return &CommandSuggestion{} + }) +} diff --git a/codec/packet/game/server/configuration_acknowledged.go b/codec/packet/game/server/configuration_acknowledged.go new file mode 100644 index 0000000..f57d4b2 --- /dev/null +++ b/codec/packet/game/server/configuration_acknowledged.go @@ -0,0 +1,17 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ConfigurationAcknowledged struct { +} + +func (ConfigurationAcknowledged) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundConfigurationAcknowledged +} + +func init() { + registerPacket(packetid.ServerboundConfigurationAcknowledged, func() ServerboundPacket { + return &ConfigurationAcknowledged{} + }) +} diff --git a/codec/packet/game/server/container_button_click.go b/codec/packet/game/server/container_button_click.go new file mode 100644 index 0000000..b05ed63 --- /dev/null +++ b/codec/packet/game/server/container_button_click.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ContainerButtonClick struct { + WindowID int32 `mc:"VarInt"` + ButtonID int32 `mc:"VarInt"` +} + +func (ContainerButtonClick) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundContainerButtonClick +} + +func init() { + registerPacket(packetid.ServerboundContainerButtonClick, func() ServerboundPacket { + return &ContainerButtonClick{} + }) +} diff --git a/codec/packet/game/server/container_click.go b/codec/packet/game/server/container_click.go new file mode 100644 index 0000000..423ae6a --- /dev/null +++ b/codec/packet/game/server/container_click.go @@ -0,0 +1,33 @@ +package server + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot" + "github.com/Tnze/go-mc/data/packetid" +) + +//codec:gen +type ChangedSlot struct { + Slot int16 + SlotData slot.HashedSlot +} + +//codec:gen +type ContainerClick struct { + WindowID int32 `mc:"VarInt"` + StateID int32 `mc:"VarInt"` + Slot int16 + Button int8 + Mode int32 `mc:"VarInt"` + ChangedSlots []ChangedSlot + CarriedSlot slot.HashedSlot +} + +func (ContainerClick) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundContainerClick +} + +func init() { + registerPacket(packetid.ServerboundContainerClick, func() ServerboundPacket { + return &ContainerClick{} + }) +} diff --git a/codec/packet/game/server/container_close.go b/codec/packet/game/server/container_close.go new file mode 100644 index 0000000..e645d5a --- /dev/null +++ b/codec/packet/game/server/container_close.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ContainerClose struct { + WindowID int32 `mc:"VarInt"` +} + +func (ContainerClose) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundContainerClose +} + +func init() { + registerPacket(packetid.ServerboundContainerClose, func() ServerboundPacket { + return &ContainerClose{} + }) +} diff --git a/codec/packet/game/server/container_slot_state_changed.go b/codec/packet/game/server/container_slot_state_changed.go new file mode 100644 index 0000000..09f1fe2 --- /dev/null +++ b/codec/packet/game/server/container_slot_state_changed.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type ContainerSlotStateChanged struct { + SlotID int32 `mc:"VarInt"` + WindowID int32 `mc:"VarInt"` + State bool +} + +func (ContainerSlotStateChanged) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundContainerSlotStateChanged +} + +func init() { + registerPacket(packetid.ServerboundContainerSlotStateChanged, func() ServerboundPacket { + return &ContainerSlotStateChanged{} + }) +} diff --git a/codec/packet/game/server/cookie_response.go b/codec/packet/game/server/cookie_response.go new file mode 100644 index 0000000..a134297 --- /dev/null +++ b/codec/packet/game/server/cookie_response.go @@ -0,0 +1,21 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type CookieResponse struct { + Key string `mc:"Identifier"` + HasPayload bool + //opt:optional:HasPayload + Payload []int8 `mc:"Byte"` +} + +func (CookieResponse) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundCookieResponse +} + +func init() { + registerPacket(packetid.ServerboundCookieResponse, func() ServerboundPacket { + return &CookieResponse{} + }) +} diff --git a/codec/packet/game/server/custom_click_action.go b/codec/packet/game/server/custom_click_action.go new file mode 100644 index 0000000..22c5b39 --- /dev/null +++ b/codec/packet/game/server/custom_click_action.go @@ -0,0 +1,22 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + "github.com/Tnze/go-mc/nbt" +) + +//codec:gen +type CustomClickAction struct { + ID string `mc:"Identifier"` + Payload nbt.RawMessage `mc:"NBT"` +} + +func (CustomClickAction) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundCustomClickAction +} + +func init() { + registerPacket(packetid.ServerboundCustomClickAction, func() ServerboundPacket { + return &CustomClickAction{} + }) +} diff --git a/codec/packet/game/server/custom_payload.go b/codec/packet/game/server/custom_payload.go new file mode 100644 index 0000000..5c7e35d --- /dev/null +++ b/codec/packet/game/server/custom_payload.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type CustomPayload struct { + Channel string `mc:"Identifier"` + Data []byte `mc:"ByteArray"` +} + +func (CustomPayload) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundCustomPayload +} + +func init() { + registerPacket(packetid.ServerboundCustomPayload, func() ServerboundPacket { + return &CustomPayload{} + }) +} diff --git a/codec/packet/game/server/debug_sample_subscription.go b/codec/packet/game/server/debug_sample_subscription.go new file mode 100644 index 0000000..3034d7f --- /dev/null +++ b/codec/packet/game/server/debug_sample_subscription.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type DebugSampleSubscription struct { + SampleType int32 `mc:"VarInt"` +} + +func (DebugSampleSubscription) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundDebugSampleSubscription +} + +func init() { + registerPacket(packetid.ServerboundDebugSampleSubscription, func() ServerboundPacket { + return &DebugSampleSubscription{} + }) +} diff --git a/codec/packet/game/server/edit_book.go b/codec/packet/game/server/edit_book.go new file mode 100644 index 0000000..172e8ec --- /dev/null +++ b/codec/packet/game/server/edit_book.go @@ -0,0 +1,22 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type EditBook struct { + Slot int32 `mc:"VarInt"` + Entries []string + HasTitle bool + //opt:optional:HasTitle + Title string +} + +func (EditBook) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundEditBook +} + +func init() { + registerPacket(packetid.ServerboundEditBook, func() ServerboundPacket { + return &EditBook{} + }) +} diff --git a/codec/packet/game/server/entity_tag_query.go b/codec/packet/game/server/entity_tag_query.go new file mode 100644 index 0000000..59a28a9 --- /dev/null +++ b/codec/packet/game/server/entity_tag_query.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type EntityTagQuery struct { + TransactionID int32 `mc:"VarInt"` + EntityID int32 `mc:"VarInt"` +} + +func (EntityTagQuery) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundEntityTagQuery +} + +func init() { + registerPacket(packetid.ServerboundEntityTagQuery, func() ServerboundPacket { + return &EntityTagQuery{} + }) +} diff --git a/codec/packet/game/server/interact.go b/codec/packet/game/server/interact.go new file mode 100644 index 0000000..6231e42 --- /dev/null +++ b/codec/packet/game/server/interact.go @@ -0,0 +1,28 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" +) + +//codec:gen +type Interact struct { + EntityID int32 `mc:"VarInt"` + Type int32 `mc:"VarInt"` + //opt:enum:Type:0 + InteractHand int32 `mc:"VarInt"` + //opt:enum:Type:2 + InteractAtTargetX, InteractAtTargetY, InteractAtTargetZ float32 + //opt:enum:Type:2 + InteractAtHand int32 `mc:"VarInt"` + SneakKeyPressed bool +} + +func (Interact) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundInteract +} + +func init() { + registerPacket(packetid.ServerboundInteract, func() ServerboundPacket { + return &Interact{} + }) +} diff --git a/codec/packet/game/server/jigsaw_generate.go b/codec/packet/game/server/jigsaw_generate.go new file mode 100644 index 0000000..fe69ffc --- /dev/null +++ b/codec/packet/game/server/jigsaw_generate.go @@ -0,0 +1,23 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type JigsawGenerate struct { + Location pk.Position + Levels int32 `mc:"VarInt"` + KeepJigsaws bool +} + +func (JigsawGenerate) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundJigsawGenerate +} + +func init() { + registerPacket(packetid.ServerboundJigsawGenerate, func() ServerboundPacket { + return &JigsawGenerate{} + }) +} diff --git a/codec/packet/game/server/keep_alive.go b/codec/packet/game/server/keep_alive.go new file mode 100644 index 0000000..27d0dfc --- /dev/null +++ b/codec/packet/game/server/keep_alive.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type KeepAlive struct { + ID int64 +} + +func (KeepAlive) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundKeepAlive +} + +func init() { + registerPacket(packetid.ServerboundKeepAlive, func() ServerboundPacket { + return &KeepAlive{} + }) +} diff --git a/codec/packet/game/server/lock_difficulty.go b/codec/packet/game/server/lock_difficulty.go new file mode 100644 index 0000000..318d60c --- /dev/null +++ b/codec/packet/game/server/lock_difficulty.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type LockDifficulty struct { + Locked bool +} + +func (LockDifficulty) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundLockDifficulty +} + +func init() { + registerPacket(packetid.ServerboundLockDifficulty, func() ServerboundPacket { + return &LockDifficulty{} + }) +} diff --git a/codec/packet/game/server/move_player_pos.go b/codec/packet/game/server/move_player_pos.go new file mode 100644 index 0000000..83d7570 --- /dev/null +++ b/codec/packet/game/server/move_player_pos.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type MovePlayerPos struct { + X, FeetY, Z float64 + Flags int8 +} + +func (MovePlayerPos) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundMovePlayerPos +} + +func init() { + registerPacket(packetid.ServerboundMovePlayerPos, func() ServerboundPacket { + return &MovePlayerPos{} + }) +} diff --git a/codec/packet/game/server/move_player_pos_rot.go b/codec/packet/game/server/move_player_pos_rot.go new file mode 100644 index 0000000..001c35d --- /dev/null +++ b/codec/packet/game/server/move_player_pos_rot.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type MovePlayerPosRot struct { + X, FeetY, Z float64 + Yaw, Pitch float32 + Flags int8 +} + +func (MovePlayerPosRot) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundMovePlayerPosRot +} + +func init() { + registerPacket(packetid.ServerboundMovePlayerPosRot, func() ServerboundPacket { + return &MovePlayerPosRot{} + }) +} diff --git a/codec/packet/game/server/move_player_rot.go b/codec/packet/game/server/move_player_rot.go new file mode 100644 index 0000000..c423e35 --- /dev/null +++ b/codec/packet/game/server/move_player_rot.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type MovePlayerRot struct { + Yaw, Pitch float32 + Flags int8 +} + +func (MovePlayerRot) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundMovePlayerRot +} + +func init() { + registerPacket(packetid.ServerboundMovePlayerRot, func() ServerboundPacket { + return &MovePlayerRot{} + }) +} diff --git a/codec/packet/game/server/move_player_status_only.go b/codec/packet/game/server/move_player_status_only.go new file mode 100644 index 0000000..04243ca --- /dev/null +++ b/codec/packet/game/server/move_player_status_only.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type MovePlayerStatusOnly struct { + Flags int8 +} + +func (MovePlayerStatusOnly) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundMovePlayerStatusOnly +} + +func init() { + registerPacket(packetid.ServerboundMovePlayerStatusOnly, func() ServerboundPacket { + return &MovePlayerStatusOnly{} + }) +} diff --git a/codec/packet/game/server/move_vehicle.go b/codec/packet/game/server/move_vehicle.go new file mode 100644 index 0000000..00c8413 --- /dev/null +++ b/codec/packet/game/server/move_vehicle.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type MoveVehicle struct { + X, Y, Z float64 + Yaw, Pitch float32 + OnGround bool +} + +func (MoveVehicle) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundMoveVehicle +} + +func init() { + registerPacket(packetid.ServerboundMoveVehicle, func() ServerboundPacket { + return &MoveVehicle{} + }) +} diff --git a/codec/packet/game/server/packet.go b/codec/packet/game/server/packet.go index 2af70c4..7135c00 100644 --- a/codec/packet/game/server/packet.go +++ b/codec/packet/game/server/packet.go @@ -1,10 +1,20 @@ //codec:ignore package server -import "github.com/Tnze/go-mc/data/packetid" +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) type ServerboundPacket interface { - ServerboundPacketID() packetid.ServerboundPacketID + pk.Field + PacketID() packetid.ServerboundPacketID } -var ServerboundPackets = make(map[packetid.ServerboundPacketID]ServerboundPacket) +type serverPacketCreator func() ServerboundPacket + +var packetRegistry = make(map[packetid.ServerboundPacketID]serverPacketCreator) + +func registerPacket(id packetid.ServerboundPacketID, creator serverPacketCreator) { + packetRegistry[id] = creator +} diff --git a/codec/packet/game/server/paddle_boat.go b/codec/packet/game/server/paddle_boat.go new file mode 100644 index 0000000..2409082 --- /dev/null +++ b/codec/packet/game/server/paddle_boat.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PaddleBoat struct { + LeftTurning, RightTurning bool +} + +func (PaddleBoat) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPaddleBoat +} + +func init() { + registerPacket(packetid.ServerboundPaddleBoat, func() ServerboundPacket { + return &PaddleBoat{} + }) +} diff --git a/codec/packet/game/server/pick_item_from_block.go b/codec/packet/game/server/pick_item_from_block.go new file mode 100644 index 0000000..af08897 --- /dev/null +++ b/codec/packet/game/server/pick_item_from_block.go @@ -0,0 +1,22 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type PickItemFromBlock struct { + Location pk.Position + IncludeData bool +} + +func (PickItemFromBlock) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPickItemFromBlock +} + +func init() { + registerPacket(packetid.ServerboundPickItemFromBlock, func() ServerboundPacket { + return &PickItemFromBlock{} + }) +} diff --git a/codec/packet/game/server/pick_item_from_entity.go b/codec/packet/game/server/pick_item_from_entity.go new file mode 100644 index 0000000..5032b90 --- /dev/null +++ b/codec/packet/game/server/pick_item_from_entity.go @@ -0,0 +1,19 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PickItemFromEntity struct { + EntityID int32 `mc:"VarInt"` + IncludeData bool +} + +func (PickItemFromEntity) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPickItemFromEntity +} + +func init() { + registerPacket(packetid.ServerboundPickItemFromEntity, func() ServerboundPacket { + return &PickItemFromEntity{} + }) +} diff --git a/codec/packet/game/server/ping_request.go b/codec/packet/game/server/ping_request.go new file mode 100644 index 0000000..a4ac8fa --- /dev/null +++ b/codec/packet/game/server/ping_request.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PingRequest struct { + payload int64 +} + +func (PingRequest) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPingRequest +} + +func init() { + registerPacket(packetid.ServerboundPingRequest, func() ServerboundPacket { + return &PingRequest{} + }) +} diff --git a/codec/packet/game/server/place_recipe.go b/codec/packet/game/server/place_recipe.go new file mode 100644 index 0000000..9931f58 --- /dev/null +++ b/codec/packet/game/server/place_recipe.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PlaceRecipe struct { + WindowID int32 `mc:"VarInt"` + RecipeID int32 `mc:"VarInt"` + MakeAll bool +} + +func (PlaceRecipe) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPlaceRecipe +} + +func init() { + registerPacket(packetid.ServerboundPlaceRecipe, func() ServerboundPacket { + return &PlaceRecipe{} + }) +} diff --git a/codec/packet/game/server/player_abilities.go b/codec/packet/game/server/player_abilities.go new file mode 100644 index 0000000..55eb244 --- /dev/null +++ b/codec/packet/game/server/player_abilities.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PlayerAbilities struct { + Flags int8 +} + +func (PlayerAbilities) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPlayerAbilities +} + +func init() { + registerPacket(packetid.ServerboundPlayerAbilities, func() ServerboundPacket { + return &PlayerAbilities{} + }) +} diff --git a/codec/packet/game/server/player_action.go b/codec/packet/game/server/player_action.go new file mode 100644 index 0000000..03770b3 --- /dev/null +++ b/codec/packet/game/server/player_action.go @@ -0,0 +1,24 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type PlayerAction struct { + Status int32 `mc:"VarInt"` + Location pk.Position + Face int8 + Sequence int32 `mc:"VarInt"` +} + +func (PlayerAction) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPlayerAction +} + +func init() { + registerPacket(packetid.ServerboundPlayerAction, func() ServerboundPacket { + return &PlayerAction{} + }) +} diff --git a/codec/packet/game/server/player_command.go b/codec/packet/game/server/player_command.go new file mode 100644 index 0000000..9258363 --- /dev/null +++ b/codec/packet/game/server/player_command.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PlayerCommand struct { + EntityID int32 `mc:"VarInt"` + ActionID int32 `mc:"VarInt"` + JumpBoost int32 `mc:"VarInt"` +} + +func (PlayerCommand) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPlayerCommand +} + +func init() { + registerPacket(packetid.ServerboundPlayerCommand, func() ServerboundPacket { + return &PlayerCommand{} + }) +} diff --git a/codec/packet/game/server/player_input.go b/codec/packet/game/server/player_input.go new file mode 100644 index 0000000..d2f41b1 --- /dev/null +++ b/codec/packet/game/server/player_input.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PlayerInput struct { + Flags uint8 +} + +func (PlayerInput) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPlayerInput +} + +func init() { + registerPacket(packetid.ServerboundPlayerInput, func() ServerboundPacket { + return &PlayerInput{} + }) +} diff --git a/codec/packet/game/server/player_loaded.go b/codec/packet/game/server/player_loaded.go new file mode 100644 index 0000000..079de6a --- /dev/null +++ b/codec/packet/game/server/player_loaded.go @@ -0,0 +1,17 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type PlayerLoaded struct { +} + +func (PlayerLoaded) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPlayerLoaded +} + +func init() { + registerPacket(packetid.ServerboundPlayerLoaded, func() ServerboundPacket { + return &PlayerLoaded{} + }) +} diff --git a/codec/packet/game/server/pong.go b/codec/packet/game/server/pong.go new file mode 100644 index 0000000..4ee36df --- /dev/null +++ b/codec/packet/game/server/pong.go @@ -0,0 +1,17 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type Pong struct { +} + +func (Pong) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundPong +} + +func init() { + registerPacket(packetid.ServerboundPong, func() ServerboundPacket { + return &Pong{} + }) +} diff --git a/codec/packet/game/server/recipe_book_change_settings.go b/codec/packet/game/server/recipe_book_change_settings.go new file mode 100644 index 0000000..53bbf79 --- /dev/null +++ b/codec/packet/game/server/recipe_book_change_settings.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type RecipeBookChangeSettings struct { + BookId int32 `mc:"VarInt"` + BookOpen bool + FilterActive bool +} + +func (RecipeBookChangeSettings) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundRecipeBookChangeSettings +} + +func init() { + registerPacket(packetid.ServerboundRecipeBookChangeSettings, func() ServerboundPacket { + return &RecipeBookChangeSettings{} + }) +} diff --git a/codec/packet/game/server/recipe_book_seen_recipe.go b/codec/packet/game/server/recipe_book_seen_recipe.go new file mode 100644 index 0000000..0089093 --- /dev/null +++ b/codec/packet/game/server/recipe_book_seen_recipe.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type RecipeBookSeenRecipe struct { + RecipeID int32 `mc:"VarInt"` +} + +func (RecipeBookSeenRecipe) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundRecipeBookSeenRecipe +} + +func init() { + registerPacket(packetid.ServerboundRecipeBookSeenRecipe, func() ServerboundPacket { + return &RecipeBookSeenRecipe{} + }) +} diff --git a/codec/packet/game/server/rename_item.go b/codec/packet/game/server/rename_item.go new file mode 100644 index 0000000..710d918 --- /dev/null +++ b/codec/packet/game/server/rename_item.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type RenameItem struct { + ItemName string +} + +func (RenameItem) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundRenameItem +} + +func init() { + registerPacket(packetid.ServerboundRenameItem, func() ServerboundPacket { + return &RenameItem{} + }) +} diff --git a/codec/packet/game/server/resource_pack.go b/codec/packet/game/server/resource_pack.go new file mode 100644 index 0000000..9e9b18f --- /dev/null +++ b/codec/packet/game/server/resource_pack.go @@ -0,0 +1,22 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + "github.com/google/uuid" +) + +//codec:gen +type ResourcePack struct { + UUID uuid.UUID `mc:"UUID"` + Result int32 `mc:"VarInt"` +} + +func (ResourcePack) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundResourcePack +} + +func init() { + registerPacket(packetid.ServerboundResourcePack, func() ServerboundPacket { + return &ResourcePack{} + }) +} diff --git a/codec/packet/game/server/seen_advancements.go b/codec/packet/game/server/seen_advancements.go new file mode 100644 index 0000000..42c7773 --- /dev/null +++ b/codec/packet/game/server/seen_advancements.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type SeenAdvancements struct { + Action int32 `mc:"VarInt"` + //opt:enum:Action:0 + TabID string `mc:"Identifier"` +} + +func (SeenAdvancements) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSeenAdvancements +} + +func init() { + registerPacket(packetid.ServerboundSeenAdvancements, func() ServerboundPacket { + return &SeenAdvancements{} + }) +} diff --git a/codec/packet/game/server/select_trade.go b/codec/packet/game/server/select_trade.go new file mode 100644 index 0000000..7a9e3ec --- /dev/null +++ b/codec/packet/game/server/select_trade.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type SelectTrade struct { + SelectedSlot int32 `mc:"VarInt"` +} + +func (SelectTrade) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSelectTrade +} + +func init() { + registerPacket(packetid.ServerboundSelectTrade, func() ServerboundPacket { + return &SelectTrade{} + }) +} diff --git a/codec/packet/game/server/set_beacon.go b/codec/packet/game/server/set_beacon.go new file mode 100644 index 0000000..e32a20f --- /dev/null +++ b/codec/packet/game/server/set_beacon.go @@ -0,0 +1,23 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type SetBeacon struct { + HasPrimaryEffect bool + //opt:optional:HasPrimaryEffect + PrimaryEffect int32 `mc:"VarInt"` + HasSecondaryEffect bool + //opt:optional:HasSecondaryEffect + SecondaryEffect int32 `mc:"VarInt"` +} + +func (SetBeacon) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetBeacon +} + +func init() { + registerPacket(packetid.ServerboundSetBeacon, func() ServerboundPacket { + return &SetBeacon{} + }) +} diff --git a/codec/packet/game/server/set_carried_item.go b/codec/packet/game/server/set_carried_item.go new file mode 100644 index 0000000..6dcab20 --- /dev/null +++ b/codec/packet/game/server/set_carried_item.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type SetCarriedItem struct { + Slot int16 +} + +func (SetCarriedItem) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetCarriedItem +} + +func init() { + registerPacket(packetid.ServerboundSetCarriedItem, func() ServerboundPacket { + return &SetCarriedItem{} + }) +} diff --git a/codec/packet/game/server/set_command_block.go b/codec/packet/game/server/set_command_block.go new file mode 100644 index 0000000..f94f5fa --- /dev/null +++ b/codec/packet/game/server/set_command_block.go @@ -0,0 +1,24 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type SetCommandBlock struct { + Location pk.Position + Command string + Mode int32 `mc:"VarInt"` + Flags int8 +} + +func (SetCommandBlock) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetCommandBlock +} + +func init() { + registerPacket(packetid.ServerboundSetCommandBlock, func() ServerboundPacket { + return &SetCommandBlock{} + }) +} diff --git a/codec/packet/game/server/set_command_minecart.go b/codec/packet/game/server/set_command_minecart.go new file mode 100644 index 0000000..d3aeef2 --- /dev/null +++ b/codec/packet/game/server/set_command_minecart.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type SetCommandMinecart struct { + EntityID int32 `mc:"VarInt"` + Command string + TrackOutput bool +} + +func (SetCommandMinecart) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetCommandMinecart +} + +func init() { + registerPacket(packetid.ServerboundSetCommandMinecart, func() ServerboundPacket { + return &SetCommandMinecart{} + }) +} diff --git a/codec/packet/game/server/set_creative_mode_slot.go b/codec/packet/game/server/set_creative_mode_slot.go new file mode 100644 index 0000000..b5ef6a5 --- /dev/null +++ b/codec/packet/game/server/set_creative_mode_slot.go @@ -0,0 +1,22 @@ +package server + +import ( + "git.konjactw.dev/patyhank/minego/codec/slot" + "github.com/Tnze/go-mc/data/packetid" +) + +//codec:gen +type SetCreativeModeSlot struct { + Slot int16 + ClickedItem slot.Slot +} + +func (SetCreativeModeSlot) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetCreativeModeSlot +} + +func init() { + registerPacket(packetid.ServerboundSetCreativeModeSlot, func() ServerboundPacket { + return &SetCreativeModeSlot{} + }) +} diff --git a/codec/packet/game/server/set_jigsaw_block.go b/codec/packet/game/server/set_jigsaw_block.go new file mode 100644 index 0000000..028d7c6 --- /dev/null +++ b/codec/packet/game/server/set_jigsaw_block.go @@ -0,0 +1,28 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type SetJigsawBlock struct { + Location pk.Position + Name string `mc:"Identifier"` + Target string `mc:"Identifier"` + Pool string `mc:"Identifier"` + FinalState string + JointType string + SelectionPriority int32 `mc:"VarInt"` + PlacementPriority int32 `mc:"VarInt"` +} + +func (SetJigsawBlock) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetJigsawBlock +} + +func init() { + registerPacket(packetid.ServerboundSetJigsawBlock, func() ServerboundPacket { + return &SetJigsawBlock{} + }) +} diff --git a/codec/packet/game/server/set_structure_block.go b/codec/packet/game/server/set_structure_block.go new file mode 100644 index 0000000..0a58bee --- /dev/null +++ b/codec/packet/game/server/set_structure_block.go @@ -0,0 +1,32 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type SetStructureBlock struct { + Location pk.Position + Action int32 `mc:"VarInt"` + Mode int32 `mc:"VarInt"` + Name string + OffsetX, OffsetY, OffsetZ int8 + SizeX, SizeY, SizeZ int8 + Mirror int32 `mc:"VarInt"` + Rotation int32 `mc:"VarInt"` + Metadata string + Integrity float32 + Seed int32 `mc:"VarLong"` + Flags int8 +} + +func (SetStructureBlock) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetStructureBlock +} + +func init() { + registerPacket(packetid.ServerboundSetStructureBlock, func() ServerboundPacket { + return &SetStructureBlock{} + }) +} diff --git a/codec/packet/game/server/set_test_block.go b/codec/packet/game/server/set_test_block.go new file mode 100644 index 0000000..6cd889d --- /dev/null +++ b/codec/packet/game/server/set_test_block.go @@ -0,0 +1,23 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type SetTestBlock struct { + Position pk.Position + Mode int32 `mc:"VarInt"` + Message string +} + +func (SetTestBlock) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSetTestBlock +} + +func init() { + registerPacket(packetid.ServerboundSetTestBlock, func() ServerboundPacket { + return &SetTestBlock{} + }) +} diff --git a/codec/packet/game/server/sign_update.go b/codec/packet/game/server/sign_update.go new file mode 100644 index 0000000..210b126 --- /dev/null +++ b/codec/packet/game/server/sign_update.go @@ -0,0 +1,23 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type SignUpdate struct { + Location pk.Position + IsFrontText bool + Line1, Line2, Line3, Line4 string +} + +func (SignUpdate) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSignUpdate +} + +func init() { + registerPacket(packetid.ServerboundSignUpdate, func() ServerboundPacket { + return &SignUpdate{} + }) +} diff --git a/codec/packet/game/server/swing.go b/codec/packet/game/server/swing.go new file mode 100644 index 0000000..fe353b9 --- /dev/null +++ b/codec/packet/game/server/swing.go @@ -0,0 +1,18 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type Swing struct { + Hand int32 `mc:"VarInt"` +} + +func (Swing) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundSwing +} + +func init() { + registerPacket(packetid.ServerboundSwing, func() ServerboundPacket { + return &Swing{} + }) +} diff --git a/codec/packet/game/server/teleport_to_entity.go b/codec/packet/game/server/teleport_to_entity.go new file mode 100644 index 0000000..14de199 --- /dev/null +++ b/codec/packet/game/server/teleport_to_entity.go @@ -0,0 +1,21 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + "github.com/google/uuid" +) + +//codec:gen +type TeleportToEntity struct { + TargetPlayer uuid.UUID `mc:"UUID"` +} + +func (TeleportToEntity) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundTeleportToEntity +} + +func init() { + registerPacket(packetid.ServerboundTeleportToEntity, func() ServerboundPacket { + return &TeleportToEntity{} + }) +} diff --git a/codec/packet/game/server/test_instance_block_action.go b/codec/packet/game/server/test_instance_block_action.go new file mode 100644 index 0000000..21b4f2b --- /dev/null +++ b/codec/packet/game/server/test_instance_block_action.go @@ -0,0 +1,33 @@ +package server + +import ( + "github.com/Tnze/go-mc/chat" + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type TestInstanceBlockAction struct { + Position pk.Position + Action int32 `mc:"VarInt"` + IsTest bool + //opt:optional:IsTest + Test int32 `mc:"VarInt"` + SizeX, SizeY, SizeZ int32 `mc:"VarInt"` + Rotation int32 `mc:"VarInt"` + IgnoredEntities bool + Status int32 `mc:"VarInt"` + HasErrorMessage bool + //opt:optional:HasErrorMessage + ErrorMessage chat.Message +} + +func (TestInstanceBlockAction) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundTestInstanceBlockAction +} + +func init() { + registerPacket(packetid.ServerboundTestInstanceBlockAction, func() ServerboundPacket { + return &TestInstanceBlockAction{} + }) +} diff --git a/codec/packet/game/server/use_item.go b/codec/packet/game/server/use_item.go new file mode 100644 index 0000000..5b5f4e2 --- /dev/null +++ b/codec/packet/game/server/use_item.go @@ -0,0 +1,20 @@ +package server + +import "github.com/Tnze/go-mc/data/packetid" + +//codec:gen +type UseItem struct { + Hand int32 `mc:"VarInt"` + Sequence int32 `mc:"VarInt"` + Yaw, Pitch float32 +} + +func (UseItem) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundUseItem +} + +func init() { + registerPacket(packetid.ServerboundUseItem, func() ServerboundPacket { + return &UseItem{} + }) +} diff --git a/codec/packet/game/server/use_item_on.go b/codec/packet/game/server/use_item_on.go new file mode 100644 index 0000000..e80e321 --- /dev/null +++ b/codec/packet/game/server/use_item_on.go @@ -0,0 +1,27 @@ +package server + +import ( + "github.com/Tnze/go-mc/data/packetid" + pk "github.com/Tnze/go-mc/net/packet" +) + +//codec:gen +type UseItemOn struct { + Hand int32 `mc:"VarInt"` + Location pk.Position + Face int32 `mc:"VarInt"` + CursorX, CursorY, CursorZ float32 + InsideBlock bool + WorldBorderHit bool + Sequence int32 `mc:"VarInt"` +} + +func (UseItemOn) PacketID() packetid.ServerboundPacketID { + return packetid.ServerboundUseItemOn +} + +func init() { + registerPacket(packetid.ServerboundUseItemOn, func() ServerboundPacket { + return &UseItemOn{} + }) +} diff --git a/codec/slot/hashed_item.go b/codec/slot/hashed_item.go new file mode 100644 index 0000000..931fb55 --- /dev/null +++ b/codec/slot/hashed_item.go @@ -0,0 +1,20 @@ +package slot + +//codec:gen +type AddedHashedComponent struct { + Type int32 `mc:"VarInt"` + DataHash int32 +} + +//codec:gen +type HashedSlot struct { + HasItem bool + //opt:optional:HasItem + ItemID int32 `mc:"VarInt"` + //opt:optional:HasItem + ItemCount int32 `mc:"VarInt"` + //opt:optional:HasItem + AddComponents AddedHashedComponent + //opt:optional:HasItem + RemovedComponents []int32 `mc:"VarInt"` +}