From 82d4143467e2ec85cb3e93384b652a5c0ec0d975 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:35:10 +1300 Subject: [PATCH 01/79] rem vec_2.rs --- crates/proto/src/version/v662/types/vec_2.rs | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 crates/proto/src/version/v662/types/vec_2.rs diff --git a/crates/proto/src/version/v662/types/vec_2.rs b/crates/proto/src/version/v662/types/vec_2.rs deleted file mode 100644 index f5f4c952..00000000 --- a/crates/proto/src/version/v662/types/vec_2.rs +++ /dev/null @@ -1,9 +0,0 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec)] -pub struct Vec2 { - #[endianness(le)] - pub x: f32, - #[endianness(le)] - pub y: f32, -} \ No newline at end of file From e1a6230ed2e129cd0a46aea77a989cf4c9e9f98d Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:35:16 +1300 Subject: [PATCH 02/79] rem vec_3.rs --- crates/proto/src/version/v662/types/vec_3.rs | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 crates/proto/src/version/v662/types/vec_3.rs diff --git a/crates/proto/src/version/v662/types/vec_3.rs b/crates/proto/src/version/v662/types/vec_3.rs deleted file mode 100644 index 23c8d058..00000000 --- a/crates/proto/src/version/v662/types/vec_3.rs +++ /dev/null @@ -1,11 +0,0 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec)] -pub struct Vec3 { - #[endianness(le)] - pub x: f32, - #[endianness(le)] - pub y: f32, - #[endianness(le)] - pub z: f32, -} \ No newline at end of file From 08bb515bc5b5df7a5f6b3d90e7f511ba904e5ab2 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:36:07 +1300 Subject: [PATCH 03/79] rem compound_tag.rs --- .../src/version/v662/types/compound_tag.rs | 39 ------------------- 1 file changed, 39 deletions(-) delete mode 100644 crates/proto/src/version/v662/types/compound_tag.rs diff --git a/crates/proto/src/version/v662/types/compound_tag.rs b/crates/proto/src/version/v662/types/compound_tag.rs deleted file mode 100644 index 87f06587..00000000 --- a/crates/proto/src/version/v662/types/compound_tag.rs +++ /dev/null @@ -1,39 +0,0 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec)] -#[enum_repr(i8)] -#[repr(i8)] -enum Type { - End = 0, - Byte(i8) = 1, - #[endianness(le)] - Short(i16) = 2, - #[endianness(var)] - Int(i32) = 3, - #[endianness(var)] - Int64(i64) = 4, - #[endianness(le)] - Float(f32) = 5, - #[endianness(le)] - Double(f64) = 6, - #[vec_repr(i32)] - #[vec_endianness(var)] - ByteArray(Vec) = 7, - String(String) = 8, - #[vec_repr(i32)] - #[vec_endianness(var)] - List(Vec) = 9, - Compound(CompoundTag) = 10, - #[vec_repr(i32)] - #[vec_endianness(var)] - #[endianness(var)] - IntArray(Vec) = 11, -} - -#[derive(ProtoCodec)] -pub struct CompoundTag { - pub tag_type: Type, - pub tag_name: String, -} - -// TODO: custom proto impl, because of enum variant serialization order. \ No newline at end of file From 188c72c83919d86a3f1e4b9ea2beff34b96648e0 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:36:13 +1300 Subject: [PATCH 04/79] rem --- crates/proto/src/version/v662/types/mod.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/crates/proto/src/version/v662/types/mod.rs b/crates/proto/src/version/v662/types/mod.rs index 06bb15f9..b5a25dd5 100644 --- a/crates/proto/src/version/v662/types/mod.rs +++ b/crates/proto/src/version/v662/types/mod.rs @@ -17,7 +17,6 @@ export!(camera_preset); export!(camera_presets); export!(chunk_pos); export!(command_origin_data); -export!(compound_tag); export!(container_mix_data_entry); export!(crafting_data_entry); export!(data_item); @@ -72,6 +71,4 @@ export!(structure_settings); export!(sub_chunk_packet); // Mod export!(sub_chunk_pos); export!(synced_player_movement_settings); -export!(vec_2); -export!(vec_3); export!(web_socket_packet_data); \ No newline at end of file From 4038b5a5e0042de0d60f34dd6f58930f097144b8 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:36:58 +1300 Subject: [PATCH 05/79] replace Vec3 & Vec2 --- .../v662/types/move_actor_absolute_data.rs | 6 ++++-- ...acked_item_use_legacy_inventory_transaction.rs | 15 ++++++++++----- .../src/version/v662/types/structure_settings.rs | 6 ++++-- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/crates/proto/src/version/v662/types/move_actor_absolute_data.rs b/crates/proto/src/version/v662/types/move_actor_absolute_data.rs index da861487..7f169035 100644 --- a/crates/proto/src/version/v662/types/move_actor_absolute_data.rs +++ b/crates/proto/src/version/v662/types/move_actor_absolute_data.rs @@ -1,11 +1,13 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -use crate::version::v662::types::{ActorRuntimeID, Vec3}; +use crate::version::v662::types::ActorRuntimeID; #[derive(ProtoCodec)] pub struct MoveActorAbsoluteData { pub actor_runtime_id: ActorRuntimeID, pub header: i8, - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, pub rotation_x: i8, pub rotation_y: i8, pub rotation_y_head: i8, diff --git a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs index 1e4e7379..30519914 100644 --- a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs +++ b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs @@ -1,6 +1,7 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::ItemUseInventoryTransaction; -use crate::version::v662::types::{InventoryAction, NetworkBlockPosition, NetworkItemStackDescriptor, Vec3}; +use crate::version::v662::types::{InventoryAction, NetworkBlockPosition, NetworkItemStackDescriptor}; #[derive(ProtoCodec)] struct ContainerSlotEntry { @@ -27,8 +28,10 @@ pub enum PackedItemUseLegacyInventoryTransaction { #[endianness(var)] slot: i32, item: NetworkItemStackDescriptor, - from_position: Vec3, - click_position: Vec3, + #[endianness(le)] + from_position: Vec3, + #[endianness(le)] + click_position: Vec3, #[endianness(var)] target_block_id: u32, } = 0, @@ -48,8 +51,10 @@ pub enum PackedItemUseLegacyInventoryTransaction { #[endianness(var)] slot: i32, item: NetworkItemStackDescriptor, - from_position: Vec3, - click_position: Vec3, + #[endianness(le)] + from_position: Vec3, + #[endianness(le)] + click_position: Vec3, #[endianness(var)] target_block_id: u32, } = 1 diff --git a/crates/proto/src/version/v662/types/structure_settings.rs b/crates/proto/src/version/v662/types/structure_settings.rs index 693cbf16..eac789d2 100644 --- a/crates/proto/src/version/v662/types/structure_settings.rs +++ b/crates/proto/src/version/v662/types/structure_settings.rs @@ -1,6 +1,7 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::{AnimationMode, Mirror, Rotation}; -use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition, Vec3}; +use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; #[derive(ProtoCodec)] pub struct StructureSettings { @@ -20,5 +21,6 @@ pub struct StructureSettings { pub integrity_value: f32, #[endianness(le)] pub integrity_seed: u32, - pub rotation_pivot: Vec3, + #[endianness(le)] + pub rotation_pivot: Vec3, } \ No newline at end of file From 6292649c3d277db010ed18cb21534f9a052bfa97 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:37:07 +1300 Subject: [PATCH 06/79] fix doc comment --- crates/proto/src/version/v662/types/actor_link.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/proto/src/version/v662/types/actor_link.rs b/crates/proto/src/version/v662/types/actor_link.rs index 8c0db4ee..9df3abdb 100644 --- a/crates/proto/src/version/v662/types/actor_link.rs +++ b/crates/proto/src/version/v662/types/actor_link.rs @@ -8,5 +8,6 @@ pub struct ActorLink { pub actor_unique_id_b: ActorUniqueID, pub link_type: ActorLinkType, pub immediate: bool, - pub passenger_initiated: bool, /// Whether the link was changed by the passenger + /// Whether the link was changed by the passenger + pub passenger_initiated: bool, } From 223b89b52b77191dda120a0a7698a18ffa7b6448 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:37:22 +1300 Subject: [PATCH 07/79] move AudioListener enum into packet --- crates/proto/src/version/v662/types/camera_preset.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/proto/src/version/v662/types/camera_preset.rs b/crates/proto/src/version/v662/types/camera_preset.rs index 2fe53557..52978f84 100644 --- a/crates/proto/src/version/v662/types/camera_preset.rs +++ b/crates/proto/src/version/v662/types/camera_preset.rs @@ -1,5 +1,10 @@ use bedrockrs_macros::ProtoCodec; -use crate::version::v662::enums::CameraPreset::AudioListener; + +#[derive(ProtoCodec)] +pub enum AudioListener { + Camera = 0, + Player = 1, +} #[derive(ProtoCodec)] pub struct CameraPreset { From 6840d09f6cce0cebdc01b87fbb810eb5a643120f Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:37:34 +1300 Subject: [PATCH 08/79] use Enchant::Type enum --- crates/proto/src/version/v662/types/item_enchants.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/proto/src/version/v662/types/item_enchants.rs b/crates/proto/src/version/v662/types/item_enchants.rs index 066a7560..f04f9d9d 100644 --- a/crates/proto/src/version/v662/types/item_enchants.rs +++ b/crates/proto/src/version/v662/types/item_enchants.rs @@ -1,8 +1,9 @@ use bedrockrs_macros::ProtoCodec; +use crate::version::v662::enums::Enchant; #[derive(ProtoCodec)] struct ItemEnchant { - pub enchant_type: i8, + pub enchant_type: Enchant::Type, pub enchant_level: i8, } From 4b6f7c67bd84d5c9284a8ef8d88ba2a1fcbc115d Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:37:52 +1300 Subject: [PATCH 09/79] replace CompoundTag with nbtx:Value --- .../proto/src/version/v662/types/item_instance_user_data.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/types/item_instance_user_data.rs b/crates/proto/src/version/v662/types/item_instance_user_data.rs index f9b76044..ce12bb2f 100644 --- a/crates/proto/src/version/v662/types/item_instance_user_data.rs +++ b/crates/proto/src/version/v662/types/item_instance_user_data.rs @@ -1,12 +1,12 @@ use bedrockrs_macros::ProtoCodec; -use crate::version::v662::types::CompoundTag; #[derive(ProtoCodec)] pub struct ItemInstanceUserData { #[endianness(le)] pub serialization_marker: i16, pub serialization_version: i8, - pub tags: CompoundTag, + #[nbt] + pub tags: nbtx::Value, // TODO: NBT Structure #[vec_repr(u32)] #[vec_endianness(le)] pub can_place_on: Vec, From 1fb6c4b2f8f9092f6669ad43783ea3d7a73e7c93 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:38:27 +1300 Subject: [PATCH 10/79] rem enums from packets --- .../src/version/v662/enums/animate_packet.rs | 14 ----- .../clientbound_debug_renderer_packet.rs | 10 ---- .../enums/clientbound_map_item_data_packet.rs | 11 ---- .../src/version/v662/enums/emote_packet.rs | 9 --- .../src/version/v662/enums/interact_packet.rs | 12 ---- .../version/v662/enums/lab_table_packet.rs | 10 ---- .../version/v662/enums/mob_effect_packet.rs | 11 ---- .../version/v662/enums/npc_dialogue_packet.rs | 9 --- .../version/v662/enums/npc_request_packet.rs | 14 ----- .../v662/enums/player_auth_input_packet.rs | 56 ------------------- ...ition_tracking_db_client_request_packet.rs | 8 --- ...ion_tracking_db_server_broadcast_packet.rs | 10 ---- .../v662/enums/request_ability_packet.rs | 10 ---- .../version/v662/enums/set_title_packet.rs | 16 ------ .../version/v662/enums/show_credits_packet.rs | 9 --- .../version/v662/enums/simple_event_packet.rs | 11 ---- .../version/v662/enums/sub_chunk_packet.rs | 22 -------- 17 files changed, 242 deletions(-) delete mode 100644 crates/proto/src/version/v662/enums/animate_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/clientbound_debug_renderer_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/clientbound_map_item_data_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/emote_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/interact_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/lab_table_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/mob_effect_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/npc_dialogue_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/npc_request_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/player_auth_input_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/position_tracking_db_client_request_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/position_tracking_db_server_broadcast_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/request_ability_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/set_title_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/show_credits_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/simple_event_packet.rs delete mode 100644 crates/proto/src/version/v662/enums/sub_chunk_packet.rs diff --git a/crates/proto/src/version/v662/enums/animate_packet.rs b/crates/proto/src/version/v662/enums/animate_packet.rs deleted file mode 100644 index 1636a38c..00000000 --- a/crates/proto/src/version/v662/enums/animate_packet.rs +++ /dev/null @@ -1,14 +0,0 @@ -pub mod AnimatePacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Action { - NoAction = 0, - Swing = 1, - WakeUp = 3, - CriticalHit = 4, - MagicCriticalHit = 5, - RowRight = 128, - RowLeft = 129, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/clientbound_debug_renderer_packet.rs b/crates/proto/src/version/v662/enums/clientbound_debug_renderer_packet.rs deleted file mode 100644 index aacb30c5..00000000 --- a/crates/proto/src/version/v662/enums/clientbound_debug_renderer_packet.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub mod ClientboundDebugRendererPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Type { - Invalid = 0, - ClearDebugMarkers = 1, - AddDebugMarkerCube = 2, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/clientbound_map_item_data_packet.rs b/crates/proto/src/version/v662/enums/clientbound_map_item_data_packet.rs deleted file mode 100644 index a5c2e47d..00000000 --- a/crates/proto/src/version/v662/enums/clientbound_map_item_data_packet.rs +++ /dev/null @@ -1,11 +0,0 @@ -pub mod ClientboundMapItemDataPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Type { - Invalid = 0, - TextureUpdate = 1 << 1, - DecorationUpdate = 1 << 2, - Creation = 1 << 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/emote_packet.rs b/crates/proto/src/version/v662/enums/emote_packet.rs deleted file mode 100644 index 1298ab3c..00000000 --- a/crates/proto/src/version/v662/enums/emote_packet.rs +++ /dev/null @@ -1,9 +0,0 @@ -pub mod EmotePacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Flags { - ServerSide = 1 << 0, - MuteEmoteChat = 1 << 1, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/interact_packet.rs b/crates/proto/src/version/v662/enums/interact_packet.rs deleted file mode 100644 index 3bac5e25..00000000 --- a/crates/proto/src/version/v662/enums/interact_packet.rs +++ /dev/null @@ -1,12 +0,0 @@ -pub mod InteractPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Action { - Invalid = 0, - StopRiding = 3, - InteractUpdate = 4, - NpcOpen = 5, - OpenInventory = 6, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/lab_table_packet.rs b/crates/proto/src/version/v662/enums/lab_table_packet.rs deleted file mode 100644 index 598f6884..00000000 --- a/crates/proto/src/version/v662/enums/lab_table_packet.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub mod LabTablePacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Type { - StartCombine = 0, - StartReaction = 1, - Reset = 2, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/mob_effect_packet.rs b/crates/proto/src/version/v662/enums/mob_effect_packet.rs deleted file mode 100644 index cb267d53..00000000 --- a/crates/proto/src/version/v662/enums/mob_effect_packet.rs +++ /dev/null @@ -1,11 +0,0 @@ -pub mod MobEventPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Event { - Invalid = 0, - Add = 1, - Update = 2, - Remove = 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/npc_dialogue_packet.rs b/crates/proto/src/version/v662/enums/npc_dialogue_packet.rs deleted file mode 100644 index de4b4ad5..00000000 --- a/crates/proto/src/version/v662/enums/npc_dialogue_packet.rs +++ /dev/null @@ -1,9 +0,0 @@ -pub mod NpcDialoguePacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum NpcDialogueActionType { - Open = 0, - Close = 1, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/npc_request_packet.rs b/crates/proto/src/version/v662/enums/npc_request_packet.rs deleted file mode 100644 index 131b0841..00000000 --- a/crates/proto/src/version/v662/enums/npc_request_packet.rs +++ /dev/null @@ -1,14 +0,0 @@ -pub mod NpcRequestPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum RequestType { - SetActions = 0, - ExecuteAction = 1, - ExecuteClosingCommands = 2, - SetName = 3, - SetSkin = 4, - SetInteractText = 5, - ExecuteOpeningCommands = 6, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/player_auth_input_packet.rs b/crates/proto/src/version/v662/enums/player_auth_input_packet.rs deleted file mode 100644 index adaa6fe4..00000000 --- a/crates/proto/src/version/v662/enums/player_auth_input_packet.rs +++ /dev/null @@ -1,56 +0,0 @@ -pub mod PlayerAuthInputPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum InputData { - Ascend = 0, - Descend = 1, - NorthJump = 2, - JumpDown = 3, - SprintDown = 4, - ChangeHeight = 5, - Jumping = 6, - AutoJumpingInWater = 7, - Sneaking = 8, - SneakDown = 9, - Up = 10, - Down = 11, - Left = 12, - Right = 13, - UpLeft = 14, - UpRight = 15, - WantUp = 16, - WantDown = 17, - WantDownSlow = 18, - WantUpSlow = 19, - Sprinting = 20, - AscendBlock = 21, - DescendBlock = 22, - SneakToggleDown = 23, - PersistSneak = 24, - StartSprinting = 25, - StopSprinting = 26, - StartSneaking = 27, - StopSneaking = 28, - StartSwimming = 29, - StopSwimming = 30, - StartJumping = 31, - StartGliding = 32, - StopGliding = 33, - PerformItemInteraction = 34, - PerformBlockActions = 35, - PerformItemStackRequest = 36, - HandledTeleport = 37, - Emoting = 38, - MissedSwing = 39, - StartCrawling = 40, - StopCrawling = 41, - StartFlying = 42, - StopFlying = 43, - ClientAckServerData = 44, - IsInClientPredictedVehicle = 45, - PaddlingLeft = 46, - PaddlingRight = 47, - InputNum = 48, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/position_tracking_db_client_request_packet.rs b/crates/proto/src/version/v662/enums/position_tracking_db_client_request_packet.rs deleted file mode 100644 index 8f2b60a0..00000000 --- a/crates/proto/src/version/v662/enums/position_tracking_db_client_request_packet.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub mod PositionTrackingDBClientRequestPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Action { - Query = 0 - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/position_tracking_db_server_broadcast_packet.rs b/crates/proto/src/version/v662/enums/position_tracking_db_server_broadcast_packet.rs deleted file mode 100644 index 61b9f9df..00000000 --- a/crates/proto/src/version/v662/enums/position_tracking_db_server_broadcast_packet.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub mod PositionTrackingDBServerBroadcastPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Action { - Update = 0, - Destroy = 1, - NotFound = 2, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/request_ability_packet.rs b/crates/proto/src/version/v662/enums/request_ability_packet.rs deleted file mode 100644 index edf5948a..00000000 --- a/crates/proto/src/version/v662/enums/request_ability_packet.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub mod RequestAbilityPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Type { - Unset = 0, - Bool = 1, - Float = 2, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/set_title_packet.rs b/crates/proto/src/version/v662/enums/set_title_packet.rs deleted file mode 100644 index 5697f094..00000000 --- a/crates/proto/src/version/v662/enums/set_title_packet.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub mod SetTitlePacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum TitleType { - Clear = 0, - Reset = 1, - Title = 2, - Subtitle = 3, - Actionbar = 4, - Times = 5, - TitleTextObject = 6, - SubtitleTextObject = 7, - ActionbarTextObject = 8, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/show_credits_packet.rs b/crates/proto/src/version/v662/enums/show_credits_packet.rs deleted file mode 100644 index e483fd01..00000000 --- a/crates/proto/src/version/v662/enums/show_credits_packet.rs +++ /dev/null @@ -1,9 +0,0 @@ -pub mod ShowCreditsPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum CreditsState { - Start = 0, - Finished = 1, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/simple_event_packet.rs b/crates/proto/src/version/v662/enums/simple_event_packet.rs deleted file mode 100644 index a42dc5aa..00000000 --- a/crates/proto/src/version/v662/enums/simple_event_packet.rs +++ /dev/null @@ -1,11 +0,0 @@ -pub mod SimpleEventPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum Subtype { - UninitializedSubtype = 0, - EnableCommands = 1, - DisableCommands = 2, - UnlockWorldTemplateSettings = 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/sub_chunk_packet.rs b/crates/proto/src/version/v662/enums/sub_chunk_packet.rs deleted file mode 100644 index c94637e1..00000000 --- a/crates/proto/src/version/v662/enums/sub_chunk_packet.rs +++ /dev/null @@ -1,22 +0,0 @@ -pub mod SubChunkPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum HeightMapDataType { - NoData = 0, - HasData = 1, - AllTooHigh = 2, - AllTooLow = 3, - } - - #[derive(ProtoCodec)] - pub enum SubChunkRequestResult { - Undefined = 0, - Success = 1, - LevelChunkDoesntExist = 2, - WrongDimension = 3, - PlayerDoesntExist = 4, - IndexOutOfBounds = 5, - SuccessAllAir = 6, - } -} \ No newline at end of file From 9aa536e85ca5924ec81a05028b4541d05c75d429 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:38:38 +1300 Subject: [PATCH 11/79] rem enums --- .../version/v662/enums/player_position_mode_component.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/enums/player_position_mode_component.rs b/crates/proto/src/version/v662/enums/player_position_mode_component.rs index ed68ff4f..145b415d 100644 --- a/crates/proto/src/version/v662/enums/player_position_mode_component.rs +++ b/crates/proto/src/version/v662/enums/player_position_mode_component.rs @@ -9,8 +9,10 @@ pub mod PlayerPositionModeComponent { Normal = 0, Respawn = 1, Teleport { - teleportation_cause: MinecraftEventing::TeleportationCause, // TODO: same here. listed as int without an enum. - source_actor_type: ActorType, // TODO: listed as int without enum. ActorType is assumed, but it is a varint enum. + #[endianness(le)] + teleportation_cause: i32, + #[endianness(le)] + source_actor_type: i32, } = 2, OnlyHeadRot = 3, } From 334522dcb1710e7fcff409c0033e7935ad33ed9b Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:38:47 +1300 Subject: [PATCH 12/79] rem --- crates/proto/src/version/v662/enums/mod.rs | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/crates/proto/src/version/v662/enums/mod.rs b/crates/proto/src/version/v662/enums/mod.rs index 033cecef..af44c0bf 100644 --- a/crates/proto/src/version/v662/enums/mod.rs +++ b/crates/proto/src/version/v662/enums/mod.rs @@ -14,7 +14,6 @@ export!(actor_flags); export!(actor_link_type); export!(actor_type); export!(agent_action_type); -export!(animate_packet); // Mod export!(animation_mode); export!(attribute_modifier_operation); export!(attribute_operands); @@ -26,8 +25,6 @@ export!(camera_shake_action); export!(camera_shake_type); export!(chat_restriction_level); export!(client_play_mode); -export!(clientbound_debug_renderer_packet); // Mod -export!(clientbound_map_item_data_packet); // Mod export!(code_builder_storage_query_options); // Mod export!(command_block_mode); export!(command_origin_type); @@ -46,7 +43,6 @@ export!(difficulty); export!(easing_type); export!(editor); // Mod export!(education_edition_offer); -export!(emote_packet); // Mod export!(enchant); // Mod export!(game_rule); // Mod export!(game_type); @@ -55,7 +51,6 @@ export!(hud_element); export!(hud_visibility); export!(identity_definition); // Mod export!(input_mode); -export!(interact_packet); // Mod export!(inventory_layout); export!(inventory_left_tab_index); export!(inventory_right_tab_index); @@ -68,7 +63,6 @@ export!(item_stack_request_action_type); export!(item_use_inventory_transaction); // Mod export!(item_use_method); export!(item_use_on_actor_inventory_transaction); // Mod -export!(lab_table_packet); // Mod export!(lab_table_reaction_type); export!(legacy_telemetry_event_packet); // Mod export!(lesson_action); @@ -78,13 +72,10 @@ export!(map_item_tracked_actor); // Mod export!(minecraft_eventing); // Mod export!(minecraft_packet_ids); export!(mirror); -export!(mob_effect_packet); // Mod export!(modal_form_cancel_reason); export!(molang_version); export!(multiplayer_settings_packet_type); export!(new_interaction_model); -export!(npc_dialogue_packet); // Mod -export!(npc_request_packet); // Mod export!(objective_sort_order); export!(pack_type); export!(packet_compression_algorithm); @@ -94,25 +85,18 @@ export!(particle_type); export!(photo_type); export!(play_status); export!(player_action_type); -export!(player_auth_input_packet); // Mod export!(player_list_packet_type); export!(player_permission_level); export!(player_position_mode_component); // Mod export!(player_respawn_state); -export!(position_tracking_db_client_request_packet); // Mod -export!(position_tracking_db_server_broadcast_packet); // Mod export!(puv); // Mod -export!(request_ability_packet); // Mod export!(resource_pack_response); export!(rotation); export!(score_packet_type); export!(scoreboard_identity_packet_type); export!(serialized_abilities_data); // Mod export!(server_auth_movement_mode); -export!(set_title_packet); // Mod -export!(show_credits_packet); // Mod export!(show_store_offer_redirect_type); -export!(simple_event_packet); // Mod export!(simulation_type); export!(social); // Mod export!(soft_enum_update_type); @@ -122,7 +106,6 @@ export!(structure_block_type); export!(structure_redstone_save_mode); export!(structure_template_request_operation); export!(structure_template_response_type); -export!(sub_chunk_packet); // Mod export!(tag); // Mod export!(text_packet_type); export!(text_processing_event_origin); From 78c113e3ab9cda087e91ba29879908e627f504c4 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:39:01 +1300 Subject: [PATCH 13/79] Enchant::Type repr --- crates/proto/src/version/v662/enums/enchant.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/proto/src/version/v662/enums/enchant.rs b/crates/proto/src/version/v662/enums/enchant.rs index 74c5d5d1..24ecd908 100644 --- a/crates/proto/src/version/v662/enums/enchant.rs +++ b/crates/proto/src/version/v662/enums/enchant.rs @@ -2,6 +2,8 @@ pub mod Enchant { use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] + #[enum_repr(i8)] + #[repr(i8)] pub enum Type { ArmorAll = 0, ArmorFire = 1, From 2a881afffe7ae471bb54258ab0868f5cbd996b42 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:39:26 +1300 Subject: [PATCH 14/79] nbtx::Value & Vec3 --- crates/proto/src/version/v662/enums/data_item_type.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/version/v662/enums/data_item_type.rs b/crates/proto/src/version/v662/enums/data_item_type.rs index 6f8fbd47..495ec82c 100644 --- a/crates/proto/src/version/v662/enums/data_item_type.rs +++ b/crates/proto/src/version/v662/enums/data_item_type.rs @@ -1,5 +1,6 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -use crate::version::v662::types::{BlockPos, CompoundTag, Vec3}; +use crate::version::v662::types::BlockPos; #[derive(ProtoCodec)] #[enum_repr(i8)] @@ -13,9 +14,11 @@ pub enum DataItemType { #[endianness(le)] Float(f32) = 3, String(String) = 4, - CompoundTag(CompoundTag) = 5, + #[nbt] + NBT(nbtx::Value) = 5, Pos(BlockPos) = 6, #[endianness(var)] Int64(i64) = 7, - Vec3(Vec3) = 8, + #[endianness(le)] + Vec3(Vec3) = 8, } \ No newline at end of file From fe945f30b30761a25e143f3f6191090362d266f7 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:39:40 +1300 Subject: [PATCH 15/79] CommandBlockMode repr --- crates/proto/src/version/v662/enums/command_block_mode.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/proto/src/version/v662/enums/command_block_mode.rs b/crates/proto/src/version/v662/enums/command_block_mode.rs index 3957dcab..02ebc2b3 100644 --- a/crates/proto/src/version/v662/enums/command_block_mode.rs +++ b/crates/proto/src/version/v662/enums/command_block_mode.rs @@ -1,6 +1,9 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] +#[enum_repr(u32)] +#[enum_endianness(var)] +#[repr(u32)] pub enum CommandBlockMode { Normal = 0, Chain = 2, From 3d99d863a058dd8e5b8f3668a153361ecaea4253 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:40:16 +1300 Subject: [PATCH 16/79] repl Vec3 & Vec2, TODO -> VERIFY --- crates/proto/src/version/v662/packets/add_actor.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/proto/src/version/v662/packets/add_actor.rs b/crates/proto/src/version/v662/packets/add_actor.rs index 13429820..e34c2ac7 100644 --- a/crates/proto/src/version/v662/packets/add_actor.rs +++ b/crates/proto/src/version/v662/packets/add_actor.rs @@ -1,5 +1,6 @@ +use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorLink, ActorRuntimeID, ActorUniqueID, DataItem, PropertySyncData, Vec2, Vec3}; +use crate::version::v662::types::{ActorLink, ActorRuntimeID, ActorUniqueID, DataItem, PropertySyncData}; #[derive(ProtoCodec)] struct AttributeEntry { @@ -18,9 +19,12 @@ pub struct AddActorPacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, pub actor_type: String, - pub position: Vec3, - pub velocity: Vec3, - pub rotation: Vec2, + #[endianness(le)] + pub position: Vec3, + #[endianness(le)] + pub velocity: Vec3, + #[endianness(le)] + pub rotation: Vec2, #[endianness(le)] pub y_head_rotation: f32, #[endianness(le)] @@ -30,7 +34,7 @@ pub struct AddActorPacket { pub attributes: Vec, #[vec_repr(u32)] #[vec_endianness(var)] - pub actor_data: Vec, // TODO: Verify vec_repr & vec_endianness + pub actor_data: Vec, // VERIFY: vec_repr & vec_endianness pub synced_properties: PropertySyncData, #[vec_repr(u32)] #[vec_endianness(var)] From 5e03def83c9ec86eace30a3ed7e7068df28c2307 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:40:25 +1300 Subject: [PATCH 17/79] repl Vec3, TODO -> VERIFY --- .../proto/src/version/v662/packets/add_item_actor.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/crates/proto/src/version/v662/packets/add_item_actor.rs b/crates/proto/src/version/v662/packets/add_item_actor.rs index 41fee849..162901c1 100644 --- a/crates/proto/src/version/v662/packets/add_item_actor.rs +++ b/crates/proto/src/version/v662/packets/add_item_actor.rs @@ -1,5 +1,6 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, DataItem, NetworkItemStackDescriptor, Vec3}; +use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, DataItem, NetworkItemStackDescriptor}; #[gamepacket(id = 15)] #[derive(ProtoCodec)] @@ -7,10 +8,12 @@ pub struct AddItemActorPacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, pub item: NetworkItemStackDescriptor, - pub position: Vec3, - pub velocity: Vec3, + #[endianness(le)] + pub position: Vec3, + #[endianness(le)] + pub velocity: Vec3, #[vec_repr(u32)] #[vec_endianness(var)] - pub entity_data: Vec, // TODO: Verify vec_repr & vec_endianness + pub entity_data: Vec, // VERIFY: vec_repr & vec_endianness pub from_fishing: bool, } \ No newline at end of file From f8311bb01fbc97557f22a0d0e80b70210c849ab8 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:40:32 +1300 Subject: [PATCH 18/79] repl Vec3 --- crates/proto/src/version/v662/packets/add_painting.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/add_painting.rs b/crates/proto/src/version/v662/packets/add_painting.rs index 7e6c633a..e62a9220 100644 --- a/crates/proto/src/version/v662/packets/add_painting.rs +++ b/crates/proto/src/version/v662/packets/add_painting.rs @@ -1,12 +1,14 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, Vec3}; +use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID}; #[gamepacket(id = 22)] #[derive(ProtoCodec)] pub struct AddPaintingPacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, #[endianness(var)] pub direction: i32, pub motif: String, From 541924cf3641ed72bc28682de9c7cf314337e5fd Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:40:46 +1300 Subject: [PATCH 19/79] repl Vec3 & Vec2, TODO -> VERIFY --- .../proto/src/version/v662/packets/add_player.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/proto/src/version/v662/packets/add_player.rs b/crates/proto/src/version/v662/packets/add_player.rs index a4bc061c..a947e6be 100644 --- a/crates/proto/src/version/v662/packets/add_player.rs +++ b/crates/proto/src/version/v662/packets/add_player.rs @@ -1,7 +1,8 @@ use uuid::Uuid; +use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{BuildPlatform, GameType}; -use crate::version::v662::types::{ActorLink, ActorRuntimeID, DataItem, NetworkItemStackDescriptor, PropertySyncData, SerializedAbilitiesData, Vec2, Vec3}; +use crate::version::v662::types::{ActorLink, ActorRuntimeID, DataItem, NetworkItemStackDescriptor, PropertySyncData, SerializedAbilitiesData}; #[gamepacket(id = 12)] #[derive(ProtoCodec)] @@ -10,16 +11,19 @@ pub struct AddPlayerPacket { pub player_name: String, pub target_runtime_id: ActorRuntimeID, pub platform_chat_id: String, - pub position: Vec3, - pub velocity: Vec3, - pub rotation: Vec2, + #[endianness(le)] + pub position: Vec3, + #[endianness(le)] + pub velocity: Vec3, + #[endianness(le)] + pub rotation: Vec2, #[endianness(le)] pub y_head_rotation: f32, pub carried_item: NetworkItemStackDescriptor, pub player_game_type: GameType, #[vec_repr(u32)] #[vec_endianness(var)] - pub entity_data: Vec, // TODO: Verify vec_repr & vec_endianness + pub entity_data: Vec, // VERIFY: vec_repr & vec_endianness pub synced_properties: PropertySyncData, pub abilities_data: SerializedAbilitiesData, #[vec_repr(u32)] From de1fb671efb641333327f87a976c9b5d7c9de6d8 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:40:56 +1300 Subject: [PATCH 20/79] repl CompoundTag --- crates/proto/src/version/v662/packets/add_volume_entity.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/add_volume_entity.rs b/crates/proto/src/version/v662/packets/add_volume_entity.rs index f60715cc..c30a8d9b 100644 --- a/crates/proto/src/version/v662/packets/add_volume_entity.rs +++ b/crates/proto/src/version/v662/packets/add_volume_entity.rs @@ -1,11 +1,12 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{CompoundTag, EntityNetID, NetworkBlockPosition}; +use crate::version::v662::types::{EntityNetID, NetworkBlockPosition}; #[gamepacket(id = 166)] #[derive(ProtoCodec)] pub struct AddVolumeEntityPacket { pub entity_network_id: EntityNetID, - pub components: CompoundTag, + #[nbt] + pub components: nbtx::Value, // TODO: NBT Structure pub json_identifier: String, pub instance_name: String, pub min_bounds: NetworkBlockPosition, From 23b019a0ff81ca63c819f36462d1b24523375585 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:41:17 +1300 Subject: [PATCH 21/79] impl ProtoCodec, VERIFY --- .../proto/src/version/v662/packets/animate.rs | 76 ++++++++++++++----- 1 file changed, 58 insertions(+), 18 deletions(-) diff --git a/crates/proto/src/version/v662/packets/animate.rs b/crates/proto/src/version/v662/packets/animate.rs index 012d2b8e..573af082 100644 --- a/crates/proto/src/version/v662/packets/animate.rs +++ b/crates/proto/src/version/v662/packets/animate.rs @@ -1,31 +1,71 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::ProtoCodec; +use futures::AsyncWriteExt; +use std::io::{Cursor, Read}; +use std::mem::size_of; +use tokio::io::AsyncReadExt; +use varint_rs::{VarintReader, VarintWriter}; #[derive(ProtoCodec)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] enum Action { - NoAction = 0, - Swing = 1, - WakeUp = 3, - CriticalHit = 4, - MagicCriticalHit = 5, - RowRight { - #[endianness(le)] - rowing_time: f32, - } = 128, - RowLeft { - #[endianness(le)] - rowing_time: f32, - } = 129, + NoAction = 0, + Swing = 1, + WakeUp = 3, + CriticalHit = 4, + MagicCriticalHit = 5, + RowRight { + #[endianness(le)] + rowing_time: f32, + } = 128, + RowLeft { + #[endianness(le)] + rowing_time: f32, + } = 129, } #[gamepacket(id = 44)] -#[derive(ProtoCodec)] pub struct AnimatePacket { - pub action: Action, - pub target_runtime_id: ActorRuntimeID, + pub action: Action, + pub target_runtime_id: ActorRuntimeID, +} + +impl ProtoCodec for AnimatePacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut action_stream: Vec = Vec::new(); + ::proto_serialize(&self.action, &mut action_stream)?; + let mut action_cursor = Cursor::new(action_stream.as_slice()); + + stream.write_i32_varint(action_cursor.read_i32_varint()?)?; + ::proto_serialize(&self.target_runtime_id, stream)?; + action_cursor.read_to_end(stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut action_stream: Vec = Vec::new(); + + action_stream.write_i32_varint(stream.read_i32_varint()?)?; + let target_runtime_id = ::proto_deserialize(stream)?; + stream.read_to_end(action_stream)?; + + let mut action_cursor = Cursor::new(action_stream.as_slice()); + let action = ::proto_deserialize(&mut action_cursor)?; + + Ok(Self { + action, + target_runtime_id, + }) + } + + fn get_size_prediction(&self) -> usize { + self.action.get_size_prediction() + self.target_runtime_id.get_size_prediction() + } } -// TODO: custom proto impl, enum variant \ No newline at end of file +// VERIFY: ProtoCodec impl From b5539edc9c0673f26a81eb2ee5a5ae4efc0bb237 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:41:24 +1300 Subject: [PATCH 22/79] repl CompoundTag --- .../src/version/v662/packets/available_actor_identifiers.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/available_actor_identifiers.rs b/crates/proto/src/version/v662/packets/available_actor_identifiers.rs index 6a1a4464..b9080244 100644 --- a/crates/proto/src/version/v662/packets/available_actor_identifiers.rs +++ b/crates/proto/src/version/v662/packets/available_actor_identifiers.rs @@ -1,8 +1,8 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::CompoundTag; #[gamepacket(id = 119)] #[derive(ProtoCodec)] pub struct AvailableActorIdentifiersPacket { - pub actor_info_list: CompoundTag, + #[nbt] + pub actor_info_list: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From fb6e3c385dc3babaee32ff962f99e9759e941492 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:41:31 +1300 Subject: [PATCH 23/79] impl ProtoCodec, VERIFY --- .../v662/packets/available_commands.rs | 137 ++++++++++++++++-- 1 file changed, 128 insertions(+), 9 deletions(-) diff --git a/crates/proto/src/version/v662/packets/available_commands.rs b/crates/proto/src/version/v662/packets/available_commands.rs index 4cd391a4..935dc911 100644 --- a/crates/proto/src/version/v662/packets/available_commands.rs +++ b/crates/proto/src/version/v662/packets/available_commands.rs @@ -1,10 +1,49 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::CommandPermissionLevel; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; +use std::io::Cursor; +use std::mem::size_of; -#[derive(ProtoCodec)] struct EnumDataEntry { name: String, - values: Vec, // TODO: weird varint. Needs custom proto + #[vec_repr(u32)] + #[vec_endianness(var)] + values: Vec, +} + +impl ProtoCodec for EnumDataEntry { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + ::proto_serialize(&self.name, stream)?; + { + let len: u32 = self.values.len().try_into()?; + ::proto_serialize(&len, stream)?; + for i in &self.values { + ::proto_serialize(i, stream)?; + // VERIFY: If this varint works + } + } + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let name = ::proto_deserialize(stream)?; + let values = { + let len = ::proto_deserialize(stream)?; + let mut vec = Vec::with_capacity(len.try_into()?); + for _ in 0..len { + vec.push(::proto_deserialize(stream)?); + } + vec + }; + + Ok(Self { name, values }) + } + + fn get_size_prediction(&self) -> usize { + self.name.get_size_prediction() + self.values.len() * size_of::() + } } #[derive(ProtoCodec)] @@ -32,7 +71,6 @@ struct OverloadsEntry { pub parameter_data: Vec, } -#[derive(ProtoCodec)] struct CommandsEntry { pub name: String, pub description: String, @@ -43,12 +81,85 @@ struct CommandsEntry { pub alias_enum: i32, #[vec_repr(u32)] #[vec_endianness(var)] - pub chained_sub_command_indices: Vec, // TODO: custom proto impl + pub chained_sub_command_indices: Vec, #[vec_repr(u32)] #[vec_endianness(var)] pub overloads: Vec, } +impl ProtoCodec for CommandsEntry { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + ::proto_serialize(&self.name, stream)?; + ::proto_serialize(&self.description, stream)?; + ::proto_serialize(&self.flags, stream)?; + ::proto_serialize(&self.permission_level, stream)?; + ::proto_serialize(&self.alias_enum, stream)?; + { + let len: u32 = self.chained_sub_command_indices.len().try_into()?; + ::proto_serialize(&len, stream)?; + for i in &self.chained_sub_command_indices { + ::proto_serialize(i, stream)?; + } + } + { + let len: u32 = self.overloads.len().try_into()?; + ::proto_serialize(&len, stream)?; + for i in &self.overloads { + ::proto_serialize(i, stream)?; + } + } + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let name = ::proto_deserialize(stream)?; + let description = ::proto_deserialize(stream)?; + let flags = ::proto_deserialize(stream)?; + let permission_level = ::proto_deserialize(stream)?; + let alias_enum = ::proto_deserialize(stream)?; + let chained_sub_command_indices = { + let len = ::proto_deserialize(stream)?; + let mut vec = Vec::with_capacity(len.try_into()?); + for _ in 0..len { + vec.push(::proto_deserialize(stream)?); + } + vec + }; + let overloads = { + let len = ::proto_deserialize(stream)?; + let mut vec = Vec::with_capacity(len.try_into()?); + for _ in 0..len { + vec.push(::proto_deserialize(stream)?); + } + vec + }; + + Ok(Self { + name, + description, + flags, + permission_level, + alias_enum, + chained_sub_command_indices, + overloads, + }) + } + + fn get_size_prediction(&self) -> usize { + self.name.get_size_prediction() + + self.description.get_size_prediction() + + size_of::() + + self.chained_sub_command_indices.len() * size_of::() + + size_of::() + + self + .overloads + .iter() + .map(|i| i.get_size_prediction()) + .sum::() + } +} + #[derive(ProtoCodec)] struct SoftEnumsEntry { pub enum_name: String, @@ -65,7 +176,15 @@ struct ConstraintsEntry { pub enum_symbol: u32, #[vec_repr(u32)] #[vec_endianness(var)] - pub constraint_indices: Vec + pub constraint_indices: Vec, +} + +#[derive(ProtoCodec)] +struct ChainedSubCommandDataEntry { + pub sub_command_name: String, + #[vec_repr(u32)] + #[vec_endianness(var)] + pub sub_command_values: Vec, } #[gamepacket(id = 76)] @@ -82,10 +201,10 @@ pub struct AvailableCommandsPacket { pub enum_data: Vec, #[vec_repr(u32)] #[vec_endianness(var)] - pub chained_sub_command_data: Vec>, + pub chained_sub_command_data: Vec, #[vec_repr(u32)] #[vec_endianness(var)] - pub commands: Vec>, + pub commands: Vec, #[vec_repr(u32)] #[vec_endianness(var)] pub soft_enums: Vec, @@ -94,4 +213,4 @@ pub struct AvailableCommandsPacket { pub constraints: Vec, } -// TODO: custom proto impl \ No newline at end of file +// VERIFY: ProtoCodec impl From 58a6165907dc510953f2e3794a2f01a3a66991e5 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:41:37 +1300 Subject: [PATCH 24/79] repl CompoundTag --- .../proto/src/version/v662/packets/biome_definition_list.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/biome_definition_list.rs b/crates/proto/src/version/v662/packets/biome_definition_list.rs index ed59c3c7..6c196b10 100644 --- a/crates/proto/src/version/v662/packets/biome_definition_list.rs +++ b/crates/proto/src/version/v662/packets/biome_definition_list.rs @@ -1,8 +1,8 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::CompoundTag; #[gamepacket(id = 122)] #[derive(ProtoCodec)] pub struct BiomeDefinitionListPacket { - pub biome_definition_data: CompoundTag, + #[nbt] + pub biome_definition_data: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From 33e0ad6e15367c2a84a7996dc28e074aaacdba83 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:41:42 +1300 Subject: [PATCH 25/79] repl CompoundTag --- crates/proto/src/version/v662/packets/block_actor_data.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/block_actor_data.rs b/crates/proto/src/version/v662/packets/block_actor_data.rs index 408a76dd..a8295b37 100644 --- a/crates/proto/src/version/v662/packets/block_actor_data.rs +++ b/crates/proto/src/version/v662/packets/block_actor_data.rs @@ -1,9 +1,10 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{CompoundTag, NetworkBlockPosition}; +use crate::version::v662::types::NetworkBlockPosition; #[gamepacket(id = 56)] #[derive(ProtoCodec)] pub struct BlockActorDataPacket { pub block_position: NetworkBlockPosition, - pub actor_data_tags: CompoundTag, + #[nbt] + pub actor_data_tags: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From c57d81fd68700d0459dfc62c8ecc68053bc4f2d9 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:41:51 +1300 Subject: [PATCH 26/79] impl ProtoCodec, VERIFY --- .../src/version/v662/packets/book_edit.rs | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/version/v662/packets/book_edit.rs b/crates/proto/src/version/v662/packets/book_edit.rs index 9f240d67..51ede65a 100644 --- a/crates/proto/src/version/v662/packets/book_edit.rs +++ b/crates/proto/src/version/v662/packets/book_edit.rs @@ -1,11 +1,47 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::BookEditAction; +use bedrockrs_macros::gamepacket; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::ProtoCodec; +use byteorder::{ReadBytesExt, WriteBytesExt}; +use std::intrinsics::size_of; +use std::io::{Cursor, Read}; +use tokio::io::AsyncReadExt; #[gamepacket(id = 97)] -#[derive(ProtoCodec)] pub struct BookEditPacket { pub action: BookEditAction, pub book_slot: i8, } -// TODO: custom proto impl, enum variants \ No newline at end of file +impl ProtoCodec for BookEditPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut action_stream: Vec = Vec::new(); + ::proto_serialize(&self.action, &mut action_stream)?; + let mut action_cursor = Cursor::new(action_stream.as_slice()); + + stream.write_i8(action_cursor.read_i8()?)?; + ::proto_serialize(&self.book_slot, stream)?; + action_cursor.read_to_end(stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut action_stream: Vec = Vec::new(); + + action_stream.write_i8(stream.read_i8()?)?; + let book_slot = ::proto_deserialize(stream)?; + stream.read_to_end(action_stream)?; + + let mut action_cursor = Cursor::new(action_stream.as_slice()); + let action = ::proto_deserialize(&mut action_cursor)?; + + Ok(Self { action, book_slot }) + } + + fn get_size_prediction(&self) -> usize { + self.action.get_size_prediction() + size_of::() + } +} + +// VERIFY: ProtoCodec impl From a9ca1d7fd1b38e92367d9090f537d3d8af0d4fcf Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:41:58 +1300 Subject: [PATCH 27/79] repl Vec3 --- crates/proto/src/version/v662/packets/change_dimension.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/change_dimension.rs b/crates/proto/src/version/v662/packets/change_dimension.rs index 8e6c334a..ba9fa72e 100644 --- a/crates/proto/src/version/v662/packets/change_dimension.rs +++ b/crates/proto/src/version/v662/packets/change_dimension.rs @@ -1,11 +1,12 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::Vec3; #[gamepacket(id = 61)] #[derive(ProtoCodec)] pub struct ChangeDimensionPacket { #[endianness(var)] pub dimension_id: i32, - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, pub respawn: bool, } \ No newline at end of file From 1b20436403cacbca172b156f3de4c45cf2916e21 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:42:04 +1300 Subject: [PATCH 28/79] impl ProtoCodec, VERIFY --- .../v662/packets/client_cache_blob_status.rs | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs index f75f1652..b2016a30 100644 --- a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs +++ b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs @@ -1,7 +1,10 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; +use std::io::Cursor; +use std::mem::size_of; #[gamepacket(id = 135)] -#[derive(ProtoCodec)] pub struct ClientCacheBlobStatusPacket { #[vec_repr(u32)] #[vec_endianness(var)] @@ -11,4 +14,44 @@ pub struct ClientCacheBlobStatusPacket { pub obtained_blobs: Vec, } -// TODO: custom proto impl, both Vec lengths come first in packet, then both their elements, respectfully. (elements are le) \ No newline at end of file +impl ProtoCodec for ClientCacheBlobStatusPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + ::proto_serialize(self.missing_blobs.len().try_into()?, stream)?; + ::proto_serialize(self.obtained_blobs.len().try_into()?, stream)?; + for i in &self.missing_blobs { + ::proto_serialize(i, stream)?; + } + for i in &self.obtained_blobs { + ::proto_serialize(i, stream)?; + } + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let missing_blobs_len = ::proto_deserialize(stream)?; + let obtained_blobs_len = ::proto_deserialize(stream)?; + let mut missing_blobs = Vec::with_capacity(missing_blobs_len.try_into()?); + let mut obtained_blobs = Vec::with_capacity(obtained_blobs_len.try_into()?); + for _ in 0..missing_blobs_len { + missing_blobs.push(::proto_deserialize(stream)?); + } + for _ in 0..obtained_blobs_len { + obtained_blobs.push(::proto_deserialize(stream)?); + } + + Ok(Self { + missing_blobs, + obtained_blobs, + }) + } + + fn get_size_prediction(&self) -> usize { + size_of::() + + size_of::() + + self.missing_blobs.len() * size_of::() + + self.obtained_blobs.len() * size_of::() + } +} + +// VERIFY: ProtoCodec impl From 177e1c402698847855cb2fb6b7beab31eaffad85 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:42:11 +1300 Subject: [PATCH 29/79] repl Vec3 --- .../src/version/v662/packets/clientbound_debug_renderer.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs b/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs index 7737cc97..912e9360 100644 --- a/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs +++ b/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs @@ -1,5 +1,5 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::Vec3; #[derive(ProtoCodec)] #[enum_repr(u32)] @@ -10,7 +10,8 @@ enum Type { ClearDebugMarkers = 1, AddDebugMarkerCube { text: String, - position: Vec3, + #[endianness(le)] + position: Vec3, #[endianness(le)] r: f32, #[endianness(le)] From aa1065260ee4731ea12319e6d76715df70c0bba5 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:42:35 +1300 Subject: [PATCH 30/79] impl ProtoCodec, VERIFY --- .../v662/packets/clientbound_map_item_data.rs | 70 +++++++++++++++---- 1 file changed, 58 insertions(+), 12 deletions(-) diff --git a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs index 9646e770..532a198d 100644 --- a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs +++ b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs @@ -1,11 +1,11 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{ActorUniqueID, BlockPos, MapDecoration, MapItemTrackedActor}; - -#[derive(ProtoCodec)] -struct PixelEntry { - #[endianness(var)] - pub pixel: u32, -} +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; +use std::io::{Cursor, Read}; +use std::mem::size_of; +use tokio::io::AsyncReadExt; +use varint_rs::{VarintReader, VarintWriter}; #[derive(ProtoCodec)] #[enum_repr(u32)] @@ -24,7 +24,7 @@ enum Type { y_tex_coordinate: i32, #[vec_repr(u32)] #[vec_endianness(var)] - pixels: Vec, + pixels: Vec, } = 1 << 1, DecorationUpdate { #[vec_repr(u32)] @@ -32,17 +32,16 @@ enum Type { actor_ids: Vec, #[vec_repr(u32)] #[vec_endianness(var)] - decoration_list: Vec + decoration_list: Vec, } = 1 << 2, Creation { #[vec_repr(u32)] #[vec_endianness(var)] - map_id_list: Vec + map_id_list: Vec, } = 1 << 3, } #[gamepacket(id = 67)] -#[derive(ProtoCodec)] pub struct ClientboundMapItemDataPacket { pub map_id: ActorUniqueID, pub type_flags: Type, @@ -51,4 +50,51 @@ pub struct ClientboundMapItemDataPacket { pub map_origin: BlockPos, } -// TODO: custom proto impl, enum variants \ No newline at end of file +impl ProtoCodec for ClientboundMapItemDataPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut type_flags_stream: Vec = Vec::new(); + ::proto_serialize(&self.type_flags, &mut type_flags_stream)?; + let mut type_flags_cursor = Cursor::new(type_flags_stream.as_slice()); + + ::proto_serialize(&self.map_id, stream)?; + stream.write_u32_varint(type_flags_cursor.read_u32_varint()?)?; + ::proto_serialize(&self.dimension, stream)?; + ::proto_serialize(&self.is_locked, stream)?; + ::proto_serialize(&self.map_origin, stream)?; + type_flags_cursor.read_to_end(stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut type_flags_stream: Vec = Vec::new(); + + let map_id = ::proto_deserialize(stream)?; + type_flags_stream.write_u32_varint(stream.read_u32_varint()?)?; + let dimension = ::proto_deserialize(stream)?; + let is_locked = ::proto_deserialize(stream)?; + let map_origin = ::proto_deserialize(stream)?; + stream.read_to_end(type_flags_stream)?; + + let mut type_flags_cursor = Cursor::new(type_flags_stream.as_slice()); + let type_flags = ::proto_deserialize(&mut type_flags_cursor)?; + + Ok(Self { + map_id, + type_flags, + dimension, + is_locked, + map_origin, + }) + } + + fn get_size_prediction(&self) -> usize { + self.map_id.get_size_prediction() + + self.type_flags.get_size_prediction() + + self.dimension.get_size_prediction() + + self.is_locked.get_size_prediction() + + self.map_origin.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From cc48960f9c7bbe422365ec470f2bb19e39d17f2c Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:42:49 +1300 Subject: [PATCH 31/79] impl ProtoCodec, VERIFY --- .../v662/packets/command_block_update.rs | 134 +++++++++++++++++- 1 file changed, 127 insertions(+), 7 deletions(-) diff --git a/crates/proto/src/version/v662/packets/command_block_update.rs b/crates/proto/src/version/v662/packets/command_block_update.rs index 9db13b96..62e844d7 100644 --- a/crates/proto/src/version/v662/packets/command_block_update.rs +++ b/crates/proto/src/version/v662/packets/command_block_update.rs @@ -1,16 +1,19 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; +use crate::version::v662::enums::CommandBlockMode; use crate::version::v662::types::{ActorRuntimeID, NetworkBlockPosition}; +use bedrockrs_macros::gamepacket; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE}; +use std::io::Cursor; +use std::mem::size_of; #[gamepacket(id = 78)] -#[derive(ProtoCodec)] pub struct CommandBlockUpdatePacket { pub is_block: bool, pub target_runtime_id: Option, // Only if is_block is false pub block_position: Option, // Only if is_block is true - #[endianness(var)] - pub command_block_mode: Option, // Only if is_block is true - pub redstone_mode: Option, // Only if is_block is true - pub is_conditional: Option, // Only if is_block is true + pub command_block_mode: Option, // Only if is_block is true + pub redstone_mode: Option, // Only if is_block is true + pub is_conditional: Option, // Only if is_block is true pub command: String, pub last_output: String, pub name: String, @@ -20,4 +23,121 @@ pub struct CommandBlockUpdatePacket { pub should_execute_on_first_tick: bool, } -// TODO: custom proto impl +impl ProtoCodec for CommandBlockUpdatePacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + ::proto_serialize(&self.is_block, stream)?; + match &self.is_block { + true => { + ::proto_serialize( + &self.target_runtime_id.as_ref().unwrap(), + stream, + )?; + } + false => { + ::proto_serialize( + &self.block_position.as_ref().unwrap(), + stream, + )?; + ::proto_serialize( + &self.command_block_mode.as_ref().unwrap(), + stream, + )?; + ::proto_serialize( + &self.redstone_mode.as_ref().unwrap(), + stream, + )?; + ::proto_serialize( + &self.is_conditional.as_ref().unwrap(), + stream, + )?; + } + } + ::proto_serialize(&self.command, stream)?; + ::proto_serialize(&self.last_output, stream)?; + ::proto_serialize(&self.name, stream)?; + ::proto_serialize(&self.track_output, stream)?; + ::proto_serialize(&self.tick_delay, stream)?; + ::proto_serialize(&self.should_execute_on_first_tick, stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let is_block = ::proto_deserialize(stream)?; + let (target_runtime_id, block_position, command_block_mode, redstone_mode, is_conditional) = + match &is_block { + true => { + let target_runtime_id = + Some(::proto_deserialize(stream)?); + (target_runtime_id, None, None, None, None) + } + false => { + let block_position = Some( + ::proto_deserialize(stream)?, + ); + let command_block_mode = + Some(::proto_deserialize(stream)?); + let redstone_mode = Some(::proto_deserialize(stream)?); + let is_conditional = Some(::proto_deserialize(stream)?); + ( + None, + block_position, + command_block_mode, + redstone_mode, + is_conditional, + ) + } + }; + + let command = ::proto_deserialize(stream)?; + let last_output = ::proto_deserialize(stream)?; + let name = ::proto_deserialize(stream)?; + let track_output = ::proto_deserialize(stream)?; + let tick_delay = ::proto_deserialize(stream)?; + let should_execute_on_first_tick = ::proto_deserialize(stream)?; + + Ok(Self { + is_block, + target_runtime_id, + block_position, + command_block_mode, + redstone_mode, + is_conditional, + command, + last_output, + name, + track_output, + tick_delay, + should_execute_on_first_tick, + }) + } + + fn get_size_prediction(&self) -> usize { + size_of::() + + match &self.is_block { + true => self + .target_runtime_id + .as_ref() + .unwrap() + .get_size_prediction(), + false => { + self.block_position.as_ref().unwrap().get_size_prediction() + + self + .command_block_mode + .as_ref() + .unwrap() + .get_size_prediction() + + size_of::() + + size_of::() + } + } + + &self.command.get_size_prediction() + + &self.last_output.get_size_prediction() + + &self.name.get_size_prediction() + + size_of::() + + size_of::() + + size_of::() + } +} + +// VERIFY: ProtoCodec impl From 225654a77271818d90ce142f4fa3159c0644f42d Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:42:57 +1300 Subject: [PATCH 32/79] impl ProtoCodec, VERIFY --- .../version/v662/packets/command_output.rs | 75 ++++++++++++++++++- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/version/v662/packets/command_output.rs b/crates/proto/src/version/v662/packets/command_output.rs index dc479bb8..6ddbcad2 100644 --- a/crates/proto/src/version/v662/packets/command_output.rs +++ b/crates/proto/src/version/v662/packets/command_output.rs @@ -1,9 +1,15 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::CommandOutputType; use crate::version::v662::types::CommandOriginData; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; +use std::io::{Cursor, Read}; +use std::mem::size_of; +use tokio::io::{AsyncReadExt, AsyncWriteExt}; #[derive(ProtoCodec)] struct OutputMessagesEntry { + pub successful: bool, pub message_id: String, #[vec_repr(u32)] #[vec_endianness(var)] @@ -11,7 +17,6 @@ struct OutputMessagesEntry { } #[gamepacket(id = 79)] -#[derive(ProtoCodec)] pub struct CommandOutputPacket { pub origin_data: CommandOriginData, pub output_type: CommandOutputType, @@ -21,4 +26,68 @@ pub struct CommandOutputPacket { pub output_messages: Vec, } -// TODO: custom proto impl, enum variant \ No newline at end of file +impl ProtoCodec for CommandOutputPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut output_type_stream: Vec = Vec::new(); + ::proto_serialize( + &self.output_type, + &mut output_type_stream, + )?; + let mut output_type_cursor = Cursor::new(output_type_stream.as_slice()); + + ::proto_serialize(&self.origin_data, stream)?; + stream.write_i8(output_type_cursor.read_i8()?)?; + ::proto_serialize(&self.success_count, stream)?; + ::proto_serialize(&self.output_messages.len().try_into(), stream)?; + for i in &self.output_messages { + ::proto_serialize(i, stream)?; + } + output_type_cursor.read_to_end(stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut output_type_stream: Vec = Vec::new(); + + let origin_data = ::proto_deserialize(stream)?; + output_type_stream.write_i8(stream.read_i8()?)?; + let success_count = ::proto_deserialize(stream)?; + let output_messages = { + let len = ::proto_deserialize(stream)?; + let mut vec = Vec::with_capacity(len.try_into()?); + for _ in 0..len { + vec.push(::proto_deserialize( + stream, + )?); + } + vec + }; + stream.read_to_end(output_type_stream)?; + + let mut output_type_cursor = Cursor::new(output_type_stream.as_slice()); + let output_type = + ::proto_deserialize(&mut output_type_cursor)?; + + Ok(Self { + origin_data, + output_type, + success_count, + output_messages, + }) + } + + fn get_size_prediction(&self) -> usize { + self.origin_data.get_size_prediction() + + self.output_type.get_size_prediction() + + self.success_count.get_size_prediction() + + size_of::() + + self + .output_messages + .iter() + .map(|i| i.get_size_prediction()) + .sum::() + } +} + +// VERIFY: ProtoCodec impl From 3abc9f1f55f417b076b6b88bd9a0998f1d692ccf Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 02:43:44 +1300 Subject: [PATCH 33/79] rem unused import --- .../proto/src/version/v662/packets/client_cache_blob_status.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs index b2016a30..9cd4293f 100644 --- a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs +++ b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs @@ -1,4 +1,4 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use std::io::Cursor; From 8d80536df17c40ada5d153f3f1a2430d41ff2d41 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:10 +1300 Subject: [PATCH 34/79] repl Vec3 --- .../v662/packets/correct_player_move_prediction.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs b/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs index 0d5ca880..9edb334d 100644 --- a/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs +++ b/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs @@ -1,12 +1,14 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PredictionType; -use crate::version::v662::types::Vec3; #[gamepacket(id = 161)] #[derive(ProtoCodec)] pub struct CorrectPlayerMovePredictionPacket { - pub position: Vec3, - pub velocity: Vec3, + #[endianness(le)] + pub position: Vec3, + #[endianness(le)] + pub velocity: Vec3, pub on_ground: bool, #[endianness(var)] pub tick: u64, From e98ca543942cbaf4440559813fd5094ea7f4feba Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:14 +1300 Subject: [PATCH 35/79] repl CompoundTag --- crates/proto/src/version/v662/packets/editor_network.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/editor_network.rs b/crates/proto/src/version/v662/packets/editor_network.rs index 8b24510b..e259c558 100644 --- a/crates/proto/src/version/v662/packets/editor_network.rs +++ b/crates/proto/src/version/v662/packets/editor_network.rs @@ -1,8 +1,8 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::CompoundTag; #[gamepacket(id = 190)] #[derive(ProtoCodec)] pub struct EditorNetworkPacket { - pub binary_payload: CompoundTag, + #[nbt] + pub binary_payload: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From b82aea21764fed01d59b3bc31693835a76685f0d Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:24 +1300 Subject: [PATCH 36/79] impl ProtoCodec, VERIFY --- .../src/version/v662/packets/interact.rs | 45 +++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/version/v662/packets/interact.rs b/crates/proto/src/version/v662/packets/interact.rs index cb478edf..a51caa97 100644 --- a/crates/proto/src/version/v662/packets/interact.rs +++ b/crates/proto/src/version/v662/packets/interact.rs @@ -1,5 +1,11 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE}; +use byteorder::{ReadBytesExt, WriteBytesExt}; +use std::io::Cursor; +use std::mem::size_of; +use tokio::io::AsyncReadExt; #[derive(ProtoCodec)] #[enum_repr(i8)] @@ -27,10 +33,43 @@ enum Action { } #[gamepacket(id = 33)] -#[derive(ProtoCodec)] pub struct InteractPacket { pub action: Action, pub target_runtime_id: ActorRuntimeID, } -// TODO: custom proto impl because of enum variant serialization order \ No newline at end of file +impl ProtoCodec for InteractPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut action_stream: Vec = Vec::new(); + ::proto_serialize(&self.action, &mut action_stream)?; + let mut action_cursor = Cursor::new(action_stream.as_slice()); + + stream.write_i8(action_cursor.read_i8()?)?; + ::proto_serialize(&self.target_runtime_id, stream)?; + action_cursor.read_to_end(stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut action_stream: Vec = Vec::new(); + + action_stream.write_i8(stream.read_i8()?)?; + let target_runtime_id = ::proto_deserialize(stream)?; + stream.read_to_end(action_stream)?; + + let mut action_cursor = Cursor::new(action_stream.as_slice()); + let action = ::proto_deserialize(&mut action_cursor)?; + + Ok(Self { + action, + target_runtime_id, + }) + } + + fn get_size_prediction(&self) -> usize { + self.action.get_size_prediction() + self.target_runtime_id.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From b9272870944ce367f9889cdc228e46027c0e2c3e Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:29 +1300 Subject: [PATCH 37/79] repl CompoundTag --- crates/proto/src/version/v662/packets/item_component.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/item_component.rs b/crates/proto/src/version/v662/packets/item_component.rs index f5267963..64dcab05 100644 --- a/crates/proto/src/version/v662/packets/item_component.rs +++ b/crates/proto/src/version/v662/packets/item_component.rs @@ -1,10 +1,10 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::CompoundTag; #[derive(ProtoCodec)] struct ItemsEntry { pub component_item_name: String, - pub component_data: CompoundTag, + #[nbt] + pub component_data: nbtx::Value, // TODO: NBT Structure } #[gamepacket(id = 162)] From 9233cf4cbe9e4d8b4dccd69ec9c2740639d1008e Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:38 +1300 Subject: [PATCH 38/79] impl ProtoCodec, VERIFY --- .../v662/packets/legacy_telemetry_event.rs | 53 +++++++++++++++++-- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs index c6972850..9954e4ea 100644 --- a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs +++ b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs @@ -1,6 +1,10 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::ActorUniqueID; use crate::version::v662::enums::{ActorDamageCause, ActorType, MinecraftEventing}; +use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; +use std::io::{Cursor, Read}; +use varint_rs::{VarintReader, VarintWriter}; #[derive(ProtoCodec)] #[enum_repr(i32)] @@ -91,7 +95,8 @@ enum Type { command_name: String, error_list: String, } = 11, - #[deprecated] FishBucketed = 12, + #[deprecated] + FishBucketed = 12, MobBorn { #[endianness(var)] baby_entity_type: i32, @@ -154,11 +159,49 @@ enum Type { } #[gamepacket(id = 65)] -#[derive(ProtoCodec)] pub struct LegacyTelemetryEventPacket { pub target_actor_id: ActorUniqueID, pub event_type: Type, pub use_player_id: i8, } -// TODO: custom proto impl, enum variant serialization \ No newline at end of file +impl ProtoCodec for LegacyTelemetryEventPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut event_type_stream: Vec = Vec::new(); + ::proto_serialize(&self.event_type, &mut event_type_stream)?; + let mut event_type_cursor = Cursor::new(event_type_stream.as_slice()); + + ::proto_serialize(&self.target_actor_id, stream)?; + stream.write_i32_varint(event_type_cursor.read_i32_varint()?)?; + ::proto_serialize(&self.use_player_id, stream)?; + event_type_cursor.read_to_end(stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut event_type_stream: Vec = Vec::new(); + + let target_actor_id = ::proto_deserialize(stream)?; + event_type_stream.write_i32_varint(stream.read_i32_varint()?)?; + let use_player_id = ::proto_deserialize(stream)?; + stream.read_to_end(&mut event_type_stream)?; + + let mut event_type_cursor = Cursor::new(event_type_stream.as_slice()); + let event_type = ::proto_deserialize(&mut event_type_cursor)?; + + Ok(Self { + target_actor_id, + event_type, + use_player_id, + }) + } + + fn get_size_prediction(&self) -> usize { + self.event_type.get_size_prediction() + + self.target_actor_id.get_size_prediction() + + self.use_player_id.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From fdbf57d8ef6a66a547e9cc70a42faf4aa9efdf0f Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:42 +1300 Subject: [PATCH 39/79] repl Vec3 --- crates/proto/src/version/v662/packets/level_event.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/level_event.rs b/crates/proto/src/version/v662/packets/level_event.rs index 6c8c321b..ee31e471 100644 --- a/crates/proto/src/version/v662/packets/level_event.rs +++ b/crates/proto/src/version/v662/packets/level_event.rs @@ -1,12 +1,13 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::LevelEvent; -use crate::version::v662::types::Vec3; #[gamepacket(id = 25)] #[derive(ProtoCodec)] pub struct LevelEventPacket { pub event_id: LevelEvent, - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, #[endianness(var)] pub data: i32, } \ No newline at end of file From 6c551bdec8d2ed01a727b4ff1c8b8d7561c40aea Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:48 +1300 Subject: [PATCH 40/79] repl CompoundTag --- crates/proto/src/version/v662/packets/level_event_generic.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/level_event_generic.rs b/crates/proto/src/version/v662/packets/level_event_generic.rs index 2040fe09..ee22714a 100644 --- a/crates/proto/src/version/v662/packets/level_event_generic.rs +++ b/crates/proto/src/version/v662/packets/level_event_generic.rs @@ -1,10 +1,10 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::LevelEvent; -use crate::version::v662::types::CompoundTag; #[gamepacket(id = 124)] #[derive(ProtoCodec)] pub struct LevelEventGenericPacket { pub event_id: LevelEvent, - pub event_data: CompoundTag, + #[nbt] + pub event_data: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From b8dfb36c4a25678cd1114cf34a797a4afe6776d4 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:20:53 +1300 Subject: [PATCH 41/79] repl Vec3 --- crates/proto/src/version/v662/packets/level_sound_event.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/level_sound_event.rs b/crates/proto/src/version/v662/packets/level_sound_event.rs index cc0d4eba..1efdc5f4 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event.rs @@ -1,12 +1,13 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::Puv; -use crate::version::v662::types::Vec3; #[gamepacket(id = 123)] #[derive(ProtoCodec)] pub struct LevelSoundEventPacket { pub event_id: Puv::Legacy::LevelSoundEvent, - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, #[endianness(var)] pub data: i32, pub actor_identifier: String, From 1d4d3765d43fb53ba6a5485ffccbf3729435ca1d Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:07 +1300 Subject: [PATCH 42/79] impl ProtoCodec, VERIFY --- .../v662/packets/level_sound_event_v1.rs | 72 +++++++++++++++++-- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs index 220913a7..5dd0f3d3 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs @@ -1,15 +1,75 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{ActorType, Puv}; -use crate::version::v662::types::Vec3; +use bedrockrs_core::Vec3; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; +use byteorder::WriteBytesExt; +use std::io::Cursor; +use tokio::io::AsyncReadExt; +use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 24)] -#[derive(ProtoCodec)] pub struct LevelSoundEventPacketV1 { - pub event_id: Puv::Legacy::LevelSoundEvent, // TODO: packet uses byte, but enum is unsigned varint - pub position: Vec3, + pub event_id: Puv::Legacy::LevelSoundEvent, + #[endianness(le)] + pub position: Vec3, #[endianness(var)] pub data: i32, pub actor_type: ActorType, pub baby_mob: bool, pub global: bool, -} \ No newline at end of file +} + +impl ProtoCodec for LevelSoundEventPacketV1 { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut event_id_stream: Vec = Vec::new(); + ::proto_serialize( + &self.event_id, + &mut event_id_stream, + )?; + let mut event_id_cursor = Cursor::new(event_id_stream.as_slice()); + + stream.write_i8(event_id_cursor.read_u32_varint()? as i8)?; + as ProtoCodecLE>::proto_serialize(&self.position, stream)?; + ::proto_serialize(&self.data, stream)?; + ::proto_serialize(&self.actor_type, stream)?; + ::proto_serialize(&self.baby_mob, stream)?; + ::proto_serialize(&self.global, stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut event_id_stream: Vec = Vec::new(); + event_id_stream.write_u32_varint(stream.read_i8()? as u32)?; + let mut event_id_cursor = Cursor::new(event_id_stream.as_slice()); + + let event_id = + ::proto_deserialize(&mut event_id_cursor)?; + let position = as ProtoCodecLE>::proto_deserialize(stream)?; + let data = ::proto_deserialize(stream)?; + let actor_type = ::proto_deserialize(stream)?; + let baby_mob = ::proto_deserialize(stream)?; + let global = ::proto_deserialize(stream)?; + + Ok(Self { + event_id, + position, + data, + actor_type, + baby_mob, + global, + }) + } + + fn get_size_prediction(&self) -> usize { + self.event_id.get_size_prediction() + + self.position.get_size_prediction() + + self.data.get_size_prediction() + + self.actor_type.get_size_prediction() + + self.baby_mob.get_size_prediction() + + self.global.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From 1e98902042d0a39845e967116e51d0e141127567 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:10 +1300 Subject: [PATCH 43/79] impl ProtoCodec, VERIFY --- .../v662/packets/level_sound_event_v2.rs | 72 +++++++++++++++++-- 1 file changed, 65 insertions(+), 7 deletions(-) diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs index fd03e62f..eecdfa68 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs @@ -1,17 +1,75 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::Puv; -use crate::version::v662::types::Vec3; +use crate::version::v662::packets::LevelSoundEventPacketV1; +use bedrockrs_core::Vec3; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; +use byteorder::{ReadBytesExt, WriteBytesExt}; +use std::io::Cursor; +use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 120)] -#[derive(ProtoCodec)] pub struct LevelSoundEventPacketV2 { - pub event_id: Puv::Legacy::LevelSoundEvent, // TODO: listed as byte, enum is unsigned varint - pub position: Vec3, + pub event_id: Puv::Legacy::LevelSoundEvent, + #[endianness(le)] + pub position: Vec3, #[endianness(var)] pub data: i32, pub actor_identifier: String, - pub baby_mod: bool, + pub baby_mob: bool, pub global: bool, } -// TODO: custom proto impl because of that stupid enum \ No newline at end of file +impl ProtoCodec for LevelSoundEventPacketV2 { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut event_id_stream: Vec = Vec::new(); + ::proto_serialize( + &self.event_id, + &mut event_id_stream, + )?; + let mut event_id_cursor = Cursor::new(event_id_stream.as_slice()); + + stream.write_i8(event_id_cursor.read_u32_varint()? as i8)?; + as ProtoCodecLE>::proto_serialize(&self.position, stream)?; + ::proto_serialize(&self.data, stream)?; + ::proto_serialize(&self.actor_identifier, stream)?; + ::proto_serialize(&self.baby_mob, stream)?; + ::proto_serialize(&self.global, stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut event_id_stream: Vec = Vec::new(); + event_id_stream.write_u32_varint(stream.read_i8()? as u32)?; + let mut event_id_cursor = Cursor::new(event_id_stream.as_slice()); + + let event_id = + ::proto_deserialize(&mut event_id_cursor)?; + let position = as ProtoCodecLE>::proto_deserialize(stream)?; + let data = ::proto_deserialize(stream)?; + let actor_identifier = ::proto_deserialize(stream)?; + let baby_mob = ::proto_deserialize(stream)?; + let global = ::proto_deserialize(stream)?; + + Ok(Self { + event_id, + position, + data, + actor_identifier, + baby_mob, + global, + }) + } + + fn get_size_prediction(&self) -> usize { + self.event_id.get_size_prediction() + + self.position.get_size_prediction() + + self.data.get_size_prediction() + + self.actor_identifier.get_size_prediction() + + self.baby_mob.get_size_prediction() + + self.global.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From ce099a4c2628bec8f859d049bfefdf9c728e39f7 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:15 +1300 Subject: [PATCH 44/79] repl Vec3 --- .../src/version/v662/packets/motion_prediction_hints.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/motion_prediction_hints.rs b/crates/proto/src/version/v662/packets/motion_prediction_hints.rs index d4ab9635..e032f6dc 100644 --- a/crates/proto/src/version/v662/packets/motion_prediction_hints.rs +++ b/crates/proto/src/version/v662/packets/motion_prediction_hints.rs @@ -1,10 +1,12 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorRuntimeID, Vec3}; +use crate::version::v662::types::ActorRuntimeID; #[gamepacket(id = 157)] #[derive(ProtoCodec)] pub struct MotionPredictionHintsPacket { pub runtime_id: ActorRuntimeID, - pub motion: Vec3, + #[endianness(le)] + pub motion: Vec3, pub on_ground: bool, } \ No newline at end of file From 26387d719ca5796d1d743971519fd38c160cc18e Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:23 +1300 Subject: [PATCH 45/79] impl ProtoCodec, VERIFY --- .../src/version/v662/packets/move_player.rs | 84 +++++++++++++++++-- 1 file changed, 78 insertions(+), 6 deletions(-) diff --git a/crates/proto/src/version/v662/packets/move_player.rs b/crates/proto/src/version/v662/packets/move_player.rs index 6fd16f45..d126f64e 100644 --- a/crates/proto/src/version/v662/packets/move_player.rs +++ b/crates/proto/src/version/v662/packets/move_player.rs @@ -1,14 +1,21 @@ +use crate::version::v662::enums::PlayerPositionModeComponent; +use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, gamepackets, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use bedrockrs_shared::actor_runtime_id::ActorRuntimeID; -use crate::version::v662::enums::PlayerPositionModeComponent; -use crate::version::v662::types::{Vec2, Vec3}; +use byteorder::{ReadBytesExt, WriteBytesExt}; +use std::io::{Cursor, Read}; +use std::mem::size_of; +use tokio::io::AsyncReadExt; #[gamepacket(id = 19)] -#[derive(ProtoCodec)] pub struct MovePlayerPacket { pub player_runtime_id: ActorRuntimeID, - pub position: Vec3, - pub rotation: Vec2, + #[endianness(le)] + pub position: Vec3, + #[endianness(le)] + pub rotation: Vec2, #[endianness(le)] pub y_head_rotation: f32, pub position_mode: PlayerPositionModeComponent::PositionMode, @@ -18,4 +25,69 @@ pub struct MovePlayerPacket { pub tick: u64, } -// TODO: custom proto impl because of enum variant serialization order \ No newline at end of file +impl ProtoCodec for MovePlayerPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut position_mode_stream: Vec = Vec::new(); + ::proto_serialize( + &self.position_mode, + &mut position_mode_stream, + )?; + let mut position_mode_cursor = Cursor::new(position_mode_stream.as_slice()); + + ::proto_serialize(&self.player_runtime_id, stream)?; + as ProtoCodecLE>::proto_serialize(&self.position, stream)?; + as ProtoCodecLE>::proto_serialize(&self.rotation, stream)?; + ::proto_serialize(&self.y_head_rotation, stream)?; + stream.write_i8(position_mode_cursor.read_i8()?)?; + ::proto_serialize(&self.on_ground, stream)?; + ::proto_serialize(&self.riding_runtime_id, stream)?; + position_mode_cursor.read_to_end(stream)?; + ::proto_serialize(&self.tick, stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut sub_stream = Vec::::new(); + + let player_runtime_id = ::proto_deserialize(stream)?; + let position = as ProtoCodecLE>::proto_deserialize(stream)?; + let rotation = as ProtoCodecLE>::proto_deserialize(stream)?; + let y_head_rotation = ::proto_deserialize(stream)?; + sub_stream.write_i8(stream.read_i8()?)?; + let on_ground = ::proto_deserialize(stream)?; + let riding_runtime_id = ::proto_deserialize(stream)?; + stream.read_to_end(&mut sub_stream)?; + + let mut sub_cursor = Cursor::new(sub_stream.as_slice()); + let position_mode = + ::proto_deserialize( + &mut sub_cursor, + )?; + let tick = ::proto_deserialize(&mut sub_cursor)?; + + Ok(Self { + player_runtime_id, + position, + rotation, + y_head_rotation, + position_mode, + on_ground, + riding_runtime_id, + tick, + }) + } + + fn get_size_prediction(&self) -> usize { + self.player_runtime_id.get_size_prediction() + + self.position.get_size_prediction() + + self.rotation.get_size_prediction() + + self.y_head_rotation.get_size_prediction() + + self.position_mode.get_size_prediction() + + self.on_ground.get_size_prediction() + + self.riding_runtime_id.get_size_prediction() + + self.tick.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From 6ba4e02af3f10f9171499904fa769f9c954a279a Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:28 +1300 Subject: [PATCH 46/79] impl ProtoCodec, VERIFY --- .../version/v662/packets/player_auth_input.rs | 251 ++++++++++++++++-- 1 file changed, 236 insertions(+), 15 deletions(-) diff --git a/crates/proto/src/version/v662/packets/player_auth_input.rs b/crates/proto/src/version/v662/packets/player_auth_input.rs index ec842bee..a8da5c3a 100644 --- a/crates/proto/src/version/v662/packets/player_auth_input.rs +++ b/crates/proto/src/version/v662/packets/player_auth_input.rs @@ -1,6 +1,69 @@ +use crate::version::v662::enums::{ + ClientPlayMode, InputMode, ItemStackRequestActionType, NewInteractionModel, + TextProcessingEventOrigin, +}; +use crate::version::v662::types::{ + ActorUniqueID, ItemStackRequestSlotInfo, PackedItemUseLegacyInventoryTransaction, + PlayerBlockActions, +}; +use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::enums::{ClientPlayMode, InputMode, ItemStackRequestActionType, NewInteractionModel, TextProcessingEventOrigin}; -use crate::version::v662::types::{ActorUniqueID, ItemStackRequestSlotInfo, PackedItemUseLegacyInventoryTransaction, PlayerBlockActions, Vec2, Vec3}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecBE, ProtoCodecLE, ProtoCodecVAR}; +use std::io::Cursor; + +#[repr(u64)] +enum PlayerAuthInputFlags { + Ascend = 1 << 1, + Descend = 1 << 2, + #[deprecated] + NorthJump = 1 << 3, + JumpDown = 1 << 4, + SprintDown = 1 << 5, + ChangeHeight = 1 << 6, + Jumping = 1 << 7, + AutoJumpingInWater = 1 << 8, + Sneaking = 1 << 9, + SneakDown = 1 << 10, + Up = 1 << 11, + Down = 1 << 12, + Left = 1 << 13, + Right = 1 << 14, + UpLeft = 1 << 15, + UpRight = 1 << 16, + WantUp = 1 << 17, + WantDown = 1 << 18, + WantDownSlow = 1 << 19, + WantUpSlow = 1 << 20, + Sprinting = 1 << 21, + AscendBlock = 1 << 22, + DescendBlock = 1 << 23, + SneakToggleDown = 1 << 24, + PersistSneak = 1 << 25, + StartSprinting = 1 << 26, + StopSprinting = 1 << 27, + StartSneaking = 1 << 28, + StopSneaking = 1 << 29, + StartSwimming = 1 << 30, + StopSwimming = 1 << 31, + StartJumping = 1 << 32, + StartGliding = 1 << 33, + StopGliding = 1 << 34, + PerformItemInteraction = 1 << 35, + PerformBlockActions = 1 << 36, + PerformItemStackRequest = 1 << 37, + HandleTeleport = 1 << 38, + Emoting = 1 << 39, + MissedSwing = 1 << 40, + StartCrawling = 1 << 41, + StopCrawling = 1 << 42, + StartFlying = 1 << 43, + StopFlying = 1 << 44, + ReceivedServerData = 1 << 45, + IsInClientPredictedVehicle = 1 << 46, + PaddleLeft = 1 << 47, + PaddleRight = 1 << 48, +} #[derive(ProtoCodec)] struct ActionsEntry { @@ -25,16 +88,19 @@ struct PerformItemStackRequestData { #[derive(ProtoCodec)] struct ClientPredictedVehicleData { - pub vehicle_rotation: Vec2, + #[endianness(le)] + pub vehicle_rotation: Vec2, pub client_predicted_vehicle: ActorUniqueID, } #[gamepacket(id = 144)] -#[derive(ProtoCodec)] pub struct PlayerAuthInputPacket { - pub player_rotation: Vec2, - pub player_position: Vec3, - pub move_vector: Vec3, + #[endianness(le)] + pub player_rotation: Vec2, + #[endianness(le)] + pub player_position: Vec3, + #[endianness(le)] + pub move_vector: Vec3, #[endianness(le)] pub player_head_rotation: f32, #[endianness(var)] @@ -42,13 +108,168 @@ pub struct PlayerAuthInputPacket { pub input_mode: InputMode, pub play_mode: ClientPlayMode, pub new_interaction_model: NewInteractionModel, - pub vr_gaze_direction: Option, // TODO: custom proto impl, this is added if play_mode == ClientPlayMode::Reality + #[endianness(le)] + pub vr_gaze_direction: Option>, // If play_mode == ClientPlayMode::Reality #[endianness(var)] pub client_tick: u64, - pub velocity: Vec3, - pub item_use_transaction: Option, // TODO: custom proto, added if input_data has PlayerAuthInputPacket::InputData::PerformItemInteraction set. - pub item_stack_request: Option, // TODO: custom proto, added if input data has PlayerAuthInputPacket::InputData::PerformItemStackRequest set. - pub player_block_actions: Option, // TODO: custom proto, added if input data has PlayerAuthInputPacket::InputData::PerformBlockActions set. - pub client_predicted_vehicle: Option, // TODO: custom proto, added if input data has PlayerAuthInputPacket::InputData::IsInClientPredictedVehicle set. - pub analog_move_vector: Vec2, -} \ No newline at end of file + #[endianness(le)] + pub velocity: Vec3, + pub item_use_transaction: Option, // If input_data has PlayerAuthInputPacket::InputData::PerformItemInteraction set. + pub item_stack_request: Option, // If input data has PlayerAuthInputPacket::InputData::PerformItemStackRequest set. + pub player_block_actions: Option, // If input data has PlayerAuthInputPacket::InputData::PerformBlockActions set. + pub client_predicted_vehicle: Option, // If input data has PlayerAuthInputPacket::InputData::IsInClientPredictedVehicle set. + #[endianness(le)] + pub analog_move_vector: Vec2, +} + +impl ProtoCodec for PlayerAuthInputPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + as ProtoCodecLE>::proto_serialize(&self.player_rotation, stream)?; + as ProtoCodecLE>::proto_serialize(&self.player_position, stream)?; + as ProtoCodecLE>::proto_serialize(&self.move_vector, stream)?; + ::proto_serialize(&self.player_head_rotation, stream)?; + ::proto_serialize(&self.input_data, stream)?; + ::proto_serialize(&self.input_mode, stream)?; + ::proto_serialize(&self.play_mode, stream)?; + ::proto_serialize(&self.new_interaction_model, stream)?; + match &self.play_mode { + ClientPlayMode::Reality => { + as ProtoCodecLE>::proto_serialize( + &self.vr_gaze_direction.as_ref().unwrap(), + stream, + )?; + } + _ => {} + } + ::proto_serialize(&self.client_tick, stream)?; + as ProtoCodecLE>::proto_serialize(&self.velocity, stream)?; + if (&self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0) { + ::proto_serialize( + &self.item_use_transaction.as_ref().unwrap(), + stream, + )?; + } + if (&self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0) { + ::proto_serialize( + &self.item_stack_request.as_ref().unwrap(), + stream, + )?; + } + if (&self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { + ::proto_serialize( + &self.player_block_actions.as_ref().unwrap(), + stream, + )?; + } + if (&self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 != 0) { + ::proto_serialize( + &self.client_predicted_vehicle.as_ref().unwrap(), + stream, + )?; + } + as ProtoCodecLE>::proto_serialize(&self.analog_move_vector, stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let player_rotation = as ProtoCodecLE>::proto_deserialize(stream)?; + let player_position = as ProtoCodecLE>::proto_deserialize(stream)?; + let move_vector = as ProtoCodecLE>::proto_deserialize(stream)?; + let player_head_rotation = ::proto_deserialize(stream)?; + let input_data = ::proto_deserialize(stream)?; + let input_mode = ::proto_deserialize(stream)?; + let play_mode = ::proto_deserialize(stream)?; + let new_interaction_model = ::proto_deserialize(stream)?; + let vr_gaze_direction = match &play_mode { + ClientPlayMode::Reality => { + Some( as ProtoCodecLE>::proto_deserialize(stream)?) + } + _ => None, + }; + let client_tick = ::proto_deserialize(stream)?; + let velocity = as ProtoCodecLE>::proto_deserialize(stream)?; + let item_use_transaction = match (&input_data + & PlayerAuthInputFlags::PerformItemInteraction as u64 + != 0) + { + true => Some( + ::proto_deserialize(stream)?, + ), + false => None, + }; + let item_stack_request = match (&input_data + & PlayerAuthInputFlags::PerformItemStackRequest as u64 + != 0) + { + true => Some(::proto_deserialize(stream)?), + false => None, + }; + let player_block_actions = + match (&input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { + true => Some(::proto_deserialize( + stream, + )?), + false => None, + }; + let client_predicted_vehicle = match (&input_data + & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 + != 0) + { + true => Some(::proto_deserialize(stream)?), + false => None, + }; + let analog_move_vector = as ProtoCodecLE>::proto_deserialize(stream)?; + + Ok(Self { + player_rotation, + player_position, + move_vector, + player_head_rotation, + input_data, + input_mode, + play_mode, + new_interaction_model, + vr_gaze_direction, + client_tick, + velocity, + item_use_transaction, + item_stack_request, + player_block_actions, + client_predicted_vehicle, + analog_move_vector, + }) + } + + fn get_size_prediction(&self) -> usize { + self.player_rotation.get_size_prediction() + + self.player_position.get_size_prediction() + + self.move_vector.get_size_prediction() + + self.player_head_rotation.get_size_prediction() + + self.input_data.get_size_prediction() + + self.input_mode.get_size_prediction() + + self.play_mode.get_size_prediction() + + self.new_interaction_model.get_size_prediction() + + match self.play_mode { + ClientPlayMode::Reality => self.vr_gaze_direction.get_size_prediction(), + _ => 0, + } + + self.client_tick.get_size_prediction() + + self.velocity.get_size_prediction() + + if (&self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0) { + self.item_use_transaction.get_size_prediction() + } + + if (&self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0) { + self.item_stack_request.get_size_prediction() + } + + if (&self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { + self.player_block_actions.get_size_prediction() + } + + if (&self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 != 0) { + self.client_predicted_vehicle.get_size_prediction() + } + + self.analog_move_vector.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From 164d35069d46e9764ef49afad29f01b605b001c2 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:34 +1300 Subject: [PATCH 47/79] repl Vec3 --- crates/proto/src/version/v662/packets/player_input.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/player_input.rs b/crates/proto/src/version/v662/packets/player_input.rs index 6a685637..7f4c2080 100644 --- a/crates/proto/src/version/v662/packets/player_input.rs +++ b/crates/proto/src/version/v662/packets/player_input.rs @@ -1,10 +1,11 @@ +use bedrockrs_core::Vec2; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::Vec2; #[gamepacket(id = 57)] #[derive(ProtoCodec)] pub struct PlayerInputPacket { - pub move_vector: Vec2, + #[endianness(le)] + pub move_vector: Vec2, pub jumping: bool, pub sneaking: bool, } \ No newline at end of file From df7234434d094f3c4afde9629e585c97a0b9b56f Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:38 +1300 Subject: [PATCH 48/79] repl CompoundTag --- .../v662/packets/position_tracking_db_server_broadcast.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs index 20499844..b7035684 100644 --- a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs +++ b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs @@ -1,5 +1,5 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{CompoundTag, PositionTrackingId}; +use crate::version::v662::types::PositionTrackingId; #[derive(ProtoCodec)] #[enum_repr(i8)] @@ -15,5 +15,6 @@ enum Action { pub struct PositionTrackingDBServerBroadcastPacket { pub action: Action, pub id: PositionTrackingId, - pub position_tracking_data: CompoundTag, + #[nbt] + pub position_tracking_data: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From 5779278599dc8419aebcc7b55d2306cc7ed18498 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:50 +1300 Subject: [PATCH 49/79] TODO -> VERIFY --- crates/proto/src/version/v662/packets/request_ability.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/proto/src/version/v662/packets/request_ability.rs b/crates/proto/src/version/v662/packets/request_ability.rs index b8c0dde3..66fefeb7 100644 --- a/crates/proto/src/version/v662/packets/request_ability.rs +++ b/crates/proto/src/version/v662/packets/request_ability.rs @@ -18,7 +18,7 @@ pub enum Type { } = 2, } -// TODO: verify the default_values. They seem to be incorrectly documented. +// VERIFY: default_values. They seem to be incorrectly documented. #[gamepacket(id = 184)] #[derive(ProtoCodec)] From d01747d53c9ddb6da1f55ce900f8a68786457e11 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:54 +1300 Subject: [PATCH 50/79] repl Vec3 --- crates/proto/src/version/v662/packets/respawn.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/respawn.rs b/crates/proto/src/version/v662/packets/respawn.rs index 19f8d0e4..eb183b6c 100644 --- a/crates/proto/src/version/v662/packets/respawn.rs +++ b/crates/proto/src/version/v662/packets/respawn.rs @@ -1,11 +1,13 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PlayerRespawnState; -use crate::version::v662::types::{ActorRuntimeID, Vec3}; +use crate::version::v662::types::ActorRuntimeID; #[gamepacket(id = 45)] #[derive(ProtoCodec)] pub struct RespawnPacket { - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, pub state: PlayerRespawnState, pub player_runtime_id: ActorRuntimeID, } \ No newline at end of file From 357128dcec0c1f51cbb10b621f8fd61dc061e243 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:21:57 +1300 Subject: [PATCH 51/79] repl Vec3 --- .../version/v662/packets/server_player_post_move_position.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/server_player_post_move_position.rs b/crates/proto/src/version/v662/packets/server_player_post_move_position.rs index 9877ee0e..4c332a48 100644 --- a/crates/proto/src/version/v662/packets/server_player_post_move_position.rs +++ b/crates/proto/src/version/v662/packets/server_player_post_move_position.rs @@ -1,8 +1,9 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::Vec3; #[gamepacket(id = 16)] #[derive(ProtoCodec)] pub struct ServerPlayerPostMovePositionPacket { - pub pos: Vec3, + #[endianness(le)] + pub pos: Vec3, } \ No newline at end of file From 75d53b7d6946bf27da9f84913ae884b2daa97634 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:22:01 +1300 Subject: [PATCH 52/79] TODO -> VERIFY --- crates/proto/src/version/v662/packets/set_actor_data.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/proto/src/version/v662/packets/set_actor_data.rs b/crates/proto/src/version/v662/packets/set_actor_data.rs index f2089d10..5096e663 100644 --- a/crates/proto/src/version/v662/packets/set_actor_data.rs +++ b/crates/proto/src/version/v662/packets/set_actor_data.rs @@ -7,7 +7,7 @@ pub struct SetActorDataPacket { pub target_runtime_id: ActorRuntimeID, #[vec_repr(u32)] #[vec_endianness(var)] - pub actor_data: Vec, // TODO: Verify vec_repr & vec_endianness + pub actor_data: Vec, // VERIFY: vec_repr & vec_endianness pub synced_properties: PropertySyncData, #[endianness(var)] pub tick: u64, From b85d4c09dce30db4911323b16cb2c4490d650729 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:22:08 +1300 Subject: [PATCH 53/79] repl Vec3 --- crates/proto/src/version/v662/packets/set_actor_motion.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/set_actor_motion.rs b/crates/proto/src/version/v662/packets/set_actor_motion.rs index 91d771a8..aa31e93b 100644 --- a/crates/proto/src/version/v662/packets/set_actor_motion.rs +++ b/crates/proto/src/version/v662/packets/set_actor_motion.rs @@ -1,11 +1,13 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorRuntimeID, Vec3}; +use crate::version::v662::types::ActorRuntimeID; #[gamepacket(id = 40)] #[derive(ProtoCodec)] pub struct SetActorMotionPacket { pub target_runtime_id: ActorRuntimeID, - pub motion: Vec3, + #[endianness(le)] + pub motion: Vec3, #[endianness(var)] pub server_tick: u64, } \ No newline at end of file From d198844bd41f7a186f01ab8b513ff6db3d44c2f3 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:22:11 +1300 Subject: [PATCH 54/79] repl Vec3 --- .../proto/src/version/v662/packets/spawn_experience_orb.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/spawn_experience_orb.rs b/crates/proto/src/version/v662/packets/spawn_experience_orb.rs index f36b47e5..4a45767c 100644 --- a/crates/proto/src/version/v662/packets/spawn_experience_orb.rs +++ b/crates/proto/src/version/v662/packets/spawn_experience_orb.rs @@ -1,10 +1,11 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::Vec3; #[gamepacket(id = 66)] #[derive(ProtoCodec)] pub struct SpawnExperienceOrbPacket { - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, #[endianness(var)] pub xp_value: i32, } \ No newline at end of file From aa046024ba0482f273ccab4b1f3ac59affdd9045 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:22:14 +1300 Subject: [PATCH 55/79] repl Vec3 --- .../proto/src/version/v662/packets/spawn_particle_effect.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/spawn_particle_effect.rs b/crates/proto/src/version/v662/packets/spawn_particle_effect.rs index 5cfccf61..8affe116 100644 --- a/crates/proto/src/version/v662/packets/spawn_particle_effect.rs +++ b/crates/proto/src/version/v662/packets/spawn_particle_effect.rs @@ -1,12 +1,14 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorUniqueID, MolangVariableMap, Vec3}; +use crate::version::v662::types::{ActorUniqueID, MolangVariableMap}; #[gamepacket(id = 118)] #[derive(ProtoCodec)] pub struct SpawnParticleEffectPacket { pub dimension_id: i8, pub actor_id: ActorUniqueID, - pub position: Vec3, + #[endianness(le)] + pub position: Vec3, pub effect_name: String, pub molang_variables: Option } \ No newline at end of file From 44e652ad246f28b74f044b71fa821351eaa7ffcb Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:22:35 +1300 Subject: [PATCH 56/79] repl Vec3 & Vec2 & CompoundTag --- .../proto/src/version/v662/packets/start_game.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/crates/proto/src/version/v662/packets/start_game.rs b/crates/proto/src/version/v662/packets/start_game.rs index e556f438..916b704e 100644 --- a/crates/proto/src/version/v662/packets/start_game.rs +++ b/crates/proto/src/version/v662/packets/start_game.rs @@ -1,12 +1,14 @@ use uuid::Uuid; +use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::GameType; -use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, CompoundTag, ItemData, LevelSettings, NetworkPermissions, SyncedPlayerMovementSettings, Vec2, Vec3}; +use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, ItemData, LevelSettings, NetworkPermissions, SyncedPlayerMovementSettings}; #[derive(ProtoCodec)] struct BlockProperty { pub block_name: String, - pub block_definition: CompoundTag, + #[nbt] + pub block_definition: nbtx::Value, // TODO: NBT Structure } #[gamepacket(id = 11)] @@ -15,8 +17,10 @@ pub struct StartGamePacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, pub actor_game_type: GameType, - pub position: Vec3, - pub rotation: Vec2, + #[endianness(le)] + pub position: Vec3, + #[endianness(le)] + pub rotation: Vec2, pub settings: LevelSettings, pub level_id: String, pub level_name: String, @@ -36,7 +40,8 @@ pub struct StartGamePacket { pub multiplayer_correlation_id: String, pub enable_item_stack_net_manager: bool, pub server_version: String, - pub player_property_data: CompoundTag, + #[nbt] + pub player_property_data: nbtx::Value, // TODO: NBT Structure, #[endianness(le)] pub server_block_type_registry_checksum: u64, pub world_template_id: Uuid, From a9d0e205301451adfeec651f78794c3a4a7dd67d Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:22:48 +1300 Subject: [PATCH 57/79] repl CompoundTag, TODO -> VERIFY --- .../src/version/v662/packets/structure_data_response.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/version/v662/packets/structure_data_response.rs b/crates/proto/src/version/v662/packets/structure_data_response.rs index ec23ffee..4d7e6cc4 100644 --- a/crates/proto/src/version/v662/packets/structure_data_response.rs +++ b/crates/proto/src/version/v662/packets/structure_data_response.rs @@ -1,13 +1,13 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::StructureTemplateResponseType; -use crate::version::v662::types::CompoundTag; #[gamepacket(id = 133)] #[derive(ProtoCodec)] pub struct StructureDataResponsePacket { pub structure_name: String, - pub structure_nbt: Option, + #[nbt] + pub structure_nbt: Option, // TODO: NBT Structure pub response_type: StructureTemplateResponseType, } -// TODO: make sure this actually works \ No newline at end of file +// VERIFY: If this actually works \ No newline at end of file From 3769e66bffa8d70675f865842746a689ab922fba Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:22:57 +1300 Subject: [PATCH 58/79] impl ProtoCodec, VERIFY --- .../src/version/v662/packets/sub_chunk.rs | 146 ++++++++++++++++-- 1 file changed, 137 insertions(+), 9 deletions(-) diff --git a/crates/proto/src/version/v662/packets/sub_chunk.rs b/crates/proto/src/version/v662/packets/sub_chunk.rs index e5ff7068..0b423fdd 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk.rs @@ -1,8 +1,13 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::SubChunkPacket::SubChunkPosOffset; use crate::version::v662::types::SubChunkPos; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; +use std::cmp::PartialEq; +use std::io::Cursor; +use std::mem::size_of; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, PartialEq)] #[enum_repr(i8)] #[repr(i8)] pub enum HeightMapDataType { @@ -12,7 +17,7 @@ pub enum HeightMapDataType { AllTooLow = 3, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, PartialEq)] #[enum_repr(i8)] #[repr(i8)] pub enum SubChunkRequestResult { @@ -25,18 +30,16 @@ pub enum SubChunkRequestResult { SuccessAllAir = 6, } -#[derive(ProtoCodec)] struct SubChunkDataEntry { pub sub_chunk_pos_offset: SubChunkPosOffset, pub sub_chunk_request_result: SubChunkRequestResult, - pub serialized_sub_chunk: Option, // TODO: custom proto, if sub_chunk_request_result == SuccessAllAir, or cache_enabled + pub serialized_sub_chunk: Option, // If sub_chunk_request_result == SuccessAllAir, or cache_enabled pub height_map_data_type: HeightMapDataType, - pub sub_chunk_height_map: Option>>, // TODO: custom proto, if height_map_data_type == HasData (vec sizes are i8) - pub blob_id: Option, // TODO: custom proto, if cache_enabled + pub sub_chunk_height_map: Option<[[i8; 16]; 16]>, // If height_map_data_type == HasData (vec sizes are i8) + pub blob_id: Option, // If cache_enabled } #[gamepacket(id = 174)] -#[derive(ProtoCodec)] pub struct SubChunkPacket { pub cache_enabled: bool, #[endianness(var)] @@ -45,4 +48,129 @@ pub struct SubChunkPacket { #[vec_repr(u32)] #[vec_endianness(le)] pub sub_chunk_data: Vec, -} \ No newline at end of file +} + +impl ProtoCodec for SubChunkPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + self.cache_enabled.proto_serialize(stream)?; + ::proto_serialize(&self.dimension_type, stream)?; + self.center_pos.proto_serialize(stream)?; + ::proto_serialize(&self.sub_chunk_data.len().try_into()?, stream)?; + for i in &self.sub_chunk_data { + i.sub_chunk_pos_offset.proto_serialize(stream)?; + i.sub_chunk_request_result.proto_serialize(stream)?; + if (i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir + || self.cache_enabled) + { + i.serialized_sub_chunk + .as_ref() + .unwrap() + .proto_serialize(stream)?; + } + i.height_map_data_type.proto_serialize(stream)?; + if (i.height_map_data_type == HeightMapDataType::HasData) { + let height_map = i.sub_chunk_height_map.as_ref().unwrap(); + for x in height_map { + for y in x { + y.proto_serialize(stream)?; + } + } + } + if (self.cache_enabled) { + ::proto_serialize(&i.blob_id.as_ref().unwrap(), stream)?; + } + } + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let cache_enabled = bool::proto_deserialize(stream)?; + let dimension_type = ::proto_deserialize(stream)?; + let center_pos = SubChunkPos::proto_deserialize(stream)?; + let sub_chunk_data = { + let len = ::proto_deserialize(stream)?; + let mut vec = Vec::with_capacity(len.try_into()?); + for _ in 0..len { + let sub_chunk_pos_offset = SubChunkPosOffset::proto_deserialize(stream)?; + let sub_chunk_request_result = SubChunkRequestResult::proto_deserialize(stream)?; + let serialized_sub_chunk = match (sub_chunk_request_result + == SubChunkRequestResult::SuccessAllAir + || cache_enabled) + { + true => Some(String::proto_deserialize(stream)?), + false => None, + }; + let height_map_data_type = HeightMapDataType::proto_deserialize(stream)?; + let sub_chunk_height_map = + match (height_map_data_type == HeightMapDataType::HasData) { + true => { + let mut height_map: [[i8; 16]; 16] = [[0; 16]; 16]; + for x in 0..16 { + for y in 0..16 { + height_map[x][y] = i8::proto_deserialize(stream)?; + } + } + + Some(height_map) + } + false => None, + }; + let blob_id = match cache_enabled { + true => Some(::proto_deserialize(stream)?), + false => None, + }; + + vec.push(SubChunkDataEntry { + sub_chunk_pos_offset, + sub_chunk_request_result, + serialized_sub_chunk, + height_map_data_type, + sub_chunk_height_map, + blob_id, + }) + } + vec + }; + + Ok(Self { + cache_enabled, + dimension_type, + center_pos, + sub_chunk_data, + }) + } + + fn get_size_prediction(&self) -> usize { + self.cache_enabled.get_size_prediction() + + self.dimension_type.get_size_prediction() + + self.center_pos.get_size_prediction() + + size_of::() + + self + .sub_chunk_data + .iter() + .map(|i| { + i.sub_chunk_pos_offset.get_size_prediction() + + i.sub_chunk_request_result.get_size_prediction() + + if (i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir + || self.cache_enabled) + { + i.serialized_sub_chunk + .as_ref() + .unwrap() + .get_size_prediction() + } + + i.height_map_data_type.get_size_prediction() + + if (i.height_map_data_type == HeightMapDataType::HasData) { + let height_map = i.sub_chunk_height_map.as_ref().unwrap(); + height_map.len() * height_map[0].len() * size_of::() + } + + if (self.cache_enabled) { + size_of::() + } + }) + .sum::() + } +} + +// VERIFY: ProtoCodec impl From b35ab96d65726f06c6d1ba07378955864cb06f1a Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:02 +1300 Subject: [PATCH 59/79] repl CompoundTag --- crates/proto/src/version/v662/packets/sync_actor_property.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/sync_actor_property.rs b/crates/proto/src/version/v662/packets/sync_actor_property.rs index 96290807..d8ccf373 100644 --- a/crates/proto/src/version/v662/packets/sync_actor_property.rs +++ b/crates/proto/src/version/v662/packets/sync_actor_property.rs @@ -1,8 +1,8 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::CompoundTag; #[gamepacket(id = 165)] #[derive(ProtoCodec)] pub struct SyncActorPropertyPacket { - pub property_data: CompoundTag, + #[nbt] + pub property_data: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From ca3db49d1aafde5f0b1544aa65f388daaa061062 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:08 +1300 Subject: [PATCH 60/79] impl ProtoCodec, VERIFY --- crates/proto/src/version/v662/packets/text.rs | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/text.rs b/crates/proto/src/version/v662/packets/text.rs index c85ffd2e..940b705e 100644 --- a/crates/proto/src/version/v662/packets/text.rs +++ b/crates/proto/src/version/v662/packets/text.rs @@ -1,8 +1,11 @@ +use std::io::{Cursor, Read}; +use byteorder::{ReadBytesExt, WriteBytesExt}; use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::ProtoCodec; use crate::version::v662::enums::TextPacketType; #[gamepacket(id = 9)] -#[derive(ProtoCodec)] pub struct TextPacket { pub message_type: TextPacketType, pub localize: bool, @@ -10,4 +13,46 @@ pub struct TextPacket { pub platform_id: String, } -// TODO: custom proto impl, because of enum variant serialization order +impl ProtoCodec for TextPacket { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + let mut message_type_stream: Vec = Vec::new(); + TextPacketType::proto_serialize(&self.message_type, &mut message_type_stream)?; + let mut message_type_cursor = Cursor::new(message_type_stream.as_slice()); + + stream.write_i8(message_type_cursor.read_i8()?)?; + bool::proto_serialize(&self.localize, stream)?; + message_type_cursor.read_to_end(stream)?; + String::proto_serialize(&self.sender_xuid, stream)?; + String::proto_serialize(&self.platform_id, stream)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let mut sub_stream: Vec = Vec::new(); + + sub_stream.write_i8(stream.read_i8()?)?; + let localize = bool::proto_deserialize(stream)?; + stream.read_to_end(&mut sub_stream)?; + let mut sub_cursor = Cursor::new(sub_stream.as_slice()); + let message_type = TextPacketType::proto_deserialize(&mut sub_cursor)?; + let sender_xuid = String::proto_deserialize(&mut sub_cursor)?; + let platform_id = String::proto_deserialize(&mut sub_cursor)?; + + Ok(Self { + message_type, + localize, + sender_xuid, + platform_id, + }) + } + + fn get_size_prediction(&self) -> usize { + self.message_type.get_size_prediction() + + self.localize.get_size_prediction() + + self.sender_xuid.get_size_prediction() + + self.platform_id.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl From 4ed3d51bff2455c62f4f620d5c7bbf75ac7a52fa Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:14 +1300 Subject: [PATCH 61/79] repl Vec3 --- .../src/version/v662/packets/update_client_input_locks.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/update_client_input_locks.rs b/crates/proto/src/version/v662/packets/update_client_input_locks.rs index 04889b63..10a6c38c 100644 --- a/crates/proto/src/version/v662/packets/update_client_input_locks.rs +++ b/crates/proto/src/version/v662/packets/update_client_input_locks.rs @@ -1,10 +1,11 @@ +use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::Vec3; #[gamepacket(id = 196)] #[derive(ProtoCodec)] pub struct UpdateClientInputLocksPacket { #[endianness(var)] pub input_lock_component_data: i32, - pub server_pos: Vec3, + #[endianness(le)] + pub server_pos: Vec3, } \ No newline at end of file From b5f66d2e8fb0d3f373894829091a1e9cf82ce798 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:18 +1300 Subject: [PATCH 62/79] repl CompoundTag --- crates/proto/src/version/v662/packets/update_equip.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/update_equip.rs b/crates/proto/src/version/v662/packets/update_equip.rs index fc88b87d..1f127479 100644 --- a/crates/proto/src/version/v662/packets/update_equip.rs +++ b/crates/proto/src/version/v662/packets/update_equip.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{ContainerID, ContainerType}; -use crate::version::v662::types::{ActorUniqueID, CompoundTag}; +use crate::version::v662::types::ActorUniqueID; #[gamepacket(id = 81)] #[derive(ProtoCodec)] @@ -10,5 +10,6 @@ pub struct UpdateEquipPacket { #[endianness(var)] pub size: i32, pub target_actor_id: ActorUniqueID, - pub data_tags: CompoundTag, + #[nbt] + pub data_tags: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From 82faea2955222e93bd69fb25d7e38a4b09211354 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:23 +1300 Subject: [PATCH 63/79] impl ProtoCodec, VERIFY --- .../v662/packets/update_sub_chunk_blocks.rs | 58 ++++++++++++++++++- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs index b1096822..63c9e75e 100644 --- a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs +++ b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs @@ -1,8 +1,12 @@ +use std::io::Cursor; +use std::mem::size_of; +use varint_rs::{VarintReader, VarintWriter}; use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; use crate::version::v662::enums::ActorBlockSyncMessage; use crate::version::v662::types::NetworkBlockPosition; -#[derive(ProtoCodec)] struct BlocksChangedEntry { pub pos: NetworkBlockPosition, #[endianness(var)] @@ -11,7 +15,53 @@ struct BlocksChangedEntry { pub update_flags: u32, #[endianness(var)] pub sync_message_entity_unique_id: u64, - pub sync_message: ActorBlockSyncMessage::MessageId, // TODO: custom proto, this is sent as unsigned varint, needs to be varint64 + pub sync_message: ActorBlockSyncMessage::MessageId, // This is sent as unsigned varint, needs to be varint64 +} + +impl ProtoCodec for BlocksChangedEntry { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + self.pos.proto_serialize(stream)?; + ::proto_serialize(&self.runtime_id, stream)?; + ::proto_serialize(&self.update_flags, stream)?; + ::proto_serialize(&self.sync_message_entity_unique_id, stream)?; + + let mut sync_message_stream: Vec = Vec::new(); + self.sync_message.proto_serialize(&mut sync_message_stream)?; + let mut sync_message_cursor = Cursor::new(sync_message_stream.as_slice()); + + stream.write_u32_varint(sync_message_cursor.read_i64_varint()? as u32)?; + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let pos = NetworkBlockPosition::proto_deserialize(stream)?; + let runtime_id = ::proto_deserialize(stream)?; + let update_flags = ::proto_deserialize(stream)?; + let sync_message_entity_unique_id = ::proto_deserialize(stream)?; + + let mut sync_message_stream: Vec = Vec::new(); + sync_message_stream.write_i64_varint(stream.read_u32_varint()? as i64)?; + let mut sync_message_cursor = Cursor::new(sync_message_stream.as_slice()); + + let sync_message = ActorBlockSyncMessage::MessageId::proto_deserialize(&mut sync_message_cursor)?; + + Ok(Self { + pos, + runtime_id, + update_flags, + sync_message_entity_unique_id, + sync_message, + }) + } + + fn get_size_prediction(&self) -> usize { + self.pos.get_size_prediction() + + self.runtime_id.get_size_prediction() + + self.update_flags.get_size_prediction() + + self.sync_message_entity_unique_id.get_size_prediction() + + size_of::() + } } #[gamepacket(id = 172)] @@ -24,4 +74,6 @@ pub struct UpdateSubChunkBlocksPacket { #[vec_repr(u32)] #[vec_endianness(var)] pub extra_blocks_changed: Vec, -} \ No newline at end of file +} + +// VERIFY: ProtoCodec impl \ No newline at end of file From 1aaa41cd62796ee6c6da20031720a8656a843a8f Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:29 +1300 Subject: [PATCH 64/79] repl CompoundTag --- crates/proto/src/version/v662/packets/update_trade.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/proto/src/version/v662/packets/update_trade.rs b/crates/proto/src/version/v662/packets/update_trade.rs index e53599fa..bcd090f7 100644 --- a/crates/proto/src/version/v662/packets/update_trade.rs +++ b/crates/proto/src/version/v662/packets/update_trade.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{ContainerID, ContainerType}; -use crate::version::v662::types::{ActorUniqueID, CompoundTag}; +use crate::version::v662::types::ActorUniqueID; #[gamepacket(id = 80)] #[derive(ProtoCodec)] @@ -16,5 +16,6 @@ pub struct UpdateTradePacket { pub display_name: String, pub use_new_trade_ui: bool, pub using_economy_trade: bool, - pub data_tags: CompoundTag, + #[nbt] + pub data_tags: nbtx::Value, // TODO: NBT Structure } \ No newline at end of file From 69d3b50446784b35648afc32770c80e76fd2a284 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:35 +1300 Subject: [PATCH 65/79] impl ProtoCodec, VERIFY --- .../types/network_item_instance_descriptor.rs | 96 +++++++++++++++---- 1 file changed, 76 insertions(+), 20 deletions(-) diff --git a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs index d7d1fb7d..646fe650 100644 --- a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs +++ b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs @@ -1,22 +1,78 @@ use bedrockrs_macros::ProtoCodec; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; +use std::io::Cursor; -#[derive(ProtoCodec)] -#[enum_repr(i8)] -#[repr(i8)] -pub enum NetworkItemInstanceDescriptor { - Invalid { - #[endianness(var)] - id: i32, - } = 0, - Valid { - #[endianness(var)] - id: i32, - #[endianness(le)] - stack_size: u16, - #[endianness(var)] - aux_value: u32, - #[endianness(var)] - block_runtime_id: i32, - user_data_buffer: String - } = 1 -} \ No newline at end of file +pub struct NetworkItemInstanceDescriptor { + #[endianness(var)] + id: i32, + #[endianness(le)] + stack_size: Option, + #[endianness(var)] + aux_value: Option, + #[endianness(var)] + block_runtime_id: Option, + user_data_buffer: Option, +} + +impl ProtoCodec for NetworkItemInstanceDescriptor { + fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { + ::proto_serialize(&self.id, stream)?; + + match &self.id { + 0 => {} + _ => { + ::proto_serialize(&self.stack_size.as_ref().unwrap(), stream)?; + ::proto_serialize(&self.aux_value.as_ref().unwrap(), stream)?; + ::proto_serialize(&self.block_runtime_id.as_ref().unwrap(), stream)?; + ::proto_serialize(&self.user_data_buffer.as_ref().unwrap(), stream)?; + } + } + + Ok(()) + } + + fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { + let id = ::proto_deserialize(stream)?; + + let (stack_size, aux_value, block_runtime_id, user_data_buffer) = match &id { + 0 => (None, None, None, None), + _ => { + let stack_size = ::proto_deserialize(stream)?; + let aux_value = ::proto_deserialize(stream)?; + let block_runtime_id = ::proto_deserialize(stream)?; + let user_data_buffer = ::proto_deserialize(stream)?; + + ( + Some(stack_size), + Some(aux_value), + Some(block_runtime_id), + Some(user_data_buffer), + ) + } + }; + + Ok(Self { + id, + stack_size, + aux_value, + block_runtime_id, + user_data_buffer, + }) + } + + fn get_size_prediction(&self) -> usize { + self.id.get_size_prediction() + + match self.id { + 0 => 0, + _ => { + self.stack_size.as_ref().unwrap().get_size_prediction() + + self.aux_value.as_ref().unwrap().get_size_prediction() + + self.block_runtime_id.as_ref().unwrap().get_size_prediction() + + self.user_data_buffer.as_ref().unwrap().get_size_prediction() + } + } + } +} + +// VERIFY: ProtoCodec impl From 88abe697cdbaa88e0350cf304d02d8fdb0967be0 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:23:44 +1300 Subject: [PATCH 66/79] impl ProtoCodec, VERIFY --- .../src/version/v662/types/shaped_recipe.rs | 105 ++++++++++-------- 1 file changed, 61 insertions(+), 44 deletions(-) diff --git a/crates/proto/src/version/v662/types/shaped_recipe.rs b/crates/proto/src/version/v662/types/shaped_recipe.rs index 5fac5ec8..132fbba7 100644 --- a/crates/proto/src/version/v662/types/shaped_recipe.rs +++ b/crates/proto/src/version/v662/types/shaped_recipe.rs @@ -1,10 +1,9 @@ +use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; use std::io::Cursor; use std::mem::size_of; use uuid::Uuid; -use varint_rs::VarintWriter; -use bedrockrs_proto_core::error::ProtoCodecError; -use bedrockrs_proto_core::ProtoCodec; -use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; pub struct ShapedRecipe { pub recipe_unique_id: String, @@ -21,70 +20,88 @@ pub struct ShapedRecipe { impl ProtoCodec for ShapedRecipe { fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { self.recipe_unique_id.proto_serialize(stream)?; - + let x_len: u32 = self.ingredient_grid.len().try_into()?; let y_len: u32 = self.ingredient_grid[0].len().try_into()?; - stream.write_u32_varint(x_len)?; - stream.write_u32_varint(y_len)?; + ::proto_serialize(&x_len, stream)?; + ::proto_serialize(&y_len, stream)?; for y in &self.ingredient_grid { for recipe in y { recipe.proto_serialize(stream)?; } } - - let p_len: u32 = self.production_list.len().try_into()?; - stream.write_u32_varint(p_len)?; + + ::proto_serialize(&self.production_list.len().try_into()?, stream)?; for p in &self.production_list { p.proto_serialize(stream)?; } - + self.recipe_id.proto_serialize(stream)?; self.recipe_tag.proto_serialize(stream)?; - stream.write_i32_varint(self.priority)?; - + ::proto_serialize(&self.priority, stream)?; + Ok(()) } fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { - let recipe_unique_id = ::proto_deserialize(stream)?; - - let x_len = ::proto_deserialize(stream)?; - let y_len = ::proto_deserialize(stream)?; - let mut ingredient_grid = Vec::with_capacity(x_len.try_into()?); - for _ in 0..x_len { - let mut y_vec = Vec::with_capacity(y_len.try_into()?); - for _ in 0..y_len { - y_vec.push(::proto_deserialize(stream)?); + let recipe_unique_id = String::proto_deserialize(stream)?; + + let ingredient_grid = { + let x_len = ::proto_deserialize(stream)?; + let y_len = ::proto_deserialize(stream)?; + let mut x_vec = Vec::with_capacity(x_len.try_into()?); + for _ in 0..x_len { + let mut y_vec = Vec::with_capacity(y_len.try_into()?); + for _ in 0..y_len { + y_vec.push(RecipeIngredient::proto_deserialize(stream)?); + } + x_vec.push(y_vec); } - ingredient_grid.push(y_vec); - } - - let p_len = ::proto_deserialize(stream)?; - let mut production_list = Vec::with_capacity(p_len.try_into()?); - for _ in 0..p_len { - production_list.push(::proto_deserialize(stream)?); - } - - let recipe_id = ::proto_deserialize(stream)?; - let recipe_tag = ::proto_deserialize(stream)?; - let priority = ::proto_deserialize(stream)?; - + x_vec + }; + + let production_list = { + let len = ::proto_deserialize(stream)?; + let mut vec = Vec::with_capacity(len.try_into()?); + for _ in 0..len { + vec.push(NetworkItemInstanceDescriptor::proto_deserialize(stream)?); + } + vec + }; + + let recipe_id = Uuid::proto_deserialize(stream)?; + let recipe_tag = String::proto_deserialize(stream)?; + let priority = ::proto_deserialize(stream)?; + Ok(Self { recipe_unique_id, ingredient_grid, production_list, recipe_id, recipe_tag, - priority + priority, }) } fn get_size_prediction(&self) -> usize { - size_of::() - + size_of::>>() - + size_of::>() - + size_of::() - + size_of::() - + size_of::() - } // TODO -} \ No newline at end of file + self.recipe_unique_id.get_size_prediction() + + size_of::() + + size_of::() + + self + .ingredient_grid + .iter() + .map(|y| y + .iter() + .map(|i| + i.get_size_prediction()) + .sum::()) + .sum::() + + size_of::() + + self.production_list.iter().map(|y| y.get_size_prediction()).sum::() + + self.recipe_id.get_size_prediction() + + self.recipe_tag.get_size_prediction() + + self.priority.get_size_prediction() + } +} + +// VERIFY: ProtoCodec impl \ No newline at end of file From aeedf2abbf01e5ab93817a71c4ec7ae535295c03 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:53:02 +1300 Subject: [PATCH 67/79] optimise imports --- .../src/version/v662/enums/actor_block_sync_message.rs | 2 +- .../src/version/v662/enums/boss_event_update_type.rs | 2 +- crates/proto/src/version/v662/enums/camera_preset.rs | 2 +- .../v662/enums/code_builder_storage_query_options.rs | 2 +- .../src/version/v662/enums/crafting_data_entry_type.rs | 4 ++-- crates/proto/src/version/v662/enums/data_item_type.rs | 2 +- crates/proto/src/version/v662/enums/editor.rs | 2 +- crates/proto/src/version/v662/enums/enchant.rs | 2 +- crates/proto/src/version/v662/enums/game_rule.rs | 2 +- .../src/version/v662/enums/identity_definition.rs | 4 ++-- .../proto/src/version/v662/enums/inventory_source.rs | 2 +- .../src/version/v662/enums/inventory_source_type.rs | 2 +- crates/proto/src/version/v662/enums/item_descriptor.rs | 2 +- .../v662/enums/item_release_inventory_transaction.rs | 2 +- .../src/version/v662/enums/item_stack_net_result.rs | 2 +- .../v662/enums/item_use_inventory_transaction.rs | 2 +- .../enums/item_use_on_actor_inventory_transaction.rs | 2 +- .../v662/enums/legacy_telemetry_event_packet.rs | 2 +- crates/proto/src/version/v662/enums/map_decoration.rs | 2 +- .../src/version/v662/enums/map_item_tracked_actor.rs | 2 +- .../proto/src/version/v662/enums/minecraft_eventing.rs | 2 +- crates/proto/src/version/v662/enums/persona.rs | 2 +- .../proto/src/version/v662/enums/player_action_type.rs | 2 +- .../src/version/v662/enums/player_list_packet_type.rs | 4 ++-- .../v662/enums/player_position_mode_component.rs | 2 +- crates/proto/src/version/v662/enums/puv.rs | 2 +- .../proto/src/version/v662/enums/score_packet_type.rs | 2 +- .../v662/enums/scoreboard_identity_packet_type.rs | 2 +- .../version/v662/enums/serialized_abilities_data.rs | 2 +- crates/proto/src/version/v662/enums/social.rs | 2 +- crates/proto/src/version/v662/enums/tag.rs | 2 +- crates/proto/src/version/v662/gamepackets.rs | 4 ++-- crates/proto/src/version/v662/packets/actor_event.rs | 2 +- crates/proto/src/version/v662/packets/add_actor.rs | 2 +- .../proto/src/version/v662/packets/add_item_actor.rs | 2 +- crates/proto/src/version/v662/packets/add_painting.rs | 2 +- crates/proto/src/version/v662/packets/add_player.rs | 6 +++--- .../src/version/v662/packets/add_volume_entity.rs | 2 +- .../src/version/v662/packets/agent_action_event.rs | 2 +- .../proto/src/version/v662/packets/agent_animation.rs | 2 +- .../proto/src/version/v662/packets/animate_entity.rs | 2 +- crates/proto/src/version/v662/packets/anvil_damage.rs | 2 +- .../version/v662/packets/automation_client_connect.rs | 2 +- .../proto/src/version/v662/packets/block_actor_data.rs | 2 +- crates/proto/src/version/v662/packets/block_event.rs | 2 +- .../src/version/v662/packets/block_pick_request.rs | 2 +- crates/proto/src/version/v662/packets/boss_event.rs | 2 +- crates/proto/src/version/v662/packets/camera.rs | 2 +- .../src/version/v662/packets/camera_instruction.rs | 2 +- .../proto/src/version/v662/packets/camera_presets.rs | 2 +- crates/proto/src/version/v662/packets/camera_shake.rs | 2 +- .../src/version/v662/packets/change_mob_property.rs | 2 +- .../src/version/v662/packets/code_builder_source.rs | 2 +- .../proto/src/version/v662/packets/command_request.rs | 2 +- .../src/version/v662/packets/completed_using_item.rs | 2 +- .../proto/src/version/v662/packets/container_close.rs | 2 +- .../proto/src/version/v662/packets/container_open.rs | 2 +- .../src/version/v662/packets/container_set_data.rs | 2 +- .../v662/packets/correct_player_move_prediction.rs | 2 +- crates/proto/src/version/v662/packets/crafting_data.rs | 2 +- .../proto/src/version/v662/packets/creative_content.rs | 2 +- crates/proto/src/version/v662/packets/debug_info.rs | 2 +- .../proto/src/version/v662/packets/dimension_data.rs | 2 +- crates/proto/src/version/v662/packets/disconnect.rs | 4 ++-- .../proto/src/version/v662/packets/edu_uri_resource.rs | 2 +- .../src/version/v662/packets/education_settings.rs | 2 +- crates/proto/src/version/v662/packets/emote.rs | 2 +- crates/proto/src/version/v662/packets/emote_list.rs | 4 ++-- .../src/version/v662/packets/game_rules_changed.rs | 2 +- .../src/version/v662/packets/game_test_request.rs | 2 +- .../src/version/v662/packets/inventory_content.rs | 2 +- .../proto/src/version/v662/packets/inventory_slot.rs | 2 +- .../src/version/v662/packets/inventory_transaction.rs | 2 +- .../src/version/v662/packets/item_stack_request.rs | 2 +- .../src/version/v662/packets/item_stack_response.rs | 2 +- crates/proto/src/version/v662/packets/lab_table.rs | 2 +- .../proto/src/version/v662/packets/lectern_update.rs | 2 +- .../proto/src/version/v662/packets/lesson_progress.rs | 2 +- crates/proto/src/version/v662/packets/level_chunk.rs | 2 +- crates/proto/src/version/v662/packets/level_event.rs | 2 +- .../src/version/v662/packets/level_event_generic.rs | 2 +- .../src/version/v662/packets/level_sound_event.rs | 2 +- .../src/version/v662/packets/level_sound_event_v1.rs | 2 +- .../src/version/v662/packets/level_sound_event_v2.rs | 3 +-- .../src/version/v662/packets/map_create_locked_copy.rs | 2 +- .../proto/src/version/v662/packets/map_info_request.rs | 2 +- .../src/version/v662/packets/mob_armor_equipment.rs | 2 +- crates/proto/src/version/v662/packets/mob_effect.rs | 2 +- crates/proto/src/version/v662/packets/mob_equipment.rs | 2 +- .../src/version/v662/packets/modal_form_response.rs | 2 +- .../version/v662/packets/motion_prediction_hints.rs | 2 +- .../src/version/v662/packets/move_actor_absolute.rs | 2 +- .../proto/src/version/v662/packets/move_actor_delta.rs | 2 +- crates/proto/src/version/v662/packets/move_player.rs | 3 +-- .../src/version/v662/packets/multiplayer_settings.rs | 2 +- .../v662/packets/network_chunk_publisher_update.rs | 2 +- .../proto/src/version/v662/packets/network_settings.rs | 2 +- crates/proto/src/version/v662/packets/npc_request.rs | 2 +- crates/proto/src/version/v662/packets/open_sign.rs | 2 +- .../version/v662/packets/packet_violation_warning.rs | 2 +- .../proto/src/version/v662/packets/photo_transfer.rs | 2 +- crates/proto/src/version/v662/packets/play_sound.rs | 2 +- crates/proto/src/version/v662/packets/play_status.rs | 2 +- crates/proto/src/version/v662/packets/player_action.rs | 2 +- .../src/version/v662/packets/player_enchant_options.rs | 2 +- crates/proto/src/version/v662/packets/player_hotbar.rs | 2 +- crates/proto/src/version/v662/packets/player_list.rs | 2 +- crates/proto/src/version/v662/packets/player_skin.rs | 4 ++-- .../packets/position_tracking_db_client_request.rs | 2 +- .../packets/position_tracking_db_server_broadcast.rs | 2 +- crates/proto/src/version/v662/packets/remove_actor.rs | 2 +- .../src/version/v662/packets/remove_volume_entity.rs | 2 +- .../proto/src/version/v662/packets/request_ability.rs | 2 +- .../src/version/v662/packets/request_permissions.rs | 2 +- .../v662/packets/resource_pack_client_response.rs | 2 +- .../version/v662/packets/resource_pack_data_info.rs | 2 +- .../src/version/v662/packets/resource_pack_stack.rs | 2 +- crates/proto/src/version/v662/packets/respawn.rs | 4 ++-- .../proto/src/version/v662/packets/set_actor_data.rs | 2 +- .../proto/src/version/v662/packets/set_actor_link.rs | 2 +- .../proto/src/version/v662/packets/set_actor_motion.rs | 2 +- .../src/version/v662/packets/set_default_game_type.rs | 2 +- .../proto/src/version/v662/packets/set_difficulty.rs | 2 +- .../src/version/v662/packets/set_display_objective.rs | 2 +- crates/proto/src/version/v662/packets/set_hud.rs | 2 +- .../proto/src/version/v662/packets/set_last_hurt_by.rs | 2 +- .../v662/packets/set_local_player_as_initialized.rs | 2 +- .../src/version/v662/packets/set_player_game_type.rs | 2 +- .../v662/packets/set_player_inventory_options.rs | 2 +- crates/proto/src/version/v662/packets/set_score.rs | 2 +- .../version/v662/packets/set_scoreboard_identity.rs | 2 +- .../src/version/v662/packets/set_spawn_position.rs | 2 +- crates/proto/src/version/v662/packets/show_credits.rs | 2 +- .../proto/src/version/v662/packets/show_store_offer.rs | 2 +- .../proto/src/version/v662/packets/simulation_type.rs | 2 +- .../src/version/v662/packets/spawn_particle_effect.rs | 2 +- crates/proto/src/version/v662/packets/start_game.rs | 6 +++--- .../src/version/v662/packets/structure_block_update.rs | 2 +- .../src/version/v662/packets/structure_data_request.rs | 2 +- .../version/v662/packets/structure_data_response.rs | 2 +- .../src/version/v662/packets/sub_chunk_request.rs | 2 +- crates/proto/src/version/v662/packets/text.rs | 8 ++++---- .../proto/src/version/v662/packets/update_abilities.rs | 2 +- .../version/v662/packets/update_adventure_settings.rs | 2 +- .../src/version/v662/packets/update_attributes.rs | 2 +- crates/proto/src/version/v662/packets/update_block.rs | 2 +- .../src/version/v662/packets/update_block_synced.rs | 2 +- crates/proto/src/version/v662/packets/update_equip.rs | 2 +- .../version/v662/packets/update_player_game_type.rs | 2 +- .../proto/src/version/v662/packets/update_soft_enum.rs | 2 +- .../version/v662/packets/update_sub_chunk_blocks.rs | 10 +++++----- crates/proto/src/version/v662/packets/update_trade.rs | 2 +- crates/proto/src/version/v662/types/actor_link.rs | 2 +- .../proto/src/version/v662/types/actor_runtime_id.rs | 4 ++-- crates/proto/src/version/v662/types/actor_unique_id.rs | 4 ++-- .../proto/src/version/v662/types/base_description.rs | 2 +- .../proto/src/version/v662/types/base_game_version.rs | 2 +- crates/proto/src/version/v662/types/camera_presets.rs | 2 +- .../src/version/v662/types/command_origin_data.rs | 2 +- crates/proto/src/version/v662/types/data_item.rs | 2 +- .../proto/src/version/v662/types/inventory_action.rs | 2 +- .../proto/src/version/v662/types/inventory_source.rs | 2 +- .../src/version/v662/types/inventory_transaction.rs | 2 +- crates/proto/src/version/v662/types/item_enchants.rs | 2 +- .../v662/types/item_stack_response_container_info.rs | 2 +- .../src/version/v662/types/item_stack_response_info.rs | 2 +- crates/proto/src/version/v662/types/level_settings.rs | 4 ++-- .../src/version/v662/types/map_item_tracked_actor.rs | 2 +- .../src/version/v662/types/move_actor_absolute_data.rs | 2 +- .../src/version/v662/types/move_actor_delta_data.rs | 2 +- .../v662/types/network_item_instance_descriptor.rs | 1 - .../v662/types/network_item_stack_descriptor.rs | 2 +- .../packed_item_use_legacy_inventory_transaction.rs | 4 ++-- .../src/version/v662/types/player_block_action_data.rs | 2 +- .../src/version/v662/types/player_block_actions.rs | 2 +- .../proto/src/version/v662/types/recipe_ingredient.rs | 2 +- .../version/v662/types/serialized_abilities_data.rs | 2 +- crates/proto/src/version/v662/types/serialized_skin.rs | 2 +- .../src/version/v662/types/shaped_chemistry_recipe.rs | 4 ++-- .../version/v662/types/shapeless_chemistry_recipe.rs | 4 ++-- .../proto/src/version/v662/types/shapeless_recipe.rs | 4 ++-- .../proto/src/version/v662/types/shulker_box_recipe.rs | 4 ++-- .../version/v662/types/smithing_transform_recipe.rs | 2 +- .../src/version/v662/types/smithing_trim_recipe.rs | 2 +- crates/proto/src/version/v662/types/spawn_settings.rs | 2 +- .../src/version/v662/types/structure_editor_data.rs | 2 +- .../proto/src/version/v662/types/structure_settings.rs | 4 ++-- .../v662/types/synced_player_movement_settings.rs | 2 +- 188 files changed, 215 insertions(+), 218 deletions(-) diff --git a/crates/proto/src/version/v662/enums/actor_block_sync_message.rs b/crates/proto/src/version/v662/enums/actor_block_sync_message.rs index 9d453bae..1cb89e93 100644 --- a/crates/proto/src/version/v662/enums/actor_block_sync_message.rs +++ b/crates/proto/src/version/v662/enums/actor_block_sync_message.rs @@ -1,6 +1,6 @@ pub mod ActorBlockSyncMessage { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(i64)] #[enum_endianness(var)] diff --git a/crates/proto/src/version/v662/enums/boss_event_update_type.rs b/crates/proto/src/version/v662/enums/boss_event_update_type.rs index a6122e8d..1069c113 100644 --- a/crates/proto/src/version/v662/enums/boss_event_update_type.rs +++ b/crates/proto/src/version/v662/enums/boss_event_update_type.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(i32)] diff --git a/crates/proto/src/version/v662/enums/camera_preset.rs b/crates/proto/src/version/v662/enums/camera_preset.rs index 00814c39..04d89bc8 100644 --- a/crates/proto/src/version/v662/enums/camera_preset.rs +++ b/crates/proto/src/version/v662/enums/camera_preset.rs @@ -1,6 +1,6 @@ pub mod CameraPreset { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum AudioListener { Camera = 0, diff --git a/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs b/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs index 37ea5ddd..8d939ddb 100644 --- a/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs +++ b/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs @@ -1,6 +1,6 @@ pub mod CodeBuilderStorageQueryOptions { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(i8)] #[repr(i8)] diff --git a/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs b/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs index e906a1b1..acdd0c13 100644 --- a/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs +++ b/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs @@ -1,6 +1,6 @@ -use uuid::Uuid; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{NetworkItemInstanceDescriptor, ShapedChemistryRecipe, ShapedRecipe, ShapelessRecipe, ShulkerBoxRecipe, SmithingTransformRecipe, SmithingTrimRecipe}; +use bedrockrs_macros::ProtoCodec; +use uuid::Uuid; #[derive(ProtoCodec)] #[enum_repr(i32)] diff --git a/crates/proto/src/version/v662/enums/data_item_type.rs b/crates/proto/src/version/v662/enums/data_item_type.rs index 495ec82c..a550fe25 100644 --- a/crates/proto/src/version/v662/enums/data_item_type.rs +++ b/crates/proto/src/version/v662/enums/data_item_type.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::BlockPos; use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -use crate::version::v662::types::BlockPos; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/enums/editor.rs b/crates/proto/src/version/v662/enums/editor.rs index db87e0d8..cf8d8038 100644 --- a/crates/proto/src/version/v662/enums/editor.rs +++ b/crates/proto/src/version/v662/enums/editor.rs @@ -1,6 +1,6 @@ pub mod Editor { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum WorldType { NonEditor = 0, diff --git a/crates/proto/src/version/v662/enums/enchant.rs b/crates/proto/src/version/v662/enums/enchant.rs index 24ecd908..e5edad06 100644 --- a/crates/proto/src/version/v662/enums/enchant.rs +++ b/crates/proto/src/version/v662/enums/enchant.rs @@ -1,6 +1,6 @@ pub mod Enchant { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(i8)] #[repr(i8)] diff --git a/crates/proto/src/version/v662/enums/game_rule.rs b/crates/proto/src/version/v662/enums/game_rule.rs index ea07bed9..75cb34d5 100644 --- a/crates/proto/src/version/v662/enums/game_rule.rs +++ b/crates/proto/src/version/v662/enums/game_rule.rs @@ -1,6 +1,6 @@ pub mod GameRule { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum Type { Invalid = 0, diff --git a/crates/proto/src/version/v662/enums/identity_definition.rs b/crates/proto/src/version/v662/enums/identity_definition.rs index ff17d09f..9b717710 100644 --- a/crates/proto/src/version/v662/enums/identity_definition.rs +++ b/crates/proto/src/version/v662/enums/identity_definition.rs @@ -1,7 +1,7 @@ pub mod IdentityDefinition { - use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::ActorUniqueID; - + use bedrockrs_macros::ProtoCodec; + #[derive(ProtoCodec)] #[enum_repr(i8)] #[repr(i8)] diff --git a/crates/proto/src/version/v662/enums/inventory_source.rs b/crates/proto/src/version/v662/enums/inventory_source.rs index ee403168..6fbaf1b4 100644 --- a/crates/proto/src/version/v662/enums/inventory_source.rs +++ b/crates/proto/src/version/v662/enums/inventory_source.rs @@ -1,6 +1,6 @@ pub mod InventorySource { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum InventorySourceFlags { NoFlag = 0, diff --git a/crates/proto/src/version/v662/enums/inventory_source_type.rs b/crates/proto/src/version/v662/enums/inventory_source_type.rs index 21d8f9cc..98d3e2c6 100644 --- a/crates/proto/src/version/v662/enums/inventory_source_type.rs +++ b/crates/proto/src/version/v662/enums/inventory_source_type.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::ContainerID; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(u32)] diff --git a/crates/proto/src/version/v662/enums/item_descriptor.rs b/crates/proto/src/version/v662/enums/item_descriptor.rs index e646fec2..bbe16824 100644 --- a/crates/proto/src/version/v662/enums/item_descriptor.rs +++ b/crates/proto/src/version/v662/enums/item_descriptor.rs @@ -1,6 +1,6 @@ pub mod ItemDescriptor { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(i8)] #[repr(i8)] diff --git a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs index 631e2d95..a7771e7f 100644 --- a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs @@ -1,6 +1,6 @@ pub mod ItemReleaseInventoryTransaction { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum ActionType { Release = 0, diff --git a/crates/proto/src/version/v662/enums/item_stack_net_result.rs b/crates/proto/src/version/v662/enums/item_stack_net_result.rs index 709192b4..2ef02f32 100644 --- a/crates/proto/src/version/v662/enums/item_stack_net_result.rs +++ b/crates/proto/src/version/v662/enums/item_stack_net_result.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::ItemStackResponseContainerInfo; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs index 85143401..f64e7185 100644 --- a/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs @@ -1,6 +1,6 @@ pub mod ItemUseInventoryTransaction { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(u32)] #[enum_endianness(var)] diff --git a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs index 67febf12..3d33f754 100644 --- a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs @@ -1,6 +1,6 @@ pub mod ItemUseOnActorInventoryTransaction { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum ActionType { Interact = 0, diff --git a/crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs b/crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs index 0644fbec..c27ef6e3 100644 --- a/crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs +++ b/crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs @@ -1,6 +1,6 @@ pub mod LegacyTelemetryEventPacket { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum AgentResult { ActionFail = 0, diff --git a/crates/proto/src/version/v662/enums/map_decoration.rs b/crates/proto/src/version/v662/enums/map_decoration.rs index 99d421db..2e6ca11a 100644 --- a/crates/proto/src/version/v662/enums/map_decoration.rs +++ b/crates/proto/src/version/v662/enums/map_decoration.rs @@ -1,6 +1,6 @@ pub mod MapDecoration { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum Type { MarkerWhite = 0, diff --git a/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs b/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs index b2fdc92f..54a632bc 100644 --- a/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs +++ b/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs @@ -1,6 +1,6 @@ pub mod MapItemTrackedActor { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum Type { Entity = 0, diff --git a/crates/proto/src/version/v662/enums/minecraft_eventing.rs b/crates/proto/src/version/v662/enums/minecraft_eventing.rs index 19e85417..09e389ef 100644 --- a/crates/proto/src/version/v662/enums/minecraft_eventing.rs +++ b/crates/proto/src/version/v662/enums/minecraft_eventing.rs @@ -1,6 +1,6 @@ pub mod MinecraftEventing { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(i32)] #[enum_endianness(var)] diff --git a/crates/proto/src/version/v662/enums/persona.rs b/crates/proto/src/version/v662/enums/persona.rs index ddf1b155..edd45f24 100644 --- a/crates/proto/src/version/v662/enums/persona.rs +++ b/crates/proto/src/version/v662/enums/persona.rs @@ -1,6 +1,6 @@ pub mod Persona { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(u32)] #[enum_endianness(le)] diff --git a/crates/proto/src/version/v662/enums/player_action_type.rs b/crates/proto/src/version/v662/enums/player_action_type.rs index 31913372..bd9f8375 100644 --- a/crates/proto/src/version/v662/enums/player_action_type.rs +++ b/crates/proto/src/version/v662/enums/player_action_type.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::BlockPos; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(i32)] diff --git a/crates/proto/src/version/v662/enums/player_list_packet_type.rs b/crates/proto/src/version/v662/enums/player_list_packet_type.rs index 993ec268..079e708d 100644 --- a/crates/proto/src/version/v662/enums/player_list_packet_type.rs +++ b/crates/proto/src/version/v662/enums/player_list_packet_type.rs @@ -1,7 +1,7 @@ -use uuid::Uuid; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::BuildPlatform; use crate::version::v662::types::{ActorUniqueID, SerializedSkin}; +use bedrockrs_macros::ProtoCodec; +use uuid::Uuid; #[derive(ProtoCodec)] struct AddPlayerListEntry { diff --git a/crates/proto/src/version/v662/enums/player_position_mode_component.rs b/crates/proto/src/version/v662/enums/player_position_mode_component.rs index 145b415d..fb4899aa 100644 --- a/crates/proto/src/version/v662/enums/player_position_mode_component.rs +++ b/crates/proto/src/version/v662/enums/player_position_mode_component.rs @@ -1,6 +1,6 @@ pub mod PlayerPositionModeComponent { - use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::{ActorType, MinecraftEventing}; + use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/enums/puv.rs b/crates/proto/src/version/v662/enums/puv.rs index 7e123710..48e7a586 100644 --- a/crates/proto/src/version/v662/enums/puv.rs +++ b/crates/proto/src/version/v662/enums/puv.rs @@ -1,7 +1,7 @@ pub mod Puv { pub mod Legacy { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(u32)] #[enum_endianness(var)] diff --git a/crates/proto/src/version/v662/enums/score_packet_type.rs b/crates/proto/src/version/v662/enums/score_packet_type.rs index ba587902..32a9c16e 100644 --- a/crates/proto/src/version/v662/enums/score_packet_type.rs +++ b/crates/proto/src/version/v662/enums/score_packet_type.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::IdentityDefinition; use crate::version::v662::types::ScoreboardId; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] struct ScorePacketInfoChangeEntry { diff --git a/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs b/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs index 6009e456..ab0ff382 100644 --- a/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs +++ b/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::ScoreboardId; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] struct IdentityInfoUpdateEntry { diff --git a/crates/proto/src/version/v662/enums/serialized_abilities_data.rs b/crates/proto/src/version/v662/enums/serialized_abilities_data.rs index 1d068bd7..7e5988cf 100644 --- a/crates/proto/src/version/v662/enums/serialized_abilities_data.rs +++ b/crates/proto/src/version/v662/enums/serialized_abilities_data.rs @@ -1,6 +1,6 @@ pub mod SerializedAbilitiesData { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum SerializedAbilitiesLayer { CustomCache = 0, diff --git a/crates/proto/src/version/v662/enums/social.rs b/crates/proto/src/version/v662/enums/social.rs index fbb09c0b..e31bd50e 100644 --- a/crates/proto/src/version/v662/enums/social.rs +++ b/crates/proto/src/version/v662/enums/social.rs @@ -1,6 +1,6 @@ pub mod Social { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] #[enum_repr(i32)] #[enum_endianness(var)] diff --git a/crates/proto/src/version/v662/enums/tag.rs b/crates/proto/src/version/v662/enums/tag.rs index fccea9d7..78adca81 100644 --- a/crates/proto/src/version/v662/enums/tag.rs +++ b/crates/proto/src/version/v662/enums/tag.rs @@ -1,6 +1,6 @@ pub mod Tag { use bedrockrs_macros::ProtoCodec; - + #[derive(ProtoCodec)] pub enum Type { End = 0, diff --git a/crates/proto/src/version/v662/gamepackets.rs b/crates/proto/src/version/v662/gamepackets.rs index 0ee5ca86..67a6da9a 100644 --- a/crates/proto/src/version/v662/gamepackets.rs +++ b/crates/proto/src/version/v662/gamepackets.rs @@ -1,10 +1,10 @@ +use crate::version::v662::packets::{DisconnectPacket, HandshakeClientToServerPacket, HandshakeServerToClientPacket, LoginPacket, PlayStatusPacket, ResourcePackClientResponsePacket, ResourcePacksInfoPacket, ResourcePacksStackPacket, SetTimePacket, TextMessagePacket}; +use crate::version::v729::packets::add_player::AddPlayerPacket; use bedrockrs_macros::gamepackets; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::sub_client::SubClientID; use std::io::{Cursor, Write}; use varint_rs::{VarintReader, VarintWriter}; -use crate::version::v662::packets::{DisconnectPacket, HandshakeClientToServerPacket, HandshakeServerToClientPacket, LoginPacket, PlayStatusPacket, ResourcePackClientResponsePacket, ResourcePacksInfoPacket, ResourcePacksStackPacket, SetTimePacket, TextMessagePacket}; -use crate::version::v729::packets::add_player::AddPlayerPacket; gamepackets! { Login: LoginPacket, diff --git a/crates/proto/src/version/v662/packets/actor_event.rs b/crates/proto/src/version/v662/packets/actor_event.rs index 583cd7e8..cad12112 100644 --- a/crates/proto/src/version/v662/packets/actor_event.rs +++ b/crates/proto/src/version/v662/packets/actor_event.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ActorEvent; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 27)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/add_actor.rs b/crates/proto/src/version/v662/packets/add_actor.rs index e34c2ac7..85b18731 100644 --- a/crates/proto/src/version/v662/packets/add_actor.rs +++ b/crates/proto/src/version/v662/packets/add_actor.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::{ActorLink, ActorRuntimeID, ActorUniqueID, DataItem, PropertySyncData}; use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorLink, ActorRuntimeID, ActorUniqueID, DataItem, PropertySyncData}; #[derive(ProtoCodec)] struct AttributeEntry { diff --git a/crates/proto/src/version/v662/packets/add_item_actor.rs b/crates/proto/src/version/v662/packets/add_item_actor.rs index 162901c1..ef6b23ce 100644 --- a/crates/proto/src/version/v662/packets/add_item_actor.rs +++ b/crates/proto/src/version/v662/packets/add_item_actor.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, DataItem, NetworkItemStackDescriptor}; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, DataItem, NetworkItemStackDescriptor}; #[gamepacket(id = 15)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/add_painting.rs b/crates/proto/src/version/v662/packets/add_painting.rs index e62a9220..0795fa5c 100644 --- a/crates/proto/src/version/v662/packets/add_painting.rs +++ b/crates/proto/src/version/v662/packets/add_painting.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID}; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID}; #[gamepacket(id = 22)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/add_player.rs b/crates/proto/src/version/v662/packets/add_player.rs index a947e6be..c60b367c 100644 --- a/crates/proto/src/version/v662/packets/add_player.rs +++ b/crates/proto/src/version/v662/packets/add_player.rs @@ -1,8 +1,8 @@ -use uuid::Uuid; -use bedrockrs_core::{Vec2, Vec3}; -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{BuildPlatform, GameType}; use crate::version::v662::types::{ActorLink, ActorRuntimeID, DataItem, NetworkItemStackDescriptor, PropertySyncData, SerializedAbilitiesData}; +use bedrockrs_core::{Vec2, Vec3}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use uuid::Uuid; #[gamepacket(id = 12)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/add_volume_entity.rs b/crates/proto/src/version/v662/packets/add_volume_entity.rs index c30a8d9b..b6368e4f 100644 --- a/crates/proto/src/version/v662/packets/add_volume_entity.rs +++ b/crates/proto/src/version/v662/packets/add_volume_entity.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{EntityNetID, NetworkBlockPosition}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 166)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/agent_action_event.rs b/crates/proto/src/version/v662/packets/agent_action_event.rs index 1c17bc28..443d2ae1 100644 --- a/crates/proto/src/version/v662/packets/agent_action_event.rs +++ b/crates/proto/src/version/v662/packets/agent_action_event.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::AgentActionType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 181)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/agent_animation.rs b/crates/proto/src/version/v662/packets/agent_animation.rs index 498833d4..2010a73c 100644 --- a/crates/proto/src/version/v662/packets/agent_animation.rs +++ b/crates/proto/src/version/v662/packets/agent_animation.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 304)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/animate_entity.rs b/crates/proto/src/version/v662/packets/animate_entity.rs index fec2ddaa..2fd83136 100644 --- a/crates/proto/src/version/v662/packets/animate_entity.rs +++ b/crates/proto/src/version/v662/packets/animate_entity.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::MolangVersion; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 158)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/anvil_damage.rs b/crates/proto/src/version/v662/packets/anvil_damage.rs index 378ed267..f42e5916 100644 --- a/crates/proto/src/version/v662/packets/anvil_damage.rs +++ b/crates/proto/src/version/v662/packets/anvil_damage.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 141)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/automation_client_connect.rs b/crates/proto/src/version/v662/packets/automation_client_connect.rs index 904a12de..2cfd3d71 100644 --- a/crates/proto/src/version/v662/packets/automation_client_connect.rs +++ b/crates/proto/src/version/v662/packets/automation_client_connect.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::WebSocketPacketData; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 95)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/block_actor_data.rs b/crates/proto/src/version/v662/packets/block_actor_data.rs index a8295b37..310b307b 100644 --- a/crates/proto/src/version/v662/packets/block_actor_data.rs +++ b/crates/proto/src/version/v662/packets/block_actor_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 56)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/block_event.rs b/crates/proto/src/version/v662/packets/block_event.rs index 7d3225ec..c777531c 100644 --- a/crates/proto/src/version/v662/packets/block_event.rs +++ b/crates/proto/src/version/v662/packets/block_event.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 26)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/block_pick_request.rs b/crates/proto/src/version/v662/packets/block_pick_request.rs index 4bfe9f20..0b234018 100644 --- a/crates/proto/src/version/v662/packets/block_pick_request.rs +++ b/crates/proto/src/version/v662/packets/block_pick_request.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::BlockPos; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 34)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/boss_event.rs b/crates/proto/src/version/v662/packets/boss_event.rs index 60b492a3..05dea65f 100644 --- a/crates/proto/src/version/v662/packets/boss_event.rs +++ b/crates/proto/src/version/v662/packets/boss_event.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::BossEventUpdateType; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 74)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/camera.rs b/crates/proto/src/version/v662/packets/camera.rs index bdf129d0..5cabeb81 100644 --- a/crates/proto/src/version/v662/packets/camera.rs +++ b/crates/proto/src/version/v662/packets/camera.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 73)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/camera_instruction.rs b/crates/proto/src/version/v662/packets/camera_instruction.rs index 795c735c..0899aceb 100644 --- a/crates/proto/src/version/v662/packets/camera_instruction.rs +++ b/crates/proto/src/version/v662/packets/camera_instruction.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::CameraInstruction; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 300)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/camera_presets.rs b/crates/proto/src/version/v662/packets/camera_presets.rs index 85f2df50..15917e1b 100644 --- a/crates/proto/src/version/v662/packets/camera_presets.rs +++ b/crates/proto/src/version/v662/packets/camera_presets.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::CameraPresets; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 198)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/camera_shake.rs b/crates/proto/src/version/v662/packets/camera_shake.rs index 24e15b52..4a274dac 100644 --- a/crates/proto/src/version/v662/packets/camera_shake.rs +++ b/crates/proto/src/version/v662/packets/camera_shake.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{CameraShakeAction, CameraShakeType}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 159)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/change_mob_property.rs b/crates/proto/src/version/v662/packets/change_mob_property.rs index 6aa9e4cf..b511bf27 100644 --- a/crates/proto/src/version/v662/packets/change_mob_property.rs +++ b/crates/proto/src/version/v662/packets/change_mob_property.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 182)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/code_builder_source.rs b/crates/proto/src/version/v662/packets/code_builder_source.rs index 568402a6..722b68d8 100644 --- a/crates/proto/src/version/v662/packets/code_builder_source.rs +++ b/crates/proto/src/version/v662/packets/code_builder_source.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::CodeBuilderStorageQueryOptions; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 178)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/command_request.rs b/crates/proto/src/version/v662/packets/command_request.rs index 5d6a5ebd..0744f0d1 100644 --- a/crates/proto/src/version/v662/packets/command_request.rs +++ b/crates/proto/src/version/v662/packets/command_request.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::CommandOriginData; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 77)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/completed_using_item.rs b/crates/proto/src/version/v662/packets/completed_using_item.rs index f2632efd..b2eca742 100644 --- a/crates/proto/src/version/v662/packets/completed_using_item.rs +++ b/crates/proto/src/version/v662/packets/completed_using_item.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ItemUseMethod; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 142)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/container_close.rs b/crates/proto/src/version/v662/packets/container_close.rs index 422505cc..95445a49 100644 --- a/crates/proto/src/version/v662/packets/container_close.rs +++ b/crates/proto/src/version/v662/packets/container_close.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ContainerID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 47)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/container_open.rs b/crates/proto/src/version/v662/packets/container_open.rs index c3ae76ce..f023fdec 100644 --- a/crates/proto/src/version/v662/packets/container_open.rs +++ b/crates/proto/src/version/v662/packets/container_open.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{ContainerID, ContainerType}; use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 46)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/container_set_data.rs b/crates/proto/src/version/v662/packets/container_set_data.rs index 7654d115..005bb880 100644 --- a/crates/proto/src/version/v662/packets/container_set_data.rs +++ b/crates/proto/src/version/v662/packets/container_set_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ContainerID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 51)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs b/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs index 9edb334d..be6bd5f3 100644 --- a/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs +++ b/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs @@ -1,6 +1,6 @@ +use crate::version::v662::enums::PredictionType; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::enums::PredictionType; #[gamepacket(id = 161)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/crafting_data.rs b/crates/proto/src/version/v662/packets/crafting_data.rs index 0b49e412..ccdf253f 100644 --- a/crates/proto/src/version/v662/packets/crafting_data.rs +++ b/crates/proto/src/version/v662/packets/crafting_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{ContainerMixDataEntry, CraftingDataEntry, MaterialReducerDataEntry, PotionMixDataEntry}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 52)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/creative_content.rs b/crates/proto/src/version/v662/packets/creative_content.rs index d6bef00e..ba05a36e 100644 --- a/crates/proto/src/version/v662/packets/creative_content.rs +++ b/crates/proto/src/version/v662/packets/creative_content.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkItemInstanceDescriptor; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] struct WriteEntry { diff --git a/crates/proto/src/version/v662/packets/debug_info.rs b/crates/proto/src/version/v662/packets/debug_info.rs index 47af5b4c..fd3a18c5 100644 --- a/crates/proto/src/version/v662/packets/debug_info.rs +++ b/crates/proto/src/version/v662/packets/debug_info.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 155)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/dimension_data.rs b/crates/proto/src/version/v662/packets/dimension_data.rs index 7e0e3dc3..bcdcd858 100644 --- a/crates/proto/src/version/v662/packets/dimension_data.rs +++ b/crates/proto/src/version/v662/packets/dimension_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::DimensionDefinitionGroup; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 180)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/disconnect.rs b/crates/proto/src/version/v662/packets/disconnect.rs index ca34617f..c17d5a01 100644 --- a/crates/proto/src/version/v662/packets/disconnect.rs +++ b/crates/proto/src/version/v662/packets/disconnect.rs @@ -1,8 +1,8 @@ -use std::io::Cursor; +use crate::version::v662::enums::Connection; use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; -use crate::version::v662::enums::Connection; +use std::io::Cursor; #[gamepacket(id = 5)] pub struct DisconnectPacket { diff --git a/crates/proto/src/version/v662/packets/edu_uri_resource.rs b/crates/proto/src/version/v662/packets/edu_uri_resource.rs index 7a4edd99..1ba7ef98 100644 --- a/crates/proto/src/version/v662/packets/edu_uri_resource.rs +++ b/crates/proto/src/version/v662/packets/edu_uri_resource.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::EduSharedUriResource; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 170)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/education_settings.rs b/crates/proto/src/version/v662/packets/education_settings.rs index bf65857b..bdc5f809 100644 --- a/crates/proto/src/version/v662/packets/education_settings.rs +++ b/crates/proto/src/version/v662/packets/education_settings.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::EducationLevelSettings; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 137)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/emote.rs b/crates/proto/src/version/v662/packets/emote.rs index 057aa4fc..7a082fef 100644 --- a/crates/proto/src/version/v662/packets/emote.rs +++ b/crates/proto/src/version/v662/packets/emote.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/packets/emote_list.rs b/crates/proto/src/version/v662/packets/emote_list.rs index afd6e786..4641cfe0 100644 --- a/crates/proto/src/version/v662/packets/emote_list.rs +++ b/crates/proto/src/version/v662/packets/emote_list.rs @@ -1,6 +1,6 @@ -use uuid::Uuid; -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use uuid::Uuid; #[gamepacket(id = 152)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/game_rules_changed.rs b/crates/proto/src/version/v662/packets/game_rules_changed.rs index 06564290..40271e73 100644 --- a/crates/proto/src/version/v662/packets/game_rules_changed.rs +++ b/crates/proto/src/version/v662/packets/game_rules_changed.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::GameRulesChangedPacketData; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 72)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/game_test_request.rs b/crates/proto/src/version/v662/packets/game_test_request.rs index de7c21e7..ec5b8d58 100644 --- a/crates/proto/src/version/v662/packets/game_test_request.rs +++ b/crates/proto/src/version/v662/packets/game_test_request.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::Rotation; use crate::version::v662::types::BlockPos; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 194)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/inventory_content.rs b/crates/proto/src/version/v662/packets/inventory_content.rs index 00d9cc68..e68842e4 100644 --- a/crates/proto/src/version/v662/packets/inventory_content.rs +++ b/crates/proto/src/version/v662/packets/inventory_content.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkItemStackDescriptor; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 49)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/inventory_slot.rs b/crates/proto/src/version/v662/packets/inventory_slot.rs index c714ee32..3e2ee32c 100644 --- a/crates/proto/src/version/v662/packets/inventory_slot.rs +++ b/crates/proto/src/version/v662/packets/inventory_slot.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ContainerID; use crate::version::v662::types::NetworkItemStackDescriptor; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 50)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/inventory_transaction.rs b/crates/proto/src/version/v662/packets/inventory_transaction.rs index 790104ac..ec1704f2 100644 --- a/crates/proto/src/version/v662/packets/inventory_transaction.rs +++ b/crates/proto/src/version/v662/packets/inventory_transaction.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ComplexInventoryTransaction; use crate::version::v662::types::InventoryTransaction; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] struct LegacySetItemSlotsEntry { diff --git a/crates/proto/src/version/v662/packets/item_stack_request.rs b/crates/proto/src/version/v662/packets/item_stack_request.rs index 9857215e..28c9821c 100644 --- a/crates/proto/src/version/v662/packets/item_stack_request.rs +++ b/crates/proto/src/version/v662/packets/item_stack_request.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{ItemStackRequestActionType, TextProcessingEventOrigin}; use crate::version::v662::types::ItemStackRequestSlotInfo; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] struct ActionsEntry { diff --git a/crates/proto/src/version/v662/packets/item_stack_response.rs b/crates/proto/src/version/v662/packets/item_stack_response.rs index 3365e249..bcd51f94 100644 --- a/crates/proto/src/version/v662/packets/item_stack_response.rs +++ b/crates/proto/src/version/v662/packets/item_stack_response.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ItemStackResponseInfo; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 148)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/lab_table.rs b/crates/proto/src/version/v662/packets/lab_table.rs index a4af1ecb..d735dc1b 100644 --- a/crates/proto/src/version/v662/packets/lab_table.rs +++ b/crates/proto/src/version/v662/packets/lab_table.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::LabTableReactionType; use crate::version::v662::types::BlockPos; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/packets/lectern_update.rs b/crates/proto/src/version/v662/packets/lectern_update.rs index cbd58881..a24b8d08 100644 --- a/crates/proto/src/version/v662/packets/lectern_update.rs +++ b/crates/proto/src/version/v662/packets/lectern_update.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 125)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/lesson_progress.rs b/crates/proto/src/version/v662/packets/lesson_progress.rs index b516bee6..1a0d83c5 100644 --- a/crates/proto/src/version/v662/packets/lesson_progress.rs +++ b/crates/proto/src/version/v662/packets/lesson_progress.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::LessonAction; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 183)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/level_chunk.rs b/crates/proto/src/version/v662/packets/level_chunk.rs index c93a72d1..062985d6 100644 --- a/crates/proto/src/version/v662/packets/level_chunk.rs +++ b/crates/proto/src/version/v662/packets/level_chunk.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ChunkPos; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 58)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/level_event.rs b/crates/proto/src/version/v662/packets/level_event.rs index ee31e471..b5dceba2 100644 --- a/crates/proto/src/version/v662/packets/level_event.rs +++ b/crates/proto/src/version/v662/packets/level_event.rs @@ -1,6 +1,6 @@ +use crate::version::v662::enums::LevelEvent; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::enums::LevelEvent; #[gamepacket(id = 25)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/level_event_generic.rs b/crates/proto/src/version/v662/packets/level_event_generic.rs index ee22714a..548b0a41 100644 --- a/crates/proto/src/version/v662/packets/level_event_generic.rs +++ b/crates/proto/src/version/v662/packets/level_event_generic.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::LevelEvent; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 124)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/level_sound_event.rs b/crates/proto/src/version/v662/packets/level_sound_event.rs index 1efdc5f4..ff8f7841 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event.rs @@ -1,6 +1,6 @@ +use crate::version::v662::enums::Puv; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::enums::Puv; #[gamepacket(id = 123)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs index 5dd0f3d3..e2f1bbb3 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs @@ -1,6 +1,6 @@ use crate::version::v662::enums::{ActorType, Puv}; use bedrockrs_core::Vec3; -use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use byteorder::WriteBytesExt; diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs index eecdfa68..5bffb655 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs @@ -1,7 +1,6 @@ use crate::version::v662::enums::Puv; -use crate::version::v662::packets::LevelSoundEventPacketV1; use bedrockrs_core::Vec3; -use bedrockrs_macros::{gamepacket, ProtoCodec}; +use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use byteorder::{ReadBytesExt, WriteBytesExt}; diff --git a/crates/proto/src/version/v662/packets/map_create_locked_copy.rs b/crates/proto/src/version/v662/packets/map_create_locked_copy.rs index 5da09942..065c974d 100644 --- a/crates/proto/src/version/v662/packets/map_create_locked_copy.rs +++ b/crates/proto/src/version/v662/packets/map_create_locked_copy.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 131)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/map_info_request.rs b/crates/proto/src/version/v662/packets/map_info_request.rs index d472cfb7..8a8e5733 100644 --- a/crates/proto/src/version/v662/packets/map_info_request.rs +++ b/crates/proto/src/version/v662/packets/map_info_request.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] struct ClientPixelsListEntry { diff --git a/crates/proto/src/version/v662/packets/mob_armor_equipment.rs b/crates/proto/src/version/v662/packets/mob_armor_equipment.rs index b4ce62c7..14edd7a0 100644 --- a/crates/proto/src/version/v662/packets/mob_armor_equipment.rs +++ b/crates/proto/src/version/v662/packets/mob_armor_equipment.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{ActorRuntimeID, NetworkItemStackDescriptor}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 32)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/mob_effect.rs b/crates/proto/src/version/v662/packets/mob_effect.rs index 9683acc5..1e62d212 100644 --- a/crates/proto/src/version/v662/packets/mob_effect.rs +++ b/crates/proto/src/version/v662/packets/mob_effect.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/packets/mob_equipment.rs b/crates/proto/src/version/v662/packets/mob_equipment.rs index 4f7cc2d0..f39ec522 100644 --- a/crates/proto/src/version/v662/packets/mob_equipment.rs +++ b/crates/proto/src/version/v662/packets/mob_equipment.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ContainerID; use crate::version::v662::types::{ActorRuntimeID, NetworkItemStackDescriptor}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 31)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/modal_form_response.rs b/crates/proto/src/version/v662/packets/modal_form_response.rs index cb1ab95d..b2790c55 100644 --- a/crates/proto/src/version/v662/packets/modal_form_response.rs +++ b/crates/proto/src/version/v662/packets/modal_form_response.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ModalFormCancelReason; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 101)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/motion_prediction_hints.rs b/crates/proto/src/version/v662/packets/motion_prediction_hints.rs index e032f6dc..64321c0f 100644 --- a/crates/proto/src/version/v662/packets/motion_prediction_hints.rs +++ b/crates/proto/src/version/v662/packets/motion_prediction_hints.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::ActorRuntimeID; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::ActorRuntimeID; #[gamepacket(id = 157)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/move_actor_absolute.rs b/crates/proto/src/version/v662/packets/move_actor_absolute.rs index 9c928329..cbf9c77a 100644 --- a/crates/proto/src/version/v662/packets/move_actor_absolute.rs +++ b/crates/proto/src/version/v662/packets/move_actor_absolute.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::MoveActorAbsoluteData; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 18)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/move_actor_delta.rs b/crates/proto/src/version/v662/packets/move_actor_delta.rs index 43eac30c..4cf95c7b 100644 --- a/crates/proto/src/version/v662/packets/move_actor_delta.rs +++ b/crates/proto/src/version/v662/packets/move_actor_delta.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::MoveActorDeltaData; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 111)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/move_player.rs b/crates/proto/src/version/v662/packets/move_player.rs index d126f64e..321858ed 100644 --- a/crates/proto/src/version/v662/packets/move_player.rs +++ b/crates/proto/src/version/v662/packets/move_player.rs @@ -1,12 +1,11 @@ use crate::version::v662::enums::PlayerPositionModeComponent; use bedrockrs_core::{Vec2, Vec3}; -use bedrockrs_macros::{gamepacket, gamepackets, ProtoCodec}; +use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use bedrockrs_shared::actor_runtime_id::ActorRuntimeID; use byteorder::{ReadBytesExt, WriteBytesExt}; use std::io::{Cursor, Read}; -use std::mem::size_of; use tokio::io::AsyncReadExt; #[gamepacket(id = 19)] diff --git a/crates/proto/src/version/v662/packets/multiplayer_settings.rs b/crates/proto/src/version/v662/packets/multiplayer_settings.rs index 539053ef..4574985a 100644 --- a/crates/proto/src/version/v662/packets/multiplayer_settings.rs +++ b/crates/proto/src/version/v662/packets/multiplayer_settings.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::MultiplayerSettingsPacketType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 139)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs b/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs index 77e74b07..5c4ecf4c 100644 --- a/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs +++ b/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{BlockPos, ChunkPos}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 121)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/network_settings.rs b/crates/proto/src/version/v662/packets/network_settings.rs index 538f12a0..70c6f1ce 100644 --- a/crates/proto/src/version/v662/packets/network_settings.rs +++ b/crates/proto/src/version/v662/packets/network_settings.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PacketCompressionAlgorithm; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 143)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/npc_request.rs b/crates/proto/src/version/v662/packets/npc_request.rs index eecb3119..678208f2 100644 --- a/crates/proto/src/version/v662/packets/npc_request.rs +++ b/crates/proto/src/version/v662/packets/npc_request.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/packets/open_sign.rs b/crates/proto/src/version/v662/packets/open_sign.rs index edc829ac..19651353 100644 --- a/crates/proto/src/version/v662/packets/open_sign.rs +++ b/crates/proto/src/version/v662/packets/open_sign.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 303)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/packet_violation_warning.rs b/crates/proto/src/version/v662/packets/packet_violation_warning.rs index 36e45dea..ec4cd76d 100644 --- a/crates/proto/src/version/v662/packets/packet_violation_warning.rs +++ b/crates/proto/src/version/v662/packets/packet_violation_warning.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{MinecraftPacketIds, PacketViolationSeverity, PacketViolationType}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 156)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/photo_transfer.rs b/crates/proto/src/version/v662/packets/photo_transfer.rs index 7ba21dde..b11739b2 100644 --- a/crates/proto/src/version/v662/packets/photo_transfer.rs +++ b/crates/proto/src/version/v662/packets/photo_transfer.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PhotoType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 99)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/play_sound.rs b/crates/proto/src/version/v662/packets/play_sound.rs index 2e8f4989..2f5026ba 100644 --- a/crates/proto/src/version/v662/packets/play_sound.rs +++ b/crates/proto/src/version/v662/packets/play_sound.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 86)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/play_status.rs b/crates/proto/src/version/v662/packets/play_status.rs index 1747ff2f..4b9eb9eb 100644 --- a/crates/proto/src/version/v662/packets/play_status.rs +++ b/crates/proto/src/version/v662/packets/play_status.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PlayStatus; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 2)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/player_action.rs b/crates/proto/src/version/v662/packets/player_action.rs index 441f246f..3337d0df 100644 --- a/crates/proto/src/version/v662/packets/player_action.rs +++ b/crates/proto/src/version/v662/packets/player_action.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PlayerActionType; use crate::version::v662::types::{ActorRuntimeID, NetworkBlockPosition}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 36)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/player_enchant_options.rs b/crates/proto/src/version/v662/packets/player_enchant_options.rs index 0be953cd..dafed832 100644 --- a/crates/proto/src/version/v662/packets/player_enchant_options.rs +++ b/crates/proto/src/version/v662/packets/player_enchant_options.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ItemEnchants; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] struct OptionsEntry { diff --git a/crates/proto/src/version/v662/packets/player_hotbar.rs b/crates/proto/src/version/v662/packets/player_hotbar.rs index 60036389..4143df2c 100644 --- a/crates/proto/src/version/v662/packets/player_hotbar.rs +++ b/crates/proto/src/version/v662/packets/player_hotbar.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ContainerID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 48)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/player_list.rs b/crates/proto/src/version/v662/packets/player_list.rs index 965aad2b..db50e35f 100644 --- a/crates/proto/src/version/v662/packets/player_list.rs +++ b/crates/proto/src/version/v662/packets/player_list.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PlayerListPacketType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 63)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/player_skin.rs b/crates/proto/src/version/v662/packets/player_skin.rs index 1913a179..c478ba2f 100644 --- a/crates/proto/src/version/v662/packets/player_skin.rs +++ b/crates/proto/src/version/v662/packets/player_skin.rs @@ -1,6 +1,6 @@ -use uuid::Uuid; -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::SerializedSkin; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use uuid::Uuid; #[gamepacket(id = 93)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs b/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs index b1b2dc2b..accf60df 100644 --- a/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs +++ b/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::PositionTrackingId; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs index b7035684..d9886553 100644 --- a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs +++ b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::PositionTrackingId; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/packets/remove_actor.rs b/crates/proto/src/version/v662/packets/remove_actor.rs index b4206b34..0fed83d1 100644 --- a/crates/proto/src/version/v662/packets/remove_actor.rs +++ b/crates/proto/src/version/v662/packets/remove_actor.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 14)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/remove_volume_entity.rs b/crates/proto/src/version/v662/packets/remove_volume_entity.rs index d080b19f..a1884ad7 100644 --- a/crates/proto/src/version/v662/packets/remove_volume_entity.rs +++ b/crates/proto/src/version/v662/packets/remove_volume_entity.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::EntityNetID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 167)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/request_ability.rs b/crates/proto/src/version/v662/packets/request_ability.rs index 66fefeb7..9c3c1386 100644 --- a/crates/proto/src/version/v662/packets/request_ability.rs +++ b/crates/proto/src/version/v662/packets/request_ability.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::AbilitiesIndex; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/packets/request_permissions.rs b/crates/proto/src/version/v662/packets/request_permissions.rs index 976f1a77..a820e396 100644 --- a/crates/proto/src/version/v662/packets/request_permissions.rs +++ b/crates/proto/src/version/v662/packets/request_permissions.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PlayerPermissionLevel; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 185)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/resource_pack_client_response.rs b/crates/proto/src/version/v662/packets/resource_pack_client_response.rs index 7ba4b843..320d827a 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_client_response.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_client_response.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ResourcePackResponse; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 8)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/resource_pack_data_info.rs b/crates/proto/src/version/v662/packets/resource_pack_data_info.rs index cf632a14..ec24c7a3 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_data_info.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_data_info.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PackType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 82)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/resource_pack_stack.rs b/crates/proto/src/version/v662/packets/resource_pack_stack.rs index 334d095f..bc12014c 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_stack.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_stack.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{BaseGameVersion, Experiments}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] struct PackEntry { diff --git a/crates/proto/src/version/v662/packets/respawn.rs b/crates/proto/src/version/v662/packets/respawn.rs index eb183b6c..41240d2f 100644 --- a/crates/proto/src/version/v662/packets/respawn.rs +++ b/crates/proto/src/version/v662/packets/respawn.rs @@ -1,7 +1,7 @@ -use bedrockrs_core::Vec3; -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::PlayerRespawnState; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_core::Vec3; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 45)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_actor_data.rs b/crates/proto/src/version/v662/packets/set_actor_data.rs index 5096e663..b6b44728 100644 --- a/crates/proto/src/version/v662/packets/set_actor_data.rs +++ b/crates/proto/src/version/v662/packets/set_actor_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{ActorRuntimeID, DataItem, PropertySyncData}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 39)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_actor_link.rs b/crates/proto/src/version/v662/packets/set_actor_link.rs index ca3c08a6..24ea4b49 100644 --- a/crates/proto/src/version/v662/packets/set_actor_link.rs +++ b/crates/proto/src/version/v662/packets/set_actor_link.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v729::types::actor_link::ActorLink; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 41)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_actor_motion.rs b/crates/proto/src/version/v662/packets/set_actor_motion.rs index aa31e93b..0613a57c 100644 --- a/crates/proto/src/version/v662/packets/set_actor_motion.rs +++ b/crates/proto/src/version/v662/packets/set_actor_motion.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::ActorRuntimeID; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::ActorRuntimeID; #[gamepacket(id = 40)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_default_game_type.rs b/crates/proto/src/version/v662/packets/set_default_game_type.rs index 02b445d8..564f972a 100644 --- a/crates/proto/src/version/v662/packets/set_default_game_type.rs +++ b/crates/proto/src/version/v662/packets/set_default_game_type.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::GameType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 105)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_difficulty.rs b/crates/proto/src/version/v662/packets/set_difficulty.rs index eb3c46ab..f72701eb 100644 --- a/crates/proto/src/version/v662/packets/set_difficulty.rs +++ b/crates/proto/src/version/v662/packets/set_difficulty.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::Difficulty; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 60)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_display_objective.rs b/crates/proto/src/version/v662/packets/set_display_objective.rs index cde0bf0a..e75e3ebf 100644 --- a/crates/proto/src/version/v662/packets/set_display_objective.rs +++ b/crates/proto/src/version/v662/packets/set_display_objective.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ObjectiveSortOrder; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 107)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_hud.rs b/crates/proto/src/version/v662/packets/set_hud.rs index 375cf0dd..394380e9 100644 --- a/crates/proto/src/version/v662/packets/set_hud.rs +++ b/crates/proto/src/version/v662/packets/set_hud.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{HudElement, HudVisibility}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 308)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_last_hurt_by.rs b/crates/proto/src/version/v662/packets/set_last_hurt_by.rs index 3fe847da..f675cd75 100644 --- a/crates/proto/src/version/v662/packets/set_last_hurt_by.rs +++ b/crates/proto/src/version/v662/packets/set_last_hurt_by.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ActorType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 96)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs b/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs index b0ff6804..fbff4a90 100644 --- a/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs +++ b/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 113)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_player_game_type.rs b/crates/proto/src/version/v662/packets/set_player_game_type.rs index 76a70e79..d6000169 100644 --- a/crates/proto/src/version/v662/packets/set_player_game_type.rs +++ b/crates/proto/src/version/v662/packets/set_player_game_type.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::GameType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 62)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_player_inventory_options.rs b/crates/proto/src/version/v662/packets/set_player_inventory_options.rs index 41752c2f..b3ab0950 100644 --- a/crates/proto/src/version/v662/packets/set_player_inventory_options.rs +++ b/crates/proto/src/version/v662/packets/set_player_inventory_options.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{InventoryLayout, InventoryLeftTabIndex, InventoryRightTabIndex}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 307)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_score.rs b/crates/proto/src/version/v662/packets/set_score.rs index b9a842a2..3d5b8b37 100644 --- a/crates/proto/src/version/v662/packets/set_score.rs +++ b/crates/proto/src/version/v662/packets/set_score.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ScorePacketType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 108)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs b/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs index a49a762b..a0230ef8 100644 --- a/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs +++ b/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ScoreboardIdentityPacketType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 112)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/set_spawn_position.rs b/crates/proto/src/version/v662/packets/set_spawn_position.rs index fdc62faf..96a6fb80 100644 --- a/crates/proto/src/version/v662/packets/set_spawn_position.rs +++ b/crates/proto/src/version/v662/packets/set_spawn_position.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::SpawnPositionType; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 43)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/show_credits.rs b/crates/proto/src/version/v662/packets/show_credits.rs index dd5f9cc2..cbcd7787 100644 --- a/crates/proto/src/version/v662/packets/show_credits.rs +++ b/crates/proto/src/version/v662/packets/show_credits.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] #[enum_repr(i32)] diff --git a/crates/proto/src/version/v662/packets/show_store_offer.rs b/crates/proto/src/version/v662/packets/show_store_offer.rs index a39562d1..91b8809b 100644 --- a/crates/proto/src/version/v662/packets/show_store_offer.rs +++ b/crates/proto/src/version/v662/packets/show_store_offer.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ShowStoreOfferRedirectType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 91)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/simulation_type.rs b/crates/proto/src/version/v662/packets/simulation_type.rs index 9430e689..fb3af786 100644 --- a/crates/proto/src/version/v662/packets/simulation_type.rs +++ b/crates/proto/src/version/v662/packets/simulation_type.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::SimulationType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 168)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/spawn_particle_effect.rs b/crates/proto/src/version/v662/packets/spawn_particle_effect.rs index 8affe116..ad0faa18 100644 --- a/crates/proto/src/version/v662/packets/spawn_particle_effect.rs +++ b/crates/proto/src/version/v662/packets/spawn_particle_effect.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::{ActorUniqueID, MolangVariableMap}; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -use crate::version::v662::types::{ActorUniqueID, MolangVariableMap}; #[gamepacket(id = 118)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/start_game.rs b/crates/proto/src/version/v662/packets/start_game.rs index 916b704e..ec8e194e 100644 --- a/crates/proto/src/version/v662/packets/start_game.rs +++ b/crates/proto/src/version/v662/packets/start_game.rs @@ -1,8 +1,8 @@ -use uuid::Uuid; -use bedrockrs_core::{Vec2, Vec3}; -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::GameType; use crate::version::v662::types::{ActorRuntimeID, ActorUniqueID, ItemData, LevelSettings, NetworkPermissions, SyncedPlayerMovementSettings}; +use bedrockrs_core::{Vec2, Vec3}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; +use uuid::Uuid; #[derive(ProtoCodec)] struct BlockProperty { diff --git a/crates/proto/src/version/v662/packets/structure_block_update.rs b/crates/proto/src/version/v662/packets/structure_block_update.rs index 1b2519f8..c6ad1ae9 100644 --- a/crates/proto/src/version/v662/packets/structure_block_update.rs +++ b/crates/proto/src/version/v662/packets/structure_block_update.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::{NetworkBlockPosition, StructureEditorData}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 90)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/structure_data_request.rs b/crates/proto/src/version/v662/packets/structure_data_request.rs index bc1ad553..c749fceb 100644 --- a/crates/proto/src/version/v662/packets/structure_data_request.rs +++ b/crates/proto/src/version/v662/packets/structure_data_request.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::StructureTemplateRequestOperation; use crate::version::v662::types::{NetworkBlockPosition, StructureSettings}; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 132)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/structure_data_response.rs b/crates/proto/src/version/v662/packets/structure_data_response.rs index 4d7e6cc4..81b301f0 100644 --- a/crates/proto/src/version/v662/packets/structure_data_response.rs +++ b/crates/proto/src/version/v662/packets/structure_data_response.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::StructureTemplateResponseType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 133)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/sub_chunk_request.rs b/crates/proto/src/version/v662/packets/sub_chunk_request.rs index dafbf005..4e6b27fe 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk_request.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk_request.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::SubChunkPacket; use crate::version::v662::types::SubChunkPos; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 175)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/text.rs b/crates/proto/src/version/v662/packets/text.rs index 940b705e..1b7e9c8a 100644 --- a/crates/proto/src/version/v662/packets/text.rs +++ b/crates/proto/src/version/v662/packets/text.rs @@ -1,9 +1,9 @@ -use std::io::{Cursor, Read}; -use byteorder::{ReadBytesExt, WriteBytesExt}; -use bedrockrs_macros::{gamepacket, ProtoCodec}; +use crate::version::v662::enums::TextPacketType; +use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; -use crate::version::v662::enums::TextPacketType; +use byteorder::{ReadBytesExt, WriteBytesExt}; +use std::io::{Cursor, Read}; #[gamepacket(id = 9)] pub struct TextPacket { diff --git a/crates/proto/src/version/v662/packets/update_abilities.rs b/crates/proto/src/version/v662/packets/update_abilities.rs index 74306405..0c98e8c7 100644 --- a/crates/proto/src/version/v662/packets/update_abilities.rs +++ b/crates/proto/src/version/v662/packets/update_abilities.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::SerializedAbilitiesData; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 187)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/update_adventure_settings.rs b/crates/proto/src/version/v662/packets/update_adventure_settings.rs index 23566a81..5dc990e7 100644 --- a/crates/proto/src/version/v662/packets/update_adventure_settings.rs +++ b/crates/proto/src/version/v662/packets/update_adventure_settings.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::AdventureSettings; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 188)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/update_attributes.rs b/crates/proto/src/version/v662/packets/update_attributes.rs index e4f44fd6..d88450db 100644 --- a/crates/proto/src/version/v662/packets/update_attributes.rs +++ b/crates/proto/src/version/v662/packets/update_attributes.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{AttributeModifierOperation, AttributeOperands}; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec)] struct AttributeModifier { diff --git a/crates/proto/src/version/v662/packets/update_block.rs b/crates/proto/src/version/v662/packets/update_block.rs index ac46cd6b..d5181075 100644 --- a/crates/proto/src/version/v662/packets/update_block.rs +++ b/crates/proto/src/version/v662/packets/update_block.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 21)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/update_block_synced.rs b/crates/proto/src/version/v662/packets/update_block_synced.rs index 45632e3f..41633e28 100644 --- a/crates/proto/src/version/v662/packets/update_block_synced.rs +++ b/crates/proto/src/version/v662/packets/update_block_synced.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::ActorBlockSyncMessage; use crate::version::v662::types::NetworkBlockPosition; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 110)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/update_equip.rs b/crates/proto/src/version/v662/packets/update_equip.rs index 1f127479..4a801f4f 100644 --- a/crates/proto/src/version/v662/packets/update_equip.rs +++ b/crates/proto/src/version/v662/packets/update_equip.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{ContainerID, ContainerType}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 81)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/update_player_game_type.rs b/crates/proto/src/version/v662/packets/update_player_game_type.rs index 7410c2e4..90f08c64 100644 --- a/crates/proto/src/version/v662/packets/update_player_game_type.rs +++ b/crates/proto/src/version/v662/packets/update_player_game_type.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::GameType; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 151)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/update_soft_enum.rs b/crates/proto/src/version/v662/packets/update_soft_enum.rs index 62380721..79c014c7 100644 --- a/crates/proto/src/version/v662/packets/update_soft_enum.rs +++ b/crates/proto/src/version/v662/packets/update_soft_enum.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::SoftEnumUpdateType; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 114)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs index 63c9e75e..e185933d 100644 --- a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs +++ b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs @@ -1,11 +1,11 @@ -use std::io::Cursor; -use std::mem::size_of; -use varint_rs::{VarintReader, VarintWriter}; +use crate::version::v662::enums::ActorBlockSyncMessage; +use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; -use crate::version::v662::enums::ActorBlockSyncMessage; -use crate::version::v662::types::NetworkBlockPosition; +use std::io::Cursor; +use std::mem::size_of; +use varint_rs::{VarintReader, VarintWriter}; struct BlocksChangedEntry { pub pos: NetworkBlockPosition, diff --git a/crates/proto/src/version/v662/packets/update_trade.rs b/crates/proto/src/version/v662/packets/update_trade.rs index bcd090f7..ea16a112 100644 --- a/crates/proto/src/version/v662/packets/update_trade.rs +++ b/crates/proto/src/version/v662/packets/update_trade.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::{gamepacket, ProtoCodec}; use crate::version::v662::enums::{ContainerID, ContainerType}; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 80)] #[derive(ProtoCodec)] diff --git a/crates/proto/src/version/v662/types/actor_link.rs b/crates/proto/src/version/v662/types/actor_link.rs index 9df3abdb..4089ca72 100644 --- a/crates/proto/src/version/v662/types/actor_link.rs +++ b/crates/proto/src/version/v662/types/actor_link.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::ActorLinkType; use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct ActorLink { diff --git a/crates/proto/src/version/v662/types/actor_runtime_id.rs b/crates/proto/src/version/v662/types/actor_runtime_id.rs index c769fd44..484a5775 100644 --- a/crates/proto/src/version/v662/types/actor_runtime_id.rs +++ b/crates/proto/src/version/v662/types/actor_runtime_id.rs @@ -1,8 +1,8 @@ +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::ProtoCodec; use std::io::Cursor; use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; -use bedrockrs_proto_core::error::ProtoCodecError; -use bedrockrs_proto_core::ProtoCodec; pub struct ActorRuntimeID(pub u64); diff --git a/crates/proto/src/version/v662/types/actor_unique_id.rs b/crates/proto/src/version/v662/types/actor_unique_id.rs index 0f8013b4..f66ba6b3 100644 --- a/crates/proto/src/version/v662/types/actor_unique_id.rs +++ b/crates/proto/src/version/v662/types/actor_unique_id.rs @@ -1,8 +1,8 @@ +use bedrockrs_proto_core::error::ProtoCodecError; +use bedrockrs_proto_core::ProtoCodec; use std::io::Cursor; use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; -use bedrockrs_proto_core::error::ProtoCodecError; -use bedrockrs_proto_core::ProtoCodec; pub struct ActorUniqueID(pub u64); diff --git a/crates/proto/src/version/v662/types/base_description.rs b/crates/proto/src/version/v662/types/base_description.rs index c4bd4627..db2678d8 100644 --- a/crates/proto/src/version/v662/types/base_description.rs +++ b/crates/proto/src/version/v662/types/base_description.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::MolangVersion; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct InternalItemDescriptor { diff --git a/crates/proto/src/version/v662/types/base_game_version.rs b/crates/proto/src/version/v662/types/base_game_version.rs index 19439a68..eee2cd42 100644 --- a/crates/proto/src/version/v662/types/base_game_version.rs +++ b/crates/proto/src/version/v662/types/base_game_version.rs @@ -1,6 +1,6 @@ -use std::io::Cursor; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; +use std::io::Cursor; pub struct BaseGameVersion(pub String); diff --git a/crates/proto/src/version/v662/types/camera_presets.rs b/crates/proto/src/version/v662/types/camera_presets.rs index b698f268..d53c53ce 100644 --- a/crates/proto/src/version/v662/types/camera_presets.rs +++ b/crates/proto/src/version/v662/types/camera_presets.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::CameraPreset; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct CameraPresets { diff --git a/crates/proto/src/version/v662/types/command_origin_data.rs b/crates/proto/src/version/v662/types/command_origin_data.rs index 911bf80c..d0ce00d5 100644 --- a/crates/proto/src/version/v662/types/command_origin_data.rs +++ b/crates/proto/src/version/v662/types/command_origin_data.rs @@ -1,5 +1,5 @@ -use uuid::Uuid; use bedrockrs_macros::ProtoCodec; +use uuid::Uuid; #[derive(ProtoCodec)] pub struct CommandOriginData { diff --git a/crates/proto/src/version/v662/types/data_item.rs b/crates/proto/src/version/v662/types/data_item.rs index e1c813ea..6eb1936d 100644 --- a/crates/proto/src/version/v662/types/data_item.rs +++ b/crates/proto/src/version/v662/types/data_item.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::DataItemType; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct DataItem { diff --git a/crates/proto/src/version/v662/types/inventory_action.rs b/crates/proto/src/version/v662/types/inventory_action.rs index bcb8a0bb..07278d5d 100644 --- a/crates/proto/src/version/v662/types/inventory_action.rs +++ b/crates/proto/src/version/v662/types/inventory_action.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{InventorySource, NetworkItemStackDescriptor}; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct InventoryAction { diff --git a/crates/proto/src/version/v662/types/inventory_source.rs b/crates/proto/src/version/v662/types/inventory_source.rs index f2a37b6a..b7c6d795 100644 --- a/crates/proto/src/version/v662/types/inventory_source.rs +++ b/crates/proto/src/version/v662/types/inventory_source.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::InventorySourceType; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct InventorySource { diff --git a/crates/proto/src/version/v662/types/inventory_transaction.rs b/crates/proto/src/version/v662/types/inventory_transaction.rs index 792f0932..d291b428 100644 --- a/crates/proto/src/version/v662/types/inventory_transaction.rs +++ b/crates/proto/src/version/v662/types/inventory_transaction.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::InventoryAction; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct InventoryTransaction { diff --git a/crates/proto/src/version/v662/types/item_enchants.rs b/crates/proto/src/version/v662/types/item_enchants.rs index f04f9d9d..547abd2b 100644 --- a/crates/proto/src/version/v662/types/item_enchants.rs +++ b/crates/proto/src/version/v662/types/item_enchants.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::Enchant; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] struct ItemEnchant { diff --git a/crates/proto/src/version/v662/types/item_stack_response_container_info.rs b/crates/proto/src/version/v662/types/item_stack_response_container_info.rs index bf913ca0..ba634c45 100644 --- a/crates/proto/src/version/v662/types/item_stack_response_container_info.rs +++ b/crates/proto/src/version/v662/types/item_stack_response_container_info.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::ItemStackResponseSlotInfo; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct ItemStackResponseContainerInfo { diff --git a/crates/proto/src/version/v662/types/item_stack_response_info.rs b/crates/proto/src/version/v662/types/item_stack_response_info.rs index b1cc0ca6..c5bd1c18 100644 --- a/crates/proto/src/version/v662/types/item_stack_response_info.rs +++ b/crates/proto/src/version/v662/types/item_stack_response_info.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::ItemStackNetResult; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct ItemStackResponseInfo { diff --git a/crates/proto/src/version/v662/types/level_settings.rs b/crates/proto/src/version/v662/types/level_settings.rs index e70f582a..8c9cea7f 100644 --- a/crates/proto/src/version/v662/types/level_settings.rs +++ b/crates/proto/src/version/v662/types/level_settings.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::ProtoCodec; -use crate::version::v662::enums::{Difficulty, GameType, GeneratorType, Editor, EducationEditionOffer, Social, PlayerPermissionLevel, ChatRestrictionLevel}; +use crate::version::v662::enums::{ChatRestrictionLevel, Difficulty, Editor, EducationEditionOffer, GameType, GeneratorType, PlayerPermissionLevel, Social}; use crate::version::v662::types::{BaseGameVersion, EduSharedUriResource, Experiments, GameRulesChangedPacketData, NetworkBlockPosition, SpawnSettings}; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct LevelSettings { diff --git a/crates/proto/src/version/v662/types/map_item_tracked_actor.rs b/crates/proto/src/version/v662/types/map_item_tracked_actor.rs index 52dc5638..e9d432e5 100644 --- a/crates/proto/src/version/v662/types/map_item_tracked_actor.rs +++ b/crates/proto/src/version/v662/types/map_item_tracked_actor.rs @@ -1,6 +1,6 @@ pub mod MapItemTrackedActor { - use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; + use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(i32)] diff --git a/crates/proto/src/version/v662/types/move_actor_absolute_data.rs b/crates/proto/src/version/v662/types/move_actor_absolute_data.rs index 7f169035..75b9052f 100644 --- a/crates/proto/src/version/v662/types/move_actor_absolute_data.rs +++ b/crates/proto/src/version/v662/types/move_actor_absolute_data.rs @@ -1,6 +1,6 @@ +use crate::version::v662::types::ActorRuntimeID; use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -use crate::version::v662::types::ActorRuntimeID; #[derive(ProtoCodec)] pub struct MoveActorAbsoluteData { diff --git a/crates/proto/src/version/v662/types/move_actor_delta_data.rs b/crates/proto/src/version/v662/types/move_actor_delta_data.rs index 8d760da5..4aba2341 100644 --- a/crates/proto/src/version/v662/types/move_actor_delta_data.rs +++ b/crates/proto/src/version/v662/types/move_actor_delta_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::ActorRuntimeID; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct MoveActorDeltaData { diff --git a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs index 646fe650..0fd6c7e4 100644 --- a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs +++ b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs @@ -1,4 +1,3 @@ -use bedrockrs_macros::ProtoCodec; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use std::io::Cursor; diff --git a/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs b/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs index d4a32325..b8ecf533 100644 --- a/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs +++ b/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::ItemStackNetIdVariant; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(i8)] diff --git a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs index 30519914..efef981b 100644 --- a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs +++ b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs @@ -1,7 +1,7 @@ -use bedrockrs_core::Vec3; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::ItemUseInventoryTransaction; use crate::version::v662::types::{InventoryAction, NetworkBlockPosition, NetworkItemStackDescriptor}; +use bedrockrs_core::Vec3; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] struct ContainerSlotEntry { diff --git a/crates/proto/src/version/v662/types/player_block_action_data.rs b/crates/proto/src/version/v662/types/player_block_action_data.rs index 0197b3c0..7090e256 100644 --- a/crates/proto/src/version/v662/types/player_block_action_data.rs +++ b/crates/proto/src/version/v662/types/player_block_action_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::PlayerActionType; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct PlayerBlockActionData { diff --git a/crates/proto/src/version/v662/types/player_block_actions.rs b/crates/proto/src/version/v662/types/player_block_actions.rs index 5d6e66f5..90508b19 100644 --- a/crates/proto/src/version/v662/types/player_block_actions.rs +++ b/crates/proto/src/version/v662/types/player_block_actions.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::PlayerBlockActionData; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct PlayerBlockActions { diff --git a/crates/proto/src/version/v662/types/recipe_ingredient.rs b/crates/proto/src/version/v662/types/recipe_ingredient.rs index a8a3c863..12bd047c 100644 --- a/crates/proto/src/version/v662/types/recipe_ingredient.rs +++ b/crates/proto/src/version/v662/types/recipe_ingredient.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::ItemDescriptor; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct RecipeIngredient { diff --git a/crates/proto/src/version/v662/types/serialized_abilities_data.rs b/crates/proto/src/version/v662/types/serialized_abilities_data.rs index 3ae8b1c2..61be2343 100644 --- a/crates/proto/src/version/v662/types/serialized_abilities_data.rs +++ b/crates/proto/src/version/v662/types/serialized_abilities_data.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::{CommandPermissionLevel, PlayerPermissionLevel}; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] #[enum_repr(u16)] diff --git a/crates/proto/src/version/v662/types/serialized_skin.rs b/crates/proto/src/version/v662/types/serialized_skin.rs index 53f8015d..c524ce90 100644 --- a/crates/proto/src/version/v662/types/serialized_skin.rs +++ b/crates/proto/src/version/v662/types/serialized_skin.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::Persona; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] struct SerializedSkinAnimationFrame { diff --git a/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs b/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs index a3c69faa..be13cbe6 100644 --- a/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs +++ b/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs @@ -1,6 +1,6 @@ -use uuid::Uuid; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; +use bedrockrs_macros::ProtoCodec; +use uuid::Uuid; #[derive(ProtoCodec)] pub struct ShapedChemistryRecipe { diff --git a/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs b/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs index d2ed0ae2..f2554705 100644 --- a/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs +++ b/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs @@ -1,6 +1,6 @@ -use uuid::Uuid; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; +use bedrockrs_macros::ProtoCodec; +use uuid::Uuid; #[derive(ProtoCodec)] pub struct ShapelessChemistryRecipe { diff --git a/crates/proto/src/version/v662/types/shapeless_recipe.rs b/crates/proto/src/version/v662/types/shapeless_recipe.rs index 18e28556..82673428 100644 --- a/crates/proto/src/version/v662/types/shapeless_recipe.rs +++ b/crates/proto/src/version/v662/types/shapeless_recipe.rs @@ -1,6 +1,6 @@ -use uuid::Uuid; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; +use bedrockrs_macros::ProtoCodec; +use uuid::Uuid; #[derive(ProtoCodec)] pub struct ShapelessRecipe { diff --git a/crates/proto/src/version/v662/types/shulker_box_recipe.rs b/crates/proto/src/version/v662/types/shulker_box_recipe.rs index 9ef51968..6dbc03e3 100644 --- a/crates/proto/src/version/v662/types/shulker_box_recipe.rs +++ b/crates/proto/src/version/v662/types/shulker_box_recipe.rs @@ -1,6 +1,6 @@ -use uuid::Uuid; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; +use bedrockrs_macros::ProtoCodec; +use uuid::Uuid; #[derive(ProtoCodec)] pub struct ShulkerBoxRecipe { diff --git a/crates/proto/src/version/v662/types/smithing_transform_recipe.rs b/crates/proto/src/version/v662/types/smithing_transform_recipe.rs index abcd761f..c4f5c9e7 100644 --- a/crates/proto/src/version/v662/types/smithing_transform_recipe.rs +++ b/crates/proto/src/version/v662/types/smithing_transform_recipe.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct SmithingTransformRecipe { diff --git a/crates/proto/src/version/v662/types/smithing_trim_recipe.rs b/crates/proto/src/version/v662/types/smithing_trim_recipe.rs index f594b345..0ecd3311 100644 --- a/crates/proto/src/version/v662/types/smithing_trim_recipe.rs +++ b/crates/proto/src/version/v662/types/smithing_trim_recipe.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::types::RecipeIngredient; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct SmithingTrimRecipe { diff --git a/crates/proto/src/version/v662/types/spawn_settings.rs b/crates/proto/src/version/v662/types/spawn_settings.rs index 6a427bc5..9abe036b 100644 --- a/crates/proto/src/version/v662/types/spawn_settings.rs +++ b/crates/proto/src/version/v662/types/spawn_settings.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::SpawnBiomeType; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct SpawnSettings { diff --git a/crates/proto/src/version/v662/types/structure_editor_data.rs b/crates/proto/src/version/v662/types/structure_editor_data.rs index af11c008..b631aed3 100644 --- a/crates/proto/src/version/v662/types/structure_editor_data.rs +++ b/crates/proto/src/version/v662/types/structure_editor_data.rs @@ -1,6 +1,6 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::{StructureBlockType, StructureRedstoneSaveMode}; use crate::version::v662::types::StructureSettings; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct StructureEditorData { diff --git a/crates/proto/src/version/v662/types/structure_settings.rs b/crates/proto/src/version/v662/types/structure_settings.rs index eac789d2..6ea27f01 100644 --- a/crates/proto/src/version/v662/types/structure_settings.rs +++ b/crates/proto/src/version/v662/types/structure_settings.rs @@ -1,7 +1,7 @@ -use bedrockrs_core::Vec3; -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::{AnimationMode, Mirror, Rotation}; use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; +use bedrockrs_core::Vec3; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct StructureSettings { diff --git a/crates/proto/src/version/v662/types/synced_player_movement_settings.rs b/crates/proto/src/version/v662/types/synced_player_movement_settings.rs index 70d9ffa0..d6e746db 100644 --- a/crates/proto/src/version/v662/types/synced_player_movement_settings.rs +++ b/crates/proto/src/version/v662/types/synced_player_movement_settings.rs @@ -1,5 +1,5 @@ -use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::ServerAuthMovementMode; +use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct SyncedPlayerMovementSettings { From b3a766397b3244dc1a81955159d25979fabc671a Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 16:53:08 +1300 Subject: [PATCH 68/79] optimise imports --- crates/proto/src/compression.rs | 2 +- crates/proto/src/connection/mod.rs | 2 +- crates/proto/src/version/v729/types/block_pos.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/proto/src/compression.rs b/crates/proto/src/compression.rs index 00c7e285..1ef3303e 100644 --- a/crates/proto/src/compression.rs +++ b/crates/proto/src/compression.rs @@ -1,10 +1,10 @@ -use std::mem::size_of; use bedrockrs_proto_core::error::CompressionError; use byteorder::{ReadBytesExt, WriteBytesExt}; use flate2::Compression as CompressionLevel; use flate2::{read::DeflateDecoder, write::DeflateEncoder}; use snap::{read::FrameDecoder as SnapDecoder, write::FrameEncoder as SnapEncoder}; use std::io::{Cursor, Read, Write}; +use std::mem::size_of; #[derive(Debug, Clone)] pub enum Compression { diff --git a/crates/proto/src/connection/mod.rs b/crates/proto/src/connection/mod.rs index 0f3d5b62..17691444 100644 --- a/crates/proto/src/connection/mod.rs +++ b/crates/proto/src/connection/mod.rs @@ -1,6 +1,6 @@ pub mod shard; -use crate::codec::{encode_gamepackets, decode_gamepackets}; +use crate::codec::{decode_gamepackets, encode_gamepackets}; use crate::compression::Compression; use crate::encryption::Encryption; use crate::error::ConnectionError; diff --git a/crates/proto/src/version/v729/types/block_pos.rs b/crates/proto/src/version/v729/types/block_pos.rs index 8fcbdae8..0b779394 100644 --- a/crates/proto/src/version/v729/types/block_pos.rs +++ b/crates/proto/src/version/v729/types/block_pos.rs @@ -1,7 +1,7 @@ -use std::mem::size_of; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; use std::io::Cursor; +use std::mem::size_of; use std::mem::transmute; use varint_rs::{VarintReader, VarintWriter}; From 65778836323eb46e3747aeda728cbf53dc6a94de Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 17:23:20 +1300 Subject: [PATCH 69/79] fix errors --- .../src/version/v662/enums/actor_link_type.rs | 2 + .../version/v662/enums/command_origin_type.rs | 6 +-- .../src/version/v662/enums/data_item_type.rs | 18 +++------ crates/proto/src/version/v662/enums/editor.rs | 3 ++ .../v662/enums/inventory_source_type.rs | 3 +- .../v662/enums/item_stack_net_result.rs | 10 +++-- .../version/v662/packets/player_auth_input.rs | 40 +++++++++++-------- .../src/version/v662/packets/sub_chunk.rs | 28 ++++++++----- .../version/v662/types/base_description.rs | 2 +- .../src/version/v662/types/camera_preset.rs | 2 + .../types/network_item_instance_descriptor.rs | 30 +++++++------- 11 files changed, 78 insertions(+), 66 deletions(-) diff --git a/crates/proto/src/version/v662/enums/actor_link_type.rs b/crates/proto/src/version/v662/enums/actor_link_type.rs index f47f6525..97cb30f7 100644 --- a/crates/proto/src/version/v662/enums/actor_link_type.rs +++ b/crates/proto/src/version/v662/enums/actor_link_type.rs @@ -1,6 +1,8 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] +#[enum_repr(i8)] +#[repr(i8)] pub enum ActorLinkType { None = 0, Riding = 1, diff --git a/crates/proto/src/version/v662/enums/command_origin_type.rs b/crates/proto/src/version/v662/enums/command_origin_type.rs index f9a5107e..33ea705d 100644 --- a/crates/proto/src/version/v662/enums/command_origin_type.rs +++ b/crates/proto/src/version/v662/enums/command_origin_type.rs @@ -8,10 +8,8 @@ pub enum CommandOriginType { Player = 0, CommandBlock = 1, MinecartCommandBlock = 2, - #[endianness(var)] - DevConsole(i64) = 3, - #[endianness(var)] - Test(i64) = 4, + DevConsole(#[endianness(var)] i64) = 3, + Test(#[endianness(var)] i64) = 4, AutomationPlayer = 5, ClientAutomation = 6, DedicatedServer = 7, diff --git a/crates/proto/src/version/v662/enums/data_item_type.rs b/crates/proto/src/version/v662/enums/data_item_type.rs index a550fe25..da2e13ee 100644 --- a/crates/proto/src/version/v662/enums/data_item_type.rs +++ b/crates/proto/src/version/v662/enums/data_item_type.rs @@ -7,18 +7,12 @@ use bedrockrs_macros::ProtoCodec; #[repr(i8)] pub enum DataItemType { Byte(i8) = 0, - #[endianness(le)] - Short(i16) = 1, - #[endianness(var)] - Int(i32) = 2, - #[endianness(le)] - Float(f32) = 3, + Short(#[endianness(le)] i16) = 1, + Int(#[endianness(var)] i32) = 2, + Float(#[endianness(le)] f32) = 3, String(String) = 4, - #[nbt] - NBT(nbtx::Value) = 5, + NBT(#[nbt] nbtx::Value) = 5, Pos(BlockPos) = 6, - #[endianness(var)] - Int64(i64) = 7, - #[endianness(le)] - Vec3(Vec3) = 8, + Int64(#[endianness(var)] i64) = 7, + Vec3(#[endianness(le)] Vec3) = 8, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/editor.rs b/crates/proto/src/version/v662/enums/editor.rs index cf8d8038..d0cc0ad3 100644 --- a/crates/proto/src/version/v662/enums/editor.rs +++ b/crates/proto/src/version/v662/enums/editor.rs @@ -2,6 +2,9 @@ pub mod Editor { use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] + #[enum_repr(i32)] + #[enum_endianness(var)] + #[repr(i32)] pub enum WorldType { NonEditor = 0, EditorProject = 1, diff --git a/crates/proto/src/version/v662/enums/inventory_source_type.rs b/crates/proto/src/version/v662/enums/inventory_source_type.rs index 98d3e2c6..c28fc7bf 100644 --- a/crates/proto/src/version/v662/enums/inventory_source_type.rs +++ b/crates/proto/src/version/v662/enums/inventory_source_type.rs @@ -9,8 +9,7 @@ pub enum InventorySourceType { InvalidInventory = u32::MAX, ContainerInventory(ContainerID) = 0, GlobalInventory = 1, - #[endianness(var)] - WorldInteraction(u32) = 2, + WorldInteraction(#[endianness(var)] u32) = 2, CreativeInventory = 3, NonImplementedFeatureTODO = 99999, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/item_stack_net_result.rs b/crates/proto/src/version/v662/enums/item_stack_net_result.rs index 2ef02f32..48f0d39c 100644 --- a/crates/proto/src/version/v662/enums/item_stack_net_result.rs +++ b/crates/proto/src/version/v662/enums/item_stack_net_result.rs @@ -5,9 +5,11 @@ use bedrockrs_macros::ProtoCodec; #[enum_repr(i8)] #[repr(i8)] pub enum ItemStackNetResult { - #[vec_repr(u32)] - #[vec_endianness(var)] - Success(Vec) = 0, + Success( + #[vec_repr(u32)] + #[vec_endianness(var)] + Vec, + ) = 0, Error = 1, InvalidRequestActionType = 2, ActionRequestNotAllowed = 3, @@ -75,4 +77,4 @@ pub enum ItemStackNetResult { CannotRemoveItem = 65, CannotConsumeItem = 66, ScreenStackError = 67, -} \ No newline at end of file +} diff --git a/crates/proto/src/version/v662/packets/player_auth_input.rs b/crates/proto/src/version/v662/packets/player_auth_input.rs index a8da5c3a..b690f8b9 100644 --- a/crates/proto/src/version/v662/packets/player_auth_input.rs +++ b/crates/proto/src/version/v662/packets/player_auth_input.rs @@ -242,33 +242,39 @@ impl ProtoCodec for PlayerAuthInputPacket { } fn get_size_prediction(&self) -> usize { - self.player_rotation.get_size_prediction() - + self.player_position.get_size_prediction() - + self.move_vector.get_size_prediction() - + self.player_head_rotation.get_size_prediction() - + self.input_data.get_size_prediction() + ProtoCodecLE::get_size_prediction(&self.player_rotation) + + ProtoCodecLE::get_size_prediction(&self.player_position) + + ProtoCodecLE::get_size_prediction(&self.move_vector) + + ProtoCodecLE::get_size_prediction(&self.player_head_rotation) + + ProtoCodecVAR::get_size_prediction(&self.input_data) + self.input_mode.get_size_prediction() + self.play_mode.get_size_prediction() + self.new_interaction_model.get_size_prediction() + match self.play_mode { - ClientPlayMode::Reality => self.vr_gaze_direction.get_size_prediction(), + ClientPlayMode::Reality => ProtoCodecLE::get_size_prediction(&self.vr_gaze_direction), _ => 0, } - + self.client_tick.get_size_prediction() - + self.velocity.get_size_prediction() - + if (&self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0) { - self.item_use_transaction.get_size_prediction() + + ProtoCodecVAR::get_size_prediction(&self.client_tick) + + ProtoCodecLE::get_size_prediction(&self.velocity) + + match (&self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0) { + true => self.item_use_transaction.get_size_prediction(), + false => 0, } - + if (&self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0) { - self.item_stack_request.get_size_prediction() + + match (&self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0) { + true => self.item_stack_request.get_size_prediction(), + false => 0, } - + if (&self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { - self.player_block_actions.get_size_prediction() + + match (&self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { + true => self.player_block_actions.get_size_prediction(), + false => 0, } - + if (&self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 != 0) { - self.client_predicted_vehicle.get_size_prediction() + + match (&self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 + != 0) + { + true => self.client_predicted_vehicle.get_size_prediction(), + false => 0, } - + self.analog_move_vector.get_size_prediction() + + ProtoCodecLE::get_size_prediction(&self.analog_move_vector) } } diff --git a/crates/proto/src/version/v662/packets/sub_chunk.rs b/crates/proto/src/version/v662/packets/sub_chunk.rs index 0b423fdd..8e8af09d 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk.rs @@ -86,7 +86,7 @@ impl ProtoCodec for SubChunkPacket { fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { let cache_enabled = bool::proto_deserialize(stream)?; - let dimension_type = ::proto_deserialize(stream)?; + let dimension_type = ProtoCodecVAR::proto_deserialize(stream)?; let center_pos = SubChunkPos::proto_deserialize(stream)?; let sub_chunk_data = { let len = ::proto_deserialize(stream)?; @@ -117,7 +117,7 @@ impl ProtoCodec for SubChunkPacket { false => None, }; let blob_id = match cache_enabled { - true => Some(::proto_deserialize(stream)?), + true => Some(ProtoCodecLE::proto_deserialize(stream)?), false => None, }; @@ -143,7 +143,7 @@ impl ProtoCodec for SubChunkPacket { fn get_size_prediction(&self) -> usize { self.cache_enabled.get_size_prediction() - + self.dimension_type.get_size_prediction() + + ::get_size_prediction(&self.dimension_type) + self.center_pos.get_size_prediction() + size_of::() + self @@ -152,21 +152,27 @@ impl ProtoCodec for SubChunkPacket { .map(|i| { i.sub_chunk_pos_offset.get_size_prediction() + i.sub_chunk_request_result.get_size_prediction() - + if (i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir + + match (i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir || self.cache_enabled) { - i.serialized_sub_chunk + true => i + .serialized_sub_chunk .as_ref() .unwrap() - .get_size_prediction() + .get_size_prediction(), + false => 0, } + i.height_map_data_type.get_size_prediction() - + if (i.height_map_data_type == HeightMapDataType::HasData) { - let height_map = i.sub_chunk_height_map.as_ref().unwrap(); - height_map.len() * height_map[0].len() * size_of::() + + match (i.height_map_data_type == HeightMapDataType::HasData) { + true => { + let height_map = i.sub_chunk_height_map.as_ref().unwrap(); + height_map.len() * height_map[0].len() * size_of::() + } + false => 0, } - + if (self.cache_enabled) { - size_of::() + + match (self.cache_enabled) { + true => size_of::(), + false => 0, } }) .sum::() diff --git a/crates/proto/src/version/v662/types/base_description.rs b/crates/proto/src/version/v662/types/base_description.rs index db2678d8..0cf6e785 100644 --- a/crates/proto/src/version/v662/types/base_description.rs +++ b/crates/proto/src/version/v662/types/base_description.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] pub struct InternalItemDescriptor { pub full_name: String, - #[endianess(le)] + #[endianness(le)] pub aux_value: u16 } diff --git a/crates/proto/src/version/v662/types/camera_preset.rs b/crates/proto/src/version/v662/types/camera_preset.rs index 52978f84..54ce7125 100644 --- a/crates/proto/src/version/v662/types/camera_preset.rs +++ b/crates/proto/src/version/v662/types/camera_preset.rs @@ -1,6 +1,8 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec)] +#[enum_repr(i8)] +#[repr(i8)] pub enum AudioListener { Camera = 0, Player = 1, diff --git a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs index 0fd6c7e4..9b76b415 100644 --- a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs +++ b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs @@ -16,15 +16,15 @@ pub struct NetworkItemInstanceDescriptor { impl ProtoCodec for NetworkItemInstanceDescriptor { fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { - ::proto_serialize(&self.id, stream)?; + ProtoCodecVAR::proto_serialize(&self.id, stream)?; match &self.id { 0 => {} _ => { - ::proto_serialize(&self.stack_size.as_ref().unwrap(), stream)?; - ::proto_serialize(&self.aux_value.as_ref().unwrap(), stream)?; - ::proto_serialize(&self.block_runtime_id.as_ref().unwrap(), stream)?; - ::proto_serialize(&self.user_data_buffer.as_ref().unwrap(), stream)?; + ProtoCodecLE::proto_serialize(&self.stack_size.as_ref().unwrap(), stream)?; + ProtoCodecVAR::proto_serialize(&self.aux_value.as_ref().unwrap(), stream)?; + ProtoCodecVAR::proto_serialize(&self.block_runtime_id.as_ref().unwrap(), stream)?; + ProtoCodec::proto_serialize(&self.user_data_buffer.as_ref().unwrap(), stream)?; } } @@ -32,15 +32,15 @@ impl ProtoCodec for NetworkItemInstanceDescriptor { } fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { - let id = ::proto_deserialize(stream)?; + let id = ProtoCodecVAR::proto_deserialize(stream)?; let (stack_size, aux_value, block_runtime_id, user_data_buffer) = match &id { 0 => (None, None, None, None), _ => { - let stack_size = ::proto_deserialize(stream)?; - let aux_value = ::proto_deserialize(stream)?; - let block_runtime_id = ::proto_deserialize(stream)?; - let user_data_buffer = ::proto_deserialize(stream)?; + let stack_size = ProtoCodecLE::proto_deserialize(stream)?; + let aux_value = ProtoCodecVAR::proto_deserialize(stream)?; + let block_runtime_id = ProtoCodecVAR::proto_deserialize(stream)?; + let user_data_buffer = ProtoCodec::proto_deserialize(stream)?; ( Some(stack_size), @@ -61,14 +61,14 @@ impl ProtoCodec for NetworkItemInstanceDescriptor { } fn get_size_prediction(&self) -> usize { - self.id.get_size_prediction() + ProtoCodecVAR::get_size_prediction(&self.id) + match self.id { 0 => 0, _ => { - self.stack_size.as_ref().unwrap().get_size_prediction() - + self.aux_value.as_ref().unwrap().get_size_prediction() - + self.block_runtime_id.as_ref().unwrap().get_size_prediction() - + self.user_data_buffer.as_ref().unwrap().get_size_prediction() + ProtoCodecLE::get_size_prediction(self.stack_size.as_ref().unwrap()) + + ProtoCodecVAR::get_size_prediction(self.aux_value.as_ref().unwrap()) + + ProtoCodecVAR::get_size_prediction(self.block_runtime_id.as_ref().unwrap()) + + ProtoCodec::get_size_prediction(self.user_data_buffer.as_ref().unwrap()) } } } From 2f1270bc0e3bce91241c9d01decb2f53f9526358 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 18:36:07 +1300 Subject: [PATCH 70/79] fix errors --- .../src/version/v662/enums/abilities_index.rs | 2 +- .../v662/enums/actor_block_sync_message.rs | 2 +- .../version/v662/enums/actor_damage_cause.rs | 2 +- .../src/version/v662/enums/actor_data_ids.rs | 2 +- .../src/version/v662/enums/actor_event.rs | 2 +- .../src/version/v662/enums/actor_flags.rs | 2 +- .../src/version/v662/enums/actor_link_type.rs | 2 +- .../src/version/v662/enums/actor_type.rs | 2 +- .../version/v662/enums/agent_action_type.rs | 2 +- .../src/version/v662/enums/animation_mode.rs | 2 +- .../enums/attribute_modifier_operation.rs | 2 +- .../version/v662/enums/attribute_operands.rs | 2 +- .../version/v662/enums/book_edit_action.rs | 2 +- .../v662/enums/boss_event_update_type.rs | 2 +- .../src/version/v662/enums/build_platform.rs | 4 +- .../src/version/v662/enums/camera_preset.rs | 2 +- .../version/v662/enums/camera_shake_action.rs | 2 +- .../version/v662/enums/camera_shake_type.rs | 2 +- .../v662/enums/chat_restriction_level.rs | 2 +- .../version/v662/enums/client_play_mode.rs | 2 +- .../code_builder_storage_query_options.rs | 4 +- .../version/v662/enums/command_block_mode.rs | 2 +- .../version/v662/enums/command_origin_type.rs | 2 +- .../version/v662/enums/command_output_type.rs | 2 +- .../v662/enums/command_parameter_option.rs | 2 +- .../v662/enums/command_permission_level.rs | 2 +- .../enums/complex_inventory_transaction.rs | 2 +- .../src/version/v662/enums/connection.rs | 2 +- .../version/v662/enums/container_enum_name.rs | 2 +- .../src/version/v662/enums/container_id.rs | 2 +- .../src/version/v662/enums/container_type.rs | 2 +- .../v662/enums/crafting_data_entry_type.rs | 2 +- .../src/version/v662/enums/crafting_type.rs | 2 +- .../src/version/v662/enums/data_item_type.rs | 2 +- .../src/version/v662/enums/difficulty.rs | 2 +- .../src/version/v662/enums/easing_type.rs | 2 +- crates/proto/src/version/v662/enums/editor.rs | 2 +- .../v662/enums/education_edition_offer.rs | 2 +- .../proto/src/version/v662/enums/enchant.rs | 2 +- .../proto/src/version/v662/enums/game_rule.rs | 2 +- .../proto/src/version/v662/enums/game_type.rs | 2 +- .../src/version/v662/enums/generator_type.rs | 2 +- .../src/version/v662/enums/hud_element.rs | 2 +- .../src/version/v662/enums/hud_visibility.rs | 2 +- .../version/v662/enums/identity_definition.rs | 2 +- .../src/version/v662/enums/input_mode.rs | 2 +- .../version/v662/enums/inventory_layout.rs | 2 +- .../v662/enums/inventory_left_tab_index.rs | 2 +- .../v662/enums/inventory_right_tab_index.rs | 2 +- .../version/v662/enums/inventory_source.rs | 2 +- .../v662/enums/inventory_source_type.rs | 2 +- .../src/version/v662/enums/item_descriptor.rs | 2 +- .../item_release_inventory_transaction.rs | 2 +- .../v662/enums/item_stack_net_result.rs | 2 +- .../enums/item_stack_request_action_type.rs | 2 +- .../enums/item_use_inventory_transaction.rs | 2 +- .../src/version/v662/enums/item_use_method.rs | 2 +- ...item_use_on_actor_inventory_transaction.rs | 2 +- .../v662/enums/lab_table_reaction_type.rs | 2 +- .../enums/legacy_telemetry_event_packet.rs | 46 ----------------- .../src/version/v662/enums/lesson_action.rs | 2 +- .../src/version/v662/enums/level_event.rs | 2 +- .../src/version/v662/enums/map_decoration.rs | 2 +- .../v662/enums/map_item_tracked_actor.rs | 2 +- .../version/v662/enums/minecraft_eventing.rs | 6 +-- .../v662/enums/minecraft_packet_ids.rs | 2 +- crates/proto/src/version/v662/enums/mirror.rs | 2 +- crates/proto/src/version/v662/enums/mod.rs | 1 - .../v662/enums/modal_form_cancel_reason.rs | 4 +- .../src/version/v662/enums/molang_version.rs | 2 +- .../enums/multiplayer_settings_packet_type.rs | 2 +- .../v662/enums/new_interaction_model.rs | 2 +- .../v662/enums/objective_sort_order.rs | 2 +- .../proto/src/version/v662/enums/pack_type.rs | 2 +- .../enums/packet_compression_algorithm.rs | 2 +- .../v662/enums/packet_violation_severity.rs | 2 +- .../v662/enums/packet_violation_type.rs | 2 +- .../src/version/v662/enums/particle_type.rs | 2 +- .../proto/src/version/v662/enums/persona.rs | 4 +- .../src/version/v662/enums/photo_type.rs | 2 +- .../src/version/v662/enums/play_status.rs | 2 +- .../version/v662/enums/player_action_type.rs | 2 +- .../v662/enums/player_list_packet_type.rs | 4 +- .../v662/enums/player_permission_level.rs | 2 +- .../enums/player_position_mode_component.rs | 4 +- .../v662/enums/player_respawn_state.rs | 4 +- .../src/version/v662/enums/prediction_type.rs | 2 +- crates/proto/src/version/v662/enums/puv.rs | 2 +- .../v662/enums/resource_pack_response.rs | 2 +- .../proto/src/version/v662/enums/rotation.rs | 2 +- .../version/v662/enums/score_packet_type.rs | 6 +-- .../enums/scoreboard_identity_packet_type.rs | 4 +- .../v662/enums/serialized_abilities_data.rs | 2 +- .../v662/enums/server_auth_movement_mode.rs | 2 +- .../enums/show_store_offer_redirect_type.rs | 2 +- .../src/version/v662/enums/simulation_type.rs | 2 +- crates/proto/src/version/v662/enums/social.rs | 2 +- .../v662/enums/soft_enum_update_type.rs | 2 +- .../version/v662/enums/spawn_biome_type.rs | 2 +- .../version/v662/enums/spawn_position_type.rs | 2 +- .../v662/enums/structure_block_type.rs | 2 +- .../enums/structure_redstone_save_mode.rs | 2 +- .../structure_template_request_operation.rs | 2 +- .../enums/structure_template_response_type.rs | 2 +- crates/proto/src/version/v662/enums/tag.rs | 2 +- .../version/v662/enums/text_packet_type.rs | 2 +- .../enums/text_processing_event_origin.rs | 2 +- .../src/version/v662/enums/ui_profile.rs | 2 +- crates/proto/src/version/v662/gamepackets.rs | 12 ++--- .../src/version/v662/packets/actor_event.rs | 2 +- .../v662/packets/actor_pick_request.rs | 2 +- .../src/version/v662/packets/add_actor.rs | 4 +- .../v662/packets/add_behaviour_tree.rs | 2 +- .../version/v662/packets/add_item_actor.rs | 2 +- .../src/version/v662/packets/add_painting.rs | 2 +- .../src/version/v662/packets/add_player.rs | 2 +- .../version/v662/packets/add_volume_entity.rs | 2 +- .../v662/packets/agent_action_event.rs | 2 +- .../version/v662/packets/agent_animation.rs | 2 +- .../proto/src/version/v662/packets/animate.rs | 7 +-- .../version/v662/packets/animate_entity.rs | 2 +- .../src/version/v662/packets/anvil_damage.rs | 2 +- .../v662/packets/automation_client_connect.rs | 2 +- .../packets/available_actor_identifiers.rs | 2 +- .../v662/packets/available_commands.rs | 24 ++++----- .../v662/packets/biome_definition_list.rs | 2 +- .../version/v662/packets/block_actor_data.rs | 2 +- .../src/version/v662/packets/block_event.rs | 2 +- .../v662/packets/block_pick_request.rs | 2 +- .../src/version/v662/packets/book_edit.rs | 5 +- .../src/version/v662/packets/boss_event.rs | 2 +- .../proto/src/version/v662/packets/camera.rs | 2 +- .../v662/packets/camera_instruction.rs | 2 +- .../version/v662/packets/camera_presets.rs | 2 +- .../src/version/v662/packets/camera_shake.rs | 2 +- .../version/v662/packets/change_dimension.rs | 2 +- .../v662/packets/change_mob_property.rs | 2 +- .../v662/packets/chunk_radius_updated.rs | 2 +- .../v662/packets/client_cache_blob_status.rs | 8 +-- .../packets/client_cache_miss_response.rs | 4 +- .../v662/packets/client_cache_status.rs | 2 +- .../packets/client_to_server_handshake.rs | 2 +- .../packets/clientbound_debug_renderer.rs | 4 +- .../v662/packets/clientbound_map_item_data.rs | 24 +++++---- .../src/version/v662/packets/code_builder.rs | 2 +- .../v662/packets/code_builder_source.rs | 2 +- .../v662/packets/command_block_update.rs | 1 - .../version/v662/packets/command_output.rs | 12 ++--- .../version/v662/packets/command_request.rs | 2 +- .../v662/packets/completed_using_item.rs | 2 +- .../compressed_biome_definition_list.rs | 2 +- .../version/v662/packets/container_close.rs | 2 +- .../version/v662/packets/container_open.rs | 2 +- .../v662/packets/container_set_data.rs | 2 +- .../packets/correct_player_move_prediction.rs | 2 +- .../src/version/v662/packets/crafting_data.rs | 2 +- .../src/version/v662/packets/create_photo.rs | 2 +- .../version/v662/packets/creative_content.rs | 4 +- .../src/version/v662/packets/death_info.rs | 2 +- .../src/version/v662/packets/debug_info.rs | 2 +- .../version/v662/packets/dimension_data.rs | 2 +- .../src/version/v662/packets/disconnect.rs | 1 + .../version/v662/packets/editor_network.rs | 2 +- .../version/v662/packets/edu_uri_resource.rs | 2 +- .../v662/packets/education_settings.rs | 2 +- .../proto/src/version/v662/packets/emote.rs | 8 +-- .../src/version/v662/packets/emote_list.rs | 2 +- .../version/v662/packets/feature_registry.rs | 4 +- .../src/version/v662/packets/filter_text.rs | 2 +- .../v662/packets/game_rules_changed.rs | 2 +- .../version/v662/packets/game_test_request.rs | 2 +- .../version/v662/packets/game_test_results.rs | 2 +- .../v662/packets/gui_data_pick_item.rs | 2 +- .../src/version/v662/packets/hurt_armor.rs | 2 +- .../src/version/v662/packets/interact.rs | 10 ++-- .../version/v662/packets/inventory_content.rs | 2 +- .../version/v662/packets/inventory_slot.rs | 2 +- .../v662/packets/inventory_transaction.rs | 4 +- .../version/v662/packets/item_component.rs | 4 +- .../v662/packets/item_stack_request.rs | 6 +-- .../v662/packets/item_stack_response.rs | 2 +- .../src/version/v662/packets/lab_table.rs | 4 +- .../version/v662/packets/lectern_update.rs | 2 +- .../v662/packets/legacy_telemetry_event.rs | 6 +-- .../version/v662/packets/lesson_progress.rs | 2 +- .../src/version/v662/packets/level_chunk.rs | 10 +++- .../src/version/v662/packets/level_event.rs | 2 +- .../v662/packets/level_event_generic.rs | 2 +- .../version/v662/packets/level_sound_event.rs | 2 +- .../v662/packets/level_sound_event_v1.rs | 12 ++--- .../v662/packets/level_sound_event_v2.rs | 9 ++-- .../proto/src/version/v662/packets/login.rs | 2 +- .../v662/packets/map_create_locked_copy.rs | 2 +- .../version/v662/packets/map_info_request.rs | 4 +- .../v662/packets/mob_armor_equipment.rs | 2 +- .../src/version/v662/packets/mob_effect.rs | 4 +- .../src/version/v662/packets/mob_equipment.rs | 2 +- .../v662/packets/modal_form_request.rs | 2 +- .../v662/packets/modal_form_response.rs | 6 +-- .../v662/packets/motion_prediction_hints.rs | 2 +- .../v662/packets/move_actor_absolute.rs | 2 +- .../version/v662/packets/move_actor_delta.rs | 2 +- .../src/version/v662/packets/move_player.rs | 13 ++--- .../v662/packets/multiplayer_settings.rs | 2 +- .../packets/network_chunk_publisher_update.rs | 2 +- .../version/v662/packets/network_settings.rs | 2 +- .../v662/packets/network_stack_latency.rs | 2 +- .../src/version/v662/packets/npc_dialogue.rs | 4 +- .../src/version/v662/packets/npc_request.rs | 4 +- .../packets/on_screen_texture_animation.rs | 2 +- .../src/version/v662/packets/open_sign.rs | 2 +- .../v662/packets/packet_violation_warning.rs | 2 +- .../version/v662/packets/passenger_jump.rs | 2 +- .../version/v662/packets/photo_transfer.rs | 2 +- .../src/version/v662/packets/play_sound.rs | 2 +- .../src/version/v662/packets/play_status.rs | 2 +- .../src/version/v662/packets/player_action.rs | 2 +- .../v662/packets/player_armor_damage.rs | 2 +- .../version/v662/packets/player_auth_input.rs | 49 ++++++++----------- .../v662/packets/player_enchant_options.rs | 4 +- .../src/version/v662/packets/player_fog.rs | 2 +- .../src/version/v662/packets/player_hotbar.rs | 2 +- .../src/version/v662/packets/player_input.rs | 2 +- .../src/version/v662/packets/player_list.rs | 2 +- .../src/version/v662/packets/player_skin.rs | 2 +- .../packets/player_start_item_cooldown.rs | 2 +- .../player_toggle_crafter_slot_request.rs | 2 +- .../position_tracking_db_client_request.rs | 4 +- .../position_tracking_db_server_broadcast.rs | 4 +- .../version/v662/packets/purchase_receipt.rs | 2 +- .../v662/packets/refresh_entitlements.rs | 2 +- .../src/version/v662/packets/remove_actor.rs | 2 +- .../version/v662/packets/remove_objective.rs | 2 +- .../v662/packets/remove_volume_entity.rs | 2 +- .../version/v662/packets/request_ability.rs | 4 +- .../v662/packets/request_chunk_radius.rs | 2 +- .../v662/packets/request_network_settings.rs | 2 +- .../v662/packets/request_permissions.rs | 2 +- .../v662/packets/resource_pack_chunk_data.rs | 2 +- .../packets/resource_pack_chunk_request.rs | 2 +- .../packets/resource_pack_client_response.rs | 2 +- .../v662/packets/resource_pack_data_info.rs | 2 +- .../v662/packets/resource_pack_stack.rs | 4 +- .../v662/packets/resource_packs_info.rs | 8 +-- .../proto/src/version/v662/packets/respawn.rs | 2 +- .../version/v662/packets/script_message.rs | 2 +- .../server_player_post_move_position.rs | 2 +- .../v662/packets/server_settings_request.rs | 2 +- .../v662/packets/server_settings_response.rs | 2 +- .../src/version/v662/packets/server_stats.rs | 2 +- .../packets/server_to_client_handshake.rs | 2 +- .../version/v662/packets/set_actor_data.rs | 2 +- .../version/v662/packets/set_actor_link.rs | 2 +- .../version/v662/packets/set_actor_motion.rs | 2 +- .../v662/packets/set_commands_enabled.rs | 2 +- .../v662/packets/set_default_game_type.rs | 2 +- .../version/v662/packets/set_difficulty.rs | 2 +- .../v662/packets/set_display_objective.rs | 2 +- .../src/version/v662/packets/set_health.rs | 2 +- .../proto/src/version/v662/packets/set_hud.rs | 2 +- .../version/v662/packets/set_last_hurt_by.rs | 2 +- .../set_local_player_as_initialized.rs | 2 +- .../v662/packets/set_player_game_type.rs | 2 +- .../packets/set_player_inventory_options.rs | 2 +- .../src/version/v662/packets/set_score.rs | 2 +- .../v662/packets/set_scoreboard_identity.rs | 2 +- .../v662/packets/set_spawn_position.rs | 3 +- .../src/version/v662/packets/set_time.rs | 2 +- .../src/version/v662/packets/set_title.rs | 4 +- .../version/v662/packets/settings_command.rs | 2 +- .../src/version/v662/packets/show_credits.rs | 4 +- .../src/version/v662/packets/show_profile.rs | 2 +- .../version/v662/packets/show_store_offer.rs | 2 +- .../src/version/v662/packets/simple_event.rs | 4 +- .../version/v662/packets/simulation_type.rs | 2 +- .../v662/packets/spawn_experience_orb.rs | 2 +- .../v662/packets/spawn_particle_effect.rs | 2 +- .../src/version/v662/packets/start_game.rs | 4 +- .../src/version/v662/packets/stop_sound.rs | 2 +- .../v662/packets/structure_block_update.rs | 2 +- .../v662/packets/structure_data_request.rs | 2 +- .../v662/packets/structure_data_response.rs | 2 +- .../src/version/v662/packets/sub_chunk.rs | 25 +++++----- .../version/v662/packets/sub_chunk_request.rs | 2 +- .../version/v662/packets/sub_client_login.rs | 2 +- .../v662/packets/sync_actor_property.rs | 2 +- .../version/v662/packets/take_item_actor.rs | 2 +- crates/proto/src/version/v662/packets/text.rs | 1 + .../src/version/v662/packets/tick_sync.rs | 2 +- .../v662/packets/ticking_area_load_status.rs | 2 +- .../src/version/v662/packets/toast_request.rs | 2 +- .../version/v662/packets/transfer_player.rs | 2 +- .../src/version/v662/packets/trim_data.rs | 6 +-- .../version/v662/packets/unlocked_recipes.rs | 2 +- .../version/v662/packets/update_abilities.rs | 2 +- .../v662/packets/update_adventure_settings.rs | 2 +- .../version/v662/packets/update_attributes.rs | 6 +-- .../src/version/v662/packets/update_block.rs | 2 +- .../v662/packets/update_block_synced.rs | 2 +- .../v662/packets/update_client_input_locks.rs | 2 +- .../src/version/v662/packets/update_equip.rs | 2 +- .../v662/packets/update_player_game_type.rs | 2 +- .../version/v662/packets/update_soft_enum.rs | 2 +- .../v662/packets/update_sub_chunk_blocks.rs | 6 +-- .../src/version/v662/packets/update_trade.rs | 2 +- .../src/version/v662/types/actor_link.rs | 2 +- .../version/v662/types/actor_runtime_id.rs | 1 + .../src/version/v662/types/actor_unique_id.rs | 1 + .../version/v662/types/adventure_settings.rs | 2 +- .../version/v662/types/base_description.rs | 10 ++-- .../version/v662/types/base_game_version.rs | 1 + .../proto/src/version/v662/types/block_pos.rs | 2 +- .../version/v662/types/camera_instruction.rs | 2 +- .../src/version/v662/types/camera_preset.rs | 4 +- .../src/version/v662/types/camera_presets.rs | 2 +- .../proto/src/version/v662/types/chunk_pos.rs | 2 +- .../version/v662/types/command_origin_data.rs | 2 +- .../v662/types/container_mix_data_entry.rs | 2 +- .../version/v662/types/crafting_data_entry.rs | 2 + .../proto/src/version/v662/types/data_item.rs | 2 +- .../v662/types/dimension_definition_group.rs | 6 +-- .../v662/types/edu_shared_uri_resource.rs | 2 +- .../v662/types/education_level_settings.rs | 2 +- .../src/version/v662/types/entity_net_id.rs | 2 +- .../src/version/v662/types/experiments.rs | 4 +- .../types/game_rules_changed_packet_data.rs | 6 +-- .../version/v662/types/inventory_action.rs | 2 +- .../version/v662/types/inventory_source.rs | 2 +- .../v662/types/inventory_transaction.rs | 2 +- .../proto/src/version/v662/types/item_data.rs | 2 +- .../src/version/v662/types/item_enchants.rs | 4 +- .../v662/types/item_instance_user_data.rs | 2 +- .../v662/types/item_stack_net_id_variant.rs | 2 +- .../types/item_stack_request_slot_info.rs | 2 +- .../item_stack_response_container_info.rs | 2 +- .../v662/types/item_stack_response_info.rs | 2 +- .../types/item_stack_response_slot_info.rs | 2 +- .../src/version/v662/types/level_settings.rs | 2 +- .../src/version/v662/types/map_decoration.rs | 4 +- .../v662/types/map_item_tracked_actor.rs | 4 +- .../v662/types/material_reducer_data_entry.rs | 4 +- .../version/v662/types/molang_variable_map.rs | 2 +- .../v662/types/move_actor_absolute_data.rs | 2 +- .../v662/types/move_actor_delta_data.rs | 2 +- .../v662/types/network_block_position.rs | 2 +- .../types/network_item_instance_descriptor.rs | 13 ++--- .../types/network_item_stack_descriptor.rs | 2 +- .../version/v662/types/network_permissions.rs | 2 +- ...d_item_use_legacy_inventory_transaction.rs | 4 +- .../v662/types/player_block_action_data.rs | 2 +- .../v662/types/player_block_actions.rs | 2 +- .../v662/types/position_tracking_id.rs | 2 +- .../v662/types/potion_mix_data_entry.rs | 2 +- .../version/v662/types/property_sync_data.rs | 6 +-- .../version/v662/types/recipe_ingredient.rs | 2 +- .../src/version/v662/types/scoreboard_id.rs | 2 +- .../v662/types/serialized_abilities_data.rs | 6 +-- .../src/version/v662/types/serialized_skin.rs | 8 +-- .../v662/types/shaped_chemistry_recipe.rs | 2 +- .../src/version/v662/types/shaped_recipe.rs | 4 +- .../v662/types/shapeless_chemistry_recipe.rs | 2 +- .../version/v662/types/shapeless_recipe.rs | 2 +- .../version/v662/types/shulker_box_recipe.rs | 2 +- .../v662/types/smithing_transform_recipe.rs | 2 +- .../v662/types/smithing_trim_recipe.rs | 2 +- .../src/version/v662/types/spawn_settings.rs | 2 +- .../v662/types/structure_editor_data.rs | 2 +- .../version/v662/types/structure_settings.rs | 2 +- .../version/v662/types/sub_chunk_packet.rs | 2 +- .../src/version/v662/types/sub_chunk_pos.rs | 2 +- .../types/synced_player_movement_settings.rs | 2 +- .../v662/types/web_socket_packet_data.rs | 2 +- 372 files changed, 531 insertions(+), 602 deletions(-) delete mode 100644 crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs diff --git a/crates/proto/src/version/v662/enums/abilities_index.rs b/crates/proto/src/version/v662/enums/abilities_index.rs index 87e1fd5d..11f0d11c 100644 --- a/crates/proto/src/version/v662/enums/abilities_index.rs +++ b/crates/proto/src/version/v662/enums/abilities_index.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum AbilitiesIndex { diff --git a/crates/proto/src/version/v662/enums/actor_block_sync_message.rs b/crates/proto/src/version/v662/enums/actor_block_sync_message.rs index 1cb89e93..7bd3a6fb 100644 --- a/crates/proto/src/version/v662/enums/actor_block_sync_message.rs +++ b/crates/proto/src/version/v662/enums/actor_block_sync_message.rs @@ -1,7 +1,7 @@ pub mod ActorBlockSyncMessage { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i64)] #[enum_endianness(var)] #[repr(i64)] diff --git a/crates/proto/src/version/v662/enums/actor_damage_cause.rs b/crates/proto/src/version/v662/enums/actor_damage_cause.rs index 8a776a8e..20a3931f 100644 --- a/crates/proto/src/version/v662/enums/actor_damage_cause.rs +++ b/crates/proto/src/version/v662/enums/actor_damage_cause.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/actor_data_ids.rs b/crates/proto/src/version/v662/enums/actor_data_ids.rs index 9a4c09e4..81838cf9 100644 --- a/crates/proto/src/version/v662/enums/actor_data_ids.rs +++ b/crates/proto/src/version/v662/enums/actor_data_ids.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum ActorDataIDs { Reserved0 = 0, StructuralIntegrity = 1, diff --git a/crates/proto/src/version/v662/enums/actor_event.rs b/crates/proto/src/version/v662/enums/actor_event.rs index 5841719b..9b8b9db4 100644 --- a/crates/proto/src/version/v662/enums/actor_event.rs +++ b/crates/proto/src/version/v662/enums/actor_event.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ActorEvent { diff --git a/crates/proto/src/version/v662/enums/actor_flags.rs b/crates/proto/src/version/v662/enums/actor_flags.rs index 2984736f..a79484bd 100644 --- a/crates/proto/src/version/v662/enums/actor_flags.rs +++ b/crates/proto/src/version/v662/enums/actor_flags.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum ActorFlags { Unknown = -1, OnFire = 0, diff --git a/crates/proto/src/version/v662/enums/actor_link_type.rs b/crates/proto/src/version/v662/enums/actor_link_type.rs index 97cb30f7..84923007 100644 --- a/crates/proto/src/version/v662/enums/actor_link_type.rs +++ b/crates/proto/src/version/v662/enums/actor_link_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ActorLinkType { diff --git a/crates/proto/src/version/v662/enums/actor_type.rs b/crates/proto/src/version/v662/enums/actor_type.rs index a4333b31..935d5575 100644 --- a/crates/proto/src/version/v662/enums/actor_type.rs +++ b/crates/proto/src/version/v662/enums/actor_type.rs @@ -156,7 +156,7 @@ bitflags! { } } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/agent_action_type.rs b/crates/proto/src/version/v662/enums/agent_action_type.rs index 827b1d28..efa31bf6 100644 --- a/crates/proto/src/version/v662/enums/agent_action_type.rs +++ b/crates/proto/src/version/v662/enums/agent_action_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/animation_mode.rs b/crates/proto/src/version/v662/enums/animation_mode.rs index c5ba00ac..531cbdaa 100644 --- a/crates/proto/src/version/v662/enums/animation_mode.rs +++ b/crates/proto/src/version/v662/enums/animation_mode.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum AnimationMode { diff --git a/crates/proto/src/version/v662/enums/attribute_modifier_operation.rs b/crates/proto/src/version/v662/enums/attribute_modifier_operation.rs index 73a1951d..edd85c33 100644 --- a/crates/proto/src/version/v662/enums/attribute_modifier_operation.rs +++ b/crates/proto/src/version/v662/enums/attribute_modifier_operation.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec, Eq, PartialEq)] +#[derive(ProtoCodec, Clone, Debug, Eq, PartialEq)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/attribute_operands.rs b/crates/proto/src/version/v662/enums/attribute_operands.rs index 787427f3..1fcb10a6 100644 --- a/crates/proto/src/version/v662/enums/attribute_operands.rs +++ b/crates/proto/src/version/v662/enums/attribute_operands.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec, Eq, PartialEq)] +#[derive(ProtoCodec, Clone, Debug, Eq, PartialEq)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/book_edit_action.rs b/crates/proto/src/version/v662/enums/book_edit_action.rs index 03f92cdc..49b53b70 100644 --- a/crates/proto/src/version/v662/enums/book_edit_action.rs +++ b/crates/proto/src/version/v662/enums/book_edit_action.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum BookEditAction { diff --git a/crates/proto/src/version/v662/enums/boss_event_update_type.rs b/crates/proto/src/version/v662/enums/boss_event_update_type.rs index 1069c113..5861c95c 100644 --- a/crates/proto/src/version/v662/enums/boss_event_update_type.rs +++ b/crates/proto/src/version/v662/enums/boss_event_update_type.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/build_platform.rs b/crates/proto/src/version/v662/enums/build_platform.rs index 02e06b35..9ede2bcd 100644 --- a/crates/proto/src/version/v662/enums/build_platform.rs +++ b/crates/proto/src/version/v662/enums/build_platform.rs @@ -1,12 +1,12 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] pub enum BuildPlatform { Google = 1, - iOS = 2, + IOS = 2, OSX = 3, Amazon = 4, GearVR = 5, diff --git a/crates/proto/src/version/v662/enums/camera_preset.rs b/crates/proto/src/version/v662/enums/camera_preset.rs index 04d89bc8..0f869cd2 100644 --- a/crates/proto/src/version/v662/enums/camera_preset.rs +++ b/crates/proto/src/version/v662/enums/camera_preset.rs @@ -1,7 +1,7 @@ pub mod CameraPreset { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum AudioListener { Camera = 0, Player = 1, diff --git a/crates/proto/src/version/v662/enums/camera_shake_action.rs b/crates/proto/src/version/v662/enums/camera_shake_action.rs index 249ca574..1083fd32 100644 --- a/crates/proto/src/version/v662/enums/camera_shake_action.rs +++ b/crates/proto/src/version/v662/enums/camera_shake_action.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum CameraShakeAction { diff --git a/crates/proto/src/version/v662/enums/camera_shake_type.rs b/crates/proto/src/version/v662/enums/camera_shake_type.rs index bbfba54b..ab36213a 100644 --- a/crates/proto/src/version/v662/enums/camera_shake_type.rs +++ b/crates/proto/src/version/v662/enums/camera_shake_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum CameraShakeType { diff --git a/crates/proto/src/version/v662/enums/chat_restriction_level.rs b/crates/proto/src/version/v662/enums/chat_restriction_level.rs index 5b79d460..560736b7 100644 --- a/crates/proto/src/version/v662/enums/chat_restriction_level.rs +++ b/crates/proto/src/version/v662/enums/chat_restriction_level.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ChatRestrictionLevel { diff --git a/crates/proto/src/version/v662/enums/client_play_mode.rs b/crates/proto/src/version/v662/enums/client_play_mode.rs index d316c3fc..9dfc90e9 100644 --- a/crates/proto/src/version/v662/enums/client_play_mode.rs +++ b/crates/proto/src/version/v662/enums/client_play_mode.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs b/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs index 8d939ddb..910f5239 100644 --- a/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs +++ b/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs @@ -1,7 +1,7 @@ pub mod CodeBuilderStorageQueryOptions { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum Category { @@ -9,7 +9,7 @@ pub mod CodeBuilderStorageQueryOptions { CodeStatus = 1, Instantiation = 2, } - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum Operation { diff --git a/crates/proto/src/version/v662/enums/command_block_mode.rs b/crates/proto/src/version/v662/enums/command_block_mode.rs index 02ebc2b3..b7bd00a0 100644 --- a/crates/proto/src/version/v662/enums/command_block_mode.rs +++ b/crates/proto/src/version/v662/enums/command_block_mode.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/command_origin_type.rs b/crates/proto/src/version/v662/enums/command_origin_type.rs index 33ea705d..73cefb63 100644 --- a/crates/proto/src/version/v662/enums/command_origin_type.rs +++ b/crates/proto/src/version/v662/enums/command_origin_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/command_output_type.rs b/crates/proto/src/version/v662/enums/command_output_type.rs index 695c38af..f1ff7cb5 100644 --- a/crates/proto/src/version/v662/enums/command_output_type.rs +++ b/crates/proto/src/version/v662/enums/command_output_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum CommandOutputType { diff --git a/crates/proto/src/version/v662/enums/command_parameter_option.rs b/crates/proto/src/version/v662/enums/command_parameter_option.rs index 3ebd546c..9310b693 100644 --- a/crates/proto/src/version/v662/enums/command_parameter_option.rs +++ b/crates/proto/src/version/v662/enums/command_parameter_option.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum CommandParameterOption { None = 0, EnumAutocompleteExpansion = 0x01, diff --git a/crates/proto/src/version/v662/enums/command_permission_level.rs b/crates/proto/src/version/v662/enums/command_permission_level.rs index 6d139f20..c59a248e 100644 --- a/crates/proto/src/version/v662/enums/command_permission_level.rs +++ b/crates/proto/src/version/v662/enums/command_permission_level.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum CommandPermissionLevel { diff --git a/crates/proto/src/version/v662/enums/complex_inventory_transaction.rs b/crates/proto/src/version/v662/enums/complex_inventory_transaction.rs index d66264e7..fa2f4ca5 100644 --- a/crates/proto/src/version/v662/enums/complex_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/complex_inventory_transaction.rs @@ -1,7 +1,7 @@ pub mod ComplexInventoryTransaction { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/connection.rs b/crates/proto/src/version/v662/enums/connection.rs index 6f6c2e10..ee9ec1e5 100644 --- a/crates/proto/src/version/v662/enums/connection.rs +++ b/crates/proto/src/version/v662/enums/connection.rs @@ -1,7 +1,7 @@ pub mod Connection { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/container_enum_name.rs b/crates/proto/src/version/v662/enums/container_enum_name.rs index 16cb3363..33d86443 100644 --- a/crates/proto/src/version/v662/enums/container_enum_name.rs +++ b/crates/proto/src/version/v662/enums/container_enum_name.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum ContainerEnumName { AnvilInputContainer = 0, AnvilMaterialContainer = 1, diff --git a/crates/proto/src/version/v662/enums/container_id.rs b/crates/proto/src/version/v662/enums/container_id.rs index 45f2c60e..b701872a 100644 --- a/crates/proto/src/version/v662/enums/container_id.rs +++ b/crates/proto/src/version/v662/enums/container_id.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ContainerID { diff --git a/crates/proto/src/version/v662/enums/container_type.rs b/crates/proto/src/version/v662/enums/container_type.rs index d10d35d1..117db646 100644 --- a/crates/proto/src/version/v662/enums/container_type.rs +++ b/crates/proto/src/version/v662/enums/container_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ContainerType { diff --git a/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs b/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs index acdd0c13..75d5a2d8 100644 --- a/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs +++ b/crates/proto/src/version/v662/enums/crafting_data_entry_type.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{NetworkItemInstanceDescriptor, ShapedChemistry use bedrockrs_macros::ProtoCodec; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/crafting_type.rs b/crates/proto/src/version/v662/enums/crafting_type.rs index 7910be02..cac15c3a 100644 --- a/crates/proto/src/version/v662/enums/crafting_type.rs +++ b/crates/proto/src/version/v662/enums/crafting_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum CraftingType { Inventory = 0, Crafting = 1, diff --git a/crates/proto/src/version/v662/enums/data_item_type.rs b/crates/proto/src/version/v662/enums/data_item_type.rs index da2e13ee..fd9bc5e7 100644 --- a/crates/proto/src/version/v662/enums/data_item_type.rs +++ b/crates/proto/src/version/v662/enums/data_item_type.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::BlockPos; use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum DataItemType { diff --git a/crates/proto/src/version/v662/enums/difficulty.rs b/crates/proto/src/version/v662/enums/difficulty.rs index 3357c524..eeff09fd 100644 --- a/crates/proto/src/version/v662/enums/difficulty.rs +++ b/crates/proto/src/version/v662/enums/difficulty.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/easing_type.rs b/crates/proto/src/version/v662/enums/easing_type.rs index 35233760..468033dd 100644 --- a/crates/proto/src/version/v662/enums/easing_type.rs +++ b/crates/proto/src/version/v662/enums/easing_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum EasingType { Linear = 0, Spring = 1, diff --git a/crates/proto/src/version/v662/enums/editor.rs b/crates/proto/src/version/v662/enums/editor.rs index d0cc0ad3..a2c638bd 100644 --- a/crates/proto/src/version/v662/enums/editor.rs +++ b/crates/proto/src/version/v662/enums/editor.rs @@ -1,7 +1,7 @@ pub mod Editor { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/education_edition_offer.rs b/crates/proto/src/version/v662/enums/education_edition_offer.rs index 0203e36a..07caa09d 100644 --- a/crates/proto/src/version/v662/enums/education_edition_offer.rs +++ b/crates/proto/src/version/v662/enums/education_edition_offer.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/enchant.rs b/crates/proto/src/version/v662/enums/enchant.rs index e5edad06..e229c7df 100644 --- a/crates/proto/src/version/v662/enums/enchant.rs +++ b/crates/proto/src/version/v662/enums/enchant.rs @@ -1,7 +1,7 @@ pub mod Enchant { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum Type { diff --git a/crates/proto/src/version/v662/enums/game_rule.rs b/crates/proto/src/version/v662/enums/game_rule.rs index 75cb34d5..4c1d3238 100644 --- a/crates/proto/src/version/v662/enums/game_rule.rs +++ b/crates/proto/src/version/v662/enums/game_rule.rs @@ -1,7 +1,7 @@ pub mod GameRule { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum Type { Invalid = 0, Bool = 1, diff --git a/crates/proto/src/version/v662/enums/game_type.rs b/crates/proto/src/version/v662/enums/game_type.rs index 8ec7b677..39d052b3 100644 --- a/crates/proto/src/version/v662/enums/game_type.rs +++ b/crates/proto/src/version/v662/enums/game_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/generator_type.rs b/crates/proto/src/version/v662/enums/generator_type.rs index bfe257e3..08aad998 100644 --- a/crates/proto/src/version/v662/enums/generator_type.rs +++ b/crates/proto/src/version/v662/enums/generator_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/hud_element.rs b/crates/proto/src/version/v662/enums/hud_element.rs index 878360bb..1ccf37af 100644 --- a/crates/proto/src/version/v662/enums/hud_element.rs +++ b/crates/proto/src/version/v662/enums/hud_element.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] pub enum HudElement { diff --git a/crates/proto/src/version/v662/enums/hud_visibility.rs b/crates/proto/src/version/v662/enums/hud_visibility.rs index 05328048..8518ec1f 100644 --- a/crates/proto/src/version/v662/enums/hud_visibility.rs +++ b/crates/proto/src/version/v662/enums/hud_visibility.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] pub enum HudVisibility { diff --git a/crates/proto/src/version/v662/enums/identity_definition.rs b/crates/proto/src/version/v662/enums/identity_definition.rs index 9b717710..c8faff3e 100644 --- a/crates/proto/src/version/v662/enums/identity_definition.rs +++ b/crates/proto/src/version/v662/enums/identity_definition.rs @@ -2,7 +2,7 @@ pub mod IdentityDefinition { use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum Type { diff --git a/crates/proto/src/version/v662/enums/input_mode.rs b/crates/proto/src/version/v662/enums/input_mode.rs index dd7acf98..1461969a 100644 --- a/crates/proto/src/version/v662/enums/input_mode.rs +++ b/crates/proto/src/version/v662/enums/input_mode.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/inventory_layout.rs b/crates/proto/src/version/v662/enums/inventory_layout.rs index 68bc3059..c82cb7bd 100644 --- a/crates/proto/src/version/v662/enums/inventory_layout.rs +++ b/crates/proto/src/version/v662/enums/inventory_layout.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/inventory_left_tab_index.rs b/crates/proto/src/version/v662/enums/inventory_left_tab_index.rs index f5457958..46d61a68 100644 --- a/crates/proto/src/version/v662/enums/inventory_left_tab_index.rs +++ b/crates/proto/src/version/v662/enums/inventory_left_tab_index.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/inventory_right_tab_index.rs b/crates/proto/src/version/v662/enums/inventory_right_tab_index.rs index b77018c0..92ae6a43 100644 --- a/crates/proto/src/version/v662/enums/inventory_right_tab_index.rs +++ b/crates/proto/src/version/v662/enums/inventory_right_tab_index.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/inventory_source.rs b/crates/proto/src/version/v662/enums/inventory_source.rs index 6fbaf1b4..b848ad74 100644 --- a/crates/proto/src/version/v662/enums/inventory_source.rs +++ b/crates/proto/src/version/v662/enums/inventory_source.rs @@ -1,7 +1,7 @@ pub mod InventorySource { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum InventorySourceFlags { NoFlag = 0, WorldInteractionRandom = 1, diff --git a/crates/proto/src/version/v662/enums/inventory_source_type.rs b/crates/proto/src/version/v662/enums/inventory_source_type.rs index c28fc7bf..f959e9a5 100644 --- a/crates/proto/src/version/v662/enums/inventory_source_type.rs +++ b/crates/proto/src/version/v662/enums/inventory_source_type.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::ContainerID; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/item_descriptor.rs b/crates/proto/src/version/v662/enums/item_descriptor.rs index bbe16824..3c4678de 100644 --- a/crates/proto/src/version/v662/enums/item_descriptor.rs +++ b/crates/proto/src/version/v662/enums/item_descriptor.rs @@ -1,7 +1,7 @@ pub mod ItemDescriptor { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum InternalType { diff --git a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs index a7771e7f..85338ba9 100644 --- a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs @@ -1,7 +1,7 @@ pub mod ItemReleaseInventoryTransaction { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum ActionType { Release = 0, Use = 1, diff --git a/crates/proto/src/version/v662/enums/item_stack_net_result.rs b/crates/proto/src/version/v662/enums/item_stack_net_result.rs index 48f0d39c..9e518ba7 100644 --- a/crates/proto/src/version/v662/enums/item_stack_net_result.rs +++ b/crates/proto/src/version/v662/enums/item_stack_net_result.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ItemStackResponseContainerInfo; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ItemStackNetResult { diff --git a/crates/proto/src/version/v662/enums/item_stack_request_action_type.rs b/crates/proto/src/version/v662/enums/item_stack_request_action_type.rs index 6c5e44d9..a96b3342 100644 --- a/crates/proto/src/version/v662/enums/item_stack_request_action_type.rs +++ b/crates/proto/src/version/v662/enums/item_stack_request_action_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ItemStackRequestActionType { diff --git a/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs index f64e7185..710d134b 100644 --- a/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs @@ -1,7 +1,7 @@ pub mod ItemUseInventoryTransaction { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/item_use_method.rs b/crates/proto/src/version/v662/enums/item_use_method.rs index 8b21ce26..68b7e4e3 100644 --- a/crates/proto/src/version/v662/enums/item_use_method.rs +++ b/crates/proto/src/version/v662/enums/item_use_method.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs index 3d33f754..f4fc643a 100644 --- a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs @@ -1,7 +1,7 @@ pub mod ItemUseOnActorInventoryTransaction { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum ActionType { Interact = 0, Attack = 1, diff --git a/crates/proto/src/version/v662/enums/lab_table_reaction_type.rs b/crates/proto/src/version/v662/enums/lab_table_reaction_type.rs index 0086b5a7..d6f05c91 100644 --- a/crates/proto/src/version/v662/enums/lab_table_reaction_type.rs +++ b/crates/proto/src/version/v662/enums/lab_table_reaction_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum LabTableReactionType { diff --git a/crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs b/crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs deleted file mode 100644 index c27ef6e3..00000000 --- a/crates/proto/src/version/v662/enums/legacy_telemetry_event_packet.rs +++ /dev/null @@ -1,46 +0,0 @@ -pub mod LegacyTelemetryEventPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec)] - pub enum AgentResult { - ActionFail = 0, - ActionSuccess = 1, - QueryResultFalse = 2, - QueryResultTrue = 3, - } - - #[derive(ProtoCodec)] - pub enum Type { - Achievement = 0, - Interaction = 1, - PortalCreated = 2, - PortalUsed = 3, - MobKilled = 4, - CauldronUsed = 5, - PlayerDied = 6, - BossKilled = 7, - AgentCommandObsolete = 8, - AgentCreated = 9, - PatternRemovedObsolete = 10, - SlashCommand = 11, - #[deprecated] FishBucketed = 12, - MobBorn = 13, - PetDiedObsolete = 14, - POICauldronUsed = 15, - ComposterUsed = 16, - BellUsed = 17, - ActorDefinition = 18, - RaidUpdate = 19, - PlayerMovementAnomalyObsolete = 20, - PlayerMovementCorrectedObsolete = 21, - HoneyHarvested = 22, - TargetBlockHit = 23, - PiglinBarter = 24, - PlayerWaxedOrUnwaxedCopper = 25, - CodeBuilderRuntimeAction = 26, - CodeBuilderScoreboard = 27, - StriderRiddenInLavaInOverworld = 28, - SneakCloseToSculkSensor = 29, - CarefulRestoration = 30, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/lesson_action.rs b/crates/proto/src/version/v662/enums/lesson_action.rs index 37b06d8d..26fd66e6 100644 --- a/crates/proto/src/version/v662/enums/lesson_action.rs +++ b/crates/proto/src/version/v662/enums/lesson_action.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum LessonAction { diff --git a/crates/proto/src/version/v662/enums/level_event.rs b/crates/proto/src/version/v662/enums/level_event.rs index 300db53d..113123ad 100644 --- a/crates/proto/src/version/v662/enums/level_event.rs +++ b/crates/proto/src/version/v662/enums/level_event.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/map_decoration.rs b/crates/proto/src/version/v662/enums/map_decoration.rs index 2e6ca11a..0533f0c6 100644 --- a/crates/proto/src/version/v662/enums/map_decoration.rs +++ b/crates/proto/src/version/v662/enums/map_decoration.rs @@ -1,7 +1,7 @@ pub mod MapDecoration { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum Type { MarkerWhite = 0, MarkerGreen = 1, diff --git a/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs b/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs index 54a632bc..a8b65a14 100644 --- a/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs +++ b/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs @@ -1,7 +1,7 @@ pub mod MapItemTrackedActor { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum Type { Entity = 0, BlockEntity = 1, diff --git a/crates/proto/src/version/v662/enums/minecraft_eventing.rs b/crates/proto/src/version/v662/enums/minecraft_eventing.rs index 09e389ef..afb4288d 100644 --- a/crates/proto/src/version/v662/enums/minecraft_eventing.rs +++ b/crates/proto/src/version/v662/enums/minecraft_eventing.rs @@ -1,7 +1,7 @@ pub mod MinecraftEventing { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] @@ -24,7 +24,7 @@ pub mod MinecraftEventing { Commanding = 16, } - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] @@ -57,7 +57,7 @@ pub mod MinecraftEventing { DisenchantAndRepair = 25, } - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/minecraft_packet_ids.rs b/crates/proto/src/version/v662/enums/minecraft_packet_ids.rs index 8cfbbd5b..f7fef675 100644 --- a/crates/proto/src/version/v662/enums/minecraft_packet_ids.rs +++ b/crates/proto/src/version/v662/enums/minecraft_packet_ids.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/mirror.rs b/crates/proto/src/version/v662/enums/mirror.rs index 7b28c238..c9fc3d5f 100644 --- a/crates/proto/src/version/v662/enums/mirror.rs +++ b/crates/proto/src/version/v662/enums/mirror.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum Mirror { diff --git a/crates/proto/src/version/v662/enums/mod.rs b/crates/proto/src/version/v662/enums/mod.rs index af44c0bf..50c31b43 100644 --- a/crates/proto/src/version/v662/enums/mod.rs +++ b/crates/proto/src/version/v662/enums/mod.rs @@ -64,7 +64,6 @@ export!(item_use_inventory_transaction); // Mod export!(item_use_method); export!(item_use_on_actor_inventory_transaction); // Mod export!(lab_table_reaction_type); -export!(legacy_telemetry_event_packet); // Mod export!(lesson_action); export!(level_event); export!(map_decoration); // Mod diff --git a/crates/proto/src/version/v662/enums/modal_form_cancel_reason.rs b/crates/proto/src/version/v662/enums/modal_form_cancel_reason.rs index 2db94260..326a504d 100644 --- a/crates/proto/src/version/v662/enums/modal_form_cancel_reason.rs +++ b/crates/proto/src/version/v662/enums/modal_form_cancel_reason.rs @@ -1,6 +1,8 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] pub enum ModalFormCancelReason { UserClosed = 0, UserBusy = 1, diff --git a/crates/proto/src/version/v662/enums/molang_version.rs b/crates/proto/src/version/v662/enums/molang_version.rs index 38e8bd37..4a48426b 100644 --- a/crates/proto/src/version/v662/enums/molang_version.rs +++ b/crates/proto/src/version/v662/enums/molang_version.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/multiplayer_settings_packet_type.rs b/crates/proto/src/version/v662/enums/multiplayer_settings_packet_type.rs index 24dce5ec..12dc26f9 100644 --- a/crates/proto/src/version/v662/enums/multiplayer_settings_packet_type.rs +++ b/crates/proto/src/version/v662/enums/multiplayer_settings_packet_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/new_interaction_model.rs b/crates/proto/src/version/v662/enums/new_interaction_model.rs index 0ce9423d..d0101edf 100644 --- a/crates/proto/src/version/v662/enums/new_interaction_model.rs +++ b/crates/proto/src/version/v662/enums/new_interaction_model.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/objective_sort_order.rs b/crates/proto/src/version/v662/enums/objective_sort_order.rs index 63c26dd3..8ec7edd8 100644 --- a/crates/proto/src/version/v662/enums/objective_sort_order.rs +++ b/crates/proto/src/version/v662/enums/objective_sort_order.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ObjectiveSortOrder { diff --git a/crates/proto/src/version/v662/enums/pack_type.rs b/crates/proto/src/version/v662/enums/pack_type.rs index 3726b74b..e9bf6438 100644 --- a/crates/proto/src/version/v662/enums/pack_type.rs +++ b/crates/proto/src/version/v662/enums/pack_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum PackType { diff --git a/crates/proto/src/version/v662/enums/packet_compression_algorithm.rs b/crates/proto/src/version/v662/enums/packet_compression_algorithm.rs index b655892c..72e61abc 100644 --- a/crates/proto/src/version/v662/enums/packet_compression_algorithm.rs +++ b/crates/proto/src/version/v662/enums/packet_compression_algorithm.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u16)] #[enum_endianness(le)] #[repr(u16)] diff --git a/crates/proto/src/version/v662/enums/packet_violation_severity.rs b/crates/proto/src/version/v662/enums/packet_violation_severity.rs index 7068347e..71d4b4ea 100644 --- a/crates/proto/src/version/v662/enums/packet_violation_severity.rs +++ b/crates/proto/src/version/v662/enums/packet_violation_severity.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/packet_violation_type.rs b/crates/proto/src/version/v662/enums/packet_violation_type.rs index 1a4bf4d3..bd13d99b 100644 --- a/crates/proto/src/version/v662/enums/packet_violation_type.rs +++ b/crates/proto/src/version/v662/enums/packet_violation_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/particle_type.rs b/crates/proto/src/version/v662/enums/particle_type.rs index 98a430ba..d540a3ec 100644 --- a/crates/proto/src/version/v662/enums/particle_type.rs +++ b/crates/proto/src/version/v662/enums/particle_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum ParticleType { Undefined = 0, Bubble = 1, diff --git a/crates/proto/src/version/v662/enums/persona.rs b/crates/proto/src/version/v662/enums/persona.rs index edd45f24..cbe821ac 100644 --- a/crates/proto/src/version/v662/enums/persona.rs +++ b/crates/proto/src/version/v662/enums/persona.rs @@ -1,7 +1,7 @@ pub mod Persona { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(le)] #[repr(u32)] @@ -12,7 +12,7 @@ pub mod Persona { Body128x128 = 3, } - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(le)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/photo_type.rs b/crates/proto/src/version/v662/enums/photo_type.rs index 1b1e3def..a0cc0f76 100644 --- a/crates/proto/src/version/v662/enums/photo_type.rs +++ b/crates/proto/src/version/v662/enums/photo_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum PhotoType { diff --git a/crates/proto/src/version/v662/enums/play_status.rs b/crates/proto/src/version/v662/enums/play_status.rs index 6706c5c0..dab1f822 100644 --- a/crates/proto/src/version/v662/enums/play_status.rs +++ b/crates/proto/src/version/v662/enums/play_status.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(be)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/player_action_type.rs b/crates/proto/src/version/v662/enums/player_action_type.rs index bd9f8375..db3098df 100644 --- a/crates/proto/src/version/v662/enums/player_action_type.rs +++ b/crates/proto/src/version/v662/enums/player_action_type.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::BlockPos; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/player_list_packet_type.rs b/crates/proto/src/version/v662/enums/player_list_packet_type.rs index 079e708d..3983d69d 100644 --- a/crates/proto/src/version/v662/enums/player_list_packet_type.rs +++ b/crates/proto/src/version/v662/enums/player_list_packet_type.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::{ActorUniqueID, SerializedSkin}; use bedrockrs_macros::ProtoCodec; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct AddPlayerListEntry { pub uuid: Uuid, pub target_actor_id: ActorUniqueID, @@ -18,7 +18,7 @@ struct AddPlayerListEntry { } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum PlayerListPacketType { diff --git a/crates/proto/src/version/v662/enums/player_permission_level.rs b/crates/proto/src/version/v662/enums/player_permission_level.rs index af192a05..0cd03b2e 100644 --- a/crates/proto/src/version/v662/enums/player_permission_level.rs +++ b/crates/proto/src/version/v662/enums/player_permission_level.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum PlayerPermissionLevel { diff --git a/crates/proto/src/version/v662/enums/player_position_mode_component.rs b/crates/proto/src/version/v662/enums/player_position_mode_component.rs index fb4899aa..c41f9f5c 100644 --- a/crates/proto/src/version/v662/enums/player_position_mode_component.rs +++ b/crates/proto/src/version/v662/enums/player_position_mode_component.rs @@ -1,8 +1,8 @@ pub mod PlayerPositionModeComponent { - use crate::version::v662::enums::{ActorType, MinecraftEventing}; + use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum PositionMode { diff --git a/crates/proto/src/version/v662/enums/player_respawn_state.rs b/crates/proto/src/version/v662/enums/player_respawn_state.rs index 7673ea53..39f2bd15 100644 --- a/crates/proto/src/version/v662/enums/player_respawn_state.rs +++ b/crates/proto/src/version/v662/enums/player_respawn_state.rs @@ -1,6 +1,8 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] pub enum PlayerRespawnState { SearchingForSpawn = 0, ReadyToSpawn = 1, diff --git a/crates/proto/src/version/v662/enums/prediction_type.rs b/crates/proto/src/version/v662/enums/prediction_type.rs index d57d193a..713c7a6e 100644 --- a/crates/proto/src/version/v662/enums/prediction_type.rs +++ b/crates/proto/src/version/v662/enums/prediction_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum PredictionType { diff --git a/crates/proto/src/version/v662/enums/puv.rs b/crates/proto/src/version/v662/enums/puv.rs index 48e7a586..b3f8fcad 100644 --- a/crates/proto/src/version/v662/enums/puv.rs +++ b/crates/proto/src/version/v662/enums/puv.rs @@ -2,7 +2,7 @@ pub mod Puv { pub mod Legacy { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/resource_pack_response.rs b/crates/proto/src/version/v662/enums/resource_pack_response.rs index 94bd6f40..59bab0a9 100644 --- a/crates/proto/src/version/v662/enums/resource_pack_response.rs +++ b/crates/proto/src/version/v662/enums/resource_pack_response.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ResourcePackResponse { diff --git a/crates/proto/src/version/v662/enums/rotation.rs b/crates/proto/src/version/v662/enums/rotation.rs index 62b66507..195fcbfa 100644 --- a/crates/proto/src/version/v662/enums/rotation.rs +++ b/crates/proto/src/version/v662/enums/rotation.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum Rotation { diff --git a/crates/proto/src/version/v662/enums/score_packet_type.rs b/crates/proto/src/version/v662/enums/score_packet_type.rs index 32a9c16e..a4d203ce 100644 --- a/crates/proto/src/version/v662/enums/score_packet_type.rs +++ b/crates/proto/src/version/v662/enums/score_packet_type.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::IdentityDefinition; use crate::version::v662::types::ScoreboardId; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ScorePacketInfoChangeEntry { pub id: ScoreboardId, pub objective_name: String, @@ -10,7 +10,7 @@ struct ScorePacketInfoChangeEntry { pub score_value: i32, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ScorePacketInfoRemoveEntry { pub id: ScoreboardId, pub objective_name: String, @@ -19,7 +19,7 @@ struct ScorePacketInfoRemoveEntry { pub identity_definition_type: IdentityDefinition::Type, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ScorePacketType { diff --git a/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs b/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs index ab0ff382..457e1f1b 100644 --- a/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs +++ b/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs @@ -1,14 +1,14 @@ use crate::version::v662::types::ScoreboardId; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct IdentityInfoUpdateEntry { pub scoreboard_id: ScoreboardId, #[endianness(var)] pub player_unique_id: i64, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ScoreboardIdentityPacketType { diff --git a/crates/proto/src/version/v662/enums/serialized_abilities_data.rs b/crates/proto/src/version/v662/enums/serialized_abilities_data.rs index 7e5988cf..2ae16559 100644 --- a/crates/proto/src/version/v662/enums/serialized_abilities_data.rs +++ b/crates/proto/src/version/v662/enums/serialized_abilities_data.rs @@ -1,7 +1,7 @@ pub mod SerializedAbilitiesData { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum SerializedAbilitiesLayer { CustomCache = 0, Base = 1, diff --git a/crates/proto/src/version/v662/enums/server_auth_movement_mode.rs b/crates/proto/src/version/v662/enums/server_auth_movement_mode.rs index 1c4f23f8..3f05960c 100644 --- a/crates/proto/src/version/v662/enums/server_auth_movement_mode.rs +++ b/crates/proto/src/version/v662/enums/server_auth_movement_mode.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ServerAuthMovementMode { diff --git a/crates/proto/src/version/v662/enums/show_store_offer_redirect_type.rs b/crates/proto/src/version/v662/enums/show_store_offer_redirect_type.rs index e8193c15..b803cf18 100644 --- a/crates/proto/src/version/v662/enums/show_store_offer_redirect_type.rs +++ b/crates/proto/src/version/v662/enums/show_store_offer_redirect_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum ShowStoreOfferRedirectType { diff --git a/crates/proto/src/version/v662/enums/simulation_type.rs b/crates/proto/src/version/v662/enums/simulation_type.rs index 0267b76a..5d8a10a4 100644 --- a/crates/proto/src/version/v662/enums/simulation_type.rs +++ b/crates/proto/src/version/v662/enums/simulation_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum SimulationType { diff --git a/crates/proto/src/version/v662/enums/social.rs b/crates/proto/src/version/v662/enums/social.rs index e31bd50e..6974c804 100644 --- a/crates/proto/src/version/v662/enums/social.rs +++ b/crates/proto/src/version/v662/enums/social.rs @@ -1,7 +1,7 @@ pub mod Social { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/soft_enum_update_type.rs b/crates/proto/src/version/v662/enums/soft_enum_update_type.rs index 1cc8a3ec..3427f581 100644 --- a/crates/proto/src/version/v662/enums/soft_enum_update_type.rs +++ b/crates/proto/src/version/v662/enums/soft_enum_update_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(le)] #[repr(u32)] diff --git a/crates/proto/src/version/v662/enums/spawn_biome_type.rs b/crates/proto/src/version/v662/enums/spawn_biome_type.rs index 6e914bba..8933787b 100644 --- a/crates/proto/src/version/v662/enums/spawn_biome_type.rs +++ b/crates/proto/src/version/v662/enums/spawn_biome_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i16)] #[enum_endianness(le)] #[repr(i16)] diff --git a/crates/proto/src/version/v662/enums/spawn_position_type.rs b/crates/proto/src/version/v662/enums/spawn_position_type.rs index fdb83b9b..d04fd607 100644 --- a/crates/proto/src/version/v662/enums/spawn_position_type.rs +++ b/crates/proto/src/version/v662/enums/spawn_position_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/structure_block_type.rs b/crates/proto/src/version/v662/enums/structure_block_type.rs index 261cb2ce..b5651e75 100644 --- a/crates/proto/src/version/v662/enums/structure_block_type.rs +++ b/crates/proto/src/version/v662/enums/structure_block_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/structure_redstone_save_mode.rs b/crates/proto/src/version/v662/enums/structure_redstone_save_mode.rs index 8273a7f4..21f6ddf5 100644 --- a/crates/proto/src/version/v662/enums/structure_redstone_save_mode.rs +++ b/crates/proto/src/version/v662/enums/structure_redstone_save_mode.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/structure_template_request_operation.rs b/crates/proto/src/version/v662/enums/structure_template_request_operation.rs index dbbde2be..1fa80b38 100644 --- a/crates/proto/src/version/v662/enums/structure_template_request_operation.rs +++ b/crates/proto/src/version/v662/enums/structure_template_request_operation.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum StructureTemplateRequestOperation { diff --git a/crates/proto/src/version/v662/enums/structure_template_response_type.rs b/crates/proto/src/version/v662/enums/structure_template_response_type.rs index dd3433ff..b3310a95 100644 --- a/crates/proto/src/version/v662/enums/structure_template_response_type.rs +++ b/crates/proto/src/version/v662/enums/structure_template_response_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum StructureTemplateResponseType { diff --git a/crates/proto/src/version/v662/enums/tag.rs b/crates/proto/src/version/v662/enums/tag.rs index 78adca81..3ec09866 100644 --- a/crates/proto/src/version/v662/enums/tag.rs +++ b/crates/proto/src/version/v662/enums/tag.rs @@ -1,7 +1,7 @@ pub mod Tag { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub enum Type { End = 0, Byte = 1, diff --git a/crates/proto/src/version/v662/enums/text_packet_type.rs b/crates/proto/src/version/v662/enums/text_packet_type.rs index dcff0506..64984643 100644 --- a/crates/proto/src/version/v662/enums/text_packet_type.rs +++ b/crates/proto/src/version/v662/enums/text_packet_type.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum TextPacketType { diff --git a/crates/proto/src/version/v662/enums/text_processing_event_origin.rs b/crates/proto/src/version/v662/enums/text_processing_event_origin.rs index 02403382..aff3d0e2 100644 --- a/crates/proto/src/version/v662/enums/text_processing_event_origin.rs +++ b/crates/proto/src/version/v662/enums/text_processing_event_origin.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/enums/ui_profile.rs b/crates/proto/src/version/v662/enums/ui_profile.rs index 2442e665..2e8b056e 100644 --- a/crates/proto/src/version/v662/enums/ui_profile.rs +++ b/crates/proto/src/version/v662/enums/ui_profile.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub enum UIProfile { Classic = 0, Pocket = 1, diff --git a/crates/proto/src/version/v662/gamepackets.rs b/crates/proto/src/version/v662/gamepackets.rs index 67a6da9a..b6692429 100644 --- a/crates/proto/src/version/v662/gamepackets.rs +++ b/crates/proto/src/version/v662/gamepackets.rs @@ -1,23 +1,23 @@ -use crate::version::v662::packets::{DisconnectPacket, HandshakeClientToServerPacket, HandshakeServerToClientPacket, LoginPacket, PlayStatusPacket, ResourcePackClientResponsePacket, ResourcePacksInfoPacket, ResourcePacksStackPacket, SetTimePacket, TextMessagePacket}; -use crate::version::v729::packets::add_player::AddPlayerPacket; +use crate::version::v662::packets::{AddPlayerPacket, ClientToServerHandshakePacket, DisconnectPacket, LoginPacket, PlayStatusPacket, ResourcePackClientResponsePacket, ResourcePacksInfoPacket, ServerToClientHandshakePacket, SetTimePacket, StartGamePacket, TextPacket}; use bedrockrs_macros::gamepackets; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::sub_client::SubClientID; use std::io::{Cursor, Write}; use varint_rs::{VarintReader, VarintWriter}; +use crate::version::v729::packets::resource_packs_stack::ResourcePacksStackPacket; gamepackets! { Login: LoginPacket, PlaySatus: PlayStatusPacket, - HandshakeServerToClient: HandshakeServerToClientPacket, - HandshakeClientToServer: HandshakeClientToServerPacket, + HandshakeServerToClient: ServerToClientHandshakePacket, + HandshakeClientToServer: ClientToServerHandshakePacket, Disconnect: DisconnectPacket, ResourcePacksInfo: ResourcePacksInfoPacket, ResourcePacksStack: ResourcePacksStackPacket, ResourcePackClientResponse: ResourcePackClientResponsePacket, - TextMessage: TextMessagePacket, + TextMessage: TextPacket, SetTime: SetTimePacket, - StartGame: _, // Scary Packet + StartGame: StartGamePacket, // Scary Packet AddPlayer: AddPlayerPacket, } diff --git a/crates/proto/src/version/v662/packets/actor_event.rs b/crates/proto/src/version/v662/packets/actor_event.rs index cad12112..4fd275db 100644 --- a/crates/proto/src/version/v662/packets/actor_event.rs +++ b/crates/proto/src/version/v662/packets/actor_event.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 27)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ActorEventPacket { pub target_runtime_id: ActorRuntimeID, pub event_id: ActorEvent, diff --git a/crates/proto/src/version/v662/packets/actor_pick_request.rs b/crates/proto/src/version/v662/packets/actor_pick_request.rs index ba8af9b1..c357ddaf 100644 --- a/crates/proto/src/version/v662/packets/actor_pick_request.rs +++ b/crates/proto/src/version/v662/packets/actor_pick_request.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 35)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ActorPickRequestPacket { #[endianness(le)] pub actor_id: i64, diff --git a/crates/proto/src/version/v662/packets/add_actor.rs b/crates/proto/src/version/v662/packets/add_actor.rs index 85b18731..03c70675 100644 --- a/crates/proto/src/version/v662/packets/add_actor.rs +++ b/crates/proto/src/version/v662/packets/add_actor.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{ActorLink, ActorRuntimeID, ActorUniqueID, Data use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct AttributeEntry { pub attribute_name: String, #[endianness(le)] @@ -14,7 +14,7 @@ struct AttributeEntry { } #[gamepacket(id = 13)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AddActorPacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/add_behaviour_tree.rs b/crates/proto/src/version/v662/packets/add_behaviour_tree.rs index e1c24ca2..16bc3c18 100644 --- a/crates/proto/src/version/v662/packets/add_behaviour_tree.rs +++ b/crates/proto/src/version/v662/packets/add_behaviour_tree.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 89)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AddBehaviourTreePacket { pub json_behaviour_tree_structure: String, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/add_item_actor.rs b/crates/proto/src/version/v662/packets/add_item_actor.rs index ef6b23ce..25259905 100644 --- a/crates/proto/src/version/v662/packets/add_item_actor.rs +++ b/crates/proto/src/version/v662/packets/add_item_actor.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 15)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AddItemActorPacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/add_painting.rs b/crates/proto/src/version/v662/packets/add_painting.rs index 0795fa5c..46029f0a 100644 --- a/crates/proto/src/version/v662/packets/add_painting.rs +++ b/crates/proto/src/version/v662/packets/add_painting.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 22)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AddPaintingPacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/add_player.rs b/crates/proto/src/version/v662/packets/add_player.rs index c60b367c..cfa37fe6 100644 --- a/crates/proto/src/version/v662/packets/add_player.rs +++ b/crates/proto/src/version/v662/packets/add_player.rs @@ -5,7 +5,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use uuid::Uuid; #[gamepacket(id = 12)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AddPlayerPacket { pub uuid: Uuid, pub player_name: String, diff --git a/crates/proto/src/version/v662/packets/add_volume_entity.rs b/crates/proto/src/version/v662/packets/add_volume_entity.rs index b6368e4f..9ebfaebd 100644 --- a/crates/proto/src/version/v662/packets/add_volume_entity.rs +++ b/crates/proto/src/version/v662/packets/add_volume_entity.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{EntityNetID, NetworkBlockPosition}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 166)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AddVolumeEntityPacket { pub entity_network_id: EntityNetID, #[nbt] diff --git a/crates/proto/src/version/v662/packets/agent_action_event.rs b/crates/proto/src/version/v662/packets/agent_action_event.rs index 443d2ae1..f0093863 100644 --- a/crates/proto/src/version/v662/packets/agent_action_event.rs +++ b/crates/proto/src/version/v662/packets/agent_action_event.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::AgentActionType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 181)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AgentActionEventPacket { pub request_id: String, pub action_type: AgentActionType, diff --git a/crates/proto/src/version/v662/packets/agent_animation.rs b/crates/proto/src/version/v662/packets/agent_animation.rs index 2010a73c..4f0f295a 100644 --- a/crates/proto/src/version/v662/packets/agent_animation.rs +++ b/crates/proto/src/version/v662/packets/agent_animation.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 304)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AgentAnimationPacket { pub agent_animation: i8, pub runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/animate.rs b/crates/proto/src/version/v662/packets/animate.rs index 573af082..fe530a59 100644 --- a/crates/proto/src/version/v662/packets/animate.rs +++ b/crates/proto/src/version/v662/packets/animate.rs @@ -2,13 +2,10 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; -use futures::AsyncWriteExt; use std::io::{Cursor, Read}; -use std::mem::size_of; -use tokio::io::AsyncReadExt; use varint_rs::{VarintReader, VarintWriter}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] @@ -52,7 +49,7 @@ impl ProtoCodec for AnimatePacket { action_stream.write_i32_varint(stream.read_i32_varint()?)?; let target_runtime_id = ::proto_deserialize(stream)?; - stream.read_to_end(action_stream)?; + stream.read_to_end(&mut action_stream)?; let mut action_cursor = Cursor::new(action_stream.as_slice()); let action = ::proto_deserialize(&mut action_cursor)?; diff --git a/crates/proto/src/version/v662/packets/animate_entity.rs b/crates/proto/src/version/v662/packets/animate_entity.rs index 2fd83136..1712307f 100644 --- a/crates/proto/src/version/v662/packets/animate_entity.rs +++ b/crates/proto/src/version/v662/packets/animate_entity.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 158)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AnimateEntityPacket { pub animation: String, pub next_state: String, diff --git a/crates/proto/src/version/v662/packets/anvil_damage.rs b/crates/proto/src/version/v662/packets/anvil_damage.rs index f42e5916..15b58c3f 100644 --- a/crates/proto/src/version/v662/packets/anvil_damage.rs +++ b/crates/proto/src/version/v662/packets/anvil_damage.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 141)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AnvilDamagePacket { pub damage_amount: i8, pub block_position: NetworkBlockPosition, diff --git a/crates/proto/src/version/v662/packets/automation_client_connect.rs b/crates/proto/src/version/v662/packets/automation_client_connect.rs index 2cfd3d71..8e3262c7 100644 --- a/crates/proto/src/version/v662/packets/automation_client_connect.rs +++ b/crates/proto/src/version/v662/packets/automation_client_connect.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::WebSocketPacketData; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 95)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AutomationClientConnectPacket { pub web_socket_data: WebSocketPacketData, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/available_actor_identifiers.rs b/crates/proto/src/version/v662/packets/available_actor_identifiers.rs index b9080244..ebe1c634 100644 --- a/crates/proto/src/version/v662/packets/available_actor_identifiers.rs +++ b/crates/proto/src/version/v662/packets/available_actor_identifiers.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 119)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AvailableActorIdentifiersPacket { #[nbt] pub actor_info_list: nbtx::Value, // TODO: NBT Structure diff --git a/crates/proto/src/version/v662/packets/available_commands.rs b/crates/proto/src/version/v662/packets/available_commands.rs index 935dc911..10d66ca4 100644 --- a/crates/proto/src/version/v662/packets/available_commands.rs +++ b/crates/proto/src/version/v662/packets/available_commands.rs @@ -5,10 +5,9 @@ use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use std::io::Cursor; use std::mem::size_of; +#[derive(Clone, Debug)] struct EnumDataEntry { name: String, - #[vec_repr(u32)] - #[vec_endianness(var)] values: Vec, } @@ -46,7 +45,7 @@ impl ProtoCodec for EnumDataEntry { } } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct SubCommandValues { #[endianness(le)] pub sub_command_first_value: u16, @@ -54,7 +53,7 @@ struct SubCommandValues { pub sub_command_second_value: u16, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ParameterDataEntry { pub name: String, #[endianness(le)] @@ -63,7 +62,7 @@ struct ParameterDataEntry { pub options: i8, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct OverloadsEntry { pub is_chaining: bool, #[vec_repr(u32)] @@ -71,19 +70,14 @@ struct OverloadsEntry { pub parameter_data: Vec, } +#[derive(Clone, Debug)] struct CommandsEntry { pub name: String, pub description: String, - #[endianness(le)] pub flags: u16, pub permission_level: CommandPermissionLevel, - #[endianness(le)] pub alias_enum: i32, - #[vec_repr(u32)] - #[vec_endianness(var)] pub chained_sub_command_indices: Vec, - #[vec_repr(u32)] - #[vec_endianness(var)] pub overloads: Vec, } @@ -160,7 +154,7 @@ impl ProtoCodec for CommandsEntry { } } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct SoftEnumsEntry { pub enum_name: String, #[vec_repr(u32)] @@ -168,7 +162,7 @@ struct SoftEnumsEntry { pub enum_options: Vec, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ConstraintsEntry { #[endianness(le)] pub enum_value_symbol: u32, @@ -179,7 +173,7 @@ struct ConstraintsEntry { pub constraint_indices: Vec, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ChainedSubCommandDataEntry { pub sub_command_name: String, #[vec_repr(u32)] @@ -188,7 +182,7 @@ struct ChainedSubCommandDataEntry { } #[gamepacket(id = 76)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AvailableCommandsPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/biome_definition_list.rs b/crates/proto/src/version/v662/packets/biome_definition_list.rs index 6c196b10..ced7ebf3 100644 --- a/crates/proto/src/version/v662/packets/biome_definition_list.rs +++ b/crates/proto/src/version/v662/packets/biome_definition_list.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 122)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct BiomeDefinitionListPacket { #[nbt] pub biome_definition_data: nbtx::Value, // TODO: NBT Structure diff --git a/crates/proto/src/version/v662/packets/block_actor_data.rs b/crates/proto/src/version/v662/packets/block_actor_data.rs index 310b307b..32a96a52 100644 --- a/crates/proto/src/version/v662/packets/block_actor_data.rs +++ b/crates/proto/src/version/v662/packets/block_actor_data.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 56)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct BlockActorDataPacket { pub block_position: NetworkBlockPosition, #[nbt] diff --git a/crates/proto/src/version/v662/packets/block_event.rs b/crates/proto/src/version/v662/packets/block_event.rs index c777531c..2e9313a4 100644 --- a/crates/proto/src/version/v662/packets/block_event.rs +++ b/crates/proto/src/version/v662/packets/block_event.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 26)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct BlockEventPacket { pub block_position: NetworkBlockPosition, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/block_pick_request.rs b/crates/proto/src/version/v662/packets/block_pick_request.rs index 0b234018..5a9c9ac5 100644 --- a/crates/proto/src/version/v662/packets/block_pick_request.rs +++ b/crates/proto/src/version/v662/packets/block_pick_request.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::BlockPos; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 34)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct BlockPickRequestPacket { pub position: BlockPos, pub with_data: bool, diff --git a/crates/proto/src/version/v662/packets/book_edit.rs b/crates/proto/src/version/v662/packets/book_edit.rs index 51ede65a..8cb21df5 100644 --- a/crates/proto/src/version/v662/packets/book_edit.rs +++ b/crates/proto/src/version/v662/packets/book_edit.rs @@ -3,9 +3,8 @@ use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; use byteorder::{ReadBytesExt, WriteBytesExt}; -use std::intrinsics::size_of; +use std::mem::size_of; use std::io::{Cursor, Read}; -use tokio::io::AsyncReadExt; #[gamepacket(id = 97)] pub struct BookEditPacket { @@ -31,7 +30,7 @@ impl ProtoCodec for BookEditPacket { action_stream.write_i8(stream.read_i8()?)?; let book_slot = ::proto_deserialize(stream)?; - stream.read_to_end(action_stream)?; + stream.read_to_end(&mut action_stream)?; let mut action_cursor = Cursor::new(action_stream.as_slice()); let action = ::proto_deserialize(&mut action_cursor)?; diff --git a/crates/proto/src/version/v662/packets/boss_event.rs b/crates/proto/src/version/v662/packets/boss_event.rs index 05dea65f..e89359ae 100644 --- a/crates/proto/src/version/v662/packets/boss_event.rs +++ b/crates/proto/src/version/v662/packets/boss_event.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 74)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct BossEventPacket { pub target_actor_id: ActorUniqueID, pub event_type: BossEventUpdateType diff --git a/crates/proto/src/version/v662/packets/camera.rs b/crates/proto/src/version/v662/packets/camera.rs index 5cabeb81..9c0baa4b 100644 --- a/crates/proto/src/version/v662/packets/camera.rs +++ b/crates/proto/src/version/v662/packets/camera.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 73)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CameraPacket { pub camera_id: ActorUniqueID, pub target_player_id: ActorUniqueID, diff --git a/crates/proto/src/version/v662/packets/camera_instruction.rs b/crates/proto/src/version/v662/packets/camera_instruction.rs index 0899aceb..be1baa07 100644 --- a/crates/proto/src/version/v662/packets/camera_instruction.rs +++ b/crates/proto/src/version/v662/packets/camera_instruction.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::CameraInstruction; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 300)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CameraInstructionPacket { pub camera_instruction: CameraInstruction, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/camera_presets.rs b/crates/proto/src/version/v662/packets/camera_presets.rs index 15917e1b..763099bc 100644 --- a/crates/proto/src/version/v662/packets/camera_presets.rs +++ b/crates/proto/src/version/v662/packets/camera_presets.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::CameraPresets; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 198)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CameraPresetsPacket { pub camera_presets: CameraPresets, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/camera_shake.rs b/crates/proto/src/version/v662/packets/camera_shake.rs index 4a274dac..1909846b 100644 --- a/crates/proto/src/version/v662/packets/camera_shake.rs +++ b/crates/proto/src/version/v662/packets/camera_shake.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{CameraShakeAction, CameraShakeType}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 159)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CameraShakePacket { #[endianness(le)] pub intensity: f32, diff --git a/crates/proto/src/version/v662/packets/change_dimension.rs b/crates/proto/src/version/v662/packets/change_dimension.rs index ba9fa72e..5f80ef45 100644 --- a/crates/proto/src/version/v662/packets/change_dimension.rs +++ b/crates/proto/src/version/v662/packets/change_dimension.rs @@ -2,7 +2,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 61)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ChangeDimensionPacket { #[endianness(var)] pub dimension_id: i32, diff --git a/crates/proto/src/version/v662/packets/change_mob_property.rs b/crates/proto/src/version/v662/packets/change_mob_property.rs index b511bf27..a760c7d5 100644 --- a/crates/proto/src/version/v662/packets/change_mob_property.rs +++ b/crates/proto/src/version/v662/packets/change_mob_property.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 182)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ChangeMobPropertyPacket { pub actor_id: ActorUniqueID, pub property_name: String, diff --git a/crates/proto/src/version/v662/packets/chunk_radius_updated.rs b/crates/proto/src/version/v662/packets/chunk_radius_updated.rs index 8a4cfa07..dffe910f 100644 --- a/crates/proto/src/version/v662/packets/chunk_radius_updated.rs +++ b/crates/proto/src/version/v662/packets/chunk_radius_updated.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 70)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ChunkRadiusUpdatedPacket { #[endianness(var)] pub chunk_radius: i32, diff --git a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs index 9cd4293f..5815f7e1 100644 --- a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs +++ b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs @@ -6,18 +6,14 @@ use std::mem::size_of; #[gamepacket(id = 135)] pub struct ClientCacheBlobStatusPacket { - #[vec_repr(u32)] - #[vec_endianness(var)] pub missing_blobs: Vec, - #[vec_repr(u32)] - #[vec_endianness(var)] pub obtained_blobs: Vec, } impl ProtoCodec for ClientCacheBlobStatusPacket { fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { - ::proto_serialize(self.missing_blobs.len().try_into()?, stream)?; - ::proto_serialize(self.obtained_blobs.len().try_into()?, stream)?; + ::proto_serialize(&(self.missing_blobs.len() as u32), stream)?; + ::proto_serialize(&(self.obtained_blobs.len() as u32), stream)?; for i in &self.missing_blobs { ::proto_serialize(i, stream)?; } diff --git a/crates/proto/src/version/v662/packets/client_cache_miss_response.rs b/crates/proto/src/version/v662/packets/client_cache_miss_response.rs index 196a8076..dd870561 100644 --- a/crates/proto/src/version/v662/packets/client_cache_miss_response.rs +++ b/crates/proto/src/version/v662/packets/client_cache_miss_response.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct MissingBlobEntry { #[endianness(le)] pub blob_id: u64, @@ -8,7 +8,7 @@ struct MissingBlobEntry { } #[gamepacket(id = 136)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ClientCacheMissResponsePacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/client_cache_status.rs b/crates/proto/src/version/v662/packets/client_cache_status.rs index d985fb29..20094317 100644 --- a/crates/proto/src/version/v662/packets/client_cache_status.rs +++ b/crates/proto/src/version/v662/packets/client_cache_status.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 129)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ClientCacheStatusPacket { pub is_cache_supported: bool, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/client_to_server_handshake.rs b/crates/proto/src/version/v662/packets/client_to_server_handshake.rs index 497e79d8..3ce7bab9 100644 --- a/crates/proto/src/version/v662/packets/client_to_server_handshake.rs +++ b/crates/proto/src/version/v662/packets/client_to_server_handshake.rs @@ -1,5 +1,5 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 4)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ClientToServerHandshakePacket {} \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs b/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs index 912e9360..5fa7b2bd 100644 --- a/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs +++ b/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs @@ -1,7 +1,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] @@ -26,7 +26,7 @@ enum Type { } #[gamepacket(id = 163)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ClientboundDebugRendererPacket { pub debug_marker_type: Type, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs index 532a198d..824a95f1 100644 --- a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs +++ b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs @@ -1,18 +1,22 @@ use crate::version::v662::types::{ActorUniqueID, BlockPos, MapDecoration, MapItemTrackedActor}; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; -use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; +use bedrockrs_proto_core::ProtoCodec; use std::io::{Cursor, Read}; -use std::mem::size_of; -use tokio::io::AsyncReadExt; use varint_rs::{VarintReader, VarintWriter}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] +struct PixelsEntry { + #[endianness(var)] + pub pixel: u32, +} + +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] enum Type { - Invalid = 0, + Invalid = 0x0, TextureUpdate { #[endianness(var)] texture_width: i32, @@ -24,8 +28,8 @@ enum Type { y_tex_coordinate: i32, #[vec_repr(u32)] #[vec_endianness(var)] - pixels: Vec, - } = 1 << 1, + pixels: Vec, + } = 0x2, DecorationUpdate { #[vec_repr(u32)] #[vec_endianness(var)] @@ -33,12 +37,12 @@ enum Type { #[vec_repr(u32)] #[vec_endianness(var)] decoration_list: Vec, - } = 1 << 2, + } = 0x4, Creation { #[vec_repr(u32)] #[vec_endianness(var)] map_id_list: Vec, - } = 1 << 3, + } = 0x8, } #[gamepacket(id = 67)] @@ -74,7 +78,7 @@ impl ProtoCodec for ClientboundMapItemDataPacket { let dimension = ::proto_deserialize(stream)?; let is_locked = ::proto_deserialize(stream)?; let map_origin = ::proto_deserialize(stream)?; - stream.read_to_end(type_flags_stream)?; + stream.read_to_end(&mut type_flags_stream)?; let mut type_flags_cursor = Cursor::new(type_flags_stream.as_slice()); let type_flags = ::proto_deserialize(&mut type_flags_cursor)?; diff --git a/crates/proto/src/version/v662/packets/code_builder.rs b/crates/proto/src/version/v662/packets/code_builder.rs index 657f7f28..dff09a81 100644 --- a/crates/proto/src/version/v662/packets/code_builder.rs +++ b/crates/proto/src/version/v662/packets/code_builder.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 150)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CodeBuilderPacket { pub url: String, pub should_open_code_builder: bool, diff --git a/crates/proto/src/version/v662/packets/code_builder_source.rs b/crates/proto/src/version/v662/packets/code_builder_source.rs index 722b68d8..362fb758 100644 --- a/crates/proto/src/version/v662/packets/code_builder_source.rs +++ b/crates/proto/src/version/v662/packets/code_builder_source.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::CodeBuilderStorageQueryOptions; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 178)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CodeBuilderSourcePacket { pub operation: CodeBuilderStorageQueryOptions::Operation, pub category: CodeBuilderStorageQueryOptions::Category, diff --git a/crates/proto/src/version/v662/packets/command_block_update.rs b/crates/proto/src/version/v662/packets/command_block_update.rs index 62e844d7..8a428ca5 100644 --- a/crates/proto/src/version/v662/packets/command_block_update.rs +++ b/crates/proto/src/version/v662/packets/command_block_update.rs @@ -18,7 +18,6 @@ pub struct CommandBlockUpdatePacket { pub last_output: String, pub name: String, pub track_output: bool, - #[endianness(le)] pub tick_delay: u32, pub should_execute_on_first_tick: bool, } diff --git a/crates/proto/src/version/v662/packets/command_output.rs b/crates/proto/src/version/v662/packets/command_output.rs index 6ddbcad2..42d9bd84 100644 --- a/crates/proto/src/version/v662/packets/command_output.rs +++ b/crates/proto/src/version/v662/packets/command_output.rs @@ -5,9 +5,9 @@ use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; use std::io::{Cursor, Read}; use std::mem::size_of; -use tokio::io::{AsyncReadExt, AsyncWriteExt}; +use byteorder::{ReadBytesExt, WriteBytesExt}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct OutputMessagesEntry { pub successful: bool, pub message_id: String, @@ -21,8 +21,6 @@ pub struct CommandOutputPacket { pub origin_data: CommandOriginData, pub output_type: CommandOutputType, pub success_count: u32, - #[vec_repr(u32)] - #[vec_endianness(var)] pub output_messages: Vec, } @@ -38,7 +36,7 @@ impl ProtoCodec for CommandOutputPacket { ::proto_serialize(&self.origin_data, stream)?; stream.write_i8(output_type_cursor.read_i8()?)?; ::proto_serialize(&self.success_count, stream)?; - ::proto_serialize(&self.output_messages.len().try_into(), stream)?; + ::proto_serialize(&(self.output_messages.len() as u32), stream)?; for i in &self.output_messages { ::proto_serialize(i, stream)?; } @@ -54,7 +52,7 @@ impl ProtoCodec for CommandOutputPacket { output_type_stream.write_i8(stream.read_i8()?)?; let success_count = ::proto_deserialize(stream)?; let output_messages = { - let len = ::proto_deserialize(stream)?; + let len = ::proto_deserialize(stream)?; let mut vec = Vec::with_capacity(len.try_into()?); for _ in 0..len { vec.push(::proto_deserialize( @@ -63,7 +61,7 @@ impl ProtoCodec for CommandOutputPacket { } vec }; - stream.read_to_end(output_type_stream)?; + stream.read_to_end(&mut output_type_stream)?; let mut output_type_cursor = Cursor::new(output_type_stream.as_slice()); let output_type = diff --git a/crates/proto/src/version/v662/packets/command_request.rs b/crates/proto/src/version/v662/packets/command_request.rs index 0744f0d1..1746ce27 100644 --- a/crates/proto/src/version/v662/packets/command_request.rs +++ b/crates/proto/src/version/v662/packets/command_request.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::CommandOriginData; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 77)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CommandRequestPacket { pub command: String, pub command_origin: CommandOriginData, diff --git a/crates/proto/src/version/v662/packets/completed_using_item.rs b/crates/proto/src/version/v662/packets/completed_using_item.rs index b2eca742..9ed94095 100644 --- a/crates/proto/src/version/v662/packets/completed_using_item.rs +++ b/crates/proto/src/version/v662/packets/completed_using_item.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ItemUseMethod; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 142)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CompletedUsingItemPacket { #[endianness(le)] pub item_id: u16, diff --git a/crates/proto/src/version/v662/packets/compressed_biome_definition_list.rs b/crates/proto/src/version/v662/packets/compressed_biome_definition_list.rs index a1bb6811..1866ae38 100644 --- a/crates/proto/src/version/v662/packets/compressed_biome_definition_list.rs +++ b/crates/proto/src/version/v662/packets/compressed_biome_definition_list.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 301)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CompressedBiomeDefinitionListPacket { pub compressed_biome_data: String, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/container_close.rs b/crates/proto/src/version/v662/packets/container_close.rs index 95445a49..14fb7953 100644 --- a/crates/proto/src/version/v662/packets/container_close.rs +++ b/crates/proto/src/version/v662/packets/container_close.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ContainerID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 47)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ContainerClosePacket { pub container_id: ContainerID, pub server_initiated_close: bool, diff --git a/crates/proto/src/version/v662/packets/container_open.rs b/crates/proto/src/version/v662/packets/container_open.rs index f023fdec..e1ef9769 100644 --- a/crates/proto/src/version/v662/packets/container_open.rs +++ b/crates/proto/src/version/v662/packets/container_open.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 46)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ContainerOpenPacket { pub container_id: ContainerID, pub container_type: ContainerType, diff --git a/crates/proto/src/version/v662/packets/container_set_data.rs b/crates/proto/src/version/v662/packets/container_set_data.rs index 005bb880..11f9dbd9 100644 --- a/crates/proto/src/version/v662/packets/container_set_data.rs +++ b/crates/proto/src/version/v662/packets/container_set_data.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ContainerID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 51)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ContainerSetDataPacket { pub container_id: ContainerID, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs b/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs index be6bd5f3..ad1577f1 100644 --- a/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs +++ b/crates/proto/src/version/v662/packets/correct_player_move_prediction.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 161)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CorrectPlayerMovePredictionPacket { #[endianness(le)] pub position: Vec3, diff --git a/crates/proto/src/version/v662/packets/crafting_data.rs b/crates/proto/src/version/v662/packets/crafting_data.rs index ccdf253f..abe597bc 100644 --- a/crates/proto/src/version/v662/packets/crafting_data.rs +++ b/crates/proto/src/version/v662/packets/crafting_data.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{ContainerMixDataEntry, CraftingDataEntry, Mate use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 52)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CraftingDataPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/create_photo.rs b/crates/proto/src/version/v662/packets/create_photo.rs index 841c2726..6bc265be 100644 --- a/crates/proto/src/version/v662/packets/create_photo.rs +++ b/crates/proto/src/version/v662/packets/create_photo.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 171)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CreatePhotoPacket { #[endianness(le)] pub raw_id: u64, diff --git a/crates/proto/src/version/v662/packets/creative_content.rs b/crates/proto/src/version/v662/packets/creative_content.rs index ba05a36e..09d29c37 100644 --- a/crates/proto/src/version/v662/packets/creative_content.rs +++ b/crates/proto/src/version/v662/packets/creative_content.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::NetworkItemInstanceDescriptor; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct WriteEntry { #[endianness(var)] pub creative_net_id: u32, @@ -9,7 +9,7 @@ struct WriteEntry { } #[gamepacket(id = 145)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CreativeContentPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/death_info.rs b/crates/proto/src/version/v662/packets/death_info.rs index 9463413c..0ce376c3 100644 --- a/crates/proto/src/version/v662/packets/death_info.rs +++ b/crates/proto/src/version/v662/packets/death_info.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 189)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DeathInfoPacket { pub death_cause_attack_name: String, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/debug_info.rs b/crates/proto/src/version/v662/packets/debug_info.rs index fd3a18c5..7919814b 100644 --- a/crates/proto/src/version/v662/packets/debug_info.rs +++ b/crates/proto/src/version/v662/packets/debug_info.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 155)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DebugInfoPacket { pub actor_id: ActorUniqueID, pub data: String, diff --git a/crates/proto/src/version/v662/packets/dimension_data.rs b/crates/proto/src/version/v662/packets/dimension_data.rs index bcdcd858..f7a57738 100644 --- a/crates/proto/src/version/v662/packets/dimension_data.rs +++ b/crates/proto/src/version/v662/packets/dimension_data.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::DimensionDefinitionGroup; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 180)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DimensionDataPacket { pub dimension_definition_group: DimensionDefinitionGroup, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/disconnect.rs b/crates/proto/src/version/v662/packets/disconnect.rs index c17d5a01..d97aab7f 100644 --- a/crates/proto/src/version/v662/packets/disconnect.rs +++ b/crates/proto/src/version/v662/packets/disconnect.rs @@ -5,6 +5,7 @@ use bedrockrs_proto_core::ProtoCodec; use std::io::Cursor; #[gamepacket(id = 5)] +#[derive(Clone, Debug)] pub struct DisconnectPacket { pub reason: Connection::DisconnectFailReason, pub message: Option diff --git a/crates/proto/src/version/v662/packets/editor_network.rs b/crates/proto/src/version/v662/packets/editor_network.rs index e259c558..dffef50e 100644 --- a/crates/proto/src/version/v662/packets/editor_network.rs +++ b/crates/proto/src/version/v662/packets/editor_network.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 190)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EditorNetworkPacket { #[nbt] pub binary_payload: nbtx::Value, // TODO: NBT Structure diff --git a/crates/proto/src/version/v662/packets/edu_uri_resource.rs b/crates/proto/src/version/v662/packets/edu_uri_resource.rs index 1ba7ef98..48c68a10 100644 --- a/crates/proto/src/version/v662/packets/edu_uri_resource.rs +++ b/crates/proto/src/version/v662/packets/edu_uri_resource.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::EduSharedUriResource; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 170)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EduUriResourcePacket { pub edu_shared_uri_resource: EduSharedUriResource, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/education_settings.rs b/crates/proto/src/version/v662/packets/education_settings.rs index bdc5f809..986fbd43 100644 --- a/crates/proto/src/version/v662/packets/education_settings.rs +++ b/crates/proto/src/version/v662/packets/education_settings.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::EducationLevelSettings; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 137)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EducationSettingsPacket { pub education_level_settings: EducationLevelSettings, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/emote.rs b/crates/proto/src/version/v662/packets/emote.rs index 7a082fef..85bd7d3a 100644 --- a/crates/proto/src/version/v662/packets/emote.rs +++ b/crates/proto/src/version/v662/packets/emote.rs @@ -1,16 +1,16 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] enum Flags { - ServerSide = 1 << 0, - MuteEmoteChat = 1 << 1, + ServerSide = 0x0, + MuteEmoteChat = 0x2, } #[gamepacket(id = 138)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EmotePacket { pub actor_runtime_id: ActorRuntimeID, pub emote_id: String, diff --git a/crates/proto/src/version/v662/packets/emote_list.rs b/crates/proto/src/version/v662/packets/emote_list.rs index 4641cfe0..d046381d 100644 --- a/crates/proto/src/version/v662/packets/emote_list.rs +++ b/crates/proto/src/version/v662/packets/emote_list.rs @@ -3,7 +3,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use uuid::Uuid; #[gamepacket(id = 152)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EmoteListPacket { pub runtime_id: ActorRuntimeID, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/feature_registry.rs b/crates/proto/src/version/v662/packets/feature_registry.rs index 91f63ce0..428c3d21 100644 --- a/crates/proto/src/version/v662/packets/feature_registry.rs +++ b/crates/proto/src/version/v662/packets/feature_registry.rs @@ -1,13 +1,13 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct FeaturesDataListEntry { pub feature_name: String, pub binary_json_output: String, } #[gamepacket(id = 191)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct FeatureRegistryPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/filter_text.rs b/crates/proto/src/version/v662/packets/filter_text.rs index 3829c33a..74b22024 100644 --- a/crates/proto/src/version/v662/packets/filter_text.rs +++ b/crates/proto/src/version/v662/packets/filter_text.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 163)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct FilterTextPacket { pub text: String, pub from_server: bool, diff --git a/crates/proto/src/version/v662/packets/game_rules_changed.rs b/crates/proto/src/version/v662/packets/game_rules_changed.rs index 40271e73..b382d383 100644 --- a/crates/proto/src/version/v662/packets/game_rules_changed.rs +++ b/crates/proto/src/version/v662/packets/game_rules_changed.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::GameRulesChangedPacketData; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 72)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct GameRulesChangedPacket { pub rules_data: GameRulesChangedPacketData, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/game_test_request.rs b/crates/proto/src/version/v662/packets/game_test_request.rs index ec5b8d58..9a70f5b0 100644 --- a/crates/proto/src/version/v662/packets/game_test_request.rs +++ b/crates/proto/src/version/v662/packets/game_test_request.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::BlockPos; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 194)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct GameTestRequestPacket { #[endianness(var)] pub max_tests_per_batch: i32, diff --git a/crates/proto/src/version/v662/packets/game_test_results.rs b/crates/proto/src/version/v662/packets/game_test_results.rs index f40077e7..dea61794 100644 --- a/crates/proto/src/version/v662/packets/game_test_results.rs +++ b/crates/proto/src/version/v662/packets/game_test_results.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 195)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct GameTestResultsPacket { pub succeeded: bool, pub error: String, diff --git a/crates/proto/src/version/v662/packets/gui_data_pick_item.rs b/crates/proto/src/version/v662/packets/gui_data_pick_item.rs index a1b96e06..2545fc25 100644 --- a/crates/proto/src/version/v662/packets/gui_data_pick_item.rs +++ b/crates/proto/src/version/v662/packets/gui_data_pick_item.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 54)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct GuiDataPickItemPacket { pub item_name: String, pub item_effect_name: String, diff --git a/crates/proto/src/version/v662/packets/hurt_armor.rs b/crates/proto/src/version/v662/packets/hurt_armor.rs index 291d24a1..3b99932a 100644 --- a/crates/proto/src/version/v662/packets/hurt_armor.rs +++ b/crates/proto/src/version/v662/packets/hurt_armor.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 38)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct HurtArmorPacket { #[endianness(var)] pub cause: i32, diff --git a/crates/proto/src/version/v662/packets/interact.rs b/crates/proto/src/version/v662/packets/interact.rs index a51caa97..a87c6e65 100644 --- a/crates/proto/src/version/v662/packets/interact.rs +++ b/crates/proto/src/version/v662/packets/interact.rs @@ -1,13 +1,11 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; -use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE}; +use bedrockrs_proto_core::ProtoCodec; use byteorder::{ReadBytesExt, WriteBytesExt}; -use std::io::Cursor; -use std::mem::size_of; -use tokio::io::AsyncReadExt; +use std::io::{Cursor, Read}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] enum Action { @@ -56,7 +54,7 @@ impl ProtoCodec for InteractPacket { action_stream.write_i8(stream.read_i8()?)?; let target_runtime_id = ::proto_deserialize(stream)?; - stream.read_to_end(action_stream)?; + stream.read_to_end(&mut action_stream)?; let mut action_cursor = Cursor::new(action_stream.as_slice()); let action = ::proto_deserialize(&mut action_cursor)?; diff --git a/crates/proto/src/version/v662/packets/inventory_content.rs b/crates/proto/src/version/v662/packets/inventory_content.rs index e68842e4..00ce0199 100644 --- a/crates/proto/src/version/v662/packets/inventory_content.rs +++ b/crates/proto/src/version/v662/packets/inventory_content.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkItemStackDescriptor; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 49)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct InventoryContentPacket { #[endianness(var)] pub inventory_id: u32, diff --git a/crates/proto/src/version/v662/packets/inventory_slot.rs b/crates/proto/src/version/v662/packets/inventory_slot.rs index 3e2ee32c..6d3ad8fd 100644 --- a/crates/proto/src/version/v662/packets/inventory_slot.rs +++ b/crates/proto/src/version/v662/packets/inventory_slot.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::NetworkItemStackDescriptor; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 50)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct InventorySlotPacket { pub container_id: ContainerID, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/inventory_transaction.rs b/crates/proto/src/version/v662/packets/inventory_transaction.rs index ec1704f2..297c25bd 100644 --- a/crates/proto/src/version/v662/packets/inventory_transaction.rs +++ b/crates/proto/src/version/v662/packets/inventory_transaction.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ComplexInventoryTransaction; use crate::version::v662::types::InventoryTransaction; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct LegacySetItemSlotsEntry { pub container_enum: i8, // TODO: find container enum? #[vec_repr(u32)] @@ -11,7 +11,7 @@ struct LegacySetItemSlotsEntry { } #[gamepacket(id = 30)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct InventoryTransactionPacket { #[endianness(var)] pub raw_id: i32, diff --git a/crates/proto/src/version/v662/packets/item_component.rs b/crates/proto/src/version/v662/packets/item_component.rs index 64dcab05..e31d8503 100644 --- a/crates/proto/src/version/v662/packets/item_component.rs +++ b/crates/proto/src/version/v662/packets/item_component.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ItemsEntry { pub component_item_name: String, #[nbt] @@ -8,7 +8,7 @@ struct ItemsEntry { } #[gamepacket(id = 162)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemComponentPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/item_stack_request.rs b/crates/proto/src/version/v662/packets/item_stack_request.rs index 28c9821c..64971713 100644 --- a/crates/proto/src/version/v662/packets/item_stack_request.rs +++ b/crates/proto/src/version/v662/packets/item_stack_request.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{ItemStackRequestActionType, TextProcessingEven use crate::version::v662::types::ItemStackRequestSlotInfo; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ActionsEntry { pub action_type: ItemStackRequestActionType, pub amount: i8, @@ -10,7 +10,7 @@ struct ActionsEntry { pub destination: ItemStackRequestSlotInfo, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct RequestsEntry { #[endianness(var)] pub client_request_id: u32, @@ -24,7 +24,7 @@ struct RequestsEntry { } #[gamepacket(id = 147)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackRequestPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/item_stack_response.rs b/crates/proto/src/version/v662/packets/item_stack_response.rs index bcd51f94..aee8cc0a 100644 --- a/crates/proto/src/version/v662/packets/item_stack_response.rs +++ b/crates/proto/src/version/v662/packets/item_stack_response.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ItemStackResponseInfo; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 148)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackResponsePacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/lab_table.rs b/crates/proto/src/version/v662/packets/lab_table.rs index d735dc1b..7673ed12 100644 --- a/crates/proto/src/version/v662/packets/lab_table.rs +++ b/crates/proto/src/version/v662/packets/lab_table.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::LabTableReactionType; use crate::version::v662::types::BlockPos; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] enum Type { @@ -12,7 +12,7 @@ enum Type { } #[gamepacket(id = 109)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LabTablePacket { pub lab_table_packet_type: Type, pub position: BlockPos, diff --git a/crates/proto/src/version/v662/packets/lectern_update.rs b/crates/proto/src/version/v662/packets/lectern_update.rs index a24b8d08..673819d2 100644 --- a/crates/proto/src/version/v662/packets/lectern_update.rs +++ b/crates/proto/src/version/v662/packets/lectern_update.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 125)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LecternUpdatePacket { pub new_page_to_show: i8, pub total_pages: i8, diff --git a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs index 9954e4ea..0824bd1a 100644 --- a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs +++ b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs @@ -2,11 +2,11 @@ use crate::version::v662::enums::{ActorDamageCause, ActorType, MinecraftEventing use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; -use bedrockrs_proto_core::{ProtoCodec, ProtoCodecVAR}; +use bedrockrs_proto_core::ProtoCodec; use std::io::{Cursor, Read}; use varint_rs::{VarintReader, VarintWriter}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] @@ -17,7 +17,7 @@ enum AgentResult { QueryResultTrue = 3, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] diff --git a/crates/proto/src/version/v662/packets/lesson_progress.rs b/crates/proto/src/version/v662/packets/lesson_progress.rs index 1a0d83c5..d6fe51b7 100644 --- a/crates/proto/src/version/v662/packets/lesson_progress.rs +++ b/crates/proto/src/version/v662/packets/lesson_progress.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::LessonAction; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 183)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LessonProgressPacket { pub lesson_action: LessonAction, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/level_chunk.rs b/crates/proto/src/version/v662/packets/level_chunk.rs index 062985d6..c83e4a63 100644 --- a/crates/proto/src/version/v662/packets/level_chunk.rs +++ b/crates/proto/src/version/v662/packets/level_chunk.rs @@ -1,8 +1,14 @@ use crate::version::v662::types::ChunkPos; use bedrockrs_macros::{gamepacket, ProtoCodec}; +#[derive(ProtoCodec, Clone, Debug)] +struct CacheBlobEntry { + #[endianness(var)] + blob: u64 +} + #[gamepacket(id = 58)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LevelChunkPacket { pub chunk_position: ChunkPos, #[endianness(var)] @@ -11,7 +17,7 @@ pub struct LevelChunkPacket { pub cache_enabled: bool, #[vec_repr(u32)] #[vec_endianness(var)] - pub cache_blobs: Vec, + pub cache_blobs: Vec, pub serialized_chunk_data: String, } diff --git a/crates/proto/src/version/v662/packets/level_event.rs b/crates/proto/src/version/v662/packets/level_event.rs index b5dceba2..c7ab668b 100644 --- a/crates/proto/src/version/v662/packets/level_event.rs +++ b/crates/proto/src/version/v662/packets/level_event.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 25)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LevelEventPacket { pub event_id: LevelEvent, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/level_event_generic.rs b/crates/proto/src/version/v662/packets/level_event_generic.rs index 548b0a41..c992255a 100644 --- a/crates/proto/src/version/v662/packets/level_event_generic.rs +++ b/crates/proto/src/version/v662/packets/level_event_generic.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::LevelEvent; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 124)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LevelEventGenericPacket { pub event_id: LevelEvent, #[nbt] diff --git a/crates/proto/src/version/v662/packets/level_sound_event.rs b/crates/proto/src/version/v662/packets/level_sound_event.rs index ff8f7841..f3d7ae69 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 123)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LevelSoundEventPacket { pub event_id: Puv::Legacy::LevelSoundEvent, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs index e2f1bbb3..67432630 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs @@ -3,17 +3,15 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; -use byteorder::WriteBytesExt; +use byteorder::{ReadBytesExt, WriteBytesExt}; use std::io::Cursor; -use tokio::io::AsyncReadExt; +use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 24)] pub struct LevelSoundEventPacketV1 { pub event_id: Puv::Legacy::LevelSoundEvent, - #[endianness(le)] pub position: Vec3, - #[endianness(var)] pub data: i32, pub actor_type: ActorType, pub baby_mob: bool, @@ -63,9 +61,9 @@ impl ProtoCodec for LevelSoundEventPacketV1 { } fn get_size_prediction(&self) -> usize { - self.event_id.get_size_prediction() - + self.position.get_size_prediction() - + self.data.get_size_prediction() + size_of::() + + ProtoCodecLE::get_size_prediction(&self.position) + + ProtoCodecVAR::get_size_prediction(&self.data) + self.actor_type.get_size_prediction() + self.baby_mob.get_size_prediction() + self.global.get_size_prediction() diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs index 5bffb655..5bd5ddaf 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs @@ -5,14 +5,13 @@ use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use byteorder::{ReadBytesExt, WriteBytesExt}; use std::io::Cursor; +use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 120)] pub struct LevelSoundEventPacketV2 { pub event_id: Puv::Legacy::LevelSoundEvent, - #[endianness(le)] pub position: Vec3, - #[endianness(var)] pub data: i32, pub actor_identifier: String, pub baby_mob: bool, @@ -62,9 +61,9 @@ impl ProtoCodec for LevelSoundEventPacketV2 { } fn get_size_prediction(&self) -> usize { - self.event_id.get_size_prediction() - + self.position.get_size_prediction() - + self.data.get_size_prediction() + size_of::() + + ProtoCodecLE::get_size_prediction(&self.position) + + ProtoCodecVAR::get_size_prediction(&self.data) + self.actor_identifier.get_size_prediction() + self.baby_mob.get_size_prediction() + self.global.get_size_prediction() diff --git a/crates/proto/src/version/v662/packets/login.rs b/crates/proto/src/version/v662/packets/login.rs index 2c94ca6d..9197849c 100644 --- a/crates/proto/src/version/v662/packets/login.rs +++ b/crates/proto/src/version/v662/packets/login.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 1)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LoginPacket { #[endianness(be)] pub client_network_version: i32, diff --git a/crates/proto/src/version/v662/packets/map_create_locked_copy.rs b/crates/proto/src/version/v662/packets/map_create_locked_copy.rs index 065c974d..d390323e 100644 --- a/crates/proto/src/version/v662/packets/map_create_locked_copy.rs +++ b/crates/proto/src/version/v662/packets/map_create_locked_copy.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 131)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MapCreateLockedCopyPacket { pub original_map_id: ActorUniqueID, pub new_map_id: ActorUniqueID, diff --git a/crates/proto/src/version/v662/packets/map_info_request.rs b/crates/proto/src/version/v662/packets/map_info_request.rs index 8a8e5733..deec71db 100644 --- a/crates/proto/src/version/v662/packets/map_info_request.rs +++ b/crates/proto/src/version/v662/packets/map_info_request.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ClientPixelsListEntry { #[endianness(le)] pub pixel: u32, @@ -10,7 +10,7 @@ struct ClientPixelsListEntry { } #[gamepacket(id = 68)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MapInfoRequestPacket { pub map_unique_id: ActorUniqueID, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/mob_armor_equipment.rs b/crates/proto/src/version/v662/packets/mob_armor_equipment.rs index 14edd7a0..1a2f020a 100644 --- a/crates/proto/src/version/v662/packets/mob_armor_equipment.rs +++ b/crates/proto/src/version/v662/packets/mob_armor_equipment.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{ActorRuntimeID, NetworkItemStackDescriptor}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 32)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MobArmorEquipmentPacket { pub target_runtime_id: ActorRuntimeID, pub head: NetworkItemStackDescriptor, diff --git a/crates/proto/src/version/v662/packets/mob_effect.rs b/crates/proto/src/version/v662/packets/mob_effect.rs index 1e62d212..561f44fa 100644 --- a/crates/proto/src/version/v662/packets/mob_effect.rs +++ b/crates/proto/src/version/v662/packets/mob_effect.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] enum Event { @@ -12,7 +12,7 @@ enum Event { } #[gamepacket(id = 28)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MobEffectPacket { pub target_runtime_id: ActorRuntimeID, pub event_id: Event, diff --git a/crates/proto/src/version/v662/packets/mob_equipment.rs b/crates/proto/src/version/v662/packets/mob_equipment.rs index f39ec522..e220a454 100644 --- a/crates/proto/src/version/v662/packets/mob_equipment.rs +++ b/crates/proto/src/version/v662/packets/mob_equipment.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::{ActorRuntimeID, NetworkItemStackDescriptor}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 31)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MobEquipmentPacket { pub target_runtime_id: ActorRuntimeID, pub item: NetworkItemStackDescriptor, diff --git a/crates/proto/src/version/v662/packets/modal_form_request.rs b/crates/proto/src/version/v662/packets/modal_form_request.rs index 4af32dd3..2df489e7 100644 --- a/crates/proto/src/version/v662/packets/modal_form_request.rs +++ b/crates/proto/src/version/v662/packets/modal_form_request.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 100)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ModalFormRequestPacket { #[endianness(var)] pub form_id: u32, diff --git a/crates/proto/src/version/v662/packets/modal_form_response.rs b/crates/proto/src/version/v662/packets/modal_form_response.rs index b2790c55..c31c5738 100644 --- a/crates/proto/src/version/v662/packets/modal_form_response.rs +++ b/crates/proto/src/version/v662/packets/modal_form_response.rs @@ -2,10 +2,10 @@ use crate::version::v662::enums::ModalFormCancelReason; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 101)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ModalFormResponsePacket { #[endianness(var)] pub form_id: u32, - pub json_response: Option, // TODO: might not be string, dumb proto docs list this as std::optional - pub form_cancel_reason: Option // TODO: enum_repr + pub json_response: Option, + pub form_cancel_reason: Option } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/motion_prediction_hints.rs b/crates/proto/src/version/v662/packets/motion_prediction_hints.rs index 64321c0f..5d257722 100644 --- a/crates/proto/src/version/v662/packets/motion_prediction_hints.rs +++ b/crates/proto/src/version/v662/packets/motion_prediction_hints.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 157)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MotionPredictionHintsPacket { pub runtime_id: ActorRuntimeID, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/move_actor_absolute.rs b/crates/proto/src/version/v662/packets/move_actor_absolute.rs index cbf9c77a..7fa2c7c1 100644 --- a/crates/proto/src/version/v662/packets/move_actor_absolute.rs +++ b/crates/proto/src/version/v662/packets/move_actor_absolute.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::MoveActorAbsoluteData; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 18)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MoveActorAbsolutePacket { pub move_data: MoveActorAbsoluteData } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/move_actor_delta.rs b/crates/proto/src/version/v662/packets/move_actor_delta.rs index 4cf95c7b..e3b16302 100644 --- a/crates/proto/src/version/v662/packets/move_actor_delta.rs +++ b/crates/proto/src/version/v662/packets/move_actor_delta.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::MoveActorDeltaData; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 111)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MoveActorDeltaPacket { pub move_data: MoveActorDeltaData, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/move_player.rs b/crates/proto/src/version/v662/packets/move_player.rs index 321858ed..612715be 100644 --- a/crates/proto/src/version/v662/packets/move_player.rs +++ b/crates/proto/src/version/v662/packets/move_player.rs @@ -6,21 +6,16 @@ use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use bedrockrs_shared::actor_runtime_id::ActorRuntimeID; use byteorder::{ReadBytesExt, WriteBytesExt}; use std::io::{Cursor, Read}; -use tokio::io::AsyncReadExt; #[gamepacket(id = 19)] pub struct MovePlayerPacket { pub player_runtime_id: ActorRuntimeID, - #[endianness(le)] pub position: Vec3, - #[endianness(le)] pub rotation: Vec2, - #[endianness(le)] pub y_head_rotation: f32, pub position_mode: PlayerPositionModeComponent::PositionMode, pub on_ground: bool, pub riding_runtime_id: ActorRuntimeID, - #[endianness(var)] pub tick: u64, } @@ -79,13 +74,13 @@ impl ProtoCodec for MovePlayerPacket { fn get_size_prediction(&self) -> usize { self.player_runtime_id.get_size_prediction() - + self.position.get_size_prediction() - + self.rotation.get_size_prediction() - + self.y_head_rotation.get_size_prediction() + + ProtoCodecLE::get_size_prediction(&self.position) + + ProtoCodecLE::get_size_prediction(&self.rotation) + + ProtoCodecLE::get_size_prediction(&self.y_head_rotation) + self.position_mode.get_size_prediction() + self.on_ground.get_size_prediction() + self.riding_runtime_id.get_size_prediction() - + self.tick.get_size_prediction() + + ProtoCodecVAR::get_size_prediction(&self.tick) } } diff --git a/crates/proto/src/version/v662/packets/multiplayer_settings.rs b/crates/proto/src/version/v662/packets/multiplayer_settings.rs index 4574985a..72b40285 100644 --- a/crates/proto/src/version/v662/packets/multiplayer_settings.rs +++ b/crates/proto/src/version/v662/packets/multiplayer_settings.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::MultiplayerSettingsPacketType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 139)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MultiplayerSettingsPacket { pub multiplayer_settings_packet_type: MultiplayerSettingsPacketType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs b/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs index 5c4ecf4c..2a7c9432 100644 --- a/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs +++ b/crates/proto/src/version/v662/packets/network_chunk_publisher_update.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{BlockPos, ChunkPos}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 121)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct NetworkChunkPublisherUpdatePacket { pub new_view_position: BlockPos, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/network_settings.rs b/crates/proto/src/version/v662/packets/network_settings.rs index 70c6f1ce..4110db67 100644 --- a/crates/proto/src/version/v662/packets/network_settings.rs +++ b/crates/proto/src/version/v662/packets/network_settings.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::PacketCompressionAlgorithm; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 143)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct NetworkSettingsPacket { #[endianness(le)] pub compression_threshold: u16, diff --git a/crates/proto/src/version/v662/packets/network_stack_latency.rs b/crates/proto/src/version/v662/packets/network_stack_latency.rs index 1fc54d1b..57573e67 100644 --- a/crates/proto/src/version/v662/packets/network_stack_latency.rs +++ b/crates/proto/src/version/v662/packets/network_stack_latency.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 115)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct NetworkStackLatencyPacket { #[endianness(le)] pub creation_time: u64, diff --git a/crates/proto/src/version/v662/packets/npc_dialogue.rs b/crates/proto/src/version/v662/packets/npc_dialogue.rs index 20a727eb..8e64689d 100644 --- a/crates/proto/src/version/v662/packets/npc_dialogue.rs +++ b/crates/proto/src/version/v662/packets/npc_dialogue.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] @@ -10,7 +10,7 @@ enum NpcDialogueActionType { } #[gamepacket(id = 169)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct NpcDialoguePacket { #[endianness(le)] pub npc_raw_id: u64, diff --git a/crates/proto/src/version/v662/packets/npc_request.rs b/crates/proto/src/version/v662/packets/npc_request.rs index 678208f2..98a71370 100644 --- a/crates/proto/src/version/v662/packets/npc_request.rs +++ b/crates/proto/src/version/v662/packets/npc_request.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] enum RequestType { @@ -15,7 +15,7 @@ enum RequestType { } #[gamepacket(id = 98)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct NpcRequestPacket { pub npc_runtime_id: ActorRuntimeID, pub request_type: RequestType, diff --git a/crates/proto/src/version/v662/packets/on_screen_texture_animation.rs b/crates/proto/src/version/v662/packets/on_screen_texture_animation.rs index 7ef1b699..1200a758 100644 --- a/crates/proto/src/version/v662/packets/on_screen_texture_animation.rs +++ b/crates/proto/src/version/v662/packets/on_screen_texture_animation.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 130)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct OnScreenTextureAnimationPacket { #[endianness(le)] pub effect_id: u32, diff --git a/crates/proto/src/version/v662/packets/open_sign.rs b/crates/proto/src/version/v662/packets/open_sign.rs index 19651353..a96166eb 100644 --- a/crates/proto/src/version/v662/packets/open_sign.rs +++ b/crates/proto/src/version/v662/packets/open_sign.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 303)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct OpenSignPacket { pub pos: NetworkBlockPosition, pub is_front: bool, diff --git a/crates/proto/src/version/v662/packets/packet_violation_warning.rs b/crates/proto/src/version/v662/packets/packet_violation_warning.rs index ec4cd76d..f953b281 100644 --- a/crates/proto/src/version/v662/packets/packet_violation_warning.rs +++ b/crates/proto/src/version/v662/packets/packet_violation_warning.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{MinecraftPacketIds, PacketViolationSeverity, P use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 156)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PacketViolationWarningPacket { pub violation_type: PacketViolationType, pub violation_severity: PacketViolationSeverity, diff --git a/crates/proto/src/version/v662/packets/passenger_jump.rs b/crates/proto/src/version/v662/packets/passenger_jump.rs index abd40808..9f8e57df 100644 --- a/crates/proto/src/version/v662/packets/passenger_jump.rs +++ b/crates/proto/src/version/v662/packets/passenger_jump.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 20)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PassengerJumpPacket { #[endianness(var)] pub jump_scale: i32, diff --git a/crates/proto/src/version/v662/packets/photo_transfer.rs b/crates/proto/src/version/v662/packets/photo_transfer.rs index b11739b2..1e1777d0 100644 --- a/crates/proto/src/version/v662/packets/photo_transfer.rs +++ b/crates/proto/src/version/v662/packets/photo_transfer.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::PhotoType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 99)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PhotoTransferPacket { pub photo_name: String, pub photo_data: String, diff --git a/crates/proto/src/version/v662/packets/play_sound.rs b/crates/proto/src/version/v662/packets/play_sound.rs index 2f5026ba..0ae2d0f4 100644 --- a/crates/proto/src/version/v662/packets/play_sound.rs +++ b/crates/proto/src/version/v662/packets/play_sound.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 86)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlaySoundPacket { pub name: String, pub position: NetworkBlockPosition, diff --git a/crates/proto/src/version/v662/packets/play_status.rs b/crates/proto/src/version/v662/packets/play_status.rs index 4b9eb9eb..a70653bc 100644 --- a/crates/proto/src/version/v662/packets/play_status.rs +++ b/crates/proto/src/version/v662/packets/play_status.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::PlayStatus; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 2)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayStatusPacket { pub status: PlayStatus } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/player_action.rs b/crates/proto/src/version/v662/packets/player_action.rs index 3337d0df..cd548896 100644 --- a/crates/proto/src/version/v662/packets/player_action.rs +++ b/crates/proto/src/version/v662/packets/player_action.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::{ActorRuntimeID, NetworkBlockPosition}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 36)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerActionPacket { pub player_runtime_id: ActorRuntimeID, pub action: PlayerActionType, diff --git a/crates/proto/src/version/v662/packets/player_armor_damage.rs b/crates/proto/src/version/v662/packets/player_armor_damage.rs index 2728bb45..393f1547 100644 --- a/crates/proto/src/version/v662/packets/player_armor_damage.rs +++ b/crates/proto/src/version/v662/packets/player_armor_damage.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 149)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerArmorDamagePacket { pub slot_bitset: i8, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/player_auth_input.rs b/crates/proto/src/version/v662/packets/player_auth_input.rs index b690f8b9..e53b7d94 100644 --- a/crates/proto/src/version/v662/packets/player_auth_input.rs +++ b/crates/proto/src/version/v662/packets/player_auth_input.rs @@ -9,7 +9,7 @@ use crate::version::v662::types::{ use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; -use bedrockrs_proto_core::{ProtoCodec, ProtoCodecBE, ProtoCodecLE, ProtoCodecVAR}; +use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use std::io::Cursor; #[repr(u64)] @@ -65,7 +65,7 @@ enum PlayerAuthInputFlags { PaddleRight = 1 << 48, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ActionsEntry { pub action_type: ItemStackRequestActionType, pub amount: i8, @@ -73,7 +73,7 @@ struct ActionsEntry { pub destination: ItemStackRequestSlotInfo, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct PerformItemStackRequestData { #[endianness(var)] pub client_request_id: u32, @@ -86,7 +86,7 @@ struct PerformItemStackRequestData { pub strings_to_filter_origin: TextProcessingEventOrigin, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ClientPredictedVehicleData { #[endianness(le)] pub vehicle_rotation: Vec2, @@ -95,30 +95,21 @@ struct ClientPredictedVehicleData { #[gamepacket(id = 144)] pub struct PlayerAuthInputPacket { - #[endianness(le)] pub player_rotation: Vec2, - #[endianness(le)] pub player_position: Vec3, - #[endianness(le)] pub move_vector: Vec3, - #[endianness(le)] pub player_head_rotation: f32, - #[endianness(var)] pub input_data: u64, pub input_mode: InputMode, pub play_mode: ClientPlayMode, pub new_interaction_model: NewInteractionModel, - #[endianness(le)] pub vr_gaze_direction: Option>, // If play_mode == ClientPlayMode::Reality - #[endianness(var)] pub client_tick: u64, - #[endianness(le)] pub velocity: Vec3, pub item_use_transaction: Option, // If input_data has PlayerAuthInputPacket::InputData::PerformItemInteraction set. pub item_stack_request: Option, // If input data has PlayerAuthInputPacket::InputData::PerformItemStackRequest set. pub player_block_actions: Option, // If input data has PlayerAuthInputPacket::InputData::PerformBlockActions set. pub client_predicted_vehicle: Option, // If input data has PlayerAuthInputPacket::InputData::IsInClientPredictedVehicle set. - #[endianness(le)] pub analog_move_vector: Vec2, } @@ -143,25 +134,25 @@ impl ProtoCodec for PlayerAuthInputPacket { } ::proto_serialize(&self.client_tick, stream)?; as ProtoCodecLE>::proto_serialize(&self.velocity, stream)?; - if (&self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0) { + if &self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0 { ::proto_serialize( &self.item_use_transaction.as_ref().unwrap(), stream, )?; } - if (&self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0) { + if &self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0 { ::proto_serialize( &self.item_stack_request.as_ref().unwrap(), stream, )?; } - if (&self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { + if &self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0 { ::proto_serialize( &self.player_block_actions.as_ref().unwrap(), stream, )?; } - if (&self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 != 0) { + if &self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 != 0 { ::proto_serialize( &self.client_predicted_vehicle.as_ref().unwrap(), stream, @@ -189,32 +180,32 @@ impl ProtoCodec for PlayerAuthInputPacket { }; let client_tick = ::proto_deserialize(stream)?; let velocity = as ProtoCodecLE>::proto_deserialize(stream)?; - let item_use_transaction = match (&input_data + let item_use_transaction = match &input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 - != 0) + != 0 { true => Some( ::proto_deserialize(stream)?, ), false => None, }; - let item_stack_request = match (&input_data + let item_stack_request = match &input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 - != 0) + != 0 { true => Some(::proto_deserialize(stream)?), false => None, }; let player_block_actions = - match (&input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { + match &input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0 { true => Some(::proto_deserialize( stream, )?), false => None, }; - let client_predicted_vehicle = match (&input_data + let client_predicted_vehicle = match &input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 - != 0) + != 0 { true => Some(::proto_deserialize(stream)?), false => None, @@ -256,20 +247,20 @@ impl ProtoCodec for PlayerAuthInputPacket { } + ProtoCodecVAR::get_size_prediction(&self.client_tick) + ProtoCodecLE::get_size_prediction(&self.velocity) - + match (&self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0) { + + match &self.input_data & PlayerAuthInputFlags::PerformItemInteraction as u64 != 0 { true => self.item_use_transaction.get_size_prediction(), false => 0, } - + match (&self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0) { + + match &self.input_data & PlayerAuthInputFlags::PerformItemStackRequest as u64 != 0 { true => self.item_stack_request.get_size_prediction(), false => 0, } - + match (&self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0) { + + match &self.input_data & PlayerAuthInputFlags::PerformBlockActions as u64 != 0 { true => self.player_block_actions.get_size_prediction(), false => 0, } - + match (&self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 - != 0) + + match &self.input_data & PlayerAuthInputFlags::IsInClientPredictedVehicle as u64 + != 0 { true => self.client_predicted_vehicle.get_size_prediction(), false => 0, diff --git a/crates/proto/src/version/v662/packets/player_enchant_options.rs b/crates/proto/src/version/v662/packets/player_enchant_options.rs index dafed832..c3b69db7 100644 --- a/crates/proto/src/version/v662/packets/player_enchant_options.rs +++ b/crates/proto/src/version/v662/packets/player_enchant_options.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ItemEnchants; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct OptionsEntry { #[endianness(var)] pub cost: u32, @@ -12,7 +12,7 @@ struct OptionsEntry { } #[gamepacket(id = 146)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerEnchantOptionsPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/player_fog.rs b/crates/proto/src/version/v662/packets/player_fog.rs index f80066ca..fa7c0fc1 100644 --- a/crates/proto/src/version/v662/packets/player_fog.rs +++ b/crates/proto/src/version/v662/packets/player_fog.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 160)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerFogPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/player_hotbar.rs b/crates/proto/src/version/v662/packets/player_hotbar.rs index 4143df2c..f07452e3 100644 --- a/crates/proto/src/version/v662/packets/player_hotbar.rs +++ b/crates/proto/src/version/v662/packets/player_hotbar.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ContainerID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 48)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerHotbarPacket { #[endianness(var)] pub selected_slot: u32, diff --git a/crates/proto/src/version/v662/packets/player_input.rs b/crates/proto/src/version/v662/packets/player_input.rs index 7f4c2080..8002617d 100644 --- a/crates/proto/src/version/v662/packets/player_input.rs +++ b/crates/proto/src/version/v662/packets/player_input.rs @@ -2,7 +2,7 @@ use bedrockrs_core::Vec2; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 57)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerInputPacket { #[endianness(le)] pub move_vector: Vec2, diff --git a/crates/proto/src/version/v662/packets/player_list.rs b/crates/proto/src/version/v662/packets/player_list.rs index db50e35f..b0403152 100644 --- a/crates/proto/src/version/v662/packets/player_list.rs +++ b/crates/proto/src/version/v662/packets/player_list.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::PlayerListPacketType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 63)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerListPacket { pub action: PlayerListPacketType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/player_skin.rs b/crates/proto/src/version/v662/packets/player_skin.rs index c478ba2f..6c81d6ce 100644 --- a/crates/proto/src/version/v662/packets/player_skin.rs +++ b/crates/proto/src/version/v662/packets/player_skin.rs @@ -3,7 +3,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use uuid::Uuid; #[gamepacket(id = 93)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerSkinPacket { pub uuid: Uuid, pub serialized_skin: SerializedSkin, diff --git a/crates/proto/src/version/v662/packets/player_start_item_cooldown.rs b/crates/proto/src/version/v662/packets/player_start_item_cooldown.rs index 640609a8..8dcb749d 100644 --- a/crates/proto/src/version/v662/packets/player_start_item_cooldown.rs +++ b/crates/proto/src/version/v662/packets/player_start_item_cooldown.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 176)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerStartItemCooldownPacket { pub item_category: String, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/player_toggle_crafter_slot_request.rs b/crates/proto/src/version/v662/packets/player_toggle_crafter_slot_request.rs index 83ce1b76..ecd6c46a 100644 --- a/crates/proto/src/version/v662/packets/player_toggle_crafter_slot_request.rs +++ b/crates/proto/src/version/v662/packets/player_toggle_crafter_slot_request.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 306)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerToggleCrafterSlotRequestPacket { #[endianness(le)] pub pos_x: i32, diff --git a/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs b/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs index accf60df..036b91f6 100644 --- a/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs +++ b/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::PositionTrackingId; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] enum Action { @@ -9,7 +9,7 @@ enum Action { } #[gamepacket(id = 154)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PositionTrackingDBClientRequestPacket { pub action: Action, pub id: PositionTrackingId, diff --git a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs index d9886553..5b938270 100644 --- a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs +++ b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::PositionTrackingId; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] enum Action { @@ -11,7 +11,7 @@ enum Action { } #[gamepacket(id = 153)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PositionTrackingDBServerBroadcastPacket { pub action: Action, pub id: PositionTrackingId, diff --git a/crates/proto/src/version/v662/packets/purchase_receipt.rs b/crates/proto/src/version/v662/packets/purchase_receipt.rs index 87851d48..87de1b05 100644 --- a/crates/proto/src/version/v662/packets/purchase_receipt.rs +++ b/crates/proto/src/version/v662/packets/purchase_receipt.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 92)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PurchaseReceiptPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/refresh_entitlements.rs b/crates/proto/src/version/v662/packets/refresh_entitlements.rs index 89d8c895..4176090e 100644 --- a/crates/proto/src/version/v662/packets/refresh_entitlements.rs +++ b/crates/proto/src/version/v662/packets/refresh_entitlements.rs @@ -1,5 +1,5 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 305)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RefreshEntitlementsPacket {} \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/remove_actor.rs b/crates/proto/src/version/v662/packets/remove_actor.rs index 0fed83d1..61209508 100644 --- a/crates/proto/src/version/v662/packets/remove_actor.rs +++ b/crates/proto/src/version/v662/packets/remove_actor.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 14)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RemoveActorPacket { pub target_actor_id: ActorUniqueID } diff --git a/crates/proto/src/version/v662/packets/remove_objective.rs b/crates/proto/src/version/v662/packets/remove_objective.rs index cb7a0524..fe821832 100644 --- a/crates/proto/src/version/v662/packets/remove_objective.rs +++ b/crates/proto/src/version/v662/packets/remove_objective.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 106)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RemoveObjectivePacket { pub objective_name: String, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/remove_volume_entity.rs b/crates/proto/src/version/v662/packets/remove_volume_entity.rs index a1884ad7..157ba6b7 100644 --- a/crates/proto/src/version/v662/packets/remove_volume_entity.rs +++ b/crates/proto/src/version/v662/packets/remove_volume_entity.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::EntityNetID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 167)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RemoveVolumeEntityPacket { pub entity_network_id: EntityNetID, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/request_ability.rs b/crates/proto/src/version/v662/packets/request_ability.rs index 9c3c1386..07d335b1 100644 --- a/crates/proto/src/version/v662/packets/request_ability.rs +++ b/crates/proto/src/version/v662/packets/request_ability.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::AbilitiesIndex; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum Type { @@ -21,7 +21,7 @@ pub enum Type { // VERIFY: default_values. They seem to be incorrectly documented. #[gamepacket(id = 184)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RequestAbilityPacket { pub ability: AbilitiesIndex, pub value_type: Type, diff --git a/crates/proto/src/version/v662/packets/request_chunk_radius.rs b/crates/proto/src/version/v662/packets/request_chunk_radius.rs index cf275607..86e89761 100644 --- a/crates/proto/src/version/v662/packets/request_chunk_radius.rs +++ b/crates/proto/src/version/v662/packets/request_chunk_radius.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 69)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RequestChunkRadiusPacket { #[endianness(var)] pub chunk_radius: i32, diff --git a/crates/proto/src/version/v662/packets/request_network_settings.rs b/crates/proto/src/version/v662/packets/request_network_settings.rs index a9b40271..cb35f874 100644 --- a/crates/proto/src/version/v662/packets/request_network_settings.rs +++ b/crates/proto/src/version/v662/packets/request_network_settings.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 193)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RequestNetworkSettingsPacket { #[endianness(be)] pub client_network_version: i32, diff --git a/crates/proto/src/version/v662/packets/request_permissions.rs b/crates/proto/src/version/v662/packets/request_permissions.rs index a820e396..dd5d81e4 100644 --- a/crates/proto/src/version/v662/packets/request_permissions.rs +++ b/crates/proto/src/version/v662/packets/request_permissions.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::PlayerPermissionLevel; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 185)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RequestPermissionsPacket { #[endianness(le)] pub target_player_raw_id: i64, diff --git a/crates/proto/src/version/v662/packets/resource_pack_chunk_data.rs b/crates/proto/src/version/v662/packets/resource_pack_chunk_data.rs index b4ef87e9..baef8d51 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_chunk_data.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_chunk_data.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 83)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ResourcePackChunkDataPacket { pub resource_name: String, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/resource_pack_chunk_request.rs b/crates/proto/src/version/v662/packets/resource_pack_chunk_request.rs index 998d0344..11fa13d1 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_chunk_request.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_chunk_request.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 84)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ResourcePackChunkRequestPacket { pub resource_name: String, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/resource_pack_client_response.rs b/crates/proto/src/version/v662/packets/resource_pack_client_response.rs index 320d827a..420bd712 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_client_response.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_client_response.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ResourcePackResponse; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 8)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ResourcePackClientResponsePacket { pub response: ResourcePackResponse, #[vec_repr(u16)] diff --git a/crates/proto/src/version/v662/packets/resource_pack_data_info.rs b/crates/proto/src/version/v662/packets/resource_pack_data_info.rs index ec24c7a3..c7ce3670 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_data_info.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_data_info.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::PackType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 82)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ResourcePackDataInfoPacket { pub resource_name: String, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/resource_pack_stack.rs b/crates/proto/src/version/v662/packets/resource_pack_stack.rs index bc12014c..85d40c64 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_stack.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_stack.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::{BaseGameVersion, Experiments}; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct PackEntry { pub id: String, pub version: String, @@ -9,7 +9,7 @@ struct PackEntry { } #[gamepacket(id = 7)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ResourcePackStackPacket { pub texture_pack_required: bool, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/resource_packs_info.rs b/crates/proto/src/version/v662/packets/resource_packs_info.rs index 7c05660e..b5570bd1 100644 --- a/crates/proto/src/version/v662/packets/resource_packs_info.rs +++ b/crates/proto/src/version/v662/packets/resource_packs_info.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct BehaviourPackEntry { pub id: String, pub version: String, @@ -12,7 +12,7 @@ struct BehaviourPackEntry { pub has_scripts: bool, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ResourcePackEntry { pub id: String, pub version: String, @@ -25,14 +25,14 @@ struct ResourcePackEntry { pub is_ray_tracing_capable: bool, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct CDNUrl { pub first: String, pub second: String, } #[gamepacket(id = 6)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ResourcePacksInfoPacket { pub resource_pack_required: bool, pub has_addon_packs: bool, diff --git a/crates/proto/src/version/v662/packets/respawn.rs b/crates/proto/src/version/v662/packets/respawn.rs index 41240d2f..a5c6e760 100644 --- a/crates/proto/src/version/v662/packets/respawn.rs +++ b/crates/proto/src/version/v662/packets/respawn.rs @@ -4,7 +4,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 45)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RespawnPacket { #[endianness(le)] pub position: Vec3, diff --git a/crates/proto/src/version/v662/packets/script_message.rs b/crates/proto/src/version/v662/packets/script_message.rs index c4291f70..387c73f8 100644 --- a/crates/proto/src/version/v662/packets/script_message.rs +++ b/crates/proto/src/version/v662/packets/script_message.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 177)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ScriptMessagePacket { pub message_id: String, pub message_value: String, diff --git a/crates/proto/src/version/v662/packets/server_player_post_move_position.rs b/crates/proto/src/version/v662/packets/server_player_post_move_position.rs index 4c332a48..d5628980 100644 --- a/crates/proto/src/version/v662/packets/server_player_post_move_position.rs +++ b/crates/proto/src/version/v662/packets/server_player_post_move_position.rs @@ -2,7 +2,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 16)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ServerPlayerPostMovePositionPacket { #[endianness(le)] pub pos: Vec3, diff --git a/crates/proto/src/version/v662/packets/server_settings_request.rs b/crates/proto/src/version/v662/packets/server_settings_request.rs index d72abd9b..1598f2a5 100644 --- a/crates/proto/src/version/v662/packets/server_settings_request.rs +++ b/crates/proto/src/version/v662/packets/server_settings_request.rs @@ -1,5 +1,5 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 102)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ServerSettingsRequestPacket {} \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/server_settings_response.rs b/crates/proto/src/version/v662/packets/server_settings_response.rs index dec5cc11..2f3ce4b9 100644 --- a/crates/proto/src/version/v662/packets/server_settings_response.rs +++ b/crates/proto/src/version/v662/packets/server_settings_response.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 103)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ServerSettingsResponsePacket { #[endianness(var)] pub form_id: u32, diff --git a/crates/proto/src/version/v662/packets/server_stats.rs b/crates/proto/src/version/v662/packets/server_stats.rs index ae4f95bd..4279457a 100644 --- a/crates/proto/src/version/v662/packets/server_stats.rs +++ b/crates/proto/src/version/v662/packets/server_stats.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 192)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ServerStatsPacket { #[endianness(le)] pub server_time: f32, diff --git a/crates/proto/src/version/v662/packets/server_to_client_handshake.rs b/crates/proto/src/version/v662/packets/server_to_client_handshake.rs index aea50a82..0650a1ea 100644 --- a/crates/proto/src/version/v662/packets/server_to_client_handshake.rs +++ b/crates/proto/src/version/v662/packets/server_to_client_handshake.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 3)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ServerToClientHandshakePacket { pub handshake_web_token: String, } diff --git a/crates/proto/src/version/v662/packets/set_actor_data.rs b/crates/proto/src/version/v662/packets/set_actor_data.rs index b6b44728..01d13773 100644 --- a/crates/proto/src/version/v662/packets/set_actor_data.rs +++ b/crates/proto/src/version/v662/packets/set_actor_data.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{ActorRuntimeID, DataItem, PropertySyncData}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 39)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetActorDataPacket { pub target_runtime_id: ActorRuntimeID, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/set_actor_link.rs b/crates/proto/src/version/v662/packets/set_actor_link.rs index 24ea4b49..0fa7ab8c 100644 --- a/crates/proto/src/version/v662/packets/set_actor_link.rs +++ b/crates/proto/src/version/v662/packets/set_actor_link.rs @@ -2,7 +2,7 @@ use crate::version::v729::types::actor_link::ActorLink; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 41)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetActorLinkPacket { pub link: ActorLink, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/set_actor_motion.rs b/crates/proto/src/version/v662/packets/set_actor_motion.rs index 0613a57c..b07de6c2 100644 --- a/crates/proto/src/version/v662/packets/set_actor_motion.rs +++ b/crates/proto/src/version/v662/packets/set_actor_motion.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 40)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetActorMotionPacket { pub target_runtime_id: ActorRuntimeID, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/set_commands_enabled.rs b/crates/proto/src/version/v662/packets/set_commands_enabled.rs index 9ce27b5e..8bc85bdf 100644 --- a/crates/proto/src/version/v662/packets/set_commands_enabled.rs +++ b/crates/proto/src/version/v662/packets/set_commands_enabled.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 59)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetCommandsEnabledPacket { pub commands_enabled: bool, } diff --git a/crates/proto/src/version/v662/packets/set_default_game_type.rs b/crates/proto/src/version/v662/packets/set_default_game_type.rs index 564f972a..66836608 100644 --- a/crates/proto/src/version/v662/packets/set_default_game_type.rs +++ b/crates/proto/src/version/v662/packets/set_default_game_type.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::GameType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 105)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetDefaultGameTypePacket { pub default_game_type: GameType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/set_difficulty.rs b/crates/proto/src/version/v662/packets/set_difficulty.rs index f72701eb..97eb83ca 100644 --- a/crates/proto/src/version/v662/packets/set_difficulty.rs +++ b/crates/proto/src/version/v662/packets/set_difficulty.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::Difficulty; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 60)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetDifficultyPacket { pub difficulty: Difficulty, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/set_display_objective.rs b/crates/proto/src/version/v662/packets/set_display_objective.rs index e75e3ebf..0d60da5d 100644 --- a/crates/proto/src/version/v662/packets/set_display_objective.rs +++ b/crates/proto/src/version/v662/packets/set_display_objective.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ObjectiveSortOrder; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 107)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetDisplayObjectivePacket { pub display_slot_name: String, pub objective_name: String, diff --git a/crates/proto/src/version/v662/packets/set_health.rs b/crates/proto/src/version/v662/packets/set_health.rs index b44b2614..f5115f48 100644 --- a/crates/proto/src/version/v662/packets/set_health.rs +++ b/crates/proto/src/version/v662/packets/set_health.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 42)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetHealthPacket { #[endianness(var)] pub health: i32, diff --git a/crates/proto/src/version/v662/packets/set_hud.rs b/crates/proto/src/version/v662/packets/set_hud.rs index 394380e9..3b141611 100644 --- a/crates/proto/src/version/v662/packets/set_hud.rs +++ b/crates/proto/src/version/v662/packets/set_hud.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{HudElement, HudVisibility}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 308)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetHudPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/set_last_hurt_by.rs b/crates/proto/src/version/v662/packets/set_last_hurt_by.rs index f675cd75..8d13edae 100644 --- a/crates/proto/src/version/v662/packets/set_last_hurt_by.rs +++ b/crates/proto/src/version/v662/packets/set_last_hurt_by.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ActorType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 96)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetLastHurtByPacket { pub last_hurt_by: ActorType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs b/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs index fbff4a90..2f914c5b 100644 --- a/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs +++ b/crates/proto/src/version/v662/packets/set_local_player_as_initialized.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 113)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetLocalPlayerAsInitializedPacket { pub player_id: ActorRuntimeID, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/set_player_game_type.rs b/crates/proto/src/version/v662/packets/set_player_game_type.rs index d6000169..89fd0628 100644 --- a/crates/proto/src/version/v662/packets/set_player_game_type.rs +++ b/crates/proto/src/version/v662/packets/set_player_game_type.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::GameType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 62)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetPlayerGameTypePacket { pub player_game_type: GameType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/set_player_inventory_options.rs b/crates/proto/src/version/v662/packets/set_player_inventory_options.rs index b3ab0950..4942e8b7 100644 --- a/crates/proto/src/version/v662/packets/set_player_inventory_options.rs +++ b/crates/proto/src/version/v662/packets/set_player_inventory_options.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{InventoryLayout, InventoryLeftTabIndex, Invent use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 307)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetPlayerInventoryOptionsPacket { pub left_inventory_tab: InventoryLeftTabIndex, pub right_inventory_tab: InventoryRightTabIndex, diff --git a/crates/proto/src/version/v662/packets/set_score.rs b/crates/proto/src/version/v662/packets/set_score.rs index 3d5b8b37..59fcf9ad 100644 --- a/crates/proto/src/version/v662/packets/set_score.rs +++ b/crates/proto/src/version/v662/packets/set_score.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ScorePacketType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 108)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetScorePacket { pub score_packet_type: ScorePacketType, } diff --git a/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs b/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs index a0230ef8..69fe7578 100644 --- a/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs +++ b/crates/proto/src/version/v662/packets/set_scoreboard_identity.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ScoreboardIdentityPacketType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 112)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetScoreboardIdentityPacket { pub scoreboard_identity_packet_type: ScoreboardIdentityPacketType, } diff --git a/crates/proto/src/version/v662/packets/set_spawn_position.rs b/crates/proto/src/version/v662/packets/set_spawn_position.rs index 96a6fb80..91dac9cc 100644 --- a/crates/proto/src/version/v662/packets/set_spawn_position.rs +++ b/crates/proto/src/version/v662/packets/set_spawn_position.rs @@ -3,10 +3,11 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 43)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetSpawnPositionPacket { pub spawn_position_type: SpawnPositionType, pub block_position: NetworkBlockPosition, + #[endianness(var)] pub dimension_type: i32, pub spawn_block_pos: NetworkBlockPosition, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/set_time.rs b/crates/proto/src/version/v662/packets/set_time.rs index b89adfcf..a08d5f8e 100644 --- a/crates/proto/src/version/v662/packets/set_time.rs +++ b/crates/proto/src/version/v662/packets/set_time.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 10)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetTimePacket { #[endianness(var)] pub time: i32, diff --git a/crates/proto/src/version/v662/packets/set_title.rs b/crates/proto/src/version/v662/packets/set_title.rs index fd35c4bf..e34367ad 100644 --- a/crates/proto/src/version/v662/packets/set_title.rs +++ b/crates/proto/src/version/v662/packets/set_title.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] @@ -17,7 +17,7 @@ enum TitleType { } #[gamepacket(id = 88)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SetTitlePacket { pub title_type: TitleType, pub title_text: String, diff --git a/crates/proto/src/version/v662/packets/settings_command.rs b/crates/proto/src/version/v662/packets/settings_command.rs index 83dc7120..42ddacf5 100644 --- a/crates/proto/src/version/v662/packets/settings_command.rs +++ b/crates/proto/src/version/v662/packets/settings_command.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 140)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SettingsCommandPacket { pub command: String, pub suppress_output: bool, diff --git a/crates/proto/src/version/v662/packets/show_credits.rs b/crates/proto/src/version/v662/packets/show_credits.rs index cbcd7787..b77c46b5 100644 --- a/crates/proto/src/version/v662/packets/show_credits.rs +++ b/crates/proto/src/version/v662/packets/show_credits.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] @@ -11,7 +11,7 @@ enum CreditsState { } #[gamepacket(id = 75)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ShowCreditsPacket { pub player_runtime_id: ActorRuntimeID, pub credits_state: CreditsState diff --git a/crates/proto/src/version/v662/packets/show_profile.rs b/crates/proto/src/version/v662/packets/show_profile.rs index 13464ff5..9b03e532 100644 --- a/crates/proto/src/version/v662/packets/show_profile.rs +++ b/crates/proto/src/version/v662/packets/show_profile.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 104)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ShowProfilePacket { pub player_xuid: String, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/show_store_offer.rs b/crates/proto/src/version/v662/packets/show_store_offer.rs index 91b8809b..6a2f6e25 100644 --- a/crates/proto/src/version/v662/packets/show_store_offer.rs +++ b/crates/proto/src/version/v662/packets/show_store_offer.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ShowStoreOfferRedirectType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 91)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ShowStoreOfferPacket { pub product_id: String, pub redirect_type: ShowStoreOfferRedirectType, diff --git a/crates/proto/src/version/v662/packets/simple_event.rs b/crates/proto/src/version/v662/packets/simple_event.rs index ba86ccb6..f41f0e4f 100644 --- a/crates/proto/src/version/v662/packets/simple_event.rs +++ b/crates/proto/src/version/v662/packets/simple_event.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u16)] #[enum_endianness(le)] #[repr(u16)] @@ -12,7 +12,7 @@ enum Subtype { } #[gamepacket(id = 64)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SimpleEventPacket { pub simple_event_type: Subtype, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/simulation_type.rs b/crates/proto/src/version/v662/packets/simulation_type.rs index fb3af786..f6ae0a58 100644 --- a/crates/proto/src/version/v662/packets/simulation_type.rs +++ b/crates/proto/src/version/v662/packets/simulation_type.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::SimulationType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 168)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SimulationTypePacket { pub sim_type: SimulationType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/spawn_experience_orb.rs b/crates/proto/src/version/v662/packets/spawn_experience_orb.rs index 4a45767c..bb776c4e 100644 --- a/crates/proto/src/version/v662/packets/spawn_experience_orb.rs +++ b/crates/proto/src/version/v662/packets/spawn_experience_orb.rs @@ -2,7 +2,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 66)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SpawnExperienceOrbPacket { #[endianness(le)] pub position: Vec3, diff --git a/crates/proto/src/version/v662/packets/spawn_particle_effect.rs b/crates/proto/src/version/v662/packets/spawn_particle_effect.rs index ad0faa18..0f1690a8 100644 --- a/crates/proto/src/version/v662/packets/spawn_particle_effect.rs +++ b/crates/proto/src/version/v662/packets/spawn_particle_effect.rs @@ -3,7 +3,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 118)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SpawnParticleEffectPacket { pub dimension_id: i8, pub actor_id: ActorUniqueID, diff --git a/crates/proto/src/version/v662/packets/start_game.rs b/crates/proto/src/version/v662/packets/start_game.rs index ec8e194e..defd532c 100644 --- a/crates/proto/src/version/v662/packets/start_game.rs +++ b/crates/proto/src/version/v662/packets/start_game.rs @@ -4,7 +4,7 @@ use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct BlockProperty { pub block_name: String, #[nbt] @@ -12,7 +12,7 @@ struct BlockProperty { } #[gamepacket(id = 11)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct StartGamePacket { pub target_actor_id: ActorUniqueID, pub target_runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/stop_sound.rs b/crates/proto/src/version/v662/packets/stop_sound.rs index 6fd0bfbb..0479f354 100644 --- a/crates/proto/src/version/v662/packets/stop_sound.rs +++ b/crates/proto/src/version/v662/packets/stop_sound.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 87)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct StopSoundPacket { pub sound_name: String, pub stop_all_sounds: bool, diff --git a/crates/proto/src/version/v662/packets/structure_block_update.rs b/crates/proto/src/version/v662/packets/structure_block_update.rs index c6ad1ae9..0c2b1fd6 100644 --- a/crates/proto/src/version/v662/packets/structure_block_update.rs +++ b/crates/proto/src/version/v662/packets/structure_block_update.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{NetworkBlockPosition, StructureEditorData}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 90)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct StructureBlockUpdatePacket { pub block_position: NetworkBlockPosition, pub structure_data: StructureEditorData, diff --git a/crates/proto/src/version/v662/packets/structure_data_request.rs b/crates/proto/src/version/v662/packets/structure_data_request.rs index c749fceb..03b51928 100644 --- a/crates/proto/src/version/v662/packets/structure_data_request.rs +++ b/crates/proto/src/version/v662/packets/structure_data_request.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::{NetworkBlockPosition, StructureSettings}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 132)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct StructureDataRequestPacket { pub structure_name: String, pub structure_position: NetworkBlockPosition, diff --git a/crates/proto/src/version/v662/packets/structure_data_response.rs b/crates/proto/src/version/v662/packets/structure_data_response.rs index 81b301f0..59dba00d 100644 --- a/crates/proto/src/version/v662/packets/structure_data_response.rs +++ b/crates/proto/src/version/v662/packets/structure_data_response.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::StructureTemplateResponseType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 133)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct StructureDataResponsePacket { pub structure_name: String, #[nbt] diff --git a/crates/proto/src/version/v662/packets/sub_chunk.rs b/crates/proto/src/version/v662/packets/sub_chunk.rs index 8e8af09d..b1c4b732 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk.rs @@ -42,11 +42,8 @@ struct SubChunkDataEntry { #[gamepacket(id = 174)] pub struct SubChunkPacket { pub cache_enabled: bool, - #[endianness(var)] pub dimension_type: i32, pub center_pos: SubChunkPos, - #[vec_repr(u32)] - #[vec_endianness(le)] pub sub_chunk_data: Vec, } @@ -59,8 +56,8 @@ impl ProtoCodec for SubChunkPacket { for i in &self.sub_chunk_data { i.sub_chunk_pos_offset.proto_serialize(stream)?; i.sub_chunk_request_result.proto_serialize(stream)?; - if (i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir - || self.cache_enabled) + if i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir + || self.cache_enabled { i.serialized_sub_chunk .as_ref() @@ -68,7 +65,7 @@ impl ProtoCodec for SubChunkPacket { .proto_serialize(stream)?; } i.height_map_data_type.proto_serialize(stream)?; - if (i.height_map_data_type == HeightMapDataType::HasData) { + if i.height_map_data_type == HeightMapDataType::HasData { let height_map = i.sub_chunk_height_map.as_ref().unwrap(); for x in height_map { for y in x { @@ -76,7 +73,7 @@ impl ProtoCodec for SubChunkPacket { } } } - if (self.cache_enabled) { + if self.cache_enabled { ::proto_serialize(&i.blob_id.as_ref().unwrap(), stream)?; } } @@ -94,16 +91,16 @@ impl ProtoCodec for SubChunkPacket { for _ in 0..len { let sub_chunk_pos_offset = SubChunkPosOffset::proto_deserialize(stream)?; let sub_chunk_request_result = SubChunkRequestResult::proto_deserialize(stream)?; - let serialized_sub_chunk = match (sub_chunk_request_result + let serialized_sub_chunk = match sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir - || cache_enabled) + || cache_enabled { true => Some(String::proto_deserialize(stream)?), false => None, }; let height_map_data_type = HeightMapDataType::proto_deserialize(stream)?; let sub_chunk_height_map = - match (height_map_data_type == HeightMapDataType::HasData) { + match height_map_data_type == HeightMapDataType::HasData { true => { let mut height_map: [[i8; 16]; 16] = [[0; 16]; 16]; for x in 0..16 { @@ -152,8 +149,8 @@ impl ProtoCodec for SubChunkPacket { .map(|i| { i.sub_chunk_pos_offset.get_size_prediction() + i.sub_chunk_request_result.get_size_prediction() - + match (i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir - || self.cache_enabled) + + match i.sub_chunk_request_result == SubChunkRequestResult::SuccessAllAir + || self.cache_enabled { true => i .serialized_sub_chunk @@ -163,14 +160,14 @@ impl ProtoCodec for SubChunkPacket { false => 0, } + i.height_map_data_type.get_size_prediction() - + match (i.height_map_data_type == HeightMapDataType::HasData) { + + match i.height_map_data_type == HeightMapDataType::HasData { true => { let height_map = i.sub_chunk_height_map.as_ref().unwrap(); height_map.len() * height_map[0].len() * size_of::() } false => 0, } - + match (self.cache_enabled) { + + match self.cache_enabled { true => size_of::(), false => 0, } diff --git a/crates/proto/src/version/v662/packets/sub_chunk_request.rs b/crates/proto/src/version/v662/packets/sub_chunk_request.rs index 4e6b27fe..17ad5caa 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk_request.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk_request.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::SubChunkPos; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 175)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SubChunkRequestPacket { #[endianness(var)] pub dimension_type: i32, diff --git a/crates/proto/src/version/v662/packets/sub_client_login.rs b/crates/proto/src/version/v662/packets/sub_client_login.rs index f34bd46a..8215804c 100644 --- a/crates/proto/src/version/v662/packets/sub_client_login.rs +++ b/crates/proto/src/version/v662/packets/sub_client_login.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 94)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SubClientLoginPacket { pub connection_request: String, // TODO: SubClientConnectionRequest diagram, not sure. } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/sync_actor_property.rs b/crates/proto/src/version/v662/packets/sync_actor_property.rs index d8ccf373..9b3fccb9 100644 --- a/crates/proto/src/version/v662/packets/sync_actor_property.rs +++ b/crates/proto/src/version/v662/packets/sync_actor_property.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 165)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SyncActorPropertyPacket { #[nbt] pub property_data: nbtx::Value, // TODO: NBT Structure diff --git a/crates/proto/src/version/v662/packets/take_item_actor.rs b/crates/proto/src/version/v662/packets/take_item_actor.rs index c2223598..c20e436f 100644 --- a/crates/proto/src/version/v662/packets/take_item_actor.rs +++ b/crates/proto/src/version/v662/packets/take_item_actor.rs @@ -2,7 +2,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_shared::actor_runtime_id::ActorRuntimeID; #[gamepacket(id = 17)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct TakeItemActorPacket { pub item_runtime_id: ActorRuntimeID, pub actor_runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/text.rs b/crates/proto/src/version/v662/packets/text.rs index 1b7e9c8a..23ef5860 100644 --- a/crates/proto/src/version/v662/packets/text.rs +++ b/crates/proto/src/version/v662/packets/text.rs @@ -6,6 +6,7 @@ use byteorder::{ReadBytesExt, WriteBytesExt}; use std::io::{Cursor, Read}; #[gamepacket(id = 9)] +#[derive(Clone, Debug)] pub struct TextPacket { pub message_type: TextPacketType, pub localize: bool, diff --git a/crates/proto/src/version/v662/packets/tick_sync.rs b/crates/proto/src/version/v662/packets/tick_sync.rs index 5b21ab44..0203c71b 100644 --- a/crates/proto/src/version/v662/packets/tick_sync.rs +++ b/crates/proto/src/version/v662/packets/tick_sync.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 23)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct TickSyncPacket { #[endianness(le)] pub client_request_timestamp: i64, diff --git a/crates/proto/src/version/v662/packets/ticking_area_load_status.rs b/crates/proto/src/version/v662/packets/ticking_area_load_status.rs index b2ba18d3..1da29b35 100644 --- a/crates/proto/src/version/v662/packets/ticking_area_load_status.rs +++ b/crates/proto/src/version/v662/packets/ticking_area_load_status.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 179)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct TickingAreaLoadStatusPacket { pub waiting_for_preload: bool, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/toast_request.rs b/crates/proto/src/version/v662/packets/toast_request.rs index 461dc60a..55a5df2d 100644 --- a/crates/proto/src/version/v662/packets/toast_request.rs +++ b/crates/proto/src/version/v662/packets/toast_request.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 186)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ToastRequestPacket { pub title: String, pub content: String, diff --git a/crates/proto/src/version/v662/packets/transfer_player.rs b/crates/proto/src/version/v662/packets/transfer_player.rs index 0cf18132..928dfe32 100644 --- a/crates/proto/src/version/v662/packets/transfer_player.rs +++ b/crates/proto/src/version/v662/packets/transfer_player.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 85)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct TransferPlayerPacket { pub server_address: String, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/trim_data.rs b/crates/proto/src/version/v662/packets/trim_data.rs index d10a8b41..4157456a 100644 --- a/crates/proto/src/version/v662/packets/trim_data.rs +++ b/crates/proto/src/version/v662/packets/trim_data.rs @@ -1,12 +1,12 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct TrimPattern { pub item_name: String, pub pattern_id: String, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct TrimMaterial { pub material_id: String, pub color: String, @@ -14,7 +14,7 @@ struct TrimMaterial { } #[gamepacket(id = 302)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct TrimDataPacket { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/unlocked_recipes.rs b/crates/proto/src/version/v662/packets/unlocked_recipes.rs index a4a9e982..74310e4e 100644 --- a/crates/proto/src/version/v662/packets/unlocked_recipes.rs +++ b/crates/proto/src/version/v662/packets/unlocked_recipes.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 199)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UnlockedRecipesPacket { #[endianness(le)] pub packet_type: u32, diff --git a/crates/proto/src/version/v662/packets/update_abilities.rs b/crates/proto/src/version/v662/packets/update_abilities.rs index 0c98e8c7..8aa64d1a 100644 --- a/crates/proto/src/version/v662/packets/update_abilities.rs +++ b/crates/proto/src/version/v662/packets/update_abilities.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::SerializedAbilitiesData; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 187)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateAbilitiesPacket { pub data: SerializedAbilitiesData, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/update_adventure_settings.rs b/crates/proto/src/version/v662/packets/update_adventure_settings.rs index 5dc990e7..c97f8788 100644 --- a/crates/proto/src/version/v662/packets/update_adventure_settings.rs +++ b/crates/proto/src/version/v662/packets/update_adventure_settings.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::AdventureSettings; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 188)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateAdventureSettingsPacket { pub adventure_settings: AdventureSettings, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/update_attributes.rs b/crates/proto/src/version/v662/packets/update_attributes.rs index d88450db..70d654b1 100644 --- a/crates/proto/src/version/v662/packets/update_attributes.rs +++ b/crates/proto/src/version/v662/packets/update_attributes.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{AttributeModifierOperation, AttributeOperands} use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct AttributeModifier { pub id: String, pub name: String, @@ -13,7 +13,7 @@ struct AttributeModifier { pub is_serializable: bool, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct AttributeData { #[endianness(le)] pub min_value: f32, @@ -30,7 +30,7 @@ struct AttributeData { } #[gamepacket(id = 29)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateAttributesPacket { pub target_runtime_id: ActorRuntimeID, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/update_block.rs b/crates/proto/src/version/v662/packets/update_block.rs index d5181075..9fd1472a 100644 --- a/crates/proto/src/version/v662/packets/update_block.rs +++ b/crates/proto/src/version/v662/packets/update_block.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 21)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateBlockPacket { pub block_position: NetworkBlockPosition, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/update_block_synced.rs b/crates/proto/src/version/v662/packets/update_block_synced.rs index 41633e28..9d474938 100644 --- a/crates/proto/src/version/v662/packets/update_block_synced.rs +++ b/crates/proto/src/version/v662/packets/update_block_synced.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 110)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateBlockSyncedPacket { pub block_position: NetworkBlockPosition, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/update_client_input_locks.rs b/crates/proto/src/version/v662/packets/update_client_input_locks.rs index 10a6c38c..01ccaedb 100644 --- a/crates/proto/src/version/v662/packets/update_client_input_locks.rs +++ b/crates/proto/src/version/v662/packets/update_client_input_locks.rs @@ -2,7 +2,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 196)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateClientInputLocksPacket { #[endianness(var)] pub input_lock_component_data: i32, diff --git a/crates/proto/src/version/v662/packets/update_equip.rs b/crates/proto/src/version/v662/packets/update_equip.rs index 4a801f4f..dd563113 100644 --- a/crates/proto/src/version/v662/packets/update_equip.rs +++ b/crates/proto/src/version/v662/packets/update_equip.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 81)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateEquipPacket { pub container_id: ContainerID, pub container_type: ContainerType, diff --git a/crates/proto/src/version/v662/packets/update_player_game_type.rs b/crates/proto/src/version/v662/packets/update_player_game_type.rs index 90f08c64..5ec62eed 100644 --- a/crates/proto/src/version/v662/packets/update_player_game_type.rs +++ b/crates/proto/src/version/v662/packets/update_player_game_type.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 151)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdatePlayerGameTypePacket { pub player_game_type: GameType, pub target_player: ActorUniqueID, diff --git a/crates/proto/src/version/v662/packets/update_soft_enum.rs b/crates/proto/src/version/v662/packets/update_soft_enum.rs index 79c014c7..d77bca1e 100644 --- a/crates/proto/src/version/v662/packets/update_soft_enum.rs +++ b/crates/proto/src/version/v662/packets/update_soft_enum.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::SoftEnumUpdateType; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 114)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateSoftEnumPacket { pub enum_name: String, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs index e185933d..7e3475cf 100644 --- a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs +++ b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs @@ -7,13 +7,11 @@ use std::io::Cursor; use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; +#[derive(Clone, Debug)] struct BlocksChangedEntry { pub pos: NetworkBlockPosition, - #[endianness(var)] pub runtime_id: u32, - #[endianness(var)] pub update_flags: u32, - #[endianness(var)] pub sync_message_entity_unique_id: u64, pub sync_message: ActorBlockSyncMessage::MessageId, // This is sent as unsigned varint, needs to be varint64 } @@ -65,7 +63,7 @@ impl ProtoCodec for BlocksChangedEntry { } #[gamepacket(id = 172)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateSubChunkBlocksPacket { pub sub_chunk_block_position: NetworkBlockPosition, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/update_trade.rs b/crates/proto/src/version/v662/packets/update_trade.rs index ea16a112..6d9adb3a 100644 --- a/crates/proto/src/version/v662/packets/update_trade.rs +++ b/crates/proto/src/version/v662/packets/update_trade.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 80)] -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct UpdateTradePacket { pub container_id: ContainerID, pub container_type: ContainerType, diff --git a/crates/proto/src/version/v662/types/actor_link.rs b/crates/proto/src/version/v662/types/actor_link.rs index 4089ca72..e90ce7d7 100644 --- a/crates/proto/src/version/v662/types/actor_link.rs +++ b/crates/proto/src/version/v662/types/actor_link.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::ActorLinkType; use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ActorLink { pub actor_unique_id_a: ActorUniqueID, pub actor_unique_id_b: ActorUniqueID, diff --git a/crates/proto/src/version/v662/types/actor_runtime_id.rs b/crates/proto/src/version/v662/types/actor_runtime_id.rs index 484a5775..ec4470cd 100644 --- a/crates/proto/src/version/v662/types/actor_runtime_id.rs +++ b/crates/proto/src/version/v662/types/actor_runtime_id.rs @@ -4,6 +4,7 @@ use std::io::Cursor; use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; +#[derive(Clone, Debug)] pub struct ActorRuntimeID(pub u64); impl ProtoCodec for ActorRuntimeID { diff --git a/crates/proto/src/version/v662/types/actor_unique_id.rs b/crates/proto/src/version/v662/types/actor_unique_id.rs index f66ba6b3..ac72e642 100644 --- a/crates/proto/src/version/v662/types/actor_unique_id.rs +++ b/crates/proto/src/version/v662/types/actor_unique_id.rs @@ -4,6 +4,7 @@ use std::io::Cursor; use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; +#[derive(Clone, Debug)] pub struct ActorUniqueID(pub u64); impl ProtoCodec for ActorUniqueID { diff --git a/crates/proto/src/version/v662/types/adventure_settings.rs b/crates/proto/src/version/v662/types/adventure_settings.rs index de121a0d..099bfe8c 100644 --- a/crates/proto/src/version/v662/types/adventure_settings.rs +++ b/crates/proto/src/version/v662/types/adventure_settings.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct AdventureSettings { pub no_pvm: bool, pub no_mvp: bool, diff --git a/crates/proto/src/version/v662/types/base_description.rs b/crates/proto/src/version/v662/types/base_description.rs index 0cf6e785..60840aec 100644 --- a/crates/proto/src/version/v662/types/base_description.rs +++ b/crates/proto/src/version/v662/types/base_description.rs @@ -1,32 +1,32 @@ use crate::version::v662::enums::MolangVersion; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct InternalItemDescriptor { pub full_name: String, #[endianness(le)] pub aux_value: u16 } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MolangDescriptor { pub full_name: String, pub molang_version: MolangVersion } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemTagDescriptor { pub item_tag: String } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DeferredDescriptor { pub full_name: String, #[endianness(le)] pub aux_value: u16 } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct BaseDescription { pub internal_item_descriptor: InternalItemDescriptor, pub molang_descriptor: MolangDescriptor, diff --git a/crates/proto/src/version/v662/types/base_game_version.rs b/crates/proto/src/version/v662/types/base_game_version.rs index eee2cd42..ae2ceb07 100644 --- a/crates/proto/src/version/v662/types/base_game_version.rs +++ b/crates/proto/src/version/v662/types/base_game_version.rs @@ -2,6 +2,7 @@ use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; use std::io::Cursor; +#[derive(Clone, Debug)] pub struct BaseGameVersion(pub String); impl ProtoCodec for BaseGameVersion { diff --git a/crates/proto/src/version/v662/types/block_pos.rs b/crates/proto/src/version/v662/types/block_pos.rs index a42850c2..900acb57 100644 --- a/crates/proto/src/version/v662/types/block_pos.rs +++ b/crates/proto/src/version/v662/types/block_pos.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct BlockPos { #[endianness(var)] pub x: i32, diff --git a/crates/proto/src/version/v662/types/camera_instruction.rs b/crates/proto/src/version/v662/types/camera_instruction.rs index decab211..ff2c49ff 100644 --- a/crates/proto/src/version/v662/types/camera_instruction.rs +++ b/crates/proto/src/version/v662/types/camera_instruction.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CameraInstruction{ pub set: Option<()>, // TODO: CameraInstruction::SetInstruction pub clear: Option, diff --git a/crates/proto/src/version/v662/types/camera_preset.rs b/crates/proto/src/version/v662/types/camera_preset.rs index 54ce7125..dda299ad 100644 --- a/crates/proto/src/version/v662/types/camera_preset.rs +++ b/crates/proto/src/version/v662/types/camera_preset.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum AudioListener { @@ -8,7 +8,7 @@ pub enum AudioListener { Player = 1, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CameraPreset { pub name: String, pub inherit_from: String, diff --git a/crates/proto/src/version/v662/types/camera_presets.rs b/crates/proto/src/version/v662/types/camera_presets.rs index d53c53ce..10714f15 100644 --- a/crates/proto/src/version/v662/types/camera_presets.rs +++ b/crates/proto/src/version/v662/types/camera_presets.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::CameraPreset; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CameraPresets { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/types/chunk_pos.rs b/crates/proto/src/version/v662/types/chunk_pos.rs index 9105df0e..f25f02ba 100644 --- a/crates/proto/src/version/v662/types/chunk_pos.rs +++ b/crates/proto/src/version/v662/types/chunk_pos.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ChunkPos { #[endianness(var)] pub x: i32, diff --git a/crates/proto/src/version/v662/types/command_origin_data.rs b/crates/proto/src/version/v662/types/command_origin_data.rs index d0ce00d5..b15a0b3a 100644 --- a/crates/proto/src/version/v662/types/command_origin_data.rs +++ b/crates/proto/src/version/v662/types/command_origin_data.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::ProtoCodec; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct CommandOriginData { #[endianness(var)] pub command_type: u32, diff --git a/crates/proto/src/version/v662/types/container_mix_data_entry.rs b/crates/proto/src/version/v662/types/container_mix_data_entry.rs index 2c0c7421..9406dc5f 100644 --- a/crates/proto/src/version/v662/types/container_mix_data_entry.rs +++ b/crates/proto/src/version/v662/types/container_mix_data_entry.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ContainerMixDataEntry { #[endianness(var)] pub input_item_id: i32, diff --git a/crates/proto/src/version/v662/types/crafting_data_entry.rs b/crates/proto/src/version/v662/types/crafting_data_entry.rs index abfb0524..c1646bfd 100644 --- a/crates/proto/src/version/v662/types/crafting_data_entry.rs +++ b/crates/proto/src/version/v662/types/crafting_data_entry.rs @@ -1,5 +1,7 @@ +use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::CraftingDataEntryType; +#[derive(ProtoCodec, Clone, Debug)] pub struct CraftingDataEntry { pub crafting_type: CraftingDataEntryType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/data_item.rs b/crates/proto/src/version/v662/types/data_item.rs index 6eb1936d..875b8d57 100644 --- a/crates/proto/src/version/v662/types/data_item.rs +++ b/crates/proto/src/version/v662/types/data_item.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::DataItemType; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DataItem { #[endianness(var)] pub data_item_id: u32, diff --git a/crates/proto/src/version/v662/types/dimension_definition_group.rs b/crates/proto/src/version/v662/types/dimension_definition_group.rs index 0024d5b1..60d2db69 100644 --- a/crates/proto/src/version/v662/types/dimension_definition_group.rs +++ b/crates/proto/src/version/v662/types/dimension_definition_group.rs @@ -1,12 +1,12 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DimensionDefinitionGroupType { pub name: String, pub dimension_definition: DimensionDefinition } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DimensionDefinition { #[endianness(var)] pub height_max: i32, @@ -16,7 +16,7 @@ pub struct DimensionDefinition { pub generator_type: i32, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct DimensionDefinitionGroup { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/types/edu_shared_uri_resource.rs b/crates/proto/src/version/v662/types/edu_shared_uri_resource.rs index b59bd3ae..a132ff2b 100644 --- a/crates/proto/src/version/v662/types/edu_shared_uri_resource.rs +++ b/crates/proto/src/version/v662/types/edu_shared_uri_resource.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EduSharedUriResource { pub button_name: String, pub link_uri: String, diff --git a/crates/proto/src/version/v662/types/education_level_settings.rs b/crates/proto/src/version/v662/types/education_level_settings.rs index 95aa30c1..aa53d32c 100644 --- a/crates/proto/src/version/v662/types/education_level_settings.rs +++ b/crates/proto/src/version/v662/types/education_level_settings.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EducationLevelSettings { pub code_builder_default_uri: String, pub code_builder_title: String, diff --git a/crates/proto/src/version/v662/types/entity_net_id.rs b/crates/proto/src/version/v662/types/entity_net_id.rs index 26f532c8..f4fc261f 100644 --- a/crates/proto/src/version/v662/types/entity_net_id.rs +++ b/crates/proto/src/version/v662/types/entity_net_id.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct EntityNetID { #[endianness(var)] pub raw_entity_id: u32 diff --git a/crates/proto/src/version/v662/types/experiments.rs b/crates/proto/src/version/v662/types/experiments.rs index 97d32d5b..b0f750c6 100644 --- a/crates/proto/src/version/v662/types/experiments.rs +++ b/crates/proto/src/version/v662/types/experiments.rs @@ -1,12 +1,12 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct Experiment { pub name: String, pub enabled: bool, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct Experiments { #[vec_repr(u32)] #[vec_endianness(le)] diff --git a/crates/proto/src/version/v662/types/game_rules_changed_packet_data.rs b/crates/proto/src/version/v662/types/game_rules_changed_packet_data.rs index 50f6bcd0..5f24f46a 100644 --- a/crates/proto/src/version/v662/types/game_rules_changed_packet_data.rs +++ b/crates/proto/src/version/v662/types/game_rules_changed_packet_data.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] @@ -11,14 +11,14 @@ pub enum Type { Float = 3, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct GameRuleChanged { pub rule_name: String, pub can_be_modified_by_player: bool, pub rule_type: Type } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct GameRulesChangedPacketData { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/types/inventory_action.rs b/crates/proto/src/version/v662/types/inventory_action.rs index 07278d5d..e43a239c 100644 --- a/crates/proto/src/version/v662/types/inventory_action.rs +++ b/crates/proto/src/version/v662/types/inventory_action.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::{InventorySource, NetworkItemStackDescriptor}; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct InventoryAction { pub source: InventorySource, #[endianness(le)] diff --git a/crates/proto/src/version/v662/types/inventory_source.rs b/crates/proto/src/version/v662/types/inventory_source.rs index b7c6d795..f8ea5905 100644 --- a/crates/proto/src/version/v662/types/inventory_source.rs +++ b/crates/proto/src/version/v662/types/inventory_source.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::InventorySourceType; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct InventorySource { pub source_type: InventorySourceType, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/inventory_transaction.rs b/crates/proto/src/version/v662/types/inventory_transaction.rs index d291b428..b7416ba0 100644 --- a/crates/proto/src/version/v662/types/inventory_transaction.rs +++ b/crates/proto/src/version/v662/types/inventory_transaction.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::InventoryAction; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct InventoryTransaction { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/types/item_data.rs b/crates/proto/src/version/v662/types/item_data.rs index 6bc76b57..edb37d39 100644 --- a/crates/proto/src/version/v662/types/item_data.rs +++ b/crates/proto/src/version/v662/types/item_data.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemData { pub name: String, #[endianness(le)] diff --git a/crates/proto/src/version/v662/types/item_enchants.rs b/crates/proto/src/version/v662/types/item_enchants.rs index 547abd2b..c73d872d 100644 --- a/crates/proto/src/version/v662/types/item_enchants.rs +++ b/crates/proto/src/version/v662/types/item_enchants.rs @@ -1,13 +1,13 @@ use crate::version::v662::enums::Enchant; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ItemEnchant { pub enchant_type: Enchant::Type, pub enchant_level: i8, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemEnchants { #[endianness(le)] pub slot: i32, diff --git a/crates/proto/src/version/v662/types/item_instance_user_data.rs b/crates/proto/src/version/v662/types/item_instance_user_data.rs index ce12bb2f..1e218a51 100644 --- a/crates/proto/src/version/v662/types/item_instance_user_data.rs +++ b/crates/proto/src/version/v662/types/item_instance_user_data.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemInstanceUserData { #[endianness(le)] pub serialization_marker: i16, diff --git a/crates/proto/src/version/v662/types/item_stack_net_id_variant.rs b/crates/proto/src/version/v662/types/item_stack_net_id_variant.rs index 430ef3c8..54d6ec0e 100644 --- a/crates/proto/src/version/v662/types/item_stack_net_id_variant.rs +++ b/crates/proto/src/version/v662/types/item_stack_net_id_variant.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackNetIdVariant { #[endianness(var)] pub raw_id: i32 diff --git a/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs b/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs index c1541822..dd20b4a0 100644 --- a/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs +++ b/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackRequestSlotInfo { pub container_net_id: i8, pub slot: i8, diff --git a/crates/proto/src/version/v662/types/item_stack_response_container_info.rs b/crates/proto/src/version/v662/types/item_stack_response_container_info.rs index ba634c45..5490c1f4 100644 --- a/crates/proto/src/version/v662/types/item_stack_response_container_info.rs +++ b/crates/proto/src/version/v662/types/item_stack_response_container_info.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ItemStackResponseSlotInfo; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackResponseContainerInfo { pub container_net_id: i8, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/types/item_stack_response_info.rs b/crates/proto/src/version/v662/types/item_stack_response_info.rs index c5bd1c18..0927494f 100644 --- a/crates/proto/src/version/v662/types/item_stack_response_info.rs +++ b/crates/proto/src/version/v662/types/item_stack_response_info.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::ItemStackNetResult; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackResponseInfo { pub result: ItemStackNetResult, #[endianness(var)] diff --git a/crates/proto/src/version/v662/types/item_stack_response_slot_info.rs b/crates/proto/src/version/v662/types/item_stack_response_slot_info.rs index e299a57f..f8df6d78 100644 --- a/crates/proto/src/version/v662/types/item_stack_response_slot_info.rs +++ b/crates/proto/src/version/v662/types/item_stack_response_slot_info.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackResponseSlotInfo { pub requested_slot: i8, pub slot: i8, diff --git a/crates/proto/src/version/v662/types/level_settings.rs b/crates/proto/src/version/v662/types/level_settings.rs index 8c9cea7f..bbdab6e7 100644 --- a/crates/proto/src/version/v662/types/level_settings.rs +++ b/crates/proto/src/version/v662/types/level_settings.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{ChatRestrictionLevel, Difficulty, Editor, Educ use crate::version::v662::types::{BaseGameVersion, EduSharedUriResource, Experiments, GameRulesChangedPacketData, NetworkBlockPosition, SpawnSettings}; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct LevelSettings { #[endianness(le)] pub seed: u64, diff --git a/crates/proto/src/version/v662/types/map_decoration.rs b/crates/proto/src/version/v662/types/map_decoration.rs index 7be8996b..70eeb19e 100644 --- a/crates/proto/src/version/v662/types/map_decoration.rs +++ b/crates/proto/src/version/v662/types/map_decoration.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] pub enum MapDecorationType { MarkerWhite = 0, @@ -38,7 +38,7 @@ impl MapDecorationType { const ITEM_FRAME: MapDecorationType = MapDecorationType::MarkerGreen; } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MapDecoration { pub map_decoration_type: MapDecorationType, pub rotation: i8, diff --git a/crates/proto/src/version/v662/types/map_item_tracked_actor.rs b/crates/proto/src/version/v662/types/map_item_tracked_actor.rs index e9d432e5..87742485 100644 --- a/crates/proto/src/version/v662/types/map_item_tracked_actor.rs +++ b/crates/proto/src/version/v662/types/map_item_tracked_actor.rs @@ -2,7 +2,7 @@ pub mod MapItemTrackedActor { use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i32)] #[enum_endianness(le)] #[repr(i32)] @@ -12,7 +12,7 @@ pub mod MapItemTrackedActor { Other = 2, } - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub struct UniqueId { pub unique_id_type: Type, } diff --git a/crates/proto/src/version/v662/types/material_reducer_data_entry.rs b/crates/proto/src/version/v662/types/material_reducer_data_entry.rs index 6705b5f9..82b3a72e 100644 --- a/crates/proto/src/version/v662/types/material_reducer_data_entry.rs +++ b/crates/proto/src/version/v662/types/material_reducer_data_entry.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct MaterialReducerDataEntryIdAndCount { #[endianness(var)] pub id: i32, @@ -8,7 +8,7 @@ struct MaterialReducerDataEntryIdAndCount { pub count: i32, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MaterialReducerDataEntry { #[endianness(var)] pub input: i32, diff --git a/crates/proto/src/version/v662/types/molang_variable_map.rs b/crates/proto/src/version/v662/types/molang_variable_map.rs index b8da264d..a10585dd 100644 --- a/crates/proto/src/version/v662/types/molang_variable_map.rs +++ b/crates/proto/src/version/v662/types/molang_variable_map.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MolangVariableMap { pub serialized_variable_map: String, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/move_actor_absolute_data.rs b/crates/proto/src/version/v662/types/move_actor_absolute_data.rs index 75b9052f..5ff111c7 100644 --- a/crates/proto/src/version/v662/types/move_actor_absolute_data.rs +++ b/crates/proto/src/version/v662/types/move_actor_absolute_data.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MoveActorAbsoluteData { pub actor_runtime_id: ActorRuntimeID, pub header: i8, diff --git a/crates/proto/src/version/v662/types/move_actor_delta_data.rs b/crates/proto/src/version/v662/types/move_actor_delta_data.rs index 4aba2341..8a049ed1 100644 --- a/crates/proto/src/version/v662/types/move_actor_delta_data.rs +++ b/crates/proto/src/version/v662/types/move_actor_delta_data.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct MoveActorDeltaData { pub actor_runtime_id: ActorRuntimeID, #[endianness(le)] diff --git a/crates/proto/src/version/v662/types/network_block_position.rs b/crates/proto/src/version/v662/types/network_block_position.rs index cddb57c1..3c8ac125 100644 --- a/crates/proto/src/version/v662/types/network_block_position.rs +++ b/crates/proto/src/version/v662/types/network_block_position.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct NetworkBlockPosition { #[endianness(var)] pub x: i32, diff --git a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs index 9b76b415..a14c3a3d 100644 --- a/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs +++ b/crates/proto/src/version/v662/types/network_item_instance_descriptor.rs @@ -2,14 +2,11 @@ use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use std::io::Cursor; +#[derive(Clone, Debug)] pub struct NetworkItemInstanceDescriptor { - #[endianness(var)] id: i32, - #[endianness(le)] stack_size: Option, - #[endianness(var)] aux_value: Option, - #[endianness(var)] block_runtime_id: Option, user_data_buffer: Option, } @@ -21,10 +18,10 @@ impl ProtoCodec for NetworkItemInstanceDescriptor { match &self.id { 0 => {} _ => { - ProtoCodecLE::proto_serialize(&self.stack_size.as_ref().unwrap(), stream)?; - ProtoCodecVAR::proto_serialize(&self.aux_value.as_ref().unwrap(), stream)?; - ProtoCodecVAR::proto_serialize(&self.block_runtime_id.as_ref().unwrap(), stream)?; - ProtoCodec::proto_serialize(&self.user_data_buffer.as_ref().unwrap(), stream)?; + ProtoCodecLE::proto_serialize(self.stack_size.as_ref().unwrap(), stream)?; + ProtoCodecVAR::proto_serialize(self.aux_value.as_ref().unwrap(), stream)?; + ProtoCodecVAR::proto_serialize(self.block_runtime_id.as_ref().unwrap(), stream)?; + ProtoCodec::proto_serialize(self.user_data_buffer.as_ref().unwrap(), stream)?; } } diff --git a/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs b/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs index b8ecf533..d9c25256 100644 --- a/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs +++ b/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::ItemStackNetIdVariant; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum NetworkItemStackDescriptor { diff --git a/crates/proto/src/version/v662/types/network_permissions.rs b/crates/proto/src/version/v662/types/network_permissions.rs index 3883cb89..a0a63c8e 100644 --- a/crates/proto/src/version/v662/types/network_permissions.rs +++ b/crates/proto/src/version/v662/types/network_permissions.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct NetworkPermissions { pub server_auth_sound_enabled: bool, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs index efef981b..4bfa4c26 100644 --- a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs +++ b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::{InventoryAction, NetworkBlockPosition, Network use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct ContainerSlotEntry { pub container_enum_name: String, #[vec_repr(u32)] @@ -11,7 +11,7 @@ struct ContainerSlotEntry { pub slots: Vec } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] pub enum PackedItemUseLegacyInventoryTransaction { diff --git a/crates/proto/src/version/v662/types/player_block_action_data.rs b/crates/proto/src/version/v662/types/player_block_action_data.rs index 7090e256..191872a4 100644 --- a/crates/proto/src/version/v662/types/player_block_action_data.rs +++ b/crates/proto/src/version/v662/types/player_block_action_data.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::PlayerActionType; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerBlockActionData { pub player_action_type: PlayerActionType } \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/player_block_actions.rs b/crates/proto/src/version/v662/types/player_block_actions.rs index 90508b19..b236e46e 100644 --- a/crates/proto/src/version/v662/types/player_block_actions.rs +++ b/crates/proto/src/version/v662/types/player_block_actions.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::PlayerBlockActionData; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PlayerBlockActions { #[vec_repr(i32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/types/position_tracking_id.rs b/crates/proto/src/version/v662/types/position_tracking_id.rs index 74af755f..44bc4581 100644 --- a/crates/proto/src/version/v662/types/position_tracking_id.rs +++ b/crates/proto/src/version/v662/types/position_tracking_id.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PositionTrackingId { #[endianness(var)] pub value: i32, diff --git a/crates/proto/src/version/v662/types/potion_mix_data_entry.rs b/crates/proto/src/version/v662/types/potion_mix_data_entry.rs index ef37cc5f..397d8a88 100644 --- a/crates/proto/src/version/v662/types/potion_mix_data_entry.rs +++ b/crates/proto/src/version/v662/types/potion_mix_data_entry.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PotionMixDataEntry { #[endianness(var)] pub input_potion_id: i32, diff --git a/crates/proto/src/version/v662/types/property_sync_data.rs b/crates/proto/src/version/v662/types/property_sync_data.rs index c11030ef..3bff2ac0 100644 --- a/crates/proto/src/version/v662/types/property_sync_data.rs +++ b/crates/proto/src/version/v662/types/property_sync_data.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct IntEntry { #[endianness(var)] pub property_index: u32, @@ -8,7 +8,7 @@ struct IntEntry { pub data: f32, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct FloatEntry { #[endianness(var)] pub property_index: u32, @@ -16,7 +16,7 @@ struct FloatEntry { pub data: i32, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct PropertySyncData { #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/types/recipe_ingredient.rs b/crates/proto/src/version/v662/types/recipe_ingredient.rs index 12bd047c..c8bc4561 100644 --- a/crates/proto/src/version/v662/types/recipe_ingredient.rs +++ b/crates/proto/src/version/v662/types/recipe_ingredient.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::ItemDescriptor; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct RecipeIngredient { pub internal_type: ItemDescriptor::InternalType, #[endianness(var)] diff --git a/crates/proto/src/version/v662/types/scoreboard_id.rs b/crates/proto/src/version/v662/types/scoreboard_id.rs index f609c6de..493da471 100644 --- a/crates/proto/src/version/v662/types/scoreboard_id.rs +++ b/crates/proto/src/version/v662/types/scoreboard_id.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ScoreboardId { #[endianness(var)] pub id: i64, diff --git a/crates/proto/src/version/v662/types/serialized_abilities_data.rs b/crates/proto/src/version/v662/types/serialized_abilities_data.rs index 61be2343..8d158301 100644 --- a/crates/proto/src/version/v662/types/serialized_abilities_data.rs +++ b/crates/proto/src/version/v662/types/serialized_abilities_data.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::{CommandPermissionLevel, PlayerPermissionLevel}; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] #[enum_repr(u16)] #[enum_endianness(le)] #[repr(u16)] @@ -13,7 +13,7 @@ enum SerializedAbilitiesLayer { Editor = 4, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SerializedLayer { pub serialized_layer: SerializedAbilitiesLayer, #[endianness(le)] @@ -26,7 +26,7 @@ pub struct SerializedLayer { pub walk_speed: f32, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SerializedAbilitiesData { #[endianness(le)] pub target_player_raw_id: i64, diff --git a/crates/proto/src/version/v662/types/serialized_skin.rs b/crates/proto/src/version/v662/types/serialized_skin.rs index c524ce90..eaf880f6 100644 --- a/crates/proto/src/version/v662/types/serialized_skin.rs +++ b/crates/proto/src/version/v662/types/serialized_skin.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::Persona; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct SerializedSkinAnimationFrame { #[endianness(le)] pub image_width: u32, @@ -14,7 +14,7 @@ struct SerializedSkinAnimationFrame { pub animation_expression: Persona::AnimationExpression, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct PersonaPiecesEntry { pub piece_id: String, pub piece_type: String, @@ -23,13 +23,13 @@ struct PersonaPiecesEntry { pub product_id: String, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] struct PieceTintColorsEntry { pub piece_type: String, pub piece_tint_color: String, } -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SerializedSkin { pub skin_id: String, pub play_fab_id: String, diff --git a/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs b/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs index be13cbe6..a31921e3 100644 --- a/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs +++ b/crates/proto/src/version/v662/types/shaped_chemistry_recipe.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredien use bedrockrs_macros::ProtoCodec; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ShapedChemistryRecipe { pub recipe_id: String, #[endianness(var)] diff --git a/crates/proto/src/version/v662/types/shaped_recipe.rs b/crates/proto/src/version/v662/types/shaped_recipe.rs index 132fbba7..2e02128a 100644 --- a/crates/proto/src/version/v662/types/shaped_recipe.rs +++ b/crates/proto/src/version/v662/types/shaped_recipe.rs @@ -5,15 +5,13 @@ use std::io::Cursor; use std::mem::size_of; use uuid::Uuid; +#[derive(Clone, Debug)] pub struct ShapedRecipe { pub recipe_unique_id: String, pub ingredient_grid: Vec>, - #[vec_repr(u32)] - #[vec_endianness(var)] pub production_list: Vec, pub recipe_id: Uuid, pub recipe_tag: String, - #[endianness(var)] pub priority: i32, } diff --git a/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs b/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs index f2554705..52546e86 100644 --- a/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs +++ b/crates/proto/src/version/v662/types/shapeless_chemistry_recipe.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredien use bedrockrs_macros::ProtoCodec; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ShapelessChemistryRecipe { pub recipe_id: String, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/types/shapeless_recipe.rs b/crates/proto/src/version/v662/types/shapeless_recipe.rs index 82673428..4738d879 100644 --- a/crates/proto/src/version/v662/types/shapeless_recipe.rs +++ b/crates/proto/src/version/v662/types/shapeless_recipe.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredien use bedrockrs_macros::ProtoCodec; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ShapelessRecipe { pub recipe_unique_id: String, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/types/shulker_box_recipe.rs b/crates/proto/src/version/v662/types/shulker_box_recipe.rs index 6dbc03e3..50630619 100644 --- a/crates/proto/src/version/v662/types/shulker_box_recipe.rs +++ b/crates/proto/src/version/v662/types/shulker_box_recipe.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredien use bedrockrs_macros::ProtoCodec; use uuid::Uuid; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct ShulkerBoxRecipe { pub recipe_unique_id: String, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/types/smithing_transform_recipe.rs b/crates/proto/src/version/v662/types/smithing_transform_recipe.rs index c4f5c9e7..15ea03a9 100644 --- a/crates/proto/src/version/v662/types/smithing_transform_recipe.rs +++ b/crates/proto/src/version/v662/types/smithing_transform_recipe.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::{NetworkItemInstanceDescriptor, RecipeIngredient}; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SmithingTransformRecipe { pub recipe_id: String, pub template_ingredient: RecipeIngredient, diff --git a/crates/proto/src/version/v662/types/smithing_trim_recipe.rs b/crates/proto/src/version/v662/types/smithing_trim_recipe.rs index 0ecd3311..da37a102 100644 --- a/crates/proto/src/version/v662/types/smithing_trim_recipe.rs +++ b/crates/proto/src/version/v662/types/smithing_trim_recipe.rs @@ -1,7 +1,7 @@ use crate::version::v662::types::RecipeIngredient; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SmithingTrimRecipe { pub recipe_id: String, pub template_ingredient: RecipeIngredient, diff --git a/crates/proto/src/version/v662/types/spawn_settings.rs b/crates/proto/src/version/v662/types/spawn_settings.rs index 9abe036b..959f286f 100644 --- a/crates/proto/src/version/v662/types/spawn_settings.rs +++ b/crates/proto/src/version/v662/types/spawn_settings.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::SpawnBiomeType; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SpawnSettings { pub spawn_type: SpawnBiomeType, pub user_defined_biome_name: String, diff --git a/crates/proto/src/version/v662/types/structure_editor_data.rs b/crates/proto/src/version/v662/types/structure_editor_data.rs index b631aed3..22818dca 100644 --- a/crates/proto/src/version/v662/types/structure_editor_data.rs +++ b/crates/proto/src/version/v662/types/structure_editor_data.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{StructureBlockType, StructureRedstoneSaveMode} use crate::version::v662::types::StructureSettings; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct StructureEditorData { pub structure_name: String, pub data_field: String, diff --git a/crates/proto/src/version/v662/types/structure_settings.rs b/crates/proto/src/version/v662/types/structure_settings.rs index 6ea27f01..9990b882 100644 --- a/crates/proto/src/version/v662/types/structure_settings.rs +++ b/crates/proto/src/version/v662/types/structure_settings.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct StructureSettings { pub structure_palette_name: String, pub ignore_entities: bool, diff --git a/crates/proto/src/version/v662/types/sub_chunk_packet.rs b/crates/proto/src/version/v662/types/sub_chunk_packet.rs index 74387df8..3eac4553 100644 --- a/crates/proto/src/version/v662/types/sub_chunk_packet.rs +++ b/crates/proto/src/version/v662/types/sub_chunk_packet.rs @@ -1,7 +1,7 @@ pub mod SubChunkPacket { use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec)] + #[derive(ProtoCodec, Clone, Debug)] pub struct SubChunkPosOffset { pub offset_x: i8, pub offset_y: i8, diff --git a/crates/proto/src/version/v662/types/sub_chunk_pos.rs b/crates/proto/src/version/v662/types/sub_chunk_pos.rs index 6dd3cc4a..e2ddac4e 100644 --- a/crates/proto/src/version/v662/types/sub_chunk_pos.rs +++ b/crates/proto/src/version/v662/types/sub_chunk_pos.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SubChunkPos { #[endianness(var)] pub x: i32, diff --git a/crates/proto/src/version/v662/types/synced_player_movement_settings.rs b/crates/proto/src/version/v662/types/synced_player_movement_settings.rs index d6e746db..99c2b1a7 100644 --- a/crates/proto/src/version/v662/types/synced_player_movement_settings.rs +++ b/crates/proto/src/version/v662/types/synced_player_movement_settings.rs @@ -1,7 +1,7 @@ use crate::version::v662::enums::ServerAuthMovementMode; use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct SyncedPlayerMovementSettings { pub authority_mode: ServerAuthMovementMode, #[endianness(var)] diff --git a/crates/proto/src/version/v662/types/web_socket_packet_data.rs b/crates/proto/src/version/v662/types/web_socket_packet_data.rs index 4d1cfdab..ddf26533 100644 --- a/crates/proto/src/version/v662/types/web_socket_packet_data.rs +++ b/crates/proto/src/version/v662/types/web_socket_packet_data.rs @@ -1,6 +1,6 @@ use bedrockrs_macros::ProtoCodec; -#[derive(ProtoCodec)] +#[derive(ProtoCodec, Clone, Debug)] pub struct WebSocketPacketData { pub web_socket_server_uri: String, } \ No newline at end of file From dabb9f19ba19b9119dd57b9e3e5cd129c9cdd76e Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 18:49:33 +1300 Subject: [PATCH 71/79] fix errors --- .../src/version/v662/enums/actor_type.rs | 604 +++++++++--------- 1 file changed, 301 insertions(+), 303 deletions(-) diff --git a/crates/proto/src/version/v662/enums/actor_type.rs b/crates/proto/src/version/v662/enums/actor_type.rs index 935d5575..0ae46158 100644 --- a/crates/proto/src/version/v662/enums/actor_type.rs +++ b/crates/proto/src/version/v662/enums/actor_type.rs @@ -1,159 +1,157 @@ use bedrockrs_macros::ProtoCodec; use bitflags::bitflags; -bitflags! { - struct Flags: i32 { - const UNDEFINED = 1; - const TYPE_MASK = 0x000000ff; - const MOB = 0x00000100; - const PATHFINDER_MOB = 0x00000200 | Self::MOB.bits(); - const MONSTER = 0x00000800 | Self::PATHFINDER_MOB.bits(); - const ANIMAL = 0x00001000 | Self::PATHFINDER_MOB.bits(); - const TAMABLE_ANIMAL = 0x00004000 | Self::ANIMAL.bits(); - const AMBIENT = 0x00008000 | Self::MOB.bits(); - const UNDEAD_MOB = 0x00010000 | Self::MONSTER.bits(); - const ZOMBIE_MONSTER = 0x00020000 | Self::UNDEAD_MOB.bits(); - const ARTHROPOD = 0x00040000 | Self::MONSTER.bits(); - const MINECART = 0x00080000; - const SKELETONMONSTER = 0x00100000 | Self::UNDEAD_MOB.bits(); - const EQUINEANIMAL = 0x00200000 | Self::TAMABLE_ANIMAL.bits(); - const PROJECTILE = 0x00400000; - const ABSTRACTARROW = 0x00800000; - const WATERANIMAL = 0x00002000 | Self::PATHFINDER_MOB.bits(); - const VILLAGERBASE = 0x01000000 | Self::PATHFINDER_MOB.bits(); - const CHICKEN = 10 | Self::ANIMAL.bits(); - const COW = 11 | Self::ANIMAL.bits(); - const PIG = 12 | Self::ANIMAL.bits(); - const SHEEP = 13 | Self::ANIMAL.bits(); - const WOLF = 14 | Self::TAMABLE_ANIMAL.bits(); - const VILLAGER = 15 | Self::VILLAGERBASE.bits(); - const MUSHROOMCOW = 16 | Self::ANIMAL.bits(); - const SQUID = 17 | Self::WATERANIMAL.bits(); - const RABBIT = 18 | Self::ANIMAL.bits(); - const BAT = 19 | Self::AMBIENT.bits(); - const IRONGOLEM = 20 | Self::PATHFINDER_MOB.bits(); - const SNOWGOLEM = 21 | Self::PATHFINDER_MOB.bits(); - const OCELOT = 22 | Self::TAMABLE_ANIMAL.bits(); - const HORSE = 23 | Self::EQUINEANIMAL.bits(); - const POLARBEAR = 28 | Self::ANIMAL.bits(); - const LLAMA = 29 | Self::ANIMAL.bits(); - const PARROT = 30 | Self::TAMABLE_ANIMAL.bits(); - const DOLPHIN = 31 | Self::WATERANIMAL.bits(); - const DONKEY = 24 | Self::EQUINEANIMAL.bits(); - const MULE = 25 | Self::EQUINEANIMAL.bits(); - const SKELETONHORSE = 26 | Self::EQUINEANIMAL.bits() | Self::UNDEAD_MOB.bits(); - const ZOMBIEHORSE = 27 | Self::EQUINEANIMAL.bits() | Self::UNDEAD_MOB.bits(); - const ZOMBIE = 32 | Self::ZOMBIE_MONSTER.bits(); - const CREEPER = 33 | Self::MONSTER.bits(); - const SKELETON = 34 | Self::SKELETONMONSTER.bits(); - const SPIDER = 35 | Self::ARTHROPOD.bits(); - const PIGZOMBIE = 36 | Self::UNDEAD_MOB.bits(); - const SLIME = 37 | Self::MONSTER.bits(); - const ENDERMAN = 38 | Self::MONSTER.bits(); - const SILVERFISH = 39 | Self::ARTHROPOD.bits(); - const CAVESPIDER = 40 | Self::ARTHROPOD.bits(); - const GHAST = 41 | Self::MONSTER.bits(); - const LAVASLIME = 42 | Self::MONSTER.bits(); - const BLAZE = 43 | Self::MONSTER.bits(); - const ZOMBIEVILLAGER = 44 | Self::ZOMBIE_MONSTER.bits(); - const WITCH = 45 | Self::MONSTER.bits(); - const STRAY = 46 | Self::SKELETONMONSTER.bits(); - const HUSK = 47 | Self::ZOMBIE_MONSTER.bits(); - const WITHERSKELETON = 48 | Self::SKELETONMONSTER.bits(); - const GUARDIAN = 49 | Self::MONSTER.bits(); - const ELDERGUARDIAN = 50 | Self::MONSTER.bits(); - const NPC = 51 | Self::MOB.bits(); - const WITHERBOSS = 52 | Self::UNDEAD_MOB.bits(); - const DRAGON = 53 | Self::MONSTER.bits(); - const SHULKER = 54 | Self::MONSTER.bits(); - const ENDERMITE = 55 | Self::ARTHROPOD.bits(); - const AGENT = 56 | Self::MOB.bits(); - const VINDICATOR = 57 | Self::MONSTER.bits(); - const PHANTOM = 58 | Self::UNDEAD_MOB.bits(); - const ILLAGERBEAST = 59 | Self::MONSTER.bits(); - const ARMORSTAND = 61 | Self::MOB.bits(); - const TRIPODCAMERA = 62 | Self::MOB.bits(); - const PLAYER = 63 | Self::MOB.bits(); - const ITEMENTITY = 64; - const PRIMEDTNT = 65; - const FALLINGBLOCK = 66; - const MOVINGBLOCK = 67; - const EXPERIENCEPOTION = 68 | Self::PROJECTILE.bits(); - const EXPERIENCE = 69; - const EYEOFENDER = 70; - const ENDERCRYSTAL = 71; - const FIREWORKSROCKET = 72; - const TRIDENT = 73 | Self::PROJECTILE.bits() | Self::ABSTRACTARROW.bits(); - const TURTLE = 74 | Self::ANIMAL.bits(); - const CAT = 75 | Self::TAMABLE_ANIMAL.bits(); - const SHULKERBULLET = 76 | Self::PROJECTILE.bits(); - const FISHINGHOOK = 77; - const CHALKBOARD = 78; - const DRAGONFIREBALL = 79 | Self::PROJECTILE.bits(); - const ARROW = 80 | Self::PROJECTILE.bits() | Self::ABSTRACTARROW.bits(); - const SNOWBALL = 81 | Self::PROJECTILE.bits(); - const THROWNEGG = 82 | Self::PROJECTILE.bits(); - const PAINTING = 83; - const LARGEFIREBALL = 85 | Self::PROJECTILE.bits(); - const THROWNPOTION = 86 | Self::PROJECTILE.bits(); - const ENDERPEARL = 87 | Self::PROJECTILE.bits(); - const LEASHKNOT = 88; - const WITHERSKULL = 89 | Self::PROJECTILE.bits(); - const BOATRIDEABLE = 90; - const WITHERSKULLDANGEROUS = 91 | Self::PROJECTILE.bits(); - const LIGHTNINGBOLT = 93; - const SMALLFIREBALL = 94 | Self::PROJECTILE.bits(); - const AREAEFFECTCLOUD = 95; - const LINGERINGPOTION = 101 | Self::PROJECTILE.bits(); - const LLAMASPIT = 102 | Self::PROJECTILE.bits(); - const EVOCATIONFANG = 103 | Self::PROJECTILE.bits(); - const EVOCATIONILLAGER = 104 | Self::MONSTER.bits(); - const VEX = 105 | Self::MONSTER.bits(); - const MINECARTRIDEABLE = 84 | Self::MINECART.bits(); - const MINECARTHOPPER = 96 | Self::MINECART.bits(); - const MINECARTTNT = 97 | Self::MINECART.bits(); - const MINECARTCHEST = 98 | Self::MINECART.bits(); - const MINECARTFURNACE = 99 | Self::MINECART.bits(); - const MINECARTCOMMANDBLOCK = 100 | Self::MINECART.bits(); - const ICEBOMB = 106 | Self::PROJECTILE.bits(); - const BALLOON = 107; - const PUFFERFISH = 108 | Self::WATERANIMAL.bits(); - const SALMON = 109 | Self::WATERANIMAL.bits(); - const DROWNED = 110 | Self::ZOMBIE_MONSTER.bits(); - const TROPICALFISH = 111 | Self::WATERANIMAL.bits(); - const FISH = 112 | Self::WATERANIMAL.bits(); - const PANDA = 113 | Self::ANIMAL.bits(); - const PILLAGER = 114 | Self::MONSTER.bits(); - const VILLAGERV2 = 115 | Self::VILLAGERBASE.bits(); - const ZOMBIEVILLAGERV2 = 116 | Self::ZOMBIE_MONSTER.bits(); - const SHIELD = 117; - const WANDERINGTRADER = 118 | Self::PATHFINDER_MOB.bits(); - const LECTERN = 119; - const ELDERGUARDIANGHOST = 120 | Self::MONSTER.bits(); - const FOX = 121 | Self::ANIMAL.bits(); - const BEE = 122 | Self::MOB.bits(); - const PIGLIN = 123 | Self::MOB.bits(); - const HOGLIN = 124 | Self::ANIMAL.bits(); - const STRIDER = 125 | Self::ANIMAL.bits(); - const ZOGLIN = 126 | Self::UNDEAD_MOB.bits(); - const PIGLINBRUTE = 127 | Self::MOB.bits(); - const GOAT = 128 | Self::ANIMAL.bits(); - const GLOWSQUID = 129 | Self::WATERANIMAL.bits(); - const AXOLOTL = 130 | Self::ANIMAL.bits(); - const WARDEN = 131 | Self::MONSTER.bits(); - const FROG = 132 | Self::ANIMAL.bits(); - const TADPOLE = 133 | Self::WATERANIMAL.bits(); - const ALLAY = 134 | Self::MOB.bits(); - const CHESTBOATRIDEABLE = 136 |Self:: BOATRIDEABLE.bits(); - const TRADERLLAMA = 137 | Self::LLAMA.bits(); - const CAMEL = 138 | Self::ANIMAL.bits(); - const SNIFFER = 139 | Self::ANIMAL.bits(); - const BREEZE = 140 | Self::MONSTER.bits(); - const BREEZEWINDCHARGEPROJECTILE = 141 | Self::PROJECTILE.bits(); - const ARMADILLO = 142 | Self::ANIMAL.bits(); - const WINDCHARGEPROJECTILE = 143 |Self:: PROJECTILE.bits(); - const BOGGED = 144 | Self::SKELETONMONSTER.bits(); - } +mod flags { + pub const UNDEFINED: i32 = 1; + pub const TYPE_MASK: i32 = 0x000000ff; + pub const MOB: i32 = 0x00000100; + pub const PATHFINDER_MOB: i32 = 0x00000200 | MOB; + pub const MONSTER: i32 = 0x00000800 | PATHFINDER_MOB; + pub const ANIMAL: i32 = 0x00001000 | PATHFINDER_MOB; + pub const TAMABLE_ANIMAL: i32 = 0x00004000 | ANIMAL; + pub const AMBIENT: i32 = 0x00008000 | MOB; + pub const UNDEAD_MOB: i32 = 0x00010000 | MONSTER; + pub const ZOMBIE_MONSTER: i32 = 0x00020000 | UNDEAD_MOB; + pub const ARTHROPOD: i32 = 0x00040000 | MONSTER; + pub const MINECART: i32 = 0x00080000; + pub const SKELETONMONSTER: i32 = 0x00100000 | UNDEAD_MOB; + pub const EQUINEANIMAL: i32 = 0x00200000 | TAMABLE_ANIMAL; + pub const PROJECTILE: i32 = 0x00400000; + pub const ABSTRACTARROW: i32 = 0x00800000; + pub const WATERANIMAL: i32 = 0x00002000 | PATHFINDER_MOB; + pub const VILLAGERBASE: i32 = 0x01000000 | PATHFINDER_MOB; + pub const CHICKEN: i32 = 10 | ANIMAL; + pub const COW: i32 = 11 | ANIMAL; + pub const PIG: i32 = 12 | ANIMAL; + pub const SHEEP: i32 = 13 | ANIMAL; + pub const WOLF: i32 = 14 | TAMABLE_ANIMAL; + pub const VILLAGER: i32 = 15 | VILLAGERBASE; + pub const MUSHROOMCOW: i32 = 16 | ANIMAL; + pub const SQUID: i32 = 17 | WATERANIMAL; + pub const RABBIT: i32 = 18 | ANIMAL; + pub const BAT: i32 = 19 | AMBIENT; + pub const IRONGOLEM: i32 = 20 | PATHFINDER_MOB; + pub const SNOWGOLEM: i32 = 21 | PATHFINDER_MOB; + pub const OCELOT: i32 = 22 | TAMABLE_ANIMAL; + pub const HORSE: i32 = 23 | EQUINEANIMAL; + pub const POLARBEAR: i32 = 28 | ANIMAL; + pub const LLAMA: i32 = 29 | ANIMAL; + pub const PARROT: i32 = 30 | TAMABLE_ANIMAL; + pub const DOLPHIN: i32 = 31 | WATERANIMAL; + pub const DONKEY: i32 = 24 | EQUINEANIMAL; + pub const MULE: i32 = 25 | EQUINEANIMAL; + pub const SKELETONHORSE: i32 = 26 | EQUINEANIMAL | UNDEAD_MOB; + pub const ZOMBIEHORSE: i32 = 27 | EQUINEANIMAL | UNDEAD_MOB; + pub const ZOMBIE: i32 = 32 | ZOMBIE_MONSTER; + pub const CREEPER: i32 = 33 | MONSTER; + pub const SKELETON: i32 = 34 | SKELETONMONSTER; + pub const SPIDER: i32 = 35 | ARTHROPOD; + pub const PIGZOMBIE: i32 = 36 | UNDEAD_MOB; + pub const SLIME: i32 = 37 | MONSTER; + pub const ENDERMAN: i32 = 38 | MONSTER; + pub const SILVERFISH: i32 = 39 | ARTHROPOD; + pub const CAVESPIDER: i32 = 40 | ARTHROPOD; + pub const GHAST: i32 = 41 | MONSTER; + pub const LAVASLIME: i32 = 42 | MONSTER; + pub const BLAZE: i32 = 43 | MONSTER; + pub const ZOMBIEVILLAGER: i32 = 44 | ZOMBIE_MONSTER; + pub const WITCH: i32 = 45 | MONSTER; + pub const STRAY: i32 = 46 | SKELETONMONSTER; + pub const HUSK: i32 = 47 | ZOMBIE_MONSTER; + pub const WITHERSKELETON: i32 = 48 | SKELETONMONSTER; + pub const GUARDIAN: i32 = 49 | MONSTER; + pub const ELDERGUARDIAN: i32 = 50 | MONSTER; + pub const NPC: i32 = 51 | MOB; + pub const WITHERBOSS: i32 = 52 | UNDEAD_MOB; + pub const DRAGON: i32 = 53 | MONSTER; + pub const SHULKER: i32 = 54 | MONSTER; + pub const ENDERMITE: i32 = 55 | ARTHROPOD; + pub const AGENT: i32 = 56 | MOB; + pub const VINDICATOR: i32 = 57 | MONSTER; + pub const PHANTOM: i32 = 58 | UNDEAD_MOB; + pub const ILLAGERBEAST: i32 = 59 | MONSTER; + pub const ARMORSTAND: i32 = 61 | MOB; + pub const TRIPODCAMERA: i32 = 62 | MOB; + pub const PLAYER: i32 = 63 | MOB; + pub const ITEMENTITY: i32 = 64; + pub const PRIMEDTNT: i32 = 65; + pub const FALLINGBLOCK: i32 = 66; + pub const MOVINGBLOCK: i32 = 67; + pub const EXPERIENCEPOTION: i32 = 68 | PROJECTILE; + pub const EXPERIENCE: i32 = 69; + pub const EYEOFENDER: i32 = 70; + pub const ENDERCRYSTAL: i32 = 71; + pub const FIREWORKSROCKET: i32 = 72; + pub const TRIDENT: i32 = 73 | PROJECTILE | ABSTRACTARROW; + pub const TURTLE: i32 = 74 | ANIMAL; + pub const CAT: i32 = 75 | TAMABLE_ANIMAL; + pub const SHULKERBULLET: i32 = 76 | PROJECTILE; + pub const FISHINGHOOK: i32 = 77; + pub const CHALKBOARD: i32 = 78; + pub const DRAGONFIREBALL: i32 = 79 | PROJECTILE; + pub const ARROW: i32 = 80 | PROJECTILE | ABSTRACTARROW; + pub const SNOWBALL: i32 = 81 | PROJECTILE; + pub const THROWNEGG: i32 = 82 | PROJECTILE; + pub const PAINTING: i32 = 83; + pub const LARGEFIREBALL: i32 = 85 | PROJECTILE; + pub const THROWNPOTION: i32 = 86 | PROJECTILE; + pub const ENDERPEARL: i32 = 87 | PROJECTILE; + pub const LEASHKNOT: i32 = 88; + pub const WITHERSKULL: i32 = 89 | PROJECTILE; + pub const BOATRIDEABLE: i32 = 90; + pub const WITHERSKULLDANGEROUS: i32 = 91 | PROJECTILE; + pub const LIGHTNINGBOLT: i32 = 93; + pub const SMALLFIREBALL: i32 = 94 | PROJECTILE; + pub const AREAEFFECTCLOUD: i32 = 95; + pub const LINGERINGPOTION: i32 = 101 | PROJECTILE; + pub const LLAMASPIT: i32 = 102 | PROJECTILE; + pub const EVOCATIONFANG: i32 = 103 | PROJECTILE; + pub const EVOCATIONILLAGER: i32 = 104 | MONSTER; + pub const VEX: i32 = 105 | MONSTER; + pub const MINECARTRIDEABLE: i32 = 84 | MINECART; + pub const MINECARTHOPPER: i32 = 96 | MINECART; + pub const MINECARTTNT: i32 = 97 | MINECART; + pub const MINECARTCHEST: i32 = 98 | MINECART; + pub const MINECARTFURNACE: i32 = 99 | MINECART; + pub const MINECARTCOMMANDBLOCK: i32 = 100 | MINECART; + pub const ICEBOMB: i32 = 106 | PROJECTILE; + pub const BALLOON: i32 = 107; + pub const PUFFERFISH: i32 = 108 | WATERANIMAL; + pub const SALMON: i32 = 109 | WATERANIMAL; + pub const DROWNED: i32 = 110 | ZOMBIE_MONSTER; + pub const TROPICALFISH: i32 = 111 | WATERANIMAL; + pub const FISH: i32 = 112 | WATERANIMAL; + pub const PANDA: i32 = 113 | ANIMAL; + pub const PILLAGER: i32 = 114 | MONSTER; + pub const VILLAGERV2: i32 = 115 | VILLAGERBASE; + pub const ZOMBIEVILLAGERV2: i32 = 116 | ZOMBIE_MONSTER; + pub const SHIELD: i32 = 117; + pub const WANDERINGTRADER: i32 = 118 | PATHFINDER_MOB; + pub const LECTERN: i32 = 119; + pub const ELDERGUARDIANGHOST: i32 = 120 | MONSTER; + pub const FOX: i32 = 121 | ANIMAL; + pub const BEE: i32 = 122 | MOB; + pub const PIGLIN: i32 = 123 | MOB; + pub const HOGLIN: i32 = 124 | ANIMAL; + pub const STRIDER: i32 = 125 | ANIMAL; + pub const ZOGLIN: i32 = 126 | UNDEAD_MOB; + pub const PIGLINBRUTE: i32 = 127 | MOB; + pub const GOAT: i32 = 128 | ANIMAL; + pub const GLOWSQUID: i32 = 129 | WATERANIMAL; + pub const AXOLOTL: i32 = 130 | ANIMAL; + pub const WARDEN: i32 = 131 | MONSTER; + pub const FROG: i32 = 132 | ANIMAL; + pub const TADPOLE: i32 = 133 | WATERANIMAL; + pub const ALLAY: i32 = 134 | MOB; + pub const CHESTBOATRIDEABLE: i32 = 136 | BOATRIDEABLE; + pub const TRADERLLAMA: i32 = 137 | LLAMA; + pub const CAMEL: i32 = 138 | ANIMAL; + pub const SNIFFER: i32 = 139 | ANIMAL; + pub const BREEZE: i32 = 140 | MONSTER; + pub const BREEZEWINDCHARGEPROJECTILE: i32 = 141 | PROJECTILE; + pub const ARMADILLO: i32 = 142 | ANIMAL; + pub const WINDCHARGEPROJECTILE: i32 = 143 | PROJECTILE; + pub const BOGGED: i32 = 144 | SKELETONMONSTER; } #[derive(ProtoCodec, Clone, Debug)] @@ -161,154 +159,154 @@ bitflags! { #[enum_endianness(var)] #[repr(i32)] pub enum ActorType { - Undefined = Flags::UNDEFINED.bits(), - TypeMask = Flags::TYPE_MASK.bits(), - Mob = Flags::MOB.bits(), - PathfinderMob = Flags::PATHFINDER_MOB.bits(), - Monster = Flags::MONSTER.bits(), - Animal = Flags::ANIMAL.bits(), - TamableAnimal = Flags::TAMABLE_ANIMAL.bits(), - Ambient = Flags::AMBIENT.bits(), - UndeadMob = Flags::UNDEAD_MOB.bits(), - ZombieMonster = Flags::ZOMBIE_MONSTER.bits(), - Arthropod = Flags::ARTHROPOD.bits(), - Minecart = Flags::MINECART.bits(), - SkeletonMonster = Flags::SKELETONMONSTER.bits(), - EquineAnimal = Flags::EQUINEANIMAL.bits(), - Projectile = Flags::PROJECTILE.bits(), - AbstractArrow = Flags::ABSTRACTARROW.bits(), - WaterAnimal = Flags::WATERANIMAL.bits(), - VillagerBase = Flags::VILLAGERBASE.bits(), - Chicken = Flags::CHICKEN.bits(), - Cow = Flags::COW.bits(), - Pig = Flags::PIG.bits(), - Sheep = Flags::SHEEP.bits(), - Wolf = Flags::WOLF.bits(), - Villager = Flags::VILLAGER.bits(), - MushroomCow = Flags::MUSHROOMCOW.bits(), - Squid = Flags::SQUID.bits(), - Rabbit = Flags::RABBIT.bits(), - Bat = Flags::BAT.bits(), - IronGolem = Flags::IRONGOLEM.bits(), - SnowGolem = Flags::SNOWGOLEM.bits(), - Ocelot = Flags::OCELOT.bits(), - Horse = Flags::HORSE.bits(), - PolarBear = Flags::POLARBEAR.bits(), - Llama = Flags::LLAMA.bits(), - Parrot = Flags::PARROT.bits(), - Dolphin = Flags::DOLPHIN.bits(), - Donkey = Flags::DONKEY.bits(), - Mule = Flags::MULE.bits(), - SkeletonHorse = Flags::SKELETONHORSE.bits(), - ZombieHorse = Flags::ZOMBIEHORSE.bits(), - Zombie = Flags::ZOMBIE.bits(), - Creeper = Flags::CREEPER.bits(), - Skeleton = Flags::SKELETON.bits(), - Spider = Flags::SPIDER.bits(), - PigZombie = Flags::PIGZOMBIE.bits(), - Slime = Flags::SLIME.bits(), - EnderMan = Flags::ENDERMAN.bits(), - Silverfish = Flags::SILVERFISH.bits(), - CaveSpider = Flags::CAVESPIDER.bits(), - Ghast = Flags::GHAST.bits(), - LavaSlime = Flags::LAVASLIME.bits(), - Blaze = Flags::BLAZE.bits(), - ZombieVillager = Flags::ZOMBIEVILLAGER.bits(), - Witch = Flags::WITCH.bits(), - Stray = Flags::STRAY.bits(), - Husk = Flags::HUSK.bits(), - WitherSkeleton = Flags::WITHERSKELETON.bits(), - Guardian = Flags::GUARDIAN.bits(), - ElderGuardian = Flags::ELDERGUARDIAN.bits(), - Npc = Flags::NPC.bits(), - WitherBoss = Flags::WITHERBOSS.bits(), - Dragon = Flags::DRAGON.bits(), - Shulker = Flags::SHULKER.bits(), - Endermite = Flags::ENDERMITE.bits(), - Agent = Flags::AGENT.bits(), - Vindicator = Flags::VINDICATOR.bits(), - Phantom = Flags::PHANTOM.bits(), - IllagerBeast = Flags::ILLAGERBEAST.bits(), - ArmorStand = Flags::ARMORSTAND.bits(), - TripodCamera = Flags::TRIPODCAMERA.bits(), - Player = Flags::PLAYER.bits(), - ItemEntity = Flags::ITEMENTITY.bits(), - PrimedTnt = Flags::PRIMEDTNT.bits(), - FallingBlock = Flags::FALLINGBLOCK.bits(), - MovingBlock = Flags::MOVINGBLOCK.bits(), - ExperiencePotion = Flags::EXPERIENCEPOTION.bits(), - Experience = Flags::EXPERIENCE.bits(), - EyeOfEnder = Flags::EYEOFENDER.bits(), - EnderCrystal = Flags::ENDERCRYSTAL.bits(), - FireworksRocket = Flags::FIREWORKSROCKET.bits(), - Trident = Flags::TRIDENT.bits(), - Turtle = Flags::TURTLE.bits(), - Cat = Flags::CAT.bits(), - ShulkerBullet = Flags::SHULKERBULLET.bits(), - FishingHook = Flags::FISHINGHOOK.bits(), - Chalkboard = Flags::CHALKBOARD.bits(), - DragonFireball = Flags::DRAGONFIREBALL.bits(), - Arrow = Flags::ARROW.bits(), - Snowball = Flags::SNOWBALL.bits(), - ThrownEgg = Flags::THROWNEGG.bits(), - Painting = Flags::PAINTING.bits(), - LargeFireball = Flags::LARGEFIREBALL.bits(), - ThrownPotion = Flags::THROWNPOTION.bits(), - Enderpearl = Flags::ENDERPEARL.bits(), - LeashKnot = Flags::LEASHKNOT.bits(), - WitherSkull = Flags::WITHERSKULL.bits(), - BoatRideable = Flags::BOATRIDEABLE.bits(), - WitherSkullDangerous = Flags::WITHERSKULLDANGEROUS.bits(), - LightningBolt = Flags::LIGHTNINGBOLT.bits(), - SmallFireball = Flags::SMALLFIREBALL.bits(), - AreaEffectCloud = Flags::AREAEFFECTCLOUD.bits(), - LingeringPotion = Flags::LINGERINGPOTION.bits(), - LlamaSpit = Flags::LLAMASPIT.bits(), - EvocationFang = Flags::EVOCATIONFANG.bits(), - EvocationIllager = Flags::EVOCATIONILLAGER.bits(), - Vex = Flags::VEX.bits(), - MinecartRideable = Flags::MINECARTRIDEABLE.bits(), - MinecartHopper = Flags::MINECARTHOPPER.bits(), - MinecartTNT = Flags::MINECARTTNT.bits(), - MinecartChest = Flags::MINECARTCHEST.bits(), - MinecartFurnace = Flags::MINECARTFURNACE.bits(), - MinecartCommandBlock = Flags::MINECARTCOMMANDBLOCK.bits(), - IceBomb = Flags::ICEBOMB.bits(), - Balloon = Flags::BALLOON.bits(), - Pufferfish = Flags::PUFFERFISH.bits(), - Salmon = Flags::SALMON.bits(), - Drowned = Flags::DROWNED.bits(), - Tropicalfish = Flags::TROPICALFISH.bits(), - Fish = Flags::FISH.bits(), - Panda = Flags::PANDA.bits(), - Pillager = Flags::PILLAGER.bits(), - VillagerV2 = Flags::VILLAGERV2.bits(), - ZombieVillagerV2 = Flags::ZOMBIEVILLAGERV2.bits(), - Shield = Flags::SHIELD.bits(), - WanderingTrader = Flags::WANDERINGTRADER.bits(), - Lectern = Flags::LECTERN.bits(), - ElderGuardianGhost = Flags::ELDERGUARDIANGHOST.bits(), - Fox = Flags::FOX.bits(), - Bee = Flags::BEE.bits(), - Piglin = Flags::PIGLIN.bits(), - Hoglin = Flags::HOGLIN.bits(), - Strider = Flags::STRIDER.bits(), - Zoglin = Flags::ZOGLIN.bits(), - PiglinBrute = Flags::PIGLINBRUTE.bits(), - Goat = Flags::GOAT.bits(), - GlowSquid = Flags::GLOWSQUID.bits(), - Axolotl = Flags::AXOLOTL.bits(), - Warden = Flags::WARDEN.bits(), - Frog = Flags::FROG.bits(), - Tadpole = Flags::TADPOLE.bits(), - Allay = Flags::ALLAY.bits(), - ChestBoatRideable = Flags::CHESTBOATRIDEABLE.bits(), - TraderLlama = Flags::TRADERLLAMA.bits(), - Camel = Flags::CAMEL.bits(), - Sniffer = Flags::SNIFFER.bits(), - Breeze = Flags::BREEZE.bits(), - BreezeWindChargeProjectile = Flags::BREEZEWINDCHARGEPROJECTILE.bits(), - Armadillo = Flags::ARMADILLO.bits(), - WindChargeProjectile = Flags::WINDCHARGEPROJECTILE.bits(), - Bogged = Flags::BOGGED.bits(), + Undefined = flags::UNDEFINED, + TypeMask = flags::TYPE_MASK, + Mob = flags::MOB, + PathfinderMob = flags::PATHFINDER_MOB, + Monster = flags::MONSTER, + Animal = flags::ANIMAL, + TamableAnimal = flags::TAMABLE_ANIMAL, + Ambient = flags::AMBIENT, + UndeadMob = flags::UNDEAD_MOB, + ZombieMonster = flags::ZOMBIE_MONSTER, + Arthropod = flags::ARTHROPOD, + Minecart = flags::MINECART, + SkeletonMonster = flags::SKELETONMONSTER, + EquineAnimal = flags::EQUINEANIMAL, + Projectile = flags::PROJECTILE, + AbstractArrow = flags::ABSTRACTARROW, + WaterAnimal = flags::WATERANIMAL, + VillagerBase = flags::VILLAGERBASE, + Chicken = flags::CHICKEN, + Cow = flags::COW, + Pig = flags::PIG, + Sheep = flags::SHEEP, + Wolf = flags::WOLF, + Villager = flags::VILLAGER, + MushroomCow = flags::MUSHROOMCOW, + Squid = flags::SQUID, + Rabbit = flags::RABBIT, + Bat = flags::BAT, + IronGolem = flags::IRONGOLEM, + SnowGolem = flags::SNOWGOLEM, + Ocelot = flags::OCELOT, + Horse = flags::HORSE, + PolarBear = flags::POLARBEAR, + Llama = flags::LLAMA, + Parrot = flags::PARROT, + Dolphin = flags::DOLPHIN, + Donkey = flags::DONKEY, + Mule = flags::MULE, + SkeletonHorse = flags::SKELETONHORSE, + ZombieHorse = flags::ZOMBIEHORSE, + Zombie = flags::ZOMBIE, + Creeper = flags::CREEPER, + Skeleton = flags::SKELETON, + Spider = flags::SPIDER, + PigZombie = flags::PIGZOMBIE, + Slime = flags::SLIME, + EnderMan = flags::ENDERMAN, + Silverfish = flags::SILVERFISH, + CaveSpider = flags::CAVESPIDER, + Ghast = flags::GHAST, + LavaSlime = flags::LAVASLIME, + Blaze = flags::BLAZE, + ZombieVillager = flags::ZOMBIEVILLAGER, + Witch = flags::WITCH, + Stray = flags::STRAY, + Husk = flags::HUSK, + WitherSkeleton = flags::WITHERSKELETON, + Guardian = flags::GUARDIAN, + ElderGuardian = flags::ELDERGUARDIAN, + Npc = flags::NPC, + WitherBoss = flags::WITHERBOSS, + Dragon = flags::DRAGON, + Shulker = flags::SHULKER, + Endermite = flags::ENDERMITE, + Agent = flags::AGENT, + Vindicator = flags::VINDICATOR, + Phantom = flags::PHANTOM, + IllagerBeast = flags::ILLAGERBEAST, + ArmorStand = flags::ARMORSTAND, + TripodCamera = flags::TRIPODCAMERA, + Player = flags::PLAYER, + ItemEntity = flags::ITEMENTITY, + PrimedTnt = flags::PRIMEDTNT, + FallingBlock = flags::FALLINGBLOCK, + MovingBlock = flags::MOVINGBLOCK, + ExperiencePotion = flags::EXPERIENCEPOTION, + Experience = flags::EXPERIENCE, + EyeOfEnder = flags::EYEOFENDER, + EnderCrystal = flags::ENDERCRYSTAL, + FireworksRocket = flags::FIREWORKSROCKET, + Trident = flags::TRIDENT, + Turtle = flags::TURTLE, + Cat = flags::CAT, + ShulkerBullet = flags::SHULKERBULLET, + FishingHook = flags::FISHINGHOOK, + Chalkboard = flags::CHALKBOARD, + DragonFireball = flags::DRAGONFIREBALL, + Arrow = flags::ARROW, + Snowball = flags::SNOWBALL, + ThrownEgg = flags::THROWNEGG, + Painting = flags::PAINTING, + LargeFireball = flags::LARGEFIREBALL, + ThrownPotion = flags::THROWNPOTION, + Enderpearl = flags::ENDERPEARL, + LeashKnot = flags::LEASHKNOT, + WitherSkull = flags::WITHERSKULL, + BoatRideable = flags::BOATRIDEABLE, + WitherSkullDangerous = flags::WITHERSKULLDANGEROUS, + LightningBolt = flags::LIGHTNINGBOLT, + SmallFireball = flags::SMALLFIREBALL, + AreaEffectCloud = flags::AREAEFFECTCLOUD, + LingeringPotion = flags::LINGERINGPOTION, + LlamaSpit = flags::LLAMASPIT, + EvocationFang = flags::EVOCATIONFANG, + EvocationIllager = flags::EVOCATIONILLAGER, + Vex = flags::VEX, + MinecartRideable = flags::MINECARTRIDEABLE, + MinecartHopper = flags::MINECARTHOPPER, + MinecartTNT = flags::MINECARTTNT, + MinecartChest = flags::MINECARTCHEST, + MinecartFurnace = flags::MINECARTFURNACE, + MinecartCommandBlock = flags::MINECARTCOMMANDBLOCK, + IceBomb = flags::ICEBOMB, + Balloon = flags::BALLOON, + Pufferfish = flags::PUFFERFISH, + Salmon = flags::SALMON, + Drowned = flags::DROWNED, + Tropicalfish = flags::TROPICALFISH, + Fish = flags::FISH, + Panda = flags::PANDA, + Pillager = flags::PILLAGER, + VillagerV2 = flags::VILLAGERV2, + ZombieVillagerV2 = flags::ZOMBIEVILLAGERV2, + Shield = flags::SHIELD, + WanderingTrader = flags::WANDERINGTRADER, + Lectern = flags::LECTERN, + ElderGuardianGhost = flags::ELDERGUARDIANGHOST, + Fox = flags::FOX, + Bee = flags::BEE, + Piglin = flags::PIGLIN, + Hoglin = flags::HOGLIN, + Strider = flags::STRIDER, + Zoglin = flags::ZOGLIN, + PiglinBrute = flags::PIGLINBRUTE, + Goat = flags::GOAT, + GlowSquid = flags::GLOWSQUID, + Axolotl = flags::AXOLOTL, + Warden = flags::WARDEN, + Frog = flags::FROG, + Tadpole = flags::TADPOLE, + Allay = flags::ALLAY, + ChestBoatRideable = flags::CHESTBOATRIDEABLE, + TraderLlama = flags::TRADERLLAMA, + Camel = flags::CAMEL, + Sniffer = flags::SNIFFER, + Breeze = flags::BREEZE, + BreezeWindChargeProjectile = flags::BREEZEWINDCHARGEPROJECTILE, + Armadillo = flags::ARMADILLO, + WindChargeProjectile = flags::WINDCHARGEPROJECTILE, + Bogged = flags::BOGGED, } From a5050d3155530befd2a70ded193f839a4e745c87 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 19:18:40 +1300 Subject: [PATCH 72/79] fix bitshift amounts --- .../version/v662/packets/player_auth_input.rs | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/crates/proto/src/version/v662/packets/player_auth_input.rs b/crates/proto/src/version/v662/packets/player_auth_input.rs index e53b7d94..57c74c23 100644 --- a/crates/proto/src/version/v662/packets/player_auth_input.rs +++ b/crates/proto/src/version/v662/packets/player_auth_input.rs @@ -13,56 +13,56 @@ use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; use std::io::Cursor; #[repr(u64)] -enum PlayerAuthInputFlags { - Ascend = 1 << 1, - Descend = 1 << 2, +pub enum PlayerAuthInputFlags { + Ascend = 1 << 0, + Descend = 1 << 1, #[deprecated] - NorthJump = 1 << 3, - JumpDown = 1 << 4, - SprintDown = 1 << 5, - ChangeHeight = 1 << 6, - Jumping = 1 << 7, - AutoJumpingInWater = 1 << 8, - Sneaking = 1 << 9, - SneakDown = 1 << 10, - Up = 1 << 11, - Down = 1 << 12, - Left = 1 << 13, - Right = 1 << 14, - UpLeft = 1 << 15, - UpRight = 1 << 16, - WantUp = 1 << 17, - WantDown = 1 << 18, - WantDownSlow = 1 << 19, - WantUpSlow = 1 << 20, - Sprinting = 1 << 21, - AscendBlock = 1 << 22, - DescendBlock = 1 << 23, - SneakToggleDown = 1 << 24, - PersistSneak = 1 << 25, - StartSprinting = 1 << 26, - StopSprinting = 1 << 27, - StartSneaking = 1 << 28, - StopSneaking = 1 << 29, - StartSwimming = 1 << 30, - StopSwimming = 1 << 31, - StartJumping = 1 << 32, - StartGliding = 1 << 33, - StopGliding = 1 << 34, - PerformItemInteraction = 1 << 35, - PerformBlockActions = 1 << 36, - PerformItemStackRequest = 1 << 37, - HandleTeleport = 1 << 38, - Emoting = 1 << 39, - MissedSwing = 1 << 40, - StartCrawling = 1 << 41, - StopCrawling = 1 << 42, - StartFlying = 1 << 43, - StopFlying = 1 << 44, - ReceivedServerData = 1 << 45, - IsInClientPredictedVehicle = 1 << 46, - PaddleLeft = 1 << 47, - PaddleRight = 1 << 48, + NorthJump = 1 << 2, + JumpDown = 1 << 3, + SprintDown = 1 << 4, + ChangeHeight = 1 << 5, + Jumping = 1 << 6, + AutoJumpingInWater = 1 << 7, + Sneaking = 1 << 8, + SneakDown = 1 << 9, + Up = 1 << 10, + Down = 1 << 11, + Left = 1 << 12, + Right = 1 << 13, + UpLeft = 1 << 14, + UpRight = 1 << 15, + WantUp = 1 << 16, + WantDown = 1 << 17, + WantDownSlow = 1 << 18, + WantUpSlow = 1 << 19, + Sprinting = 1 << 20, + AscendBlock = 1 << 21, + DescendBlock = 1 << 22, + SneakToggleDown = 1 << 23, + PersistSneak = 1 << 24, + StartSprinting = 1 << 25, + StopSprinting = 1 << 26, + StartSneaking = 1 << 27, + StopSneaking = 1 << 28, + StartSwimming = 1 << 29, + StopSwimming = 1 << 30, + StartJumping = 1 << 31, + StartGliding = 1 << 32, + StopGliding = 1 << 33, + PerformItemInteraction = 1 << 34, + PerformBlockActions = 1 << 35, + PerformItemStackRequest = 1 << 36, + HandleTeleport = 1 << 37, + Emoting = 1 << 38, + MissedSwing = 1 << 39, + StartCrawling = 1 << 40, + StopCrawling = 1 << 41, + StartFlying = 1 << 42, + StopFlying = 1 << 43, + ReceivedServerData = 1 << 44, + IsInClientPredictedVehicle = 1 << 45, + PaddleLeft = 1 << 46, + PaddleRight = 1 << 47, } #[derive(ProtoCodec, Clone, Debug)] From 877172f7a110f1eafcb8bf78318ab30d187573b4 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 20:46:08 +1300 Subject: [PATCH 73/79] fix errors --- .../src/version/v662/enums/actor_data_ids.rs | 3 - .../src/version/v662/enums/actor_flags.rs | 3 - .../src/version/v662/enums/camera_preset.rs | 9 --- .../v662/enums/command_parameter_option.rs | 4 +- .../version/v662/enums/container_enum_name.rs | 2 + .../src/version/v662/enums/crafting_type.rs | 4 +- .../src/version/v662/enums/easing_type.rs | 2 + .../proto/src/version/v662/enums/game_rule.rs | 11 ---- .../version/v662/enums/inventory_source.rs | 5 +- .../item_release_inventory_transaction.rs | 5 +- ...item_use_on_actor_inventory_transaction.rs | 5 +- .../src/version/v662/enums/map_decoration.rs | 40 ------------- .../v662/enums/map_item_tracked_actor.rs | 11 ---- crates/proto/src/version/v662/enums/mod.rs | 6 -- .../src/version/v662/enums/particle_type.rs | 5 +- .../v662/enums/serialized_abilities_data.rs | 12 ---- crates/proto/src/version/v662/enums/tag.rs | 20 ------- .../version/v662/types/camera_instruction.rs | 59 +++++++++++++++++-- .../types/item_stack_request_slot_info.rs | 3 +- .../types/network_item_stack_descriptor.rs | 4 +- 20 files changed, 74 insertions(+), 139 deletions(-) delete mode 100644 crates/proto/src/version/v662/enums/camera_preset.rs delete mode 100644 crates/proto/src/version/v662/enums/game_rule.rs delete mode 100644 crates/proto/src/version/v662/enums/map_decoration.rs delete mode 100644 crates/proto/src/version/v662/enums/map_item_tracked_actor.rs delete mode 100644 crates/proto/src/version/v662/enums/serialized_abilities_data.rs delete mode 100644 crates/proto/src/version/v662/enums/tag.rs diff --git a/crates/proto/src/version/v662/enums/actor_data_ids.rs b/crates/proto/src/version/v662/enums/actor_data_ids.rs index 81838cf9..4d559801 100644 --- a/crates/proto/src/version/v662/enums/actor_data_ids.rs +++ b/crates/proto/src/version/v662/enums/actor_data_ids.rs @@ -1,6 +1,3 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec, Clone, Debug)] pub enum ActorDataIDs { Reserved0 = 0, StructuralIntegrity = 1, diff --git a/crates/proto/src/version/v662/enums/actor_flags.rs b/crates/proto/src/version/v662/enums/actor_flags.rs index a79484bd..6636f9c0 100644 --- a/crates/proto/src/version/v662/enums/actor_flags.rs +++ b/crates/proto/src/version/v662/enums/actor_flags.rs @@ -1,6 +1,3 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec, Clone, Debug)] pub enum ActorFlags { Unknown = -1, OnFire = 0, diff --git a/crates/proto/src/version/v662/enums/camera_preset.rs b/crates/proto/src/version/v662/enums/camera_preset.rs deleted file mode 100644 index 0f869cd2..00000000 --- a/crates/proto/src/version/v662/enums/camera_preset.rs +++ /dev/null @@ -1,9 +0,0 @@ -pub mod CameraPreset { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - pub enum AudioListener { - Camera = 0, - Player = 1, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/command_parameter_option.rs b/crates/proto/src/version/v662/enums/command_parameter_option.rs index 9310b693..918245dd 100644 --- a/crates/proto/src/version/v662/enums/command_parameter_option.rs +++ b/crates/proto/src/version/v662/enums/command_parameter_option.rs @@ -1,6 +1,4 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec, Clone, Debug)] +/// Bitflags for AvailableCommand's ParameterDataEntry's options pub enum CommandParameterOption { None = 0, EnumAutocompleteExpansion = 0x01, diff --git a/crates/proto/src/version/v662/enums/container_enum_name.rs b/crates/proto/src/version/v662/enums/container_enum_name.rs index 33d86443..d3a908dc 100644 --- a/crates/proto/src/version/v662/enums/container_enum_name.rs +++ b/crates/proto/src/version/v662/enums/container_enum_name.rs @@ -1,6 +1,8 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] pub enum ContainerEnumName { AnvilInputContainer = 0, AnvilMaterialContainer = 1, diff --git a/crates/proto/src/version/v662/enums/crafting_type.rs b/crates/proto/src/version/v662/enums/crafting_type.rs index cac15c3a..62fe4bbd 100644 --- a/crates/proto/src/version/v662/enums/crafting_type.rs +++ b/crates/proto/src/version/v662/enums/crafting_type.rs @@ -1,6 +1,4 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec, Clone, Debug)] +#[deprecated] pub enum CraftingType { Inventory = 0, Crafting = 1, diff --git a/crates/proto/src/version/v662/enums/easing_type.rs b/crates/proto/src/version/v662/enums/easing_type.rs index 468033dd..813f2dcb 100644 --- a/crates/proto/src/version/v662/enums/easing_type.rs +++ b/crates/proto/src/version/v662/enums/easing_type.rs @@ -1,6 +1,8 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(u8)] +#[repr(u8)] pub enum EasingType { Linear = 0, Spring = 1, diff --git a/crates/proto/src/version/v662/enums/game_rule.rs b/crates/proto/src/version/v662/enums/game_rule.rs deleted file mode 100644 index 4c1d3238..00000000 --- a/crates/proto/src/version/v662/enums/game_rule.rs +++ /dev/null @@ -1,11 +0,0 @@ -pub mod GameRule { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - pub enum Type { - Invalid = 0, - Bool = 1, - Int = 2, - Float = 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/inventory_source.rs b/crates/proto/src/version/v662/enums/inventory_source.rs index b848ad74..aba05e38 100644 --- a/crates/proto/src/version/v662/enums/inventory_source.rs +++ b/crates/proto/src/version/v662/enums/inventory_source.rs @@ -1,7 +1,6 @@ pub mod InventorySource { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] + /// UNUSED + #[derive(Clone, Debug)] pub enum InventorySourceFlags { NoFlag = 0, WorldInteractionRandom = 1, diff --git a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs index 85338ba9..0cda0d82 100644 --- a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs @@ -1,7 +1,6 @@ pub mod ItemReleaseInventoryTransaction { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] + /// UNUSED + #[derive(Clone, Debug)] pub enum ActionType { Release = 0, Use = 1, diff --git a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs index f4fc643a..bdb93c13 100644 --- a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs +++ b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs @@ -1,7 +1,6 @@ pub mod ItemUseOnActorInventoryTransaction { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] + /// UNUSED + #[derive(Clone, Debug)] pub enum ActionType { Interact = 0, Attack = 1, diff --git a/crates/proto/src/version/v662/enums/map_decoration.rs b/crates/proto/src/version/v662/enums/map_decoration.rs deleted file mode 100644 index 0533f0c6..00000000 --- a/crates/proto/src/version/v662/enums/map_decoration.rs +++ /dev/null @@ -1,40 +0,0 @@ -pub mod MapDecoration { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - pub enum Type { - MarkerWhite = 0, - MarkerGreen = 1, - MarkerRed = 2, - MarkerBlue = 3, - XWhite = 4, - TriangleRed = 5, - SquareWhite = 6, - MarkerSign = 7, - MarkerPink = 8, - MarkerOrange = 9, - MarkerYellow = 10, - MarkerTeal = 11, - TriangleGreen = 12, - SmallSquareWhite = 13, - Mansion = 14, - Monument = 15, - NoDraw = 16, - VillageDesert = 17, - VillagePlains = 18, - VillageSavanna = 19, - VillageSnowy = 20, - VillageTaiga = 21, - JungleTemple = 22, - WitchHut = 23, - Count = 24, - } - - impl Type { - const PLAYER: Type = Type::MarkerWhite; - const PLAYER_OFF_MAP: Type = Type::SquareWhite; - const PLAYER_OFF_LIMITS: Type = Type::SmallSquareWhite; - const PLAYER_HIDDEN: Type = Type::NoDraw; - const ITEM_FRAME: Type = Type::MarkerGreen; - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs b/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs deleted file mode 100644 index a8b65a14..00000000 --- a/crates/proto/src/version/v662/enums/map_item_tracked_actor.rs +++ /dev/null @@ -1,11 +0,0 @@ -pub mod MapItemTrackedActor { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - pub enum Type { - Entity = 0, - BlockEntity = 1, - Other = 2, - Count = 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/mod.rs b/crates/proto/src/version/v662/enums/mod.rs index 50c31b43..3e455c8f 100644 --- a/crates/proto/src/version/v662/enums/mod.rs +++ b/crates/proto/src/version/v662/enums/mod.rs @@ -20,7 +20,6 @@ export!(attribute_operands); export!(book_edit_action); export!(boss_event_update_type); export!(build_platform); -export!(camera_preset); // Mod export!(camera_shake_action); export!(camera_shake_type); export!(chat_restriction_level); @@ -44,7 +43,6 @@ export!(easing_type); export!(editor); // Mod export!(education_edition_offer); export!(enchant); // Mod -export!(game_rule); // Mod export!(game_type); export!(generator_type); export!(hud_element); @@ -66,8 +64,6 @@ export!(item_use_on_actor_inventory_transaction); // Mod export!(lab_table_reaction_type); export!(lesson_action); export!(level_event); -export!(map_decoration); // Mod -export!(map_item_tracked_actor); // Mod export!(minecraft_eventing); // Mod export!(minecraft_packet_ids); export!(mirror); @@ -93,7 +89,6 @@ export!(resource_pack_response); export!(rotation); export!(score_packet_type); export!(scoreboard_identity_packet_type); -export!(serialized_abilities_data); // Mod export!(server_auth_movement_mode); export!(show_store_offer_redirect_type); export!(simulation_type); @@ -105,7 +100,6 @@ export!(structure_block_type); export!(structure_redstone_save_mode); export!(structure_template_request_operation); export!(structure_template_response_type); -export!(tag); // Mod export!(text_packet_type); export!(text_processing_event_origin); export!(ui_profile); diff --git a/crates/proto/src/version/v662/enums/particle_type.rs b/crates/proto/src/version/v662/enums/particle_type.rs index d540a3ec..72cf8ac6 100644 --- a/crates/proto/src/version/v662/enums/particle_type.rs +++ b/crates/proto/src/version/v662/enums/particle_type.rs @@ -1,6 +1,5 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec, Clone, Debug)] +/// UNUSED +#[derive(Clone, Debug)] pub enum ParticleType { Undefined = 0, Bubble = 1, diff --git a/crates/proto/src/version/v662/enums/serialized_abilities_data.rs b/crates/proto/src/version/v662/enums/serialized_abilities_data.rs deleted file mode 100644 index 2ae16559..00000000 --- a/crates/proto/src/version/v662/enums/serialized_abilities_data.rs +++ /dev/null @@ -1,12 +0,0 @@ -pub mod SerializedAbilitiesData { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - pub enum SerializedAbilitiesLayer { - CustomCache = 0, - Base = 1, - Spectator = 2, - Commands = 3, - Editor = 4, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/tag.rs b/crates/proto/src/version/v662/enums/tag.rs deleted file mode 100644 index 3ec09866..00000000 --- a/crates/proto/src/version/v662/enums/tag.rs +++ /dev/null @@ -1,20 +0,0 @@ -pub mod Tag { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - pub enum Type { - End = 0, - Byte = 1, - Short = 2, - Int = 3, - Int64 = 4, - Float = 5, - Double = 6, - ByteArray = 7, - String = 8, - List = 9, - Compound = 10, - IntArray = 11, - NumTagTypes = 12, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/camera_instruction.rs b/crates/proto/src/version/v662/types/camera_instruction.rs index ff2c49ff..a89da0ef 100644 --- a/crates/proto/src/version/v662/types/camera_instruction.rs +++ b/crates/proto/src/version/v662/types/camera_instruction.rs @@ -1,8 +1,59 @@ +use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::ProtoCodec; +use crate::version::v662::enums::EasingType; #[derive(ProtoCodec, Clone, Debug)] -pub struct CameraInstruction{ - pub set: Option<()>, // TODO: CameraInstruction::SetInstruction +struct EaseData { + pub ease_type: EasingType, + #[endianness(le)] + pub ease_time: f32, +} + +#[derive(ProtoCodec, Clone, Debug)] +struct SetInstruction { + #[endianness(le)] + pub runtime_id: i32, + pub ease_data: Option, + #[endianness(le)] + pub position: Option>, + #[endianness(le)] + pub rotation: Option>, + #[endianness(le)] + pub facing: Option>, + pub default_preset: Option, +} + +#[derive(ProtoCodec, Clone, Debug)] +struct TimeData { + #[endianness(le)] + pub fade_in_time: f32, + #[endianness(le)] + pub wait_time: f32, + #[endianness(le)] + pub fade_out_time: f32, +} + +#[derive(ProtoCodec, Clone, Debug)] +struct Color { + #[endianness(le)] + pub r: f32, + #[endianness(le)] + pub g: f32, + #[endianness(le)] + pub b: f32, +} + +#[derive(ProtoCodec, Clone, Debug)] +struct FadeInstruction { + pub time_data: Option, + pub color: Option, +} + +#[derive(ProtoCodec, Clone, Debug)] +pub struct CameraInstruction { + pub set: Option, pub clear: Option, - pub fade: Option<()>, // TODO: CameraInstruction::FadeInstruction -} \ No newline at end of file + pub fade: Option, +} + +// VERIFY: SetInstruction & FadeInstruction \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs b/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs index dd20b4a0..037a823a 100644 --- a/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs +++ b/crates/proto/src/version/v662/types/item_stack_request_slot_info.rs @@ -1,8 +1,9 @@ use bedrockrs_macros::ProtoCodec; +use crate::version::v662::enums::ContainerEnumName; #[derive(ProtoCodec, Clone, Debug)] pub struct ItemStackRequestSlotInfo { - pub container_net_id: i8, + pub container_net_id: ContainerEnumName, pub slot: i8, #[endianness(var)] pub raw_id: i32, diff --git a/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs b/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs index d9c25256..cd18debe 100644 --- a/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs +++ b/crates/proto/src/version/v662/types/network_item_stack_descriptor.rs @@ -21,4 +21,6 @@ pub enum NetworkItemStackDescriptor { block_runtime_id: i32, user_data_buffer: String } = 1 -} \ No newline at end of file +} + +// TODO: impl ProtoCodec \ No newline at end of file From 0c284d7c372ffda54ddae9c4fde56b444c4b9e9a Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 20:56:48 +1300 Subject: [PATCH 74/79] fix errors --- crates/proto/src/version/v662/enums/actor_type.rs | 1 - crates/proto/src/version/v662/enums/ui_profile.rs | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/crates/proto/src/version/v662/enums/actor_type.rs b/crates/proto/src/version/v662/enums/actor_type.rs index 0ae46158..d1863244 100644 --- a/crates/proto/src/version/v662/enums/actor_type.rs +++ b/crates/proto/src/version/v662/enums/actor_type.rs @@ -1,5 +1,4 @@ use bedrockrs_macros::ProtoCodec; -use bitflags::bitflags; mod flags { pub const UNDEFINED: i32 = 1; diff --git a/crates/proto/src/version/v662/enums/ui_profile.rs b/crates/proto/src/version/v662/enums/ui_profile.rs index 2e8b056e..5010a271 100644 --- a/crates/proto/src/version/v662/enums/ui_profile.rs +++ b/crates/proto/src/version/v662/enums/ui_profile.rs @@ -1,6 +1,4 @@ -use bedrockrs_macros::ProtoCodec; - -#[derive(ProtoCodec, Clone, Debug)] +/// UNUSED pub enum UIProfile { Classic = 0, Pocket = 1, From 6e2d5159f73ba74cffd7c3e406e2287bce0013a2 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 21:12:30 +1300 Subject: [PATCH 75/79] format --- crates/proto/src/version/v662/gamepackets.rs | 8 ++++++-- crates/proto/src/version/v662/mod.rs | 4 ++-- crates/proto/src/version/v662/packets/mod.rs | 6 +++--- crates/proto/src/version/v662/types/mod.rs | 2 +- crates/proto_core/src/types/bool.rs | 2 +- crates/proto_core/src/types/int.rs | 2 +- crates/proto_core/src/types/option.rs | 2 +- crates/proto_core/src/types/uuid.rs | 2 +- crates/proto_core/src/types/xuid.rs | 2 +- crates/shared/src/actor_runtime_id.rs | 2 +- crates/shared/src/actor_unique_id.rs | 2 +- 11 files changed, 19 insertions(+), 15 deletions(-) diff --git a/crates/proto/src/version/v662/gamepackets.rs b/crates/proto/src/version/v662/gamepackets.rs index b6692429..f2043f41 100644 --- a/crates/proto/src/version/v662/gamepackets.rs +++ b/crates/proto/src/version/v662/gamepackets.rs @@ -1,10 +1,14 @@ -use crate::version::v662::packets::{AddPlayerPacket, ClientToServerHandshakePacket, DisconnectPacket, LoginPacket, PlayStatusPacket, ResourcePackClientResponsePacket, ResourcePacksInfoPacket, ServerToClientHandshakePacket, SetTimePacket, StartGamePacket, TextPacket}; +use crate::version::v662::packets::{ + AddPlayerPacket, ClientToServerHandshakePacket, DisconnectPacket, LoginPacket, + PlayStatusPacket, ResourcePackClientResponsePacket, ResourcePacksInfoPacket, + ServerToClientHandshakePacket, SetTimePacket, StartGamePacket, TextPacket, +}; +use crate::version::v729::packets::resource_packs_stack::ResourcePacksStackPacket; use bedrockrs_macros::gamepackets; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::sub_client::SubClientID; use std::io::{Cursor, Write}; use varint_rs::{VarintReader, VarintWriter}; -use crate::version::v729::packets::resource_packs_stack::ResourcePacksStackPacket; gamepackets! { Login: LoginPacket, diff --git a/crates/proto/src/version/v662/mod.rs b/crates/proto/src/version/v662/mod.rs index 562a7702..de78f67f 100644 --- a/crates/proto/src/version/v662/mod.rs +++ b/crates/proto/src/version/v662/mod.rs @@ -1,8 +1,8 @@ //! r/20_u7 +pub mod enums; pub mod gamepackets; pub mod helper; +pub mod info; pub mod packets; pub mod types; -pub mod info; -pub mod enums; diff --git a/crates/proto/src/version/v662/packets/mod.rs b/crates/proto/src/version/v662/packets/mod.rs index 3189d760..596f3a03 100644 --- a/crates/proto/src/version/v662/packets/mod.rs +++ b/crates/proto/src/version/v662/packets/mod.rs @@ -155,7 +155,7 @@ export!(motion_prediction_hints); export!(animate_entity); export!(camera_shake); export!(player_fog); -export!(correct_player_move_prediction); +export!(correct_player_move_prediction); export!(item_component); export!(filter_text); export!(clientbound_debug_renderer); @@ -186,7 +186,7 @@ export!(death_info); export!(editor_network); export!(feature_registry); export!(server_stats); -export!(request_network_settings); +export!(request_network_settings); export!(game_test_request); export!(game_test_results); export!(update_client_input_locks); @@ -200,4 +200,4 @@ export!(agent_animation); export!(refresh_entitlements); export!(player_toggle_crafter_slot_request); export!(set_player_inventory_options); -export!(set_hud); \ No newline at end of file +export!(set_hud); diff --git a/crates/proto/src/version/v662/types/mod.rs b/crates/proto/src/version/v662/types/mod.rs index b5a25dd5..9756098a 100644 --- a/crates/proto/src/version/v662/types/mod.rs +++ b/crates/proto/src/version/v662/types/mod.rs @@ -71,4 +71,4 @@ export!(structure_settings); export!(sub_chunk_packet); // Mod export!(sub_chunk_pos); export!(synced_player_movement_settings); -export!(web_socket_packet_data); \ No newline at end of file +export!(web_socket_packet_data); diff --git a/crates/proto_core/src/types/bool.rs b/crates/proto_core/src/types/bool.rs index 09906e39..095fa991 100644 --- a/crates/proto_core/src/types/bool.rs +++ b/crates/proto_core/src/types/bool.rs @@ -1,6 +1,6 @@ -use std::mem::size_of; use byteorder::{ReadBytesExt, WriteBytesExt}; use std::io::Cursor; +use std::mem::size_of; use crate::error::ProtoCodecError; use crate::ProtoCodec; diff --git a/crates/proto_core/src/types/int.rs b/crates/proto_core/src/types/int.rs index 84a85c3c..407166ec 100644 --- a/crates/proto_core/src/types/int.rs +++ b/crates/proto_core/src/types/int.rs @@ -1,10 +1,10 @@ -use std::mem::size_of; use crate::endian::{ProtoCodecBE, ProtoCodecLE, ProtoCodecVAR}; use crate::error::ProtoCodecError; use crate::ProtoCodec; use byteorder::{BigEndian, LittleEndian, ReadBytesExt, WriteBytesExt}; use paste::paste; use std::io::Cursor; +use std::mem::size_of; use varint_rs::VarintReader; use varint_rs::VarintWriter; diff --git a/crates/proto_core/src/types/option.rs b/crates/proto_core/src/types/option.rs index e99a879d..22eaf03a 100644 --- a/crates/proto_core/src/types/option.rs +++ b/crates/proto_core/src/types/option.rs @@ -1,8 +1,8 @@ -use std::mem::size_of; use crate::endian::{ProtoCodecBE, ProtoCodecLE, ProtoCodecVAR}; use crate::error::ProtoCodecError; use crate::ProtoCodec; use std::io::Cursor; +use std::mem::size_of; macro_rules! impl_proto_option { ($name:ident) => { diff --git a/crates/proto_core/src/types/uuid.rs b/crates/proto_core/src/types/uuid.rs index cb2165b3..80b4b501 100644 --- a/crates/proto_core/src/types/uuid.rs +++ b/crates/proto_core/src/types/uuid.rs @@ -1,8 +1,8 @@ -use std::mem::size_of; use crate::error::ProtoCodecError; use crate::ProtoCodec; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use std::io::Cursor; +use std::mem::size_of; use uuid::Uuid; impl ProtoCodec for Uuid { diff --git a/crates/proto_core/src/types/xuid.rs b/crates/proto_core/src/types/xuid.rs index 4fe5d0ab..c5dad258 100644 --- a/crates/proto_core/src/types/xuid.rs +++ b/crates/proto_core/src/types/xuid.rs @@ -1,7 +1,7 @@ -use std::mem::size_of; use crate::error::ProtoCodecError; use crate::ProtoCodec; use std::io::Cursor; +use std::mem::size_of; use xuid::Xuid; impl ProtoCodec for Xuid { diff --git a/crates/shared/src/actor_runtime_id.rs b/crates/shared/src/actor_runtime_id.rs index 5d977e6e..000d06c0 100644 --- a/crates/shared/src/actor_runtime_id.rs +++ b/crates/shared/src/actor_runtime_id.rs @@ -1,7 +1,7 @@ -use std::mem::size_of; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; use std::io::Cursor; +use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; #[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] diff --git a/crates/shared/src/actor_unique_id.rs b/crates/shared/src/actor_unique_id.rs index b07dca48..eb255e4d 100644 --- a/crates/shared/src/actor_unique_id.rs +++ b/crates/shared/src/actor_unique_id.rs @@ -1,7 +1,7 @@ -use std::mem::size_of; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; use std::io::Cursor; +use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; #[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] From bbc89960a5d55f59add50381a8d511d84f59874c Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Mon, 9 Dec 2024 21:47:55 +1300 Subject: [PATCH 76/79] gamepackets.rs --- crates/proto/src/version/v662/gamepackets.rs | 252 +++++++++++++++++- .../proto/src/version/v662/packets/animate.rs | 1 + .../src/version/v662/packets/book_edit.rs | 1 + .../v662/packets/client_cache_blob_status.rs | 1 + .../v662/packets/clientbound_map_item_data.rs | 1 + .../v662/packets/command_block_update.rs | 1 + .../version/v662/packets/command_output.rs | 1 + .../src/version/v662/packets/interact.rs | 1 + .../v662/packets/legacy_telemetry_event.rs | 1 + .../v662/packets/level_sound_event_v1.rs | 1 + .../v662/packets/level_sound_event_v2.rs | 1 + .../src/version/v662/packets/move_player.rs | 1 + .../version/v662/packets/player_auth_input.rs | 1 + .../src/version/v662/packets/sub_chunk.rs | 6 +- 14 files changed, 259 insertions(+), 11 deletions(-) diff --git a/crates/proto/src/version/v662/gamepackets.rs b/crates/proto/src/version/v662/gamepackets.rs index f2043f41..5f99f773 100644 --- a/crates/proto/src/version/v662/gamepackets.rs +++ b/crates/proto/src/version/v662/gamepackets.rs @@ -1,9 +1,59 @@ use crate::version::v662::packets::{ - AddPlayerPacket, ClientToServerHandshakePacket, DisconnectPacket, LoginPacket, - PlayStatusPacket, ResourcePackClientResponsePacket, ResourcePacksInfoPacket, - ServerToClientHandshakePacket, SetTimePacket, StartGamePacket, TextPacket, + ActorEventPacket, ActorPickRequestPacket, AddActorPacket, AddBehaviourTreePacket, + AddItemActorPacket, AddPaintingPacket, AddPlayerPacket, AddVolumeEntityPacket, + AgentActionEventPacket, AgentAnimationPacket, AnimateEntityPacket, AnimatePacket, + AnvilDamagePacket, AutomationClientConnectPacket, AvailableActorIdentifiersPacket, + AvailableCommandsPacket, BiomeDefinitionListPacket, BlockActorDataPacket, BlockEventPacket, + BlockPickRequestPacket, BookEditPacket, BossEventPacket, CameraInstructionPacket, CameraPacket, + CameraPresetsPacket, CameraShakePacket, ChangeDimensionPacket, ChangeMobPropertyPacket, + ChunkRadiusUpdatedPacket, ClientCacheBlobStatusPacket, ClientCacheMissResponsePacket, + ClientCacheStatusPacket, ClientToServerHandshakePacket, ClientboundDebugRendererPacket, + ClientboundMapItemDataPacket, CodeBuilderPacket, CodeBuilderSourcePacket, + CommandBlockUpdatePacket, CommandOutputPacket, CommandRequestPacket, CompletedUsingItemPacket, + CompressedBiomeDefinitionListPacket, ContainerClosePacket, ContainerOpenPacket, + ContainerSetDataPacket, CorrectPlayerMovePredictionPacket, CraftingDataPacket, + CreatePhotoPacket, CreativeContentPacket, DeathInfoPacket, DebugInfoPacket, + DimensionDataPacket, DisconnectPacket, EditorNetworkPacket, EduUriResourcePacket, + EducationSettingsPacket, EmoteListPacket, EmotePacket, FeatureRegistryPacket, FilterTextPacket, + GameRulesChangedPacket, GameTestRequestPacket, GameTestResultsPacket, GuiDataPickItemPacket, + HurtArmorPacket, InteractPacket, InventoryContentPacket, InventorySlotPacket, + InventoryTransactionPacket, ItemComponentPacket, ItemStackRequestPacket, + ItemStackResponsePacket, LabTablePacket, LecternUpdatePacket, LegacyTelemetryEventPacket, + LessonProgressPacket, LevelChunkPacket, LevelEventGenericPacket, LevelEventPacket, + LevelSoundEventPacket, LevelSoundEventPacketV1, LevelSoundEventPacketV2, LoginPacket, + MapCreateLockedCopyPacket, MapInfoRequestPacket, MobArmorEquipmentPacket, MobEffectPacket, + MobEquipmentPacket, ModalFormRequestPacket, ModalFormResponsePacket, + MotionPredictionHintsPacket, MoveActorAbsolutePacket, MoveActorDeltaPacket, MovePlayerPacket, + MultiplayerSettingsPacket, NetworkChunkPublisherUpdatePacket, NetworkSettingsPacket, + NetworkStackLatencyPacket, NpcDialoguePacket, NpcRequestPacket, OnScreenTextureAnimationPacket, + OpenSignPacket, PacketViolationWarningPacket, PassengerJumpPacket, PhotoTransferPacket, + PlaySoundPacket, PlayStatusPacket, PlayerActionPacket, PlayerArmorDamagePacket, + PlayerAuthInputPacket, PlayerEnchantOptionsPacket, PlayerFogPacket, PlayerHotbarPacket, + PlayerInputPacket, PlayerListPacket, PlayerSkinPacket, PlayerStartItemCooldownPacket, + PlayerToggleCrafterSlotRequestPacket, PositionTrackingDBClientRequestPacket, + PositionTrackingDBServerBroadcastPacket, PurchaseReceiptPacket, RefreshEntitlementsPacket, + RemoveActorPacket, RemoveObjectivePacket, RemoveVolumeEntityPacket, RequestAbilityPacket, + RequestChunkRadiusPacket, RequestNetworkSettingsPacket, RequestPermissionsPacket, + ResourcePackChunkDataPacket, ResourcePackChunkRequestPacket, ResourcePackClientResponsePacket, + ResourcePackDataInfoPacket, ResourcePackStackPacket, ResourcePacksInfoPacket, RespawnPacket, + ScriptMessagePacket, ServerPlayerPostMovePositionPacket, ServerSettingsRequestPacket, + ServerSettingsResponsePacket, ServerStatsPacket, ServerToClientHandshakePacket, + SetActorDataPacket, SetActorLinkPacket, SetActorMotionPacket, SetCommandsEnabledPacket, + SetDefaultGameTypePacket, SetDifficultyPacket, SetDisplayObjectivePacket, SetHealthPacket, + SetHudPacket, SetLastHurtByPacket, SetLocalPlayerAsInitializedPacket, SetPlayerGameTypePacket, + SetPlayerInventoryOptionsPacket, SetScorePacket, SetScoreboardIdentityPacket, + SetSpawnPositionPacket, SetTimePacket, SetTitlePacket, SettingsCommandPacket, + ShowCreditsPacket, ShowProfilePacket, ShowStoreOfferPacket, SimpleEventPacket, + SimulationTypePacket, SpawnExperienceOrbPacket, SpawnParticleEffectPacket, StartGamePacket, + StopSoundPacket, StructureBlockUpdatePacket, StructureDataRequestPacket, + StructureDataResponsePacket, SubChunkPacket, SubChunkRequestPacket, SubClientLoginPacket, + SyncActorPropertyPacket, TakeItemActorPacket, TextPacket, TickSyncPacket, + TickingAreaLoadStatusPacket, ToastRequestPacket, TransferPlayerPacket, TrimDataPacket, + UnlockedRecipesPacket, UpdateAbilitiesPacket, UpdateAdventureSettingsPacket, + UpdateAttributesPacket, UpdateBlockPacket, UpdateBlockSyncedPacket, + UpdateClientInputLocksPacket, UpdateEquipPacket, UpdatePlayerGameTypePacket, + UpdateSoftEnumPacket, UpdateSubChunkBlocksPacket, UpdateTradePacket, }; -use crate::version::v729::packets::resource_packs_stack::ResourcePacksStackPacket; use bedrockrs_macros::gamepackets; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::sub_client::SubClientID; @@ -13,16 +63,200 @@ use varint_rs::{VarintReader, VarintWriter}; gamepackets! { Login: LoginPacket, PlaySatus: PlayStatusPacket, - HandshakeServerToClient: ServerToClientHandshakePacket, - HandshakeClientToServer: ClientToServerHandshakePacket, + ServerToClientHandshake: ServerToClientHandshakePacket, + ClientToServerHandshake: ClientToServerHandshakePacket, Disconnect: DisconnectPacket, ResourcePacksInfo: ResourcePacksInfoPacket, - ResourcePacksStack: ResourcePacksStackPacket, + ResourcePackStack: ResourcePackStackPacket, ResourcePackClientResponse: ResourcePackClientResponsePacket, - TextMessage: TextPacket, + Text: TextPacket, SetTime: SetTimePacket, - StartGame: StartGamePacket, // Scary Packet + StartGame: StartGamePacket, AddPlayer: AddPlayerPacket, + AddActor: AddActorPacket, + RemoveActor: RemoveActorPacket, + AddItemActor: AddItemActorPacket, + ServerPlayerPostMovePosition: ServerPlayerPostMovePositionPacket, + TakeItemActor: TakeItemActorPacket, + MoveActorAbsolute: MoveActorAbsolutePacket, + MovePlayer: MovePlayerPacket, + PassengerJump: PassengerJumpPacket, + UpdateBlock: UpdateBlockPacket, + AddPainting: AddPaintingPacket, + TickSync: TickSyncPacket, + LevelSoundEventV1: LevelSoundEventPacketV1, + LevelEvent: LevelEventPacket, + BlockEvent: BlockEventPacket, + ActorEvent: ActorEventPacket, + MobEffect: MobEffectPacket, + UpdateAttributes: UpdateAttributesPacket, + InventoryTransaction: InventoryTransactionPacket, + MobEquipment: MobEquipmentPacket, + MobArmorEquipment: MobArmorEquipmentPacket, + Interact: InteractPacket, + BlockPickRequest: BlockPickRequestPacket, + ActorPickRequest: ActorPickRequestPacket, + PlayerAction: PlayerActionPacket, + HurtArmor: HurtArmorPacket, + SetActorData: SetActorDataPacket, + SetActorMotion: SetActorMotionPacket, + SetActorLink: SetActorLinkPacket, + SetHealth: SetHealthPacket, + SetSpawnPosition: SetSpawnPositionPacket, + Animate: AnimatePacket, + Respawn: RespawnPacket, + ContainerOpen: ContainerOpenPacket, + ContainerClose: ContainerClosePacket, + PlayerHotbar: PlayerHotbarPacket, + InventoryContent: InventoryContentPacket, + InventorySlot: InventorySlotPacket, + ContainerSetData: ContainerSetDataPacket, + CraftingData: CraftingDataPacket, + GuiDataPickItem: GuiDataPickItemPacket, + BlockActorData: BlockActorDataPacket, + PlayerInput: PlayerInputPacket, + LevelChunk: LevelChunkPacket, + SetCommandsEnabled: SetCommandsEnabledPacket, + SetDifficulty: SetDifficultyPacket, + ChangeDimension: ChangeDimensionPacket, + SetPlayerGameType: SetPlayerGameTypePacket, + PlayerList: PlayerListPacket, + SimpleEvent: SimpleEventPacket, + LegacyTelemetryEvent: LegacyTelemetryEventPacket, + SpawnExperienceOrb: SpawnExperienceOrbPacket, + ClientboundMapItemData: ClientboundMapItemDataPacket, + MapInfoRequest: MapInfoRequestPacket, + RequestChunkRadius: RequestChunkRadiusPacket, + ChunkRadiusUpdated: ChunkRadiusUpdatedPacket, + GameRulesChanged: GameRulesChangedPacket, + Camera: CameraPacket, + BossEvent: BossEventPacket, + ShowCredits: ShowCreditsPacket, + AvailableCommands: AvailableCommandsPacket, + CommandRequest: CommandRequestPacket, + CommandBlockUpdate: CommandBlockUpdatePacket, + CommandOutput: CommandOutputPacket, + UpdateTrade: UpdateTradePacket, + UpdateEquip: UpdateEquipPacket, + ResourcePackDataInfo: ResourcePackDataInfoPacket, + ResourcePackChunkData: ResourcePackChunkDataPacket, + ResourcePackChunkRequest: ResourcePackChunkRequestPacket, + TransferPlayer: TransferPlayerPacket, + PlaySound: PlaySoundPacket, + StopSound: StopSoundPacket, + SetTitle: SetTitlePacket, + AddBehaviourTree: AddBehaviourTreePacket, + StructureBlockUpdate: StructureBlockUpdatePacket, + ShowStoreOffer: ShowStoreOfferPacket, + PurchaseReceipt: PurchaseReceiptPacket, + PlayerSkin: PlayerSkinPacket, + SubClientLogin: SubClientLoginPacket, + AutomationClientConnect: AutomationClientConnectPacket, + SetLastHurtBy: SetLastHurtByPacket, + BookEdit: BookEditPacket, + NpcRequest: NpcRequestPacket, + PhotoTransfer: PhotoTransferPacket, + ModalFormRequest: ModalFormRequestPacket, + ModalFormResponse: ModalFormResponsePacket, + ServerSettingsRequest: ServerSettingsRequestPacket, + ServerSettingsResponse: ServerSettingsResponsePacket, + ShowProfile: ShowProfilePacket, + SetDefaultGameType: SetDefaultGameTypePacket, + RemoveObjective: RemoveObjectivePacket, + SetDisplayObjective: SetDisplayObjectivePacket, + SetScore: SetScorePacket, + LabTable: LabTablePacket, + UpdateBlockSynced: UpdateBlockSyncedPacket, + MoveActorDelta: MoveActorDeltaPacket, + SetScoreboardIdentity: SetScoreboardIdentityPacket, + SetLocalPlayerAsInitialized: SetLocalPlayerAsInitializedPacket, + UpdateSoftEnum: UpdateSoftEnumPacket, + NetworkStackLatency: NetworkStackLatencyPacket, + SpawnParticleEffect: SpawnParticleEffectPacket, + AvailableActorIdentifiers: AvailableActorIdentifiersPacket, + LevelSoundEventV2: LevelSoundEventPacketV2, + NetworkChunkPublisherUpdate: NetworkChunkPublisherUpdatePacket, + BiomeDefinitionList: BiomeDefinitionListPacket, + LevelSoundEvent: LevelSoundEventPacket, + LevelEventGeneric: LevelEventGenericPacket, + LecternUpdate: LecternUpdatePacket, + ClientCacheStatus: ClientCacheStatusPacket, + OnScreenTextureAnimation: OnScreenTextureAnimationPacket, + MapCreateLockedCopy: MapCreateLockedCopyPacket, + StructureDataRequest: StructureDataRequestPacket, + StructureDataResponse: StructureDataResponsePacket, + ClientCacheBlobStatus: ClientCacheBlobStatusPacket, + ClientCacheMissResponse: ClientCacheMissResponsePacket, + EducationSettings: EducationSettingsPacket, + Emote: EmotePacket, + MultiplayerSettings: MultiplayerSettingsPacket, + SettingsCommand: SettingsCommandPacket, + AnvilDamage: AnvilDamagePacket, + CompletedUsingItem: CompletedUsingItemPacket, + NetworkSettings: NetworkSettingsPacket, + PlayerAuthInput: PlayerAuthInputPacket, + CreativeContent: CreativeContentPacket, + PlayerEnchantOptions: PlayerEnchantOptionsPacket, + ItemStackRequest: ItemStackRequestPacket, + ItemStackResponse: ItemStackResponsePacket, + PlayerArmorDamage: PlayerArmorDamagePacket, + CodeBuilder: CodeBuilderPacket, + UpdatePlayerGameType: UpdatePlayerGameTypePacket, + EmoteList: EmoteListPacket, + PositionTrackingDbServerBroadcast: PositionTrackingDBServerBroadcastPacket, + PositionTrackingDbClientRequest: PositionTrackingDBClientRequestPacket, + DebugInfo: DebugInfoPacket, + PacketViolationWarning: PacketViolationWarningPacket, + MotionPredictionHints: MotionPredictionHintsPacket, + AnimateEntity: AnimateEntityPacket, + CameraShake: CameraShakePacket, + PlayerFog: PlayerFogPacket, + CorrectPlayerMovePrediction: CorrectPlayerMovePredictionPacket, + ItemComponent: ItemComponentPacket, + FilterText: FilterTextPacket, + ClientboundDebugRenderer: ClientboundDebugRendererPacket, + SyncActorProperty: SyncActorPropertyPacket, + AddVolumeEntity: AddVolumeEntityPacket, + RemoveVolumeEntity: RemoveVolumeEntityPacket, + SimulationType: SimulationTypePacket, + NpcDialogue: NpcDialoguePacket, + EduUriResource: EduUriResourcePacket, + CreatePhoto: CreatePhotoPacket, + UpdateSubChunkBlocks: UpdateSubChunkBlocksPacket, + SubChunk: SubChunkPacket, + SubChunkRequest: SubChunkRequestPacket, + PlayerStartItemCooldown: PlayerStartItemCooldownPacket, + ScriptMessage: ScriptMessagePacket, + CodeBuilderSource: CodeBuilderSourcePacket, + TickingAreaLoadStatus: TickingAreaLoadStatusPacket, + DimensionData: DimensionDataPacket, + AgentActionEvent: AgentActionEventPacket, + ChangeMobProperty: ChangeMobPropertyPacket, + LessonProgress: LessonProgressPacket, + RequestAbility: RequestAbilityPacket, + RequestPermissions: RequestPermissionsPacket, + ToastRequest: ToastRequestPacket, + UpdateAbilities: UpdateAbilitiesPacket, + UpdateAdventureSettings: UpdateAdventureSettingsPacket, + DeathInfo: DeathInfoPacket, + EditorNetwork: EditorNetworkPacket, + FeatureRegistry: FeatureRegistryPacket, + ServerStats: ServerStatsPacket, + RequestNetworkSettings: RequestNetworkSettingsPacket, + GameTestRequest: GameTestRequestPacket, + GameTestResults: GameTestResultsPacket, + UpdateClientInputLocks: UpdateClientInputLocksPacket, + CameraPresets: CameraPresetsPacket, + UnlockedRecipes: UnlockedRecipesPacket, + CameraInstruction: CameraInstructionPacket, + CompressedBiomeDefinitionList: CompressedBiomeDefinitionListPacket, + TrimData: TrimDataPacket, + OpenSign: OpenSignPacket, + AgentAnimation: AgentAnimationPacket, + RefreshEntitlements: RefreshEntitlementsPacket, + PlayerToggleCrafterSlotRequest: PlayerToggleCrafterSlotRequestPacket, + SetPlayerInventoryOptions: SetPlayerInventoryOptionsPacket, + SetHud: SetHudPacket } fn read_gamepacket_header( diff --git a/crates/proto/src/version/v662/packets/animate.rs b/crates/proto/src/version/v662/packets/animate.rs index fe530a59..9ba5d010 100644 --- a/crates/proto/src/version/v662/packets/animate.rs +++ b/crates/proto/src/version/v662/packets/animate.rs @@ -26,6 +26,7 @@ enum Action { } #[gamepacket(id = 44)] +#[derive(Clone, Debug)] pub struct AnimatePacket { pub action: Action, pub target_runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/book_edit.rs b/crates/proto/src/version/v662/packets/book_edit.rs index 8cb21df5..89f2a563 100644 --- a/crates/proto/src/version/v662/packets/book_edit.rs +++ b/crates/proto/src/version/v662/packets/book_edit.rs @@ -7,6 +7,7 @@ use std::mem::size_of; use std::io::{Cursor, Read}; #[gamepacket(id = 97)] +#[derive(Clone, Debug)] pub struct BookEditPacket { pub action: BookEditAction, pub book_slot: i8, diff --git a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs index 5815f7e1..ebe2ab36 100644 --- a/crates/proto/src/version/v662/packets/client_cache_blob_status.rs +++ b/crates/proto/src/version/v662/packets/client_cache_blob_status.rs @@ -5,6 +5,7 @@ use std::io::Cursor; use std::mem::size_of; #[gamepacket(id = 135)] +#[derive(Clone, Debug)] pub struct ClientCacheBlobStatusPacket { pub missing_blobs: Vec, pub obtained_blobs: Vec, diff --git a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs index 824a95f1..70ddc3c0 100644 --- a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs +++ b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs @@ -46,6 +46,7 @@ enum Type { } #[gamepacket(id = 67)] +#[derive(Clone, Debug)] pub struct ClientboundMapItemDataPacket { pub map_id: ActorUniqueID, pub type_flags: Type, diff --git a/crates/proto/src/version/v662/packets/command_block_update.rs b/crates/proto/src/version/v662/packets/command_block_update.rs index 8a428ca5..67494f40 100644 --- a/crates/proto/src/version/v662/packets/command_block_update.rs +++ b/crates/proto/src/version/v662/packets/command_block_update.rs @@ -7,6 +7,7 @@ use std::io::Cursor; use std::mem::size_of; #[gamepacket(id = 78)] +#[derive(Clone, Debug)] pub struct CommandBlockUpdatePacket { pub is_block: bool, pub target_runtime_id: Option, // Only if is_block is false diff --git a/crates/proto/src/version/v662/packets/command_output.rs b/crates/proto/src/version/v662/packets/command_output.rs index 42d9bd84..bdacae12 100644 --- a/crates/proto/src/version/v662/packets/command_output.rs +++ b/crates/proto/src/version/v662/packets/command_output.rs @@ -17,6 +17,7 @@ struct OutputMessagesEntry { } #[gamepacket(id = 79)] +#[derive(Clone, Debug)] pub struct CommandOutputPacket { pub origin_data: CommandOriginData, pub output_type: CommandOutputType, diff --git a/crates/proto/src/version/v662/packets/interact.rs b/crates/proto/src/version/v662/packets/interact.rs index a87c6e65..ce8a5bad 100644 --- a/crates/proto/src/version/v662/packets/interact.rs +++ b/crates/proto/src/version/v662/packets/interact.rs @@ -31,6 +31,7 @@ enum Action { } #[gamepacket(id = 33)] +#[derive(Clone, Debug)] pub struct InteractPacket { pub action: Action, pub target_runtime_id: ActorRuntimeID, diff --git a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs index 0824bd1a..4d9acf93 100644 --- a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs +++ b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs @@ -159,6 +159,7 @@ enum Type { } #[gamepacket(id = 65)] +#[derive(Clone, Debug)] pub struct LegacyTelemetryEventPacket { pub target_actor_id: ActorUniqueID, pub event_type: Type, diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs index 67432630..b8e37054 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs @@ -9,6 +9,7 @@ use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 24)] +#[derive(Clone, Debug)] pub struct LevelSoundEventPacketV1 { pub event_id: Puv::Legacy::LevelSoundEvent, pub position: Vec3, diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs index 5bd5ddaf..c01ee7a2 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs @@ -9,6 +9,7 @@ use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 120)] +#[derive(Clone, Debug)] pub struct LevelSoundEventPacketV2 { pub event_id: Puv::Legacy::LevelSoundEvent, pub position: Vec3, diff --git a/crates/proto/src/version/v662/packets/move_player.rs b/crates/proto/src/version/v662/packets/move_player.rs index 612715be..6ffc13cb 100644 --- a/crates/proto/src/version/v662/packets/move_player.rs +++ b/crates/proto/src/version/v662/packets/move_player.rs @@ -8,6 +8,7 @@ use byteorder::{ReadBytesExt, WriteBytesExt}; use std::io::{Cursor, Read}; #[gamepacket(id = 19)] +#[derive(Clone, Debug)] pub struct MovePlayerPacket { pub player_runtime_id: ActorRuntimeID, pub position: Vec3, diff --git a/crates/proto/src/version/v662/packets/player_auth_input.rs b/crates/proto/src/version/v662/packets/player_auth_input.rs index 57c74c23..1863af2c 100644 --- a/crates/proto/src/version/v662/packets/player_auth_input.rs +++ b/crates/proto/src/version/v662/packets/player_auth_input.rs @@ -94,6 +94,7 @@ struct ClientPredictedVehicleData { } #[gamepacket(id = 144)] +#[derive(Clone, Debug)] pub struct PlayerAuthInputPacket { pub player_rotation: Vec2, pub player_position: Vec3, diff --git a/crates/proto/src/version/v662/packets/sub_chunk.rs b/crates/proto/src/version/v662/packets/sub_chunk.rs index b1c4b732..e5fe62c0 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk.rs @@ -7,7 +7,7 @@ use std::cmp::PartialEq; use std::io::Cursor; use std::mem::size_of; -#[derive(ProtoCodec, PartialEq)] +#[derive(ProtoCodec, Clone, Debug, PartialEq)] #[enum_repr(i8)] #[repr(i8)] pub enum HeightMapDataType { @@ -17,7 +17,7 @@ pub enum HeightMapDataType { AllTooLow = 3, } -#[derive(ProtoCodec, PartialEq)] +#[derive(ProtoCodec, Clone, Debug, PartialEq)] #[enum_repr(i8)] #[repr(i8)] pub enum SubChunkRequestResult { @@ -30,6 +30,7 @@ pub enum SubChunkRequestResult { SuccessAllAir = 6, } +#[derive(Clone, Debug)] struct SubChunkDataEntry { pub sub_chunk_pos_offset: SubChunkPosOffset, pub sub_chunk_request_result: SubChunkRequestResult, @@ -40,6 +41,7 @@ struct SubChunkDataEntry { } #[gamepacket(id = 174)] +#[derive(Clone, Debug)] pub struct SubChunkPacket { pub cache_enabled: bool, pub dimension_type: i32, From b647c13979f6525267a768d645bdf6381ea79cc0 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Tue, 10 Dec 2024 13:11:39 +1300 Subject: [PATCH 77/79] rem extra mods --- .../v662/enums/actor_block_sync_message.rs | 13 - .../v662/enums/actor_block_sync_message_id.rs | 12 + .../v662/enums/code_builder_storage.rs | 19 + .../code_builder_storage_query_options.rs | 21 - .../enums/complex_inventory_transaction.rs | 15 - .../complex_inventory_transaction_type.rs | 13 + .../src/version/v662/enums/connection.rs | 119 ----- .../v662/enums/connection_fail_reason.rs | 119 +++++ crates/proto/src/version/v662/enums/editor.rs | 13 - .../version/v662/enums/editor_world_type.rs | 11 + .../proto/src/version/v662/enums/enchant.rs | 49 -- .../src/version/v662/enums/enchant_type.rs | 47 ++ .../v662/enums/game_publish_setting.rs | 13 + .../version/v662/enums/identity_definition.rs | 21 - .../v662/enums/identity_definition_type.rs | 19 + .../version/v662/enums/inventory_source.rs | 8 - .../v662/enums/inventory_source_flags.rs | 6 + .../src/version/v662/enums/item_descriptor.rs | 15 - .../enums/item_descriptor_internal_type.rs | 13 + .../item_release_inventory_transaction.rs | 8 - ...item_release_inventory_transaction_type.rs | 6 + .../enums/item_use_inventory_transaction.rs | 13 - .../item_use_inventory_transaction_type.rs | 11 + ...item_use_on_actor_inventory_transaction.rs | 9 - ...use_on_actor_inventory_transaction_type.rs | 7 + .../v662/enums/level_sound_event_type.rs | 459 +++++++++++++++++ .../version/v662/enums/minecraft_eventing.rs | 138 +++--- crates/proto/src/version/v662/enums/mod.rs | 30 +- .../proto/src/version/v662/enums/persona.rs | 40 +- .../v662/enums/player_position_mode.rs | 16 + .../enums/player_position_mode_component.rs | 19 - crates/proto/src/version/v662/enums/puv.rs | 463 ------------------ .../version/v662/enums/score_packet_type.rs | 4 +- crates/proto/src/version/v662/enums/social.rs | 15 - .../v662/packets/clientbound_map_item_data.rs | 4 +- .../v662/packets/code_builder_source.rs | 6 +- .../src/version/v662/packets/disconnect.rs | 6 +- .../v662/packets/inventory_transaction.rs | 4 +- .../v662/packets/legacy_telemetry_event.rs | 8 +- .../version/v662/packets/level_sound_event.rs | 4 +- .../v662/packets/level_sound_event_v1.rs | 8 +- .../v662/packets/level_sound_event_v2.rs | 8 +- .../src/version/v662/packets/move_player.rs | 8 +- .../src/version/v662/packets/sub_chunk.rs | 3 +- .../version/v662/packets/sub_chunk_request.rs | 4 +- .../v662/packets/update_block_synced.rs | 4 +- .../v662/packets/update_sub_chunk_blocks.rs | 6 +- .../src/version/v662/types/item_enchants.rs | 4 +- .../src/version/v662/types/level_settings.rs | 8 +- .../v662/types/map_item_tracked_actor.rs | 19 - .../types/map_item_tracked_actor_unique_id.rs | 17 + crates/proto/src/version/v662/types/mod.rs | 4 +- ...d_item_use_legacy_inventory_transaction.rs | 6 +- .../version/v662/types/recipe_ingredient.rs | 4 +- .../src/version/v662/types/serialized_skin.rs | 6 +- .../version/v662/types/sub_chunk_packet.rs | 10 - .../v662/types/sub_chunk_pos_offset.rs | 8 + 57 files changed, 952 insertions(+), 991 deletions(-) delete mode 100644 crates/proto/src/version/v662/enums/actor_block_sync_message.rs create mode 100644 crates/proto/src/version/v662/enums/actor_block_sync_message_id.rs create mode 100644 crates/proto/src/version/v662/enums/code_builder_storage.rs delete mode 100644 crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs delete mode 100644 crates/proto/src/version/v662/enums/complex_inventory_transaction.rs create mode 100644 crates/proto/src/version/v662/enums/complex_inventory_transaction_type.rs delete mode 100644 crates/proto/src/version/v662/enums/connection.rs create mode 100644 crates/proto/src/version/v662/enums/connection_fail_reason.rs delete mode 100644 crates/proto/src/version/v662/enums/editor.rs create mode 100644 crates/proto/src/version/v662/enums/editor_world_type.rs delete mode 100644 crates/proto/src/version/v662/enums/enchant.rs create mode 100644 crates/proto/src/version/v662/enums/enchant_type.rs create mode 100644 crates/proto/src/version/v662/enums/game_publish_setting.rs delete mode 100644 crates/proto/src/version/v662/enums/identity_definition.rs create mode 100644 crates/proto/src/version/v662/enums/identity_definition_type.rs delete mode 100644 crates/proto/src/version/v662/enums/inventory_source.rs create mode 100644 crates/proto/src/version/v662/enums/inventory_source_flags.rs delete mode 100644 crates/proto/src/version/v662/enums/item_descriptor.rs create mode 100644 crates/proto/src/version/v662/enums/item_descriptor_internal_type.rs delete mode 100644 crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs create mode 100644 crates/proto/src/version/v662/enums/item_release_inventory_transaction_type.rs delete mode 100644 crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs create mode 100644 crates/proto/src/version/v662/enums/item_use_inventory_transaction_type.rs delete mode 100644 crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs create mode 100644 crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction_type.rs create mode 100644 crates/proto/src/version/v662/enums/level_sound_event_type.rs create mode 100644 crates/proto/src/version/v662/enums/player_position_mode.rs delete mode 100644 crates/proto/src/version/v662/enums/player_position_mode_component.rs delete mode 100644 crates/proto/src/version/v662/enums/puv.rs delete mode 100644 crates/proto/src/version/v662/enums/social.rs delete mode 100644 crates/proto/src/version/v662/types/map_item_tracked_actor.rs create mode 100644 crates/proto/src/version/v662/types/map_item_tracked_actor_unique_id.rs delete mode 100644 crates/proto/src/version/v662/types/sub_chunk_packet.rs create mode 100644 crates/proto/src/version/v662/types/sub_chunk_pos_offset.rs diff --git a/crates/proto/src/version/v662/enums/actor_block_sync_message.rs b/crates/proto/src/version/v662/enums/actor_block_sync_message.rs deleted file mode 100644 index 7bd3a6fb..00000000 --- a/crates/proto/src/version/v662/enums/actor_block_sync_message.rs +++ /dev/null @@ -1,13 +0,0 @@ -pub mod ActorBlockSyncMessage { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i64)] - #[enum_endianness(var)] - #[repr(i64)] - pub enum MessageId { - NONE = 0, - CREATE = 1, - DESTROY = 2, - } -} diff --git a/crates/proto/src/version/v662/enums/actor_block_sync_message_id.rs b/crates/proto/src/version/v662/enums/actor_block_sync_message_id.rs new file mode 100644 index 00000000..bb5d42d2 --- /dev/null +++ b/crates/proto/src/version/v662/enums/actor_block_sync_message_id.rs @@ -0,0 +1,12 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i64)] +#[enum_endianness(var)] +#[repr(i64)] +pub enum ActorBlockSyncMessageID { + NONE = 0, + CREATE = 1, + DESTROY = 2, +} + diff --git a/crates/proto/src/version/v662/enums/code_builder_storage.rs b/crates/proto/src/version/v662/enums/code_builder_storage.rs new file mode 100644 index 00000000..38934ad3 --- /dev/null +++ b/crates/proto/src/version/v662/enums/code_builder_storage.rs @@ -0,0 +1,19 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] +pub enum CodeBuilderStorageCategory { + None = 0, + CodeStatus = 1, + Instantiation = 2, +} +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] +pub enum CodeBuilderStorageOperation { + None = 0, + Get = 1, + Set = 2, + Reset = 3, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs b/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs deleted file mode 100644 index 910f5239..00000000 --- a/crates/proto/src/version/v662/enums/code_builder_storage_query_options.rs +++ /dev/null @@ -1,21 +0,0 @@ -pub mod CodeBuilderStorageQueryOptions { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i8)] - #[repr(i8)] - pub enum Category { - None = 0, - CodeStatus = 1, - Instantiation = 2, - } - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i8)] - #[repr(i8)] - pub enum Operation { - None = 0, - Get = 1, - Set = 2, - Reset = 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/complex_inventory_transaction.rs b/crates/proto/src/version/v662/enums/complex_inventory_transaction.rs deleted file mode 100644 index fa2f4ca5..00000000 --- a/crates/proto/src/version/v662/enums/complex_inventory_transaction.rs +++ /dev/null @@ -1,15 +0,0 @@ -pub mod ComplexInventoryTransaction { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(u32)] - #[enum_endianness(var)] - #[repr(u32)] - pub enum Type { - NormalTransaction = 0, - InventoryMismatch = 1, - ItemUseTransaction = 2, - ItemUseOnEntityTransaction = 3, - ItemReleaseTransaction = 4, - } -} diff --git a/crates/proto/src/version/v662/enums/complex_inventory_transaction_type.rs b/crates/proto/src/version/v662/enums/complex_inventory_transaction_type.rs new file mode 100644 index 00000000..35b33db2 --- /dev/null +++ b/crates/proto/src/version/v662/enums/complex_inventory_transaction_type.rs @@ -0,0 +1,13 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(u32)] +#[enum_endianness(var)] +#[repr(u32)] +pub enum ComplexInventoryTransactionType { + NormalTransaction = 0, + InventoryMismatch = 1, + ItemUseTransaction = 2, + ItemUseOnEntityTransaction = 3, + ItemReleaseTransaction = 4, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/connection.rs b/crates/proto/src/version/v662/enums/connection.rs deleted file mode 100644 index ee9ec1e5..00000000 --- a/crates/proto/src/version/v662/enums/connection.rs +++ /dev/null @@ -1,119 +0,0 @@ -pub mod Connection { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i32)] - #[enum_endianness(var)] - #[repr(i32)] - pub enum DisconnectFailReason { - Unknown = 0, - CantConnectNoInternet = 1, - NoPermissions = 2, - UnrecoverableError = 3, - ThirdPartyBlocked = 4, - ThirdPartyNoInternet = 5, - ThirdPartyBadIP = 6, - ThirdPartyNoServerOrServerLocked = 7, - VersionMismatch = 8, - SkinIssue = 9, - InviteSessionNotFound = 10, - EduLevelSettingsMissing = 11, - LocalServerNotFound = 12, - LegacyDisconnect = 13, - UserLeaveGameAttempted = 14, - PlatformLockedSkinsError = 15, - RealmsWorldUnassigned = 16, - RealmsServerCantConnect = 17, - RealmsServerHidden = 18, - RealmsServerDisabledBeta = 19, - RealmsServerDisabled = 20, - CrossPlatformDisabled = 21, - CantConnect = 22, - SessionNotFound = 23, - ClientSettingsIncompatibleWithServer = 24, - ServerFull = 25, - InvalidPlatformSkin = 26, - EditionVersionMismatch = 27, - EditionMismatch = 28, - LevelNewerThanExeVersion = 29, - NoFailOccurred = 30, - BannedSkin = 31, - Timeout = 32, - ServerNotFound = 33, - OutdatedServer = 34, - OutdatedClient = 35, - NoPremiumPlatform = 36, - MultiplayerDisabled = 37, - NoWiFi = 38, - WorldCorruption = 39, - NoReason = 40, - Disconnected = 41, - InvalidPlayer = 42, - LoggedInOtherLocation = 43, - ServerIdConflict = 44, - NotAllowed = 45, - NotAuthenticated = 46, - InvalidTenant = 47, - UnknownPacket = 48, - UnexpectedPacket = 49, - InvalidCommandRequestPacket = 50, - HostSuspended = 51, - LoginPacketNoRequest = 52, - LoginPacketNoCert = 53, - MissingClient = 54, - Kicked = 55, - KickedForExploit = 56, - KickedForIdle = 57, - ResourcePackProblem = 58, - IncompatiblePack = 59, - OutOfStorage = 60, - InvalidLevel = 61, - #[deprecated] DisconnectPacket = 62, - BlockMismatch = 63, - InvalidHeights = 64, - InvalidWidths = 65, - ConnectionLost = 66, - ZombieConnection = 67, - Shutdown = 68, - #[deprecated] ReasonNotSet = 69, - LoadingStateTimeout = 70, - ResourcePackLoadingFailed = 71, - SearchingForSessionLoadingScreenFailed = 72, - NetherNetProtocolVersion = 73, - SubsystemStatusError = 74, - EmptyAuthFromDiscovery = 75, - EmptyUrlFromDiscovery = 76, - ExpiredAuthFromDiscovery = 77, - UnknownSignalServiceSignInFailure = 78, - XBLJoinLobbyFailure = 79, - UnspecifiedClientInstanceDisconnection = 80, - NetherNetSessionNotFound = 81, - NetherNetCreatePeerConnection = 82, - NetherNetICE = 83, - NetherNetConnectRequest = 84, - NetherNetConnectResponse = 85, - NetherNetNegotiationTimeout = 86, - NetherNetInactivityTimeout = 87, - StaleConnectionBeingReplaced = 88, - RealmsSessionNotFound = 89, - BadPacket = 90, - NetherNetFailedToCreateOffer = 91, - NetherNetFailedToCreateAnswer = 92, - NetherNetFailedToSetLocalDescription = 93, - NetherNetFailedToSetRemoteDescription = 94, - NetherNetNegotiationTimeoutWaitingForResponse = 95, - NetherNetNegotiationTimeoutWaitingForAccept = 96, - NetherNetIncomingConnectionIgnored = 97, - NetherNetSignalingParsingFailure = 98, - NetherNetSignalingUnknownError = 99, - NetherNetSignalingUnicastDeliveryFailed = 100, - NetherNetSignalingBroadcastDeliveryFailed = 101, - NetherNetSignalingGenericDeliveryFailed = 102, - EditorMismatchEditorWorld = 103, - EditorMismatchVanillaWorld = 104, - WorldTransferNotPrimaryClient = 105, - RequestServerShutdown = 106, - ClientGameSetupCancelled = 107, - ClientGameSetupFailed = 108, - } -} diff --git a/crates/proto/src/version/v662/enums/connection_fail_reason.rs b/crates/proto/src/version/v662/enums/connection_fail_reason.rs new file mode 100644 index 00000000..59081df9 --- /dev/null +++ b/crates/proto/src/version/v662/enums/connection_fail_reason.rs @@ -0,0 +1,119 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i32)] +#[enum_endianness(var)] +#[repr(i32)] +pub enum ConnectionFailReason { + Unknown = 0, + CantConnectNoInternet = 1, + NoPermissions = 2, + UnrecoverableError = 3, + ThirdPartyBlocked = 4, + ThirdPartyNoInternet = 5, + ThirdPartyBadIP = 6, + ThirdPartyNoServerOrServerLocked = 7, + VersionMismatch = 8, + SkinIssue = 9, + InviteSessionNotFound = 10, + EduLevelSettingsMissing = 11, + LocalServerNotFound = 12, + LegacyDisconnect = 13, + UserLeaveGameAttempted = 14, + PlatformLockedSkinsError = 15, + RealmsWorldUnassigned = 16, + RealmsServerCantConnect = 17, + RealmsServerHidden = 18, + RealmsServerDisabledBeta = 19, + RealmsServerDisabled = 20, + CrossPlatformDisabled = 21, + CantConnect = 22, + SessionNotFound = 23, + ClientSettingsIncompatibleWithServer = 24, + ServerFull = 25, + InvalidPlatformSkin = 26, + EditionVersionMismatch = 27, + EditionMismatch = 28, + LevelNewerThanExeVersion = 29, + NoFailOccurred = 30, + BannedSkin = 31, + Timeout = 32, + ServerNotFound = 33, + OutdatedServer = 34, + OutdatedClient = 35, + NoPremiumPlatform = 36, + MultiplayerDisabled = 37, + NoWiFi = 38, + WorldCorruption = 39, + NoReason = 40, + Disconnected = 41, + InvalidPlayer = 42, + LoggedInOtherLocation = 43, + ServerIdConflict = 44, + NotAllowed = 45, + NotAuthenticated = 46, + InvalidTenant = 47, + UnknownPacket = 48, + UnexpectedPacket = 49, + InvalidCommandRequestPacket = 50, + HostSuspended = 51, + LoginPacketNoRequest = 52, + LoginPacketNoCert = 53, + MissingClient = 54, + Kicked = 55, + KickedForExploit = 56, + KickedForIdle = 57, + ResourcePackProblem = 58, + IncompatiblePack = 59, + OutOfStorage = 60, + InvalidLevel = 61, + #[deprecated] + DisconnectPacket = 62, + BlockMismatch = 63, + InvalidHeights = 64, + InvalidWidths = 65, + ConnectionLost = 66, + ZombieConnection = 67, + Shutdown = 68, + #[deprecated] + ReasonNotSet = 69, + LoadingStateTimeout = 70, + ResourcePackLoadingFailed = 71, + SearchingForSessionLoadingScreenFailed = 72, + NetherNetProtocolVersion = 73, + SubsystemStatusError = 74, + EmptyAuthFromDiscovery = 75, + EmptyUrlFromDiscovery = 76, + ExpiredAuthFromDiscovery = 77, + UnknownSignalServiceSignInFailure = 78, + XBLJoinLobbyFailure = 79, + UnspecifiedClientInstanceDisconnection = 80, + NetherNetSessionNotFound = 81, + NetherNetCreatePeerConnection = 82, + NetherNetICE = 83, + NetherNetConnectRequest = 84, + NetherNetConnectResponse = 85, + NetherNetNegotiationTimeout = 86, + NetherNetInactivityTimeout = 87, + StaleConnectionBeingReplaced = 88, + RealmsSessionNotFound = 89, + BadPacket = 90, + NetherNetFailedToCreateOffer = 91, + NetherNetFailedToCreateAnswer = 92, + NetherNetFailedToSetLocalDescription = 93, + NetherNetFailedToSetRemoteDescription = 94, + NetherNetNegotiationTimeoutWaitingForResponse = 95, + NetherNetNegotiationTimeoutWaitingForAccept = 96, + NetherNetIncomingConnectionIgnored = 97, + NetherNetSignalingParsingFailure = 98, + NetherNetSignalingUnknownError = 99, + NetherNetSignalingUnicastDeliveryFailed = 100, + NetherNetSignalingBroadcastDeliveryFailed = 101, + NetherNetSignalingGenericDeliveryFailed = 102, + EditorMismatchEditorWorld = 103, + EditorMismatchVanillaWorld = 104, + WorldTransferNotPrimaryClient = 105, + RequestServerShutdown = 106, + ClientGameSetupCancelled = 107, + ClientGameSetupFailed = 108, +} diff --git a/crates/proto/src/version/v662/enums/editor.rs b/crates/proto/src/version/v662/enums/editor.rs deleted file mode 100644 index a2c638bd..00000000 --- a/crates/proto/src/version/v662/enums/editor.rs +++ /dev/null @@ -1,13 +0,0 @@ -pub mod Editor { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i32)] - #[enum_endianness(var)] - #[repr(i32)] - pub enum WorldType { - NonEditor = 0, - EditorProject = 1, - EditorTestLevel = 2, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/editor_world_type.rs b/crates/proto/src/version/v662/enums/editor_world_type.rs new file mode 100644 index 00000000..1f60b2b8 --- /dev/null +++ b/crates/proto/src/version/v662/enums/editor_world_type.rs @@ -0,0 +1,11 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i32)] +#[enum_endianness(var)] +#[repr(i32)] +pub enum EditorWorldType { + NonEditor = 0, + EditorProject = 1, + EditorTestLevel = 2, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/enchant.rs b/crates/proto/src/version/v662/enums/enchant.rs deleted file mode 100644 index e229c7df..00000000 --- a/crates/proto/src/version/v662/enums/enchant.rs +++ /dev/null @@ -1,49 +0,0 @@ -pub mod Enchant { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i8)] - #[repr(i8)] - pub enum Type { - ArmorAll = 0, - ArmorFire = 1, - ArmorFall = 2, - ArmorExplosive = 3, - ArmorProjectile = 4, - ArmorThorns = 5, - WaterBreath = 6, - WaterSpeed = 7, - WaterAffinity = 8, - WeaponDamage = 9, - WeaponUndead = 10, - WeaponArthropod = 11, - WeaponKnockback = 12, - WeaponFire = 13, - WeaponLoot = 14, - MiningEfficiency = 15, - MiningSilkTouch = 16, - MiningDurability = 17, - MiningLoot = 18, - BowDamage = 19, - BowKnockback = 20, - BowFire = 21, - BowInfinity = 22, - FishingLoot = 23, - FishingLure = 24, - FrostWalker = 25, - Mending = 26, - CurseBinding = 27, - CurseVanishing = 28, - TridentImpaling = 29, - TridentRiptide = 30, - TridentLoyalty = 31, - TridentChanneling = 32, - CrossbowMultishot = 33, - CrossbowPiercing = 34, - CrossbowQuickCharge = 35, - SoulSpeed = 36, - SwiftSneak = 37, - NumEnchantments = 38, - InvalidEnchantment = 39, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/enchant_type.rs b/crates/proto/src/version/v662/enums/enchant_type.rs new file mode 100644 index 00000000..bfdc8691 --- /dev/null +++ b/crates/proto/src/version/v662/enums/enchant_type.rs @@ -0,0 +1,47 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] +pub enum EnchantType { + ArmorAll = 0, + ArmorFire = 1, + ArmorFall = 2, + ArmorExplosive = 3, + ArmorProjectile = 4, + ArmorThorns = 5, + WaterBreath = 6, + WaterSpeed = 7, + WaterAffinity = 8, + WeaponDamage = 9, + WeaponUndead = 10, + WeaponArthropod = 11, + WeaponKnockback = 12, + WeaponFire = 13, + WeaponLoot = 14, + MiningEfficiency = 15, + MiningSilkTouch = 16, + MiningDurability = 17, + MiningLoot = 18, + BowDamage = 19, + BowKnockback = 20, + BowFire = 21, + BowInfinity = 22, + FishingLoot = 23, + FishingLure = 24, + FrostWalker = 25, + Mending = 26, + CurseBinding = 27, + CurseVanishing = 28, + TridentImpaling = 29, + TridentRiptide = 30, + TridentLoyalty = 31, + TridentChanneling = 32, + CrossbowMultishot = 33, + CrossbowPiercing = 34, + CrossbowQuickCharge = 35, + SoulSpeed = 36, + SwiftSneak = 37, + NumEnchantments = 38, + InvalidEnchantment = 39, +} diff --git a/crates/proto/src/version/v662/enums/game_publish_setting.rs b/crates/proto/src/version/v662/enums/game_publish_setting.rs new file mode 100644 index 00000000..0971e604 --- /dev/null +++ b/crates/proto/src/version/v662/enums/game_publish_setting.rs @@ -0,0 +1,13 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i32)] +#[enum_endianness(var)] +#[repr(i32)] +pub enum GamePublishSetting { + NoMultiPlay = 0, + InviteOnly = 1, + FriendsOnly = 2, + FriendsOfFriends = 3, + Public = 4, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/identity_definition.rs b/crates/proto/src/version/v662/enums/identity_definition.rs deleted file mode 100644 index c8faff3e..00000000 --- a/crates/proto/src/version/v662/enums/identity_definition.rs +++ /dev/null @@ -1,21 +0,0 @@ -pub mod IdentityDefinition { - use crate::version::v662::types::ActorUniqueID; - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i8)] - #[repr(i8)] - pub enum Type { - Invalid = 0, - Player { - #[endianness(var)] - player_unique_id: i64, - } = 1, - Entity { - actor_id: ActorUniqueID, - } = 2, - FakePlayer { - fake_player_name: String, - } = 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/identity_definition_type.rs b/crates/proto/src/version/v662/enums/identity_definition_type.rs new file mode 100644 index 00000000..9556cfde --- /dev/null +++ b/crates/proto/src/version/v662/enums/identity_definition_type.rs @@ -0,0 +1,19 @@ +use crate::version::v662::types::ActorUniqueID; +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] +pub enum IdentityDefinitionType { + Invalid = 0, + Player { + #[endianness(var)] + player_unique_id: i64, + } = 1, + Entity { + actor_id: ActorUniqueID, + } = 2, + FakePlayer { + fake_player_name: String, + } = 3, +} diff --git a/crates/proto/src/version/v662/enums/inventory_source.rs b/crates/proto/src/version/v662/enums/inventory_source.rs deleted file mode 100644 index aba05e38..00000000 --- a/crates/proto/src/version/v662/enums/inventory_source.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub mod InventorySource { - /// UNUSED - #[derive(Clone, Debug)] - pub enum InventorySourceFlags { - NoFlag = 0, - WorldInteractionRandom = 1, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/inventory_source_flags.rs b/crates/proto/src/version/v662/enums/inventory_source_flags.rs new file mode 100644 index 00000000..025f8e5b --- /dev/null +++ b/crates/proto/src/version/v662/enums/inventory_source_flags.rs @@ -0,0 +1,6 @@ +/// UNUSED +#[derive(Clone, Debug)] +pub enum InventorySourceFlags { + NoFlag = 0, + WorldInteractionRandom = 1, +} diff --git a/crates/proto/src/version/v662/enums/item_descriptor.rs b/crates/proto/src/version/v662/enums/item_descriptor.rs deleted file mode 100644 index 3c4678de..00000000 --- a/crates/proto/src/version/v662/enums/item_descriptor.rs +++ /dev/null @@ -1,15 +0,0 @@ -pub mod ItemDescriptor { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i8)] - #[repr(i8)] - pub enum InternalType { - Invalid = 0, - Default = 1, - Molang = 2, - ItemTag = 3, - Deferred = 4, - ComplexAlias = 5, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/item_descriptor_internal_type.rs b/crates/proto/src/version/v662/enums/item_descriptor_internal_type.rs new file mode 100644 index 00000000..1c9ad050 --- /dev/null +++ b/crates/proto/src/version/v662/enums/item_descriptor_internal_type.rs @@ -0,0 +1,13 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] +pub enum ItemDescriptorInternalType { + Invalid = 0, + Default = 1, + Molang = 2, + ItemTag = 3, + Deferred = 4, + ComplexAlias = 5, +} diff --git a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs deleted file mode 100644 index 0cda0d82..00000000 --- a/crates/proto/src/version/v662/enums/item_release_inventory_transaction.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub mod ItemReleaseInventoryTransaction { - /// UNUSED - #[derive(Clone, Debug)] - pub enum ActionType { - Release = 0, - Use = 1, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/item_release_inventory_transaction_type.rs b/crates/proto/src/version/v662/enums/item_release_inventory_transaction_type.rs new file mode 100644 index 00000000..bd9c4c98 --- /dev/null +++ b/crates/proto/src/version/v662/enums/item_release_inventory_transaction_type.rs @@ -0,0 +1,6 @@ +/// UNUSED +#[derive(Clone, Debug)] +pub enum ItemReleaseInventoryTransactionType { + Release = 0, + Use = 1, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs deleted file mode 100644 index 710d134b..00000000 --- a/crates/proto/src/version/v662/enums/item_use_inventory_transaction.rs +++ /dev/null @@ -1,13 +0,0 @@ -pub mod ItemUseInventoryTransaction { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(u32)] - #[enum_endianness(var)] - #[repr(u32)] - pub enum ActionType { - Place = 0, - Use = 1, - Destroy = 2, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/item_use_inventory_transaction_type.rs b/crates/proto/src/version/v662/enums/item_use_inventory_transaction_type.rs new file mode 100644 index 00000000..b9babd7f --- /dev/null +++ b/crates/proto/src/version/v662/enums/item_use_inventory_transaction_type.rs @@ -0,0 +1,11 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(u32)] +#[enum_endianness(var)] +#[repr(u32)] +pub enum ItemUseInventoryTransactionType { + Place = 0, + Use = 1, + Destroy = 2, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs deleted file mode 100644 index bdb93c13..00000000 --- a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction.rs +++ /dev/null @@ -1,9 +0,0 @@ -pub mod ItemUseOnActorInventoryTransaction { - /// UNUSED - #[derive(Clone, Debug)] - pub enum ActionType { - Interact = 0, - Attack = 1, - ItemInteract = 2, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction_type.rs b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction_type.rs new file mode 100644 index 00000000..1824703c --- /dev/null +++ b/crates/proto/src/version/v662/enums/item_use_on_actor_inventory_transaction_type.rs @@ -0,0 +1,7 @@ +/// UNUSED +#[derive(Clone, Debug)] +pub enum ItemUseOnActorInventoryTransactionType { + Interact = 0, + Attack = 1, + ItemInteract = 2, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/level_sound_event_type.rs b/crates/proto/src/version/v662/enums/level_sound_event_type.rs new file mode 100644 index 00000000..83dc367c --- /dev/null +++ b/crates/proto/src/version/v662/enums/level_sound_event_type.rs @@ -0,0 +1,459 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(u32)] +#[enum_endianness(var)] +#[repr(u32)] +pub enum LevelSoundEventType { + ItemUseOn = 0, + Hit = 1, + Step = 2, + Fly = 3, + Jump = 4, + Break = 5, + Place = 6, + HeavyStep = 7, + Gallop = 8, + Fall = 9, + Ambient = 10, + AmbientBaby = 11, + AmbientInWater = 12, + Breathe = 13, + Death = 14, + DeathInWater = 15, + DeathToZombie = 16, + Hurt = 17, + HurtInWater = 18, + Mad = 19, + Boost = 20, + Bow = 21, + SquishBig = 22, + SquishSmall = 23, + FallBig = 24, + FallSmall = 25, + Splash = 26, + Fizz = 27, + Flap = 28, + Swim = 29, + Drink = 30, + Eat = 31, + Takeoff = 32, + Shake = 33, + Plop = 34, + Land = 35, + Saddle = 36, + Armor = 37, + ArmorPlace = 38, + AddChest = 39, + Throw = 40, + Attack = 41, + AttackNoDamage = 42, + AttackStrong = 43, + Warn = 44, + Shear = 45, + Milk = 46, + Thunder = 47, + Explode = 48, + Fire = 49, + Ignite = 50, + Fuse = 51, + Stare = 52, + Spawn = 53, + Shoot = 54, + BreakBlock = 55, + Launch = 56, + Blast = 57, + LargeBlast = 58, + Twinkle = 59, + Remedy = 60, + Unfect = 61, + LevelUp = 62, + BowHit = 63, + BulletHit = 64, + ExtinguishFire = 65, + ItemFizz = 66, + ChestOpen = 67, + ChestClosed = 68, + ShulkerBoxOpen = 69, + ShulkerBoxClosed = 70, + EnderChestOpen = 71, + EnderChestClosed = 72, + PowerOn = 73, + PowerOff = 74, + Attach = 75, + Detach = 76, + Deny = 77, + Tripod = 78, + Pop = 79, + DropSlot = 80, + Note = 81, + Thorns = 82, + PistonIn = 83, + PistonOut = 84, + Portal = 85, + Water = 86, + LavaPop = 87, + Lava = 88, + Burp = 89, + BucketFillWater = 90, + BucketFillLava = 91, + BucketEmptyWater = 92, + BucketEmptyLava = 93, + EquipChain = 94, + EquipDiamond = 95, + EquipGeneric = 96, + EquipGold = 97, + EquipIron = 98, + EquipLeather = 99, + EquipElytra = 100, + Record13 = 101, + RecordCat = 102, + RecordBlocks = 103, + RecordChirp = 104, + RecordFar = 105, + RecordMall = 106, + RecordMellohi = 107, + RecordStal = 108, + RecordStrad = 109, + RecordWard = 110, + Record11 = 111, + RecordWait = 112, + RecordNull = 113, + Flop = 114, + GuardianCurse = 115, + MobWarning = 116, + MobWarningBaby = 117, + Teleport = 118, + ShulkerOpen = 119, + ShulkerClose = 120, + Haggle = 121, + HaggleYes = 122, + HaggleNo = 123, + HaggleIdle = 124, + ChorusGrow = 125, + ChorusDeath = 126, + Glass = 127, + PotionBrewed = 128, + CastSpell = 129, + PrepareAttackSpell = 130, + PrepareSummon = 131, + PrepareWololo = 132, + Fang = 133, + Charge = 134, + TakePicture = 135, + PlaceLeashKnot = 136, + BreakLeashKnot = 137, + AmbientGrowl = 138, + AmbientWhine = 139, + AmbientPant = 140, + AmbientPurr = 141, + AmbientPurreow = 142, + DeathMinVolume = 143, + DeathMidVolume = 144, + ImitateBlaze = 145, + ImitateCaveSpider = 146, + ImitateCreeper = 147, + ImitateElderGuardian = 148, + ImitateEnderDragon = 149, + ImitateEnderman = 150, + ImitateEndermite = 151, + ImitateEvocationIllager = 152, + ImitateGhast = 153, + ImitateHusk = 154, + ImitateIllusionIllager = 155, + ImitateMagmaCube = 156, + ImitatePolarBear = 157, + ImitateShulker = 158, + ImitateSilverfish = 159, + ImitateSkeleton = 160, + ImitateSlime = 161, + ImitateSpider = 162, + ImitateStray = 163, + ImitateVex = 164, + ImitateVindicationIllager = 165, + ImitateWitch = 166, + ImitateWither = 167, + ImitateWitherSkeleton = 168, + ImitateWolf = 169, + ImitateZombie = 170, + ImitateZombiePigman = 171, + ImitateZombieVillager = 172, + EnderEyePlaced = 173, + EndPortalCreated = 174, + AnvilUse = 175, + BottleDragonBreath = 176, + PortalTravel = 177, + TridentHit = 178, + TridentReturn = 179, + TridentRiptide1 = 180, + TridentRiptide2 = 181, + TridentRiptide3 = 182, + TridentThrow = 183, + TridentThunder = 184, + TridentHitGround = 185, + Default = 186, + FletchingTableUse = 187, + ElemConstructOpen = 188, + IceBombHit = 189, + BalloonPop = 190, + LTReactionIceBomb = 191, + LTReactionBleach = 192, + LTReactionElephantToothpaste = 193, + LTReactionElephantToothpaste2 = 194, + LTReactionGlowStick = 195, + LTReactionGlowStick2 = 196, + LTReactionLuminol = 197, + LTReactionSalt = 198, + LTReactionFertilizer = 199, + LTReactionFireball = 200, + LTReactionMagnesiumSalt = 201, + LTReactionMiscFire = 202, + LTReactionFire = 203, + LTReactionMiscExplosion = 204, + LTReactionMiscMystical = 205, + LTReactionMiscMystical2 = 206, + LTReactionProduct = 207, + SparklerUse = 208, + GlowStickUse = 209, + SparklerActive = 210, + ConvertToDrowned = 211, + BucketFillFish = 212, + BucketEmptyFish = 213, + BubbleColumnUpwards = 214, + BubbleColumnDownwards = 215, + BubblePop = 216, + BubbleUpInside = 217, + BubbleDownInside = 218, + HurtBaby = 219, + DeathBaby = 220, + StepBaby = 221, + SpawnBaby = 222, + Born = 223, + TurtleEggBreak = 224, + TurtleEggCrack = 225, + TurtleEggHatched = 226, + LayEgg = 227, + TurtleEggAttacked = 228, + BeaconActivate = 229, + BeaconAmbient = 230, + BeaconDeactivate = 231, + BeaconPower = 232, + ConduitActivate = 233, + ConduitAmbient = 234, + ConduitAttack = 235, + ConduitDeactivate = 236, + ConduitShort = 237, + Swoop = 238, + BambooSaplingPlace = 239, + PreSneeze = 240, + Sneeze = 241, + AmbientTame = 242, + Scared = 243, + ScaffoldingClimb = 244, + CrossbowLoadingStart = 245, + CrossbowLoadingMiddle = 246, + CrossbowLoadingEnd = 247, + CrossbowShoot = 248, + CrossbowQuickChargeStart = 249, + CrossbowQuickChargeMiddle = 250, + CrossbowQuickChargeEnd = 251, + AmbientAggressive = 252, + AmbientWorried = 253, + CantBreed = 254, + ShieldBlock = 255, + LecternBookPlace = 256, + GrindstoneUse = 257, + Bell = 258, + CampfireCrackle = 259, + Roar = 260, + Stun = 261, + SweetBerryBushHurt = 262, + SweetBerryBushPick = 263, + CartographyTableUse = 264, + StonecutterUse = 265, + ComposterEmpty = 266, + ComposterFill = 267, + ComposterFillLayer = 268, + ComposterReady = 269, + BarrelOpen = 270, + BarrelClose = 271, + RaidHorn = 272, + LoomUse = 273, + AmbientInRaid = 274, + UICartographyTableUse = 275, + UIStonecutterUse = 276, + UILoomUse = 277, + SmokerUse = 278, + BlastFurnaceUse = 279, + SmithingTableUse = 280, + Screech = 281, + Sleep = 282, + FurnaceUse = 283, + MooshroomConvert = 284, + MilkSuspiciously = 285, + Celebrate = 286, + JumpPrevent = 287, + AmbientPollinate = 288, + BeehiveDrip = 289, + BeehiveEnter = 290, + BeehiveExit = 291, + BeehiveWork = 292, + BeehiveShear = 293, + HoneybottleDrink = 294, + AmbientCave = 295, + Retreat = 296, + ConvertToZombified = 297, + Admire = 298, + StepLava = 299, + Tempt = 300, + Panic = 301, + Angry = 302, + AmbientMoodWarpedForest = 303, + AmbientMoodSoulsandValley = 304, + AmbientMoodNetherWastes = 305, + AmbientMoodBasaltDeltas = 306, + AmbientMoodCrimsonForest = 307, + RespawnAnchorCharge = 308, + RespawnAnchorDeplete = 309, + RespawnAnchorSetSpawn = 310, + RespawnAnchorAmbient = 311, + SoulEscapeQuiet = 312, + SoulEscapeLoud = 313, + RecordPigstep = 314, + LinkCompassToLodestone = 315, + UseSmithingTable = 316, + EquipNetherite = 317, + AmbientLoopWarpedForest = 318, + AmbientLoopSoulsandValley = 319, + AmbientLoopNetherWastes = 320, + AmbientLoopBasaltDeltas = 321, + AmbientLoopCrimsonForest = 322, + AmbientAdditionWarpedForest = 323, + AmbientAdditionSoulsandValley = 324, + AmbientAdditionNetherWastes = 325, + AmbientAdditionBasaltDeltas = 326, + AmbientAdditionCrimsonForest = 327, + SculkSensorPowerOn = 328, + SculkSensorPowerOff = 329, + BucketFillPowderSnow = 330, + BucketEmptyPowderSnow = 331, + PointedDripstoneCauldronDripWater = 332, + PointedDripstoneCauldronDripLava = 333, + PointedDripstoneDripWater = 334, + PointedDripstoneDripLava = 335, + CaveVinesPickBerries = 336, + BigDripleafTiltDown = 337, + BigDripleafTiltUp = 338, + CopperWaxOn = 339, + CopperWaxOff = 340, + Scrape = 341, + PlayerHurtDrown = 342, + PlayerHurtOnFire = 343, + PlayerHurtFreeze = 344, + UseSpyglass = 345, + StopUsingSpyglass = 346, + AmethystBlockChime = 347, + AmbientScreamer = 348, + HurtScreamer = 349, + DeathScreamer = 350, + MilkScreamer = 351, + JumpToBlock = 352, + PreRam = 353, + PreRamScreamer = 354, + RamImpact = 355, + RamImpactScreamer = 356, + SquidInkSquirt = 357, + GlowSquidInkSquirt = 358, + ConvertToStray = 359, + CakeAddCandle = 360, + ExtinguishCandle = 361, + AmbientCandle = 362, + BlockClick = 363, + BlockClickFail = 364, + SculkCatalystBloom = 365, + SculkShriekerShriek = 366, + NearbyClose = 367, + NearbyCloser = 368, + NearbyClosest = 369, + Agitated = 370, + RecordOtherside = 371, + Tongue = 372, + CrackIronGolem = 373, + RepairIronGolem = 374, + Listening = 375, + Heartbeat = 376, + HornBreak = 377, + SculkSpread = 379, + SculkCharge = 380, + SculkSensorPlace = 381, + SculkShriekerPlace = 382, + GoatCall0 = 383, + GoatCall1 = 384, + GoatCall2 = 385, + GoatCall3 = 386, + GoatCall4 = 387, + GoatCall5 = 388, + GoatCall6 = 389, + GoatCall7 = 390, + ImitateWarden = 426, + ListeningAngry = 427, + ItemGiven = 428, + ItemTaken = 429, + Disappeared = 430, + Reappeared = 431, + DrinkMilk = 432, + FrogspawnHatched = 433, + LaySpawn = 434, + FrogspawnBreak = 435, + SonicBoom = 436, + SonicCharge = 437, + ItemThrown = 438, + Record5 = 439, + ConvertToFrog = 440, + RecordPlaying = 441, + EnchantingTableUse = 442, + StepSand = 443, + DashReady = 444, + BundleDropContents = 445, + BundleInsert = 446, + BundleRemoveOne = 447, + PressurePlateClickOff = 448, + PressurePlateClickOn = 449, + ButtonClickOff = 450, + ButtonClickOn = 451, + DoorOpen = 452, + DoorClose = 453, + TrapdoorOpen = 454, + TrapdoorClose = 455, + FenceGateOpen = 456, + FenceGateClose = 457, + Insert = 458, + Pickup = 459, + InsertEnchanted = 460, + PickupEnchanted = 461, + Brush = 462, + BrushCompleted = 463, + ShatterDecoratedPot = 464, + BreakDecoratedPot = 465, + SnifferEggCrack = 466, + SnifferEggHatched = 467, + WaxedSignInteractFail = 468, + RecordRelic = 469, + Bump = 470, + PumpkinCarve = 471, + ConvertHuskToZombie = 472, + PigDeath = 473, + HoglinConvertToZombified = 474, + AmbientUnderwaterEnter = 475, + AmbientUnderwaterExit = 476, + BottleFill = 477, + BottleEmpty = 478, + CrafterCraft = 479, + CrafterFail = 480, + DecoratedPotInsert = 481, + DecoratedPotInsertFail = 482, + CrafterDisableSlot = 483, + CopperBulbTurnOn = 490, + CopperBulbTurnOff = 491, + Undefined = 492, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/minecraft_eventing.rs b/crates/proto/src/version/v662/enums/minecraft_eventing.rs index afb4288d..ba787fff 100644 --- a/crates/proto/src/version/v662/enums/minecraft_eventing.rs +++ b/crates/proto/src/version/v662/enums/minecraft_eventing.rs @@ -1,72 +1,70 @@ -pub mod MinecraftEventing { - use bedrockrs_macros::ProtoCodec; +use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i32)] - #[enum_endianness(var)] - #[repr(i32)] - pub enum InteractionType { - Breeding = 1, - Taming = 2, - Curing = 3, - Crafted = 4, - Shearing = 5, - Milking = 6, - Trading = 7, - Feeding = 8, - Igniting = 9, - Coloring = 10, - Naming = 11, - Leashing = 12, - Unleashing = 13, - PetSleep = 14, - Trusting = 15, - Commanding = 16, - } - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i32)] - #[enum_endianness(var)] - #[repr(i32)] - pub enum POIBlockInteractionType { - None = 0, - Extend = 1, - Clone = 2, - Lock = 3, - Create = 4, - CreateLocator = 5, - Rename = 6, - ItemPlaced = 7, - ItemRemoved = 8, - Cooking = 9, - Dousing = 10, - Lighting = 11, - Haystack = 12, - Filled = 13, - Emptied = 14, - AddDye = 15, - DyeItem = 16, - ClearItem = 17, - EnchantArrow = 18, - CompostItemPlaced = 19, - RecoveredBonemeal = 20, - BookPlaced = 21, - BookOpened = 22, - Disenchant = 23, - Repair = 24, - DisenchantAndRepair = 25, - } - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i32)] - #[enum_endianness(le)] - #[repr(i32)] - pub enum TeleportationCause { - Unknown = 0, - Projectile = 1, - ChorusFruit = 2, - Command = 3, - Behavior = 4, - TeleportationCauseCount = 5, - } +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i32)] +#[enum_endianness(var)] +#[repr(i32)] +pub enum InteractionType { + Breeding = 1, + Taming = 2, + Curing = 3, + Crafted = 4, + Shearing = 5, + Milking = 6, + Trading = 7, + Feeding = 8, + Igniting = 9, + Coloring = 10, + Naming = 11, + Leashing = 12, + Unleashing = 13, + PetSleep = 14, + Trusting = 15, + Commanding = 16, +} + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i32)] +#[enum_endianness(var)] +#[repr(i32)] +pub enum POIBlockInteractionType { + None = 0, + Extend = 1, + Clone = 2, + Lock = 3, + Create = 4, + CreateLocator = 5, + Rename = 6, + ItemPlaced = 7, + ItemRemoved = 8, + Cooking = 9, + Dousing = 10, + Lighting = 11, + Haystack = 12, + Filled = 13, + Emptied = 14, + AddDye = 15, + DyeItem = 16, + ClearItem = 17, + EnchantArrow = 18, + CompostItemPlaced = 19, + RecoveredBonemeal = 20, + BookPlaced = 21, + BookOpened = 22, + Disenchant = 23, + Repair = 24, + DisenchantAndRepair = 25, +} + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i32)] +#[enum_endianness(le)] +#[repr(i32)] +pub enum TeleportationCause { + Unknown = 0, + Projectile = 1, + ChorusFruit = 2, + Command = 3, + Behavior = 4, + TeleportationCauseCount = 5, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/mod.rs b/crates/proto/src/version/v662/enums/mod.rs index 3e455c8f..6708a8b7 100644 --- a/crates/proto/src/version/v662/enums/mod.rs +++ b/crates/proto/src/version/v662/enums/mod.rs @@ -6,7 +6,7 @@ macro_rules! export { } export!(abilities_index); -export!(actor_block_sync_message); // Mod +export!(actor_block_sync_message_id); // Mod export!(actor_damage_cause); export!(actor_data_ids); export!(actor_event); @@ -24,14 +24,14 @@ export!(camera_shake_action); export!(camera_shake_type); export!(chat_restriction_level); export!(client_play_mode); -export!(code_builder_storage_query_options); // Mod +export!(code_builder_storage); // Mod export!(command_block_mode); export!(command_origin_type); export!(command_output_type); export!(command_parameter_option); export!(command_permission_level); -export!(complex_inventory_transaction); // Mod -export!(connection); // Mod +export!(complex_inventory_transaction_type); // Mod +export!(connection_fail_reason); // Mod export!(container_enum_name); export!(container_id); export!(container_type); @@ -40,27 +40,27 @@ export!(crafting_type); export!(data_item_type); export!(difficulty); export!(easing_type); -export!(editor); // Mod +export!(editor_world_type); // Mod export!(education_edition_offer); -export!(enchant); // Mod +export!(enchant_type); // Mod export!(game_type); export!(generator_type); export!(hud_element); export!(hud_visibility); -export!(identity_definition); // Mod +export!(identity_definition_type); // Mod export!(input_mode); export!(inventory_layout); export!(inventory_left_tab_index); export!(inventory_right_tab_index); -export!(inventory_source); // Mod +export!(inventory_source_flags); // Mod export!(inventory_source_type); -export!(item_descriptor); // Mod -export!(item_release_inventory_transaction); // Mod +export!(item_descriptor_internal_type); // Mod +export!(item_release_inventory_transaction_type); // Mod export!(item_stack_net_result); export!(item_stack_request_action_type); -export!(item_use_inventory_transaction); // Mod +export!(item_use_inventory_transaction_type); // Mod export!(item_use_method); -export!(item_use_on_actor_inventory_transaction); // Mod +export!(item_use_on_actor_inventory_transaction_type); // Mod export!(lab_table_reaction_type); export!(lesson_action); export!(level_event); @@ -82,9 +82,9 @@ export!(play_status); export!(player_action_type); export!(player_list_packet_type); export!(player_permission_level); -export!(player_position_mode_component); // Mod +export!(player_position_mode); // Mod export!(player_respawn_state); -export!(puv); // Mod +export!(level_sound_event_type); // Mod export!(resource_pack_response); export!(rotation); export!(score_packet_type); @@ -92,7 +92,7 @@ export!(scoreboard_identity_packet_type); export!(server_auth_movement_mode); export!(show_store_offer_redirect_type); export!(simulation_type); -export!(social); // Mod +export!(game_publish_setting); // Mod export!(soft_enum_update_type); export!(spawn_biome_type); export!(spawn_position_type); diff --git a/crates/proto/src/version/v662/enums/persona.rs b/crates/proto/src/version/v662/enums/persona.rs index cbe821ac..57bfcf46 100644 --- a/crates/proto/src/version/v662/enums/persona.rs +++ b/crates/proto/src/version/v662/enums/persona.rs @@ -1,23 +1,21 @@ -pub mod Persona { - use bedrockrs_macros::ProtoCodec; +use bedrockrs_macros::ProtoCodec; - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(u32)] - #[enum_endianness(le)] - #[repr(u32)] - pub enum AnimatedTextureType { - None = 0, - Face = 1, - Body32x32 = 2, - Body128x128 = 3, - } - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(u32)] - #[enum_endianness(le)] - #[repr(u32)] - pub enum AnimationExpression { - Linear = 0, - Blinking = 1, - } +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(u32)] +#[enum_endianness(le)] +#[repr(u32)] +pub enum AnimatedTextureType { + None = 0, + Face = 1, + Body32x32 = 2, + Body128x128 = 3, +} + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(u32)] +#[enum_endianness(le)] +#[repr(u32)] +pub enum AnimationExpression { + Linear = 0, + Blinking = 1, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/player_position_mode.rs b/crates/proto/src/version/v662/enums/player_position_mode.rs new file mode 100644 index 00000000..b2532c00 --- /dev/null +++ b/crates/proto/src/version/v662/enums/player_position_mode.rs @@ -0,0 +1,16 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i8)] +#[repr(i8)] +pub enum PlayerPositionMode { + Normal = 0, + Respawn = 1, + Teleport { + #[endianness(le)] + teleportation_cause: i32, + #[endianness(le)] + source_actor_type: i32, + } = 2, + OnlyHeadRot = 3, +} diff --git a/crates/proto/src/version/v662/enums/player_position_mode_component.rs b/crates/proto/src/version/v662/enums/player_position_mode_component.rs deleted file mode 100644 index c41f9f5c..00000000 --- a/crates/proto/src/version/v662/enums/player_position_mode_component.rs +++ /dev/null @@ -1,19 +0,0 @@ -pub mod PlayerPositionModeComponent { - - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i8)] - #[repr(i8)] - pub enum PositionMode { - Normal = 0, - Respawn = 1, - Teleport { - #[endianness(le)] - teleportation_cause: i32, - #[endianness(le)] - source_actor_type: i32, - } = 2, - OnlyHeadRot = 3, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/puv.rs b/crates/proto/src/version/v662/enums/puv.rs deleted file mode 100644 index b3f8fcad..00000000 --- a/crates/proto/src/version/v662/enums/puv.rs +++ /dev/null @@ -1,463 +0,0 @@ -pub mod Puv { - pub mod Legacy { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(u32)] - #[enum_endianness(var)] - #[repr(u32)] - pub enum LevelSoundEvent { - ItemUseOn = 0, - Hit = 1, - Step = 2, - Fly = 3, - Jump = 4, - Break = 5, - Place = 6, - HeavyStep = 7, - Gallop = 8, - Fall = 9, - Ambient = 10, - AmbientBaby = 11, - AmbientInWater = 12, - Breathe = 13, - Death = 14, - DeathInWater = 15, - DeathToZombie = 16, - Hurt = 17, - HurtInWater = 18, - Mad = 19, - Boost = 20, - Bow = 21, - SquishBig = 22, - SquishSmall = 23, - FallBig = 24, - FallSmall = 25, - Splash = 26, - Fizz = 27, - Flap = 28, - Swim = 29, - Drink = 30, - Eat = 31, - Takeoff = 32, - Shake = 33, - Plop = 34, - Land = 35, - Saddle = 36, - Armor = 37, - ArmorPlace = 38, - AddChest = 39, - Throw = 40, - Attack = 41, - AttackNoDamage = 42, - AttackStrong = 43, - Warn = 44, - Shear = 45, - Milk = 46, - Thunder = 47, - Explode = 48, - Fire = 49, - Ignite = 50, - Fuse = 51, - Stare = 52, - Spawn = 53, - Shoot = 54, - BreakBlock = 55, - Launch = 56, - Blast = 57, - LargeBlast = 58, - Twinkle = 59, - Remedy = 60, - Unfect = 61, - LevelUp = 62, - BowHit = 63, - BulletHit = 64, - ExtinguishFire = 65, - ItemFizz = 66, - ChestOpen = 67, - ChestClosed = 68, - ShulkerBoxOpen = 69, - ShulkerBoxClosed = 70, - EnderChestOpen = 71, - EnderChestClosed = 72, - PowerOn = 73, - PowerOff = 74, - Attach = 75, - Detach = 76, - Deny = 77, - Tripod = 78, - Pop = 79, - DropSlot = 80, - Note = 81, - Thorns = 82, - PistonIn = 83, - PistonOut = 84, - Portal = 85, - Water = 86, - LavaPop = 87, - Lava = 88, - Burp = 89, - BucketFillWater = 90, - BucketFillLava = 91, - BucketEmptyWater = 92, - BucketEmptyLava = 93, - EquipChain = 94, - EquipDiamond = 95, - EquipGeneric = 96, - EquipGold = 97, - EquipIron = 98, - EquipLeather = 99, - EquipElytra = 100, - Record13 = 101, - RecordCat = 102, - RecordBlocks = 103, - RecordChirp = 104, - RecordFar = 105, - RecordMall = 106, - RecordMellohi = 107, - RecordStal = 108, - RecordStrad = 109, - RecordWard = 110, - Record11 = 111, - RecordWait = 112, - RecordNull = 113, - Flop = 114, - GuardianCurse = 115, - MobWarning = 116, - MobWarningBaby = 117, - Teleport = 118, - ShulkerOpen = 119, - ShulkerClose = 120, - Haggle = 121, - HaggleYes = 122, - HaggleNo = 123, - HaggleIdle = 124, - ChorusGrow = 125, - ChorusDeath = 126, - Glass = 127, - PotionBrewed = 128, - CastSpell = 129, - PrepareAttackSpell = 130, - PrepareSummon = 131, - PrepareWololo = 132, - Fang = 133, - Charge = 134, - TakePicture = 135, - PlaceLeashKnot = 136, - BreakLeashKnot = 137, - AmbientGrowl = 138, - AmbientWhine = 139, - AmbientPant = 140, - AmbientPurr = 141, - AmbientPurreow = 142, - DeathMinVolume = 143, - DeathMidVolume = 144, - ImitateBlaze = 145, - ImitateCaveSpider = 146, - ImitateCreeper = 147, - ImitateElderGuardian = 148, - ImitateEnderDragon = 149, - ImitateEnderman = 150, - ImitateEndermite = 151, - ImitateEvocationIllager = 152, - ImitateGhast = 153, - ImitateHusk = 154, - ImitateIllusionIllager = 155, - ImitateMagmaCube = 156, - ImitatePolarBear = 157, - ImitateShulker = 158, - ImitateSilverfish = 159, - ImitateSkeleton = 160, - ImitateSlime = 161, - ImitateSpider = 162, - ImitateStray = 163, - ImitateVex = 164, - ImitateVindicationIllager = 165, - ImitateWitch = 166, - ImitateWither = 167, - ImitateWitherSkeleton = 168, - ImitateWolf = 169, - ImitateZombie = 170, - ImitateZombiePigman = 171, - ImitateZombieVillager = 172, - EnderEyePlaced = 173, - EndPortalCreated = 174, - AnvilUse = 175, - BottleDragonBreath = 176, - PortalTravel = 177, - TridentHit = 178, - TridentReturn = 179, - TridentRiptide1 = 180, - TridentRiptide2 = 181, - TridentRiptide3 = 182, - TridentThrow = 183, - TridentThunder = 184, - TridentHitGround = 185, - Default = 186, - FletchingTableUse = 187, - ElemConstructOpen = 188, - IceBombHit = 189, - BalloonPop = 190, - LTReactionIceBomb = 191, - LTReactionBleach = 192, - LTReactionElephantToothpaste = 193, - LTReactionElephantToothpaste2 = 194, - LTReactionGlowStick = 195, - LTReactionGlowStick2 = 196, - LTReactionLuminol = 197, - LTReactionSalt = 198, - LTReactionFertilizer = 199, - LTReactionFireball = 200, - LTReactionMagnesiumSalt = 201, - LTReactionMiscFire = 202, - LTReactionFire = 203, - LTReactionMiscExplosion = 204, - LTReactionMiscMystical = 205, - LTReactionMiscMystical2 = 206, - LTReactionProduct = 207, - SparklerUse = 208, - GlowStickUse = 209, - SparklerActive = 210, - ConvertToDrowned = 211, - BucketFillFish = 212, - BucketEmptyFish = 213, - BubbleColumnUpwards = 214, - BubbleColumnDownwards = 215, - BubblePop = 216, - BubbleUpInside = 217, - BubbleDownInside = 218, - HurtBaby = 219, - DeathBaby = 220, - StepBaby = 221, - SpawnBaby = 222, - Born = 223, - TurtleEggBreak = 224, - TurtleEggCrack = 225, - TurtleEggHatched = 226, - LayEgg = 227, - TurtleEggAttacked = 228, - BeaconActivate = 229, - BeaconAmbient = 230, - BeaconDeactivate = 231, - BeaconPower = 232, - ConduitActivate = 233, - ConduitAmbient = 234, - ConduitAttack = 235, - ConduitDeactivate = 236, - ConduitShort = 237, - Swoop = 238, - BambooSaplingPlace = 239, - PreSneeze = 240, - Sneeze = 241, - AmbientTame = 242, - Scared = 243, - ScaffoldingClimb = 244, - CrossbowLoadingStart = 245, - CrossbowLoadingMiddle = 246, - CrossbowLoadingEnd = 247, - CrossbowShoot = 248, - CrossbowQuickChargeStart = 249, - CrossbowQuickChargeMiddle = 250, - CrossbowQuickChargeEnd = 251, - AmbientAggressive = 252, - AmbientWorried = 253, - CantBreed = 254, - ShieldBlock = 255, - LecternBookPlace = 256, - GrindstoneUse = 257, - Bell = 258, - CampfireCrackle = 259, - Roar = 260, - Stun = 261, - SweetBerryBushHurt = 262, - SweetBerryBushPick = 263, - CartographyTableUse = 264, - StonecutterUse = 265, - ComposterEmpty = 266, - ComposterFill = 267, - ComposterFillLayer = 268, - ComposterReady = 269, - BarrelOpen = 270, - BarrelClose = 271, - RaidHorn = 272, - LoomUse = 273, - AmbientInRaid = 274, - UICartographyTableUse = 275, - UIStonecutterUse = 276, - UILoomUse = 277, - SmokerUse = 278, - BlastFurnaceUse = 279, - SmithingTableUse = 280, - Screech = 281, - Sleep = 282, - FurnaceUse = 283, - MooshroomConvert = 284, - MilkSuspiciously = 285, - Celebrate = 286, - JumpPrevent = 287, - AmbientPollinate = 288, - BeehiveDrip = 289, - BeehiveEnter = 290, - BeehiveExit = 291, - BeehiveWork = 292, - BeehiveShear = 293, - HoneybottleDrink = 294, - AmbientCave = 295, - Retreat = 296, - ConvertToZombified = 297, - Admire = 298, - StepLava = 299, - Tempt = 300, - Panic = 301, - Angry = 302, - AmbientMoodWarpedForest = 303, - AmbientMoodSoulsandValley = 304, - AmbientMoodNetherWastes = 305, - AmbientMoodBasaltDeltas = 306, - AmbientMoodCrimsonForest = 307, - RespawnAnchorCharge = 308, - RespawnAnchorDeplete = 309, - RespawnAnchorSetSpawn = 310, - RespawnAnchorAmbient = 311, - SoulEscapeQuiet = 312, - SoulEscapeLoud = 313, - RecordPigstep = 314, - LinkCompassToLodestone = 315, - UseSmithingTable = 316, - EquipNetherite = 317, - AmbientLoopWarpedForest = 318, - AmbientLoopSoulsandValley = 319, - AmbientLoopNetherWastes = 320, - AmbientLoopBasaltDeltas = 321, - AmbientLoopCrimsonForest = 322, - AmbientAdditionWarpedForest = 323, - AmbientAdditionSoulsandValley = 324, - AmbientAdditionNetherWastes = 325, - AmbientAdditionBasaltDeltas = 326, - AmbientAdditionCrimsonForest = 327, - SculkSensorPowerOn = 328, - SculkSensorPowerOff = 329, - BucketFillPowderSnow = 330, - BucketEmptyPowderSnow = 331, - PointedDripstoneCauldronDripWater = 332, - PointedDripstoneCauldronDripLava = 333, - PointedDripstoneDripWater = 334, - PointedDripstoneDripLava = 335, - CaveVinesPickBerries = 336, - BigDripleafTiltDown = 337, - BigDripleafTiltUp = 338, - CopperWaxOn = 339, - CopperWaxOff = 340, - Scrape = 341, - PlayerHurtDrown = 342, - PlayerHurtOnFire = 343, - PlayerHurtFreeze = 344, - UseSpyglass = 345, - StopUsingSpyglass = 346, - AmethystBlockChime = 347, - AmbientScreamer = 348, - HurtScreamer = 349, - DeathScreamer = 350, - MilkScreamer = 351, - JumpToBlock = 352, - PreRam = 353, - PreRamScreamer = 354, - RamImpact = 355, - RamImpactScreamer = 356, - SquidInkSquirt = 357, - GlowSquidInkSquirt = 358, - ConvertToStray = 359, - CakeAddCandle = 360, - ExtinguishCandle = 361, - AmbientCandle = 362, - BlockClick = 363, - BlockClickFail = 364, - SculkCatalystBloom = 365, - SculkShriekerShriek = 366, - NearbyClose = 367, - NearbyCloser = 368, - NearbyClosest = 369, - Agitated = 370, - RecordOtherside = 371, - Tongue = 372, - CrackIronGolem = 373, - RepairIronGolem = 374, - Listening = 375, - Heartbeat = 376, - HornBreak = 377, - SculkSpread = 379, - SculkCharge = 380, - SculkSensorPlace = 381, - SculkShriekerPlace = 382, - GoatCall0 = 383, - GoatCall1 = 384, - GoatCall2 = 385, - GoatCall3 = 386, - GoatCall4 = 387, - GoatCall5 = 388, - GoatCall6 = 389, - GoatCall7 = 390, - ImitateWarden = 426, - ListeningAngry = 427, - ItemGiven = 428, - ItemTaken = 429, - Disappeared = 430, - Reappeared = 431, - DrinkMilk = 432, - FrogspawnHatched = 433, - LaySpawn = 434, - FrogspawnBreak = 435, - SonicBoom = 436, - SonicCharge = 437, - ItemThrown = 438, - Record5 = 439, - ConvertToFrog = 440, - RecordPlaying = 441, - EnchantingTableUse = 442, - StepSand = 443, - DashReady = 444, - BundleDropContents = 445, - BundleInsert = 446, - BundleRemoveOne = 447, - PressurePlateClickOff = 448, - PressurePlateClickOn = 449, - ButtonClickOff = 450, - ButtonClickOn = 451, - DoorOpen = 452, - DoorClose = 453, - TrapdoorOpen = 454, - TrapdoorClose = 455, - FenceGateOpen = 456, - FenceGateClose = 457, - Insert = 458, - Pickup = 459, - InsertEnchanted = 460, - PickupEnchanted = 461, - Brush = 462, - BrushCompleted = 463, - ShatterDecoratedPot = 464, - BreakDecoratedPot = 465, - SnifferEggCrack = 466, - SnifferEggHatched = 467, - WaxedSignInteractFail = 468, - RecordRelic = 469, - Bump = 470, - PumpkinCarve = 471, - ConvertHuskToZombie = 472, - PigDeath = 473, - HoglinConvertToZombified = 474, - AmbientUnderwaterEnter = 475, - AmbientUnderwaterExit = 476, - BottleFill = 477, - BottleEmpty = 478, - CrafterCraft = 479, - CrafterFail = 480, - DecoratedPotInsert = 481, - DecoratedPotInsertFail = 482, - CrafterDisableSlot = 483, - CopperBulbTurnOn = 490, - CopperBulbTurnOff = 491, - Undefined = 492, - } - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/score_packet_type.rs b/crates/proto/src/version/v662/enums/score_packet_type.rs index a4d203ce..46b82dce 100644 --- a/crates/proto/src/version/v662/enums/score_packet_type.rs +++ b/crates/proto/src/version/v662/enums/score_packet_type.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::IdentityDefinition; +use crate::version::v662::enums::IdentityDefinitionType; use crate::version::v662::types::ScoreboardId; use bedrockrs_macros::ProtoCodec; @@ -16,7 +16,7 @@ struct ScorePacketInfoRemoveEntry { pub objective_name: String, #[endianness(le)] pub score_value: i32, - pub identity_definition_type: IdentityDefinition::Type, + pub identity_definition_type: IdentityDefinitionType, } #[derive(ProtoCodec, Clone, Debug)] diff --git a/crates/proto/src/version/v662/enums/social.rs b/crates/proto/src/version/v662/enums/social.rs deleted file mode 100644 index 6974c804..00000000 --- a/crates/proto/src/version/v662/enums/social.rs +++ /dev/null @@ -1,15 +0,0 @@ -pub mod Social { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i32)] - #[enum_endianness(var)] - #[repr(i32)] - pub enum GamePublishSetting { - NoMultiPlay = 0, - InviteOnly = 1, - FriendsOnly = 2, - FriendsOfFriends = 3, - Public = 4, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs index 70ddc3c0..74815520 100644 --- a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs +++ b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs @@ -1,4 +1,4 @@ -use crate::version::v662::types::{ActorUniqueID, BlockPos, MapDecoration, MapItemTrackedActor}; +use crate::version::v662::types::{ActorUniqueID, BlockPos, MapDecoration, MapItemTrackedActorUniqueID}; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; @@ -33,7 +33,7 @@ enum Type { DecorationUpdate { #[vec_repr(u32)] #[vec_endianness(var)] - actor_ids: Vec, + actor_ids: Vec, #[vec_repr(u32)] #[vec_endianness(var)] decoration_list: Vec, diff --git a/crates/proto/src/version/v662/packets/code_builder_source.rs b/crates/proto/src/version/v662/packets/code_builder_source.rs index 362fb758..f5957f39 100644 --- a/crates/proto/src/version/v662/packets/code_builder_source.rs +++ b/crates/proto/src/version/v662/packets/code_builder_source.rs @@ -1,10 +1,10 @@ -use crate::version::v662::enums::CodeBuilderStorageQueryOptions; +use crate::version::v662::enums::{CodeBuilderStorageCategory, CodeBuilderStorageOperation}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 178)] #[derive(ProtoCodec, Clone, Debug)] pub struct CodeBuilderSourcePacket { - pub operation: CodeBuilderStorageQueryOptions::Operation, - pub category: CodeBuilderStorageQueryOptions::Category, + pub operation: CodeBuilderStorageOperation, + pub category: CodeBuilderStorageCategory, pub value: String, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/disconnect.rs b/crates/proto/src/version/v662/packets/disconnect.rs index d97aab7f..9cce5496 100644 --- a/crates/proto/src/version/v662/packets/disconnect.rs +++ b/crates/proto/src/version/v662/packets/disconnect.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::Connection; +use crate::version::v662::enums::ConnectionFailReason; use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::ProtoCodec; @@ -7,7 +7,7 @@ use std::io::Cursor; #[gamepacket(id = 5)] #[derive(Clone, Debug)] pub struct DisconnectPacket { - pub reason: Connection::DisconnectFailReason, + pub reason: ConnectionFailReason, pub message: Option } @@ -28,7 +28,7 @@ impl ProtoCodec for DisconnectPacket { } fn proto_deserialize(stream: &mut Cursor<&[u8]>) -> Result { - let reason = ::proto_deserialize(stream)?; + let reason = ConnectionFailReason::proto_deserialize(stream)?; let skip_message = bool::proto_deserialize(stream)?; diff --git a/crates/proto/src/version/v662/packets/inventory_transaction.rs b/crates/proto/src/version/v662/packets/inventory_transaction.rs index 297c25bd..7cf3f676 100644 --- a/crates/proto/src/version/v662/packets/inventory_transaction.rs +++ b/crates/proto/src/version/v662/packets/inventory_transaction.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::ComplexInventoryTransaction; +use crate::version::v662::enums::ComplexInventoryTransactionType; use crate::version::v662::types::InventoryTransaction; use bedrockrs_macros::{gamepacket, ProtoCodec}; @@ -18,6 +18,6 @@ pub struct InventoryTransactionPacket { #[vec_repr(u32)] #[vec_endianness(var)] pub legacy_set_item_slots: Vec, - pub transaction_type: ComplexInventoryTransaction::Type, + pub transaction_type: ComplexInventoryTransactionType, pub transaction: InventoryTransaction, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs index 4d9acf93..68989559 100644 --- a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs +++ b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::{ActorDamageCause, ActorType, MinecraftEventing}; +use crate::version::v662::enums::{ActorDamageCause, ActorType, InteractionType, POIBlockInteractionType}; use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; @@ -27,7 +27,7 @@ enum Type { achievement_id: i32, } = 0, Interaction { - interaction_type: MinecraftEventing::InteractionType, + interaction_type: InteractionType, interaction_actor_type: ActorType, #[endianness(var)] interaction_actor_variant: i32, @@ -106,12 +106,12 @@ enum Type { } = 13, PetDiedObsolete = 14, POICauldronUsed { - block_interaction_type: MinecraftEventing::POIBlockInteractionType, + block_interaction_type: POIBlockInteractionType, #[endianness(var)] item_id: i32, } = 15, ComposterUsed { - block_interaction_type: MinecraftEventing::POIBlockInteractionType, + block_interaction_type: POIBlockInteractionType, #[endianness(var)] item_id: i32, } = 16, diff --git a/crates/proto/src/version/v662/packets/level_sound_event.rs b/crates/proto/src/version/v662/packets/level_sound_event.rs index f3d7ae69..ce90e2d8 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event.rs @@ -1,11 +1,11 @@ -use crate::version::v662::enums::Puv; +use crate::version::v662::enums::LevelSoundEventType; use bedrockrs_core::Vec3; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[gamepacket(id = 123)] #[derive(ProtoCodec, Clone, Debug)] pub struct LevelSoundEventPacket { - pub event_id: Puv::Legacy::LevelSoundEvent, + pub event_id: LevelSoundEventType, #[endianness(le)] pub position: Vec3, #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs index b8e37054..792487d4 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v1.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v1.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::{ActorType, Puv}; +use crate::version::v662::enums::{ActorType, LevelSoundEventType}; use bedrockrs_core::Vec3; use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; @@ -11,7 +11,7 @@ use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 24)] #[derive(Clone, Debug)] pub struct LevelSoundEventPacketV1 { - pub event_id: Puv::Legacy::LevelSoundEvent, + pub event_id: LevelSoundEventType, pub position: Vec3, pub data: i32, pub actor_type: ActorType, @@ -22,7 +22,7 @@ pub struct LevelSoundEventPacketV1 { impl ProtoCodec for LevelSoundEventPacketV1 { fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { let mut event_id_stream: Vec = Vec::new(); - ::proto_serialize( + LevelSoundEventType::proto_serialize( &self.event_id, &mut event_id_stream, )?; @@ -44,7 +44,7 @@ impl ProtoCodec for LevelSoundEventPacketV1 { let mut event_id_cursor = Cursor::new(event_id_stream.as_slice()); let event_id = - ::proto_deserialize(&mut event_id_cursor)?; + LevelSoundEventType::proto_deserialize(&mut event_id_cursor)?; let position = as ProtoCodecLE>::proto_deserialize(stream)?; let data = ::proto_deserialize(stream)?; let actor_type = ::proto_deserialize(stream)?; diff --git a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs index c01ee7a2..a1fe4b51 100644 --- a/crates/proto/src/version/v662/packets/level_sound_event_v2.rs +++ b/crates/proto/src/version/v662/packets/level_sound_event_v2.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::Puv; +use crate::version::v662::enums::LevelSoundEventType; use bedrockrs_core::Vec3; use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; @@ -11,7 +11,7 @@ use varint_rs::{VarintReader, VarintWriter}; #[gamepacket(id = 120)] #[derive(Clone, Debug)] pub struct LevelSoundEventPacketV2 { - pub event_id: Puv::Legacy::LevelSoundEvent, + pub event_id: LevelSoundEventType, pub position: Vec3, pub data: i32, pub actor_identifier: String, @@ -22,7 +22,7 @@ pub struct LevelSoundEventPacketV2 { impl ProtoCodec for LevelSoundEventPacketV2 { fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { let mut event_id_stream: Vec = Vec::new(); - ::proto_serialize( + LevelSoundEventType::proto_serialize( &self.event_id, &mut event_id_stream, )?; @@ -44,7 +44,7 @@ impl ProtoCodec for LevelSoundEventPacketV2 { let mut event_id_cursor = Cursor::new(event_id_stream.as_slice()); let event_id = - ::proto_deserialize(&mut event_id_cursor)?; + LevelSoundEventType::proto_deserialize(&mut event_id_cursor)?; let position = as ProtoCodecLE>::proto_deserialize(stream)?; let data = ::proto_deserialize(stream)?; let actor_identifier = ::proto_deserialize(stream)?; diff --git a/crates/proto/src/version/v662/packets/move_player.rs b/crates/proto/src/version/v662/packets/move_player.rs index 6ffc13cb..6bf0b359 100644 --- a/crates/proto/src/version/v662/packets/move_player.rs +++ b/crates/proto/src/version/v662/packets/move_player.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::PlayerPositionModeComponent; +use crate::version::v662::enums::PlayerPositionMode; use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::gamepacket; use bedrockrs_proto_core::error::ProtoCodecError; @@ -14,7 +14,7 @@ pub struct MovePlayerPacket { pub position: Vec3, pub rotation: Vec2, pub y_head_rotation: f32, - pub position_mode: PlayerPositionModeComponent::PositionMode, + pub position_mode: PlayerPositionMode, pub on_ground: bool, pub riding_runtime_id: ActorRuntimeID, pub tick: u64, @@ -23,7 +23,7 @@ pub struct MovePlayerPacket { impl ProtoCodec for MovePlayerPacket { fn proto_serialize(&self, stream: &mut Vec) -> Result<(), ProtoCodecError> { let mut position_mode_stream: Vec = Vec::new(); - ::proto_serialize( + PlayerPositionMode::proto_serialize( &self.position_mode, &mut position_mode_stream, )?; @@ -56,7 +56,7 @@ impl ProtoCodec for MovePlayerPacket { let mut sub_cursor = Cursor::new(sub_stream.as_slice()); let position_mode = - ::proto_deserialize( + PlayerPositionMode::proto_deserialize( &mut sub_cursor, )?; let tick = ::proto_deserialize(&mut sub_cursor)?; diff --git a/crates/proto/src/version/v662/packets/sub_chunk.rs b/crates/proto/src/version/v662/packets/sub_chunk.rs index e5fe62c0..5f7588f1 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk.rs @@ -1,5 +1,4 @@ -use crate::version::v662::types::SubChunkPacket::SubChunkPosOffset; -use crate::version::v662::types::SubChunkPos; +use crate::version::v662::types::{SubChunkPos, SubChunkPosOffset}; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; use bedrockrs_proto_core::{ProtoCodec, ProtoCodecLE, ProtoCodecVAR}; diff --git a/crates/proto/src/version/v662/packets/sub_chunk_request.rs b/crates/proto/src/version/v662/packets/sub_chunk_request.rs index 17ad5caa..711869ce 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk_request.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk_request.rs @@ -1,6 +1,6 @@ -use crate::version::v662::types::SubChunkPacket; use crate::version::v662::types::SubChunkPos; use bedrockrs_macros::{gamepacket, ProtoCodec}; +use crate::version::v662::types::SubChunkPosOffset; #[gamepacket(id = 175)] #[derive(ProtoCodec, Clone, Debug)] @@ -10,5 +10,5 @@ pub struct SubChunkRequestPacket { pub center_pos: SubChunkPos, #[vec_repr(u32)] #[vec_endianness(le)] - pub sub_chunk_pos_offsets: Vec + pub sub_chunk_pos_offsets: Vec } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/update_block_synced.rs b/crates/proto/src/version/v662/packets/update_block_synced.rs index 9d474938..141cd03d 100644 --- a/crates/proto/src/version/v662/packets/update_block_synced.rs +++ b/crates/proto/src/version/v662/packets/update_block_synced.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::ActorBlockSyncMessage; +use crate::version::v662::enums::ActorBlockSyncMessageID; use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; @@ -14,5 +14,5 @@ pub struct UpdateBlockSyncedPacket { pub later: u32, #[endianness(var)] pub unique_actor_id: i64, - pub actor_sync_message: ActorBlockSyncMessage::MessageId, + pub actor_sync_message: ActorBlockSyncMessageID, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs index 7e3475cf..23ab6887 100644 --- a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs +++ b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::ActorBlockSyncMessage; +use crate::version::v662::enums::ActorBlockSyncMessageID; use crate::version::v662::types::NetworkBlockPosition; use bedrockrs_macros::{gamepacket, ProtoCodec}; use bedrockrs_proto_core::error::ProtoCodecError; @@ -13,7 +13,7 @@ struct BlocksChangedEntry { pub runtime_id: u32, pub update_flags: u32, pub sync_message_entity_unique_id: u64, - pub sync_message: ActorBlockSyncMessage::MessageId, // This is sent as unsigned varint, needs to be varint64 + pub sync_message: ActorBlockSyncMessageID, // This is sent as unsigned varint, needs to be varint64 } impl ProtoCodec for BlocksChangedEntry { @@ -42,7 +42,7 @@ impl ProtoCodec for BlocksChangedEntry { sync_message_stream.write_i64_varint(stream.read_u32_varint()? as i64)?; let mut sync_message_cursor = Cursor::new(sync_message_stream.as_slice()); - let sync_message = ActorBlockSyncMessage::MessageId::proto_deserialize(&mut sync_message_cursor)?; + let sync_message = ActorBlockSyncMessageID::proto_deserialize(&mut sync_message_cursor)?; Ok(Self { pos, diff --git a/crates/proto/src/version/v662/types/item_enchants.rs b/crates/proto/src/version/v662/types/item_enchants.rs index c73d872d..e0055a0f 100644 --- a/crates/proto/src/version/v662/types/item_enchants.rs +++ b/crates/proto/src/version/v662/types/item_enchants.rs @@ -1,9 +1,9 @@ -use crate::version::v662::enums::Enchant; +use crate::version::v662::enums::EnchantType; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] struct ItemEnchant { - pub enchant_type: Enchant::Type, + pub enchant_type: EnchantType, pub enchant_level: i8, } diff --git a/crates/proto/src/version/v662/types/level_settings.rs b/crates/proto/src/version/v662/types/level_settings.rs index bbdab6e7..8ec25ea7 100644 --- a/crates/proto/src/version/v662/types/level_settings.rs +++ b/crates/proto/src/version/v662/types/level_settings.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::{ChatRestrictionLevel, Difficulty, Editor, EducationEditionOffer, GameType, GeneratorType, PlayerPermissionLevel, Social}; +use crate::version::v662::enums::{ChatRestrictionLevel, Difficulty, EditorWorldType, EducationEditionOffer, GamePublishSetting, GameType, GeneratorType, PlayerPermissionLevel}; use crate::version::v662::types::{BaseGameVersion, EduSharedUriResource, Experiments, GameRulesChangedPacketData, NetworkBlockPosition, SpawnSettings}; use bedrockrs_macros::ProtoCodec; @@ -12,7 +12,7 @@ pub struct LevelSettings { pub game_difficulty: Difficulty, pub default_spawn_block_position: NetworkBlockPosition, pub achievements_disabled: bool, - pub editor_world_type: Editor::WorldType, + pub editor_world_type: EditorWorldType, pub is_created_in_editor: bool, pub is_exported_from_editor: bool, #[endianness(var)] @@ -27,8 +27,8 @@ pub struct LevelSettings { pub has_confirmed_platform_locked_content: bool, pub multiplayer_enabled: bool, pub lan_broadcasting_enabled: bool, - pub xbox_live_broadcast_setting: Social::GamePublishSetting, - pub platform_broadcast_setting: Social::GamePublishSetting, + pub xbox_live_broadcast_setting: GamePublishSetting, + pub platform_broadcast_setting: GamePublishSetting, pub commands_enabled: bool, pub texture_packs_required: bool, pub rule_data: GameRulesChangedPacketData, diff --git a/crates/proto/src/version/v662/types/map_item_tracked_actor.rs b/crates/proto/src/version/v662/types/map_item_tracked_actor.rs deleted file mode 100644 index 87742485..00000000 --- a/crates/proto/src/version/v662/types/map_item_tracked_actor.rs +++ /dev/null @@ -1,19 +0,0 @@ -pub mod MapItemTrackedActor { - use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - #[enum_repr(i32)] - #[enum_endianness(le)] - #[repr(i32)] - pub enum Type { - Entity(ActorUniqueID) = 0, - BlockEntity(NetworkBlockPosition) = 1, - Other = 2, - } - - #[derive(ProtoCodec, Clone, Debug)] - pub struct UniqueId { - pub unique_id_type: Type, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/map_item_tracked_actor_unique_id.rs b/crates/proto/src/version/v662/types/map_item_tracked_actor_unique_id.rs new file mode 100644 index 00000000..97835c89 --- /dev/null +++ b/crates/proto/src/version/v662/types/map_item_tracked_actor_unique_id.rs @@ -0,0 +1,17 @@ +use crate::version::v662::types::{ActorUniqueID, NetworkBlockPosition}; +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +#[enum_repr(i32)] +#[enum_endianness(le)] +#[repr(i32)] +pub enum MapItemTrackedActorType { + Entity(ActorUniqueID) = 0, + BlockEntity(NetworkBlockPosition) = 1, + Other = 2, +} + +#[derive(ProtoCodec, Clone, Debug)] +pub struct MapItemTrackedActorUniqueID { + pub unique_id_type: MapItemTrackedActorType, +} \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/mod.rs b/crates/proto/src/version/v662/types/mod.rs index 9756098a..cf627e6a 100644 --- a/crates/proto/src/version/v662/types/mod.rs +++ b/crates/proto/src/version/v662/types/mod.rs @@ -39,7 +39,7 @@ export!(item_stack_response_info); export!(item_stack_response_slot_info); export!(level_settings); export!(map_decoration); -export!(map_item_tracked_actor); // Mod +export!(map_item_tracked_actor_unique_id); export!(material_reducer_data_entry); export!(molang_variable_map); export!(move_actor_absolute_data); @@ -68,7 +68,7 @@ export!(smithing_trim_recipe); export!(spawn_settings); export!(structure_editor_data); export!(structure_settings); -export!(sub_chunk_packet); // Mod export!(sub_chunk_pos); export!(synced_player_movement_settings); export!(web_socket_packet_data); +export!(sub_chunk_pos_offset); diff --git a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs index 4bfa4c26..70cc0393 100644 --- a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs +++ b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::ItemUseInventoryTransaction; +use crate::version::v662::enums::ItemUseInventoryTransactionType; use crate::version::v662::types::{InventoryAction, NetworkBlockPosition, NetworkItemStackDescriptor}; use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; @@ -21,7 +21,7 @@ pub enum PackedItemUseLegacyInventoryTransaction { #[vec_repr(u32)] #[vec_endianness(var)] actions: Vec, - action_type: ItemUseInventoryTransaction::ActionType, + action_type: ItemUseInventoryTransactionType, position: NetworkBlockPosition, #[endianness(var)] face: i32, @@ -44,7 +44,7 @@ pub enum PackedItemUseLegacyInventoryTransaction { #[vec_repr(u32)] #[vec_endianness(var)] actions: Vec, - action_type: ItemUseInventoryTransaction::ActionType, + action_type: ItemUseInventoryTransactionType, position: NetworkBlockPosition, #[endianness(var)] face: i32, diff --git a/crates/proto/src/version/v662/types/recipe_ingredient.rs b/crates/proto/src/version/v662/types/recipe_ingredient.rs index c8bc4561..f74e0c58 100644 --- a/crates/proto/src/version/v662/types/recipe_ingredient.rs +++ b/crates/proto/src/version/v662/types/recipe_ingredient.rs @@ -1,9 +1,9 @@ -use crate::version::v662::enums::ItemDescriptor; +use crate::version::v662::enums::ItemDescriptorInternalType; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] pub struct RecipeIngredient { - pub internal_type: ItemDescriptor::InternalType, + pub internal_type: ItemDescriptorInternalType, #[endianness(var)] pub stack_size: i32, } \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/serialized_skin.rs b/crates/proto/src/version/v662/types/serialized_skin.rs index eaf880f6..7872c4ee 100644 --- a/crates/proto/src/version/v662/types/serialized_skin.rs +++ b/crates/proto/src/version/v662/types/serialized_skin.rs @@ -1,4 +1,4 @@ -use crate::version::v662::enums::Persona; +use crate::version::v662::enums::{AnimatedTextureType, AnimationExpression}; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] @@ -8,10 +8,10 @@ struct SerializedSkinAnimationFrame { #[endianness(le)] pub image_height: u32, pub image_bytes: String, - pub animation_type: Persona::AnimatedTextureType, + pub animation_type: AnimatedTextureType, #[endianness(le)] pub frame_count: f32, - pub animation_expression: Persona::AnimationExpression, + pub animation_expression: AnimationExpression, } #[derive(ProtoCodec, Clone, Debug)] diff --git a/crates/proto/src/version/v662/types/sub_chunk_packet.rs b/crates/proto/src/version/v662/types/sub_chunk_packet.rs deleted file mode 100644 index 3eac4553..00000000 --- a/crates/proto/src/version/v662/types/sub_chunk_packet.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub mod SubChunkPacket { - use bedrockrs_macros::ProtoCodec; - - #[derive(ProtoCodec, Clone, Debug)] - pub struct SubChunkPosOffset { - pub offset_x: i8, - pub offset_y: i8, - pub offset_z: i8, - } -} \ No newline at end of file diff --git a/crates/proto/src/version/v662/types/sub_chunk_pos_offset.rs b/crates/proto/src/version/v662/types/sub_chunk_pos_offset.rs new file mode 100644 index 00000000..85a83af9 --- /dev/null +++ b/crates/proto/src/version/v662/types/sub_chunk_pos_offset.rs @@ -0,0 +1,8 @@ +use bedrockrs_macros::ProtoCodec; + +#[derive(ProtoCodec, Clone, Debug)] +pub struct SubChunkPosOffset { + pub offset_x: i8, + pub offset_y: i8, + pub offset_z: i8, +} \ No newline at end of file From 6ad7ad1a5e25e7275820d2244b9ddc407ef9c762 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Tue, 10 Dec 2024 13:13:25 +1300 Subject: [PATCH 78/79] rem mod comments --- crates/proto/src/version/v662/enums/mod.rs | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/crates/proto/src/version/v662/enums/mod.rs b/crates/proto/src/version/v662/enums/mod.rs index 6708a8b7..6359e187 100644 --- a/crates/proto/src/version/v662/enums/mod.rs +++ b/crates/proto/src/version/v662/enums/mod.rs @@ -6,7 +6,7 @@ macro_rules! export { } export!(abilities_index); -export!(actor_block_sync_message_id); // Mod +export!(actor_block_sync_message_id); export!(actor_damage_cause); export!(actor_data_ids); export!(actor_event); @@ -24,14 +24,14 @@ export!(camera_shake_action); export!(camera_shake_type); export!(chat_restriction_level); export!(client_play_mode); -export!(code_builder_storage); // Mod +export!(code_builder_storage); export!(command_block_mode); export!(command_origin_type); export!(command_output_type); export!(command_parameter_option); export!(command_permission_level); -export!(complex_inventory_transaction_type); // Mod -export!(connection_fail_reason); // Mod +export!(complex_inventory_transaction_type); +export!(connection_fail_reason); export!(container_enum_name); export!(container_id); export!(container_type); @@ -40,31 +40,31 @@ export!(crafting_type); export!(data_item_type); export!(difficulty); export!(easing_type); -export!(editor_world_type); // Mod +export!(editor_world_type); export!(education_edition_offer); -export!(enchant_type); // Mod +export!(enchant_type); export!(game_type); export!(generator_type); export!(hud_element); export!(hud_visibility); -export!(identity_definition_type); // Mod +export!(identity_definition_type); export!(input_mode); export!(inventory_layout); export!(inventory_left_tab_index); export!(inventory_right_tab_index); -export!(inventory_source_flags); // Mod +export!(inventory_source_flags); export!(inventory_source_type); -export!(item_descriptor_internal_type); // Mod -export!(item_release_inventory_transaction_type); // Mod +export!(item_descriptor_internal_type); +export!(item_release_inventory_transaction_type); export!(item_stack_net_result); export!(item_stack_request_action_type); -export!(item_use_inventory_transaction_type); // Mod +export!(item_use_inventory_transaction_type); export!(item_use_method); -export!(item_use_on_actor_inventory_transaction_type); // Mod +export!(item_use_on_actor_inventory_transaction_type); export!(lab_table_reaction_type); export!(lesson_action); export!(level_event); -export!(minecraft_eventing); // Mod +export!(minecraft_eventing); export!(minecraft_packet_ids); export!(mirror); export!(modal_form_cancel_reason); @@ -82,9 +82,9 @@ export!(play_status); export!(player_action_type); export!(player_list_packet_type); export!(player_permission_level); -export!(player_position_mode); // Mod +export!(player_position_mode); export!(player_respawn_state); -export!(level_sound_event_type); // Mod +export!(level_sound_event_type); export!(resource_pack_response); export!(rotation); export!(score_packet_type); @@ -92,7 +92,7 @@ export!(scoreboard_identity_packet_type); export!(server_auth_movement_mode); export!(show_store_offer_redirect_type); export!(simulation_type); -export!(game_publish_setting); // Mod +export!(game_publish_setting); export!(soft_enum_update_type); export!(spawn_biome_type); export!(spawn_position_type); @@ -103,5 +103,5 @@ export!(structure_template_response_type); export!(text_packet_type); export!(text_processing_event_origin); export!(ui_profile); -export!(persona); // Mod +export!(persona); export!(prediction_type); From 79469ae8d7048eaf6a08cf3851ecd8682f3547a3 Mon Sep 17 00:00:00 2001 From: OmniacDEV Date: Tue, 10 Dec 2024 13:20:22 +1300 Subject: [PATCH 79/79] fix proto warnings --- crates/proto/src/version/v662/enums/mod.rs | 26 +++++++++---------- .../src/version/v662/enums/molang_version.rs | 4 +-- .../v662/enums/player_list_packet_type.rs | 2 +- .../version/v662/enums/score_packet_type.rs | 4 +-- .../enums/scoreboard_identity_packet_type.rs | 2 +- .../src/version/v662/packets/add_actor.rs | 2 +- .../proto/src/version/v662/packets/animate.rs | 2 +- .../v662/packets/available_commands.rs | 16 ++++++------ .../packets/client_cache_miss_response.rs | 2 +- .../packets/clientbound_debug_renderer.rs | 2 +- .../v662/packets/clientbound_map_item_data.rs | 4 +-- .../version/v662/packets/command_output.rs | 2 +- .../version/v662/packets/creative_content.rs | 2 +- .../proto/src/version/v662/packets/emote.rs | 2 +- .../version/v662/packets/feature_registry.rs | 2 +- .../src/version/v662/packets/interact.rs | 2 +- .../v662/packets/inventory_transaction.rs | 2 +- .../version/v662/packets/item_component.rs | 2 +- .../v662/packets/item_stack_request.rs | 4 +-- .../src/version/v662/packets/lab_table.rs | 2 +- .../v662/packets/legacy_telemetry_event.rs | 4 +-- .../src/version/v662/packets/level_chunk.rs | 2 +- .../version/v662/packets/map_info_request.rs | 2 +- .../src/version/v662/packets/mob_effect.rs | 2 +- .../src/version/v662/packets/npc_dialogue.rs | 2 +- .../src/version/v662/packets/npc_request.rs | 2 +- .../version/v662/packets/player_auth_input.rs | 6 ++--- .../v662/packets/player_enchant_options.rs | 2 +- .../position_tracking_db_client_request.rs | 2 +- .../position_tracking_db_server_broadcast.rs | 2 +- .../v662/packets/resource_pack_stack.rs | 2 +- .../v662/packets/resource_packs_info.rs | 6 ++--- .../src/version/v662/packets/set_title.rs | 2 +- .../src/version/v662/packets/show_credits.rs | 2 +- .../src/version/v662/packets/simple_event.rs | 2 +- .../src/version/v662/packets/start_game.rs | 2 +- .../src/version/v662/packets/sub_chunk.rs | 2 +- .../src/version/v662/packets/trim_data.rs | 4 +-- .../version/v662/packets/update_attributes.rs | 4 +-- .../v662/packets/update_sub_chunk_blocks.rs | 2 +- .../version/v662/types/camera_instruction.rs | 10 +++---- .../src/version/v662/types/item_enchants.rs | 2 +- .../src/version/v662/types/map_decoration.rs | 10 +++---- .../v662/types/material_reducer_data_entry.rs | 2 +- ...d_item_use_legacy_inventory_transaction.rs | 2 +- .../version/v662/types/property_sync_data.rs | 4 +-- .../v662/types/serialized_abilities_data.rs | 2 +- .../src/version/v662/types/serialized_skin.rs | 6 ++--- 48 files changed, 89 insertions(+), 89 deletions(-) diff --git a/crates/proto/src/version/v662/enums/mod.rs b/crates/proto/src/version/v662/enums/mod.rs index 6359e187..b8c4833c 100644 --- a/crates/proto/src/version/v662/enums/mod.rs +++ b/crates/proto/src/version/v662/enums/mod.rs @@ -40,31 +40,31 @@ export!(crafting_type); export!(data_item_type); export!(difficulty); export!(easing_type); -export!(editor_world_type); +export!(editor_world_type); export!(education_edition_offer); -export!(enchant_type); +export!(enchant_type); export!(game_type); export!(generator_type); export!(hud_element); export!(hud_visibility); -export!(identity_definition_type); +export!(identity_definition_type); export!(input_mode); export!(inventory_layout); export!(inventory_left_tab_index); export!(inventory_right_tab_index); -export!(inventory_source_flags); +export!(inventory_source_flags); export!(inventory_source_type); -export!(item_descriptor_internal_type); -export!(item_release_inventory_transaction_type); +export!(item_descriptor_internal_type); +export!(item_release_inventory_transaction_type); export!(item_stack_net_result); export!(item_stack_request_action_type); -export!(item_use_inventory_transaction_type); +export!(item_use_inventory_transaction_type); export!(item_use_method); -export!(item_use_on_actor_inventory_transaction_type); +export!(item_use_on_actor_inventory_transaction_type); export!(lab_table_reaction_type); export!(lesson_action); export!(level_event); -export!(minecraft_eventing); +export!(minecraft_eventing); export!(minecraft_packet_ids); export!(mirror); export!(modal_form_cancel_reason); @@ -82,9 +82,9 @@ export!(play_status); export!(player_action_type); export!(player_list_packet_type); export!(player_permission_level); -export!(player_position_mode); +export!(player_position_mode); export!(player_respawn_state); -export!(level_sound_event_type); +export!(level_sound_event_type); export!(resource_pack_response); export!(rotation); export!(score_packet_type); @@ -92,7 +92,7 @@ export!(scoreboard_identity_packet_type); export!(server_auth_movement_mode); export!(show_store_offer_redirect_type); export!(simulation_type); -export!(game_publish_setting); +export!(game_publish_setting); export!(soft_enum_update_type); export!(spawn_biome_type); export!(spawn_position_type); @@ -103,5 +103,5 @@ export!(structure_template_response_type); export!(text_packet_type); export!(text_processing_event_origin); export!(ui_profile); -export!(persona); +export!(persona); export!(prediction_type); diff --git a/crates/proto/src/version/v662/enums/molang_version.rs b/crates/proto/src/version/v662/enums/molang_version.rs index 4a48426b..5eaef93e 100644 --- a/crates/proto/src/version/v662/enums/molang_version.rs +++ b/crates/proto/src/version/v662/enums/molang_version.rs @@ -23,6 +23,6 @@ pub enum MolangVersion { } impl MolangVersion { - const LATEST: MolangVersion = MolangVersion::LeafSupportingInFirstSolidBlockBelow; // TODO: NumValidVersions - 1 (error) - const HARDCODED_MOLANG: MolangVersion = MolangVersion::LATEST; + pub const LATEST: MolangVersion = MolangVersion::LeafSupportingInFirstSolidBlockBelow; // TODO: NumValidVersions - 1 (error) + pub const HARDCODED_MOLANG: MolangVersion = MolangVersion::LATEST; } \ No newline at end of file diff --git a/crates/proto/src/version/v662/enums/player_list_packet_type.rs b/crates/proto/src/version/v662/enums/player_list_packet_type.rs index 3983d69d..5c983318 100644 --- a/crates/proto/src/version/v662/enums/player_list_packet_type.rs +++ b/crates/proto/src/version/v662/enums/player_list_packet_type.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::ProtoCodec; use uuid::Uuid; #[derive(ProtoCodec, Clone, Debug)] -struct AddPlayerListEntry { +pub struct AddPlayerListEntry { pub uuid: Uuid, pub target_actor_id: ActorUniqueID, pub player_name: String, diff --git a/crates/proto/src/version/v662/enums/score_packet_type.rs b/crates/proto/src/version/v662/enums/score_packet_type.rs index 46b82dce..2c4ff71b 100644 --- a/crates/proto/src/version/v662/enums/score_packet_type.rs +++ b/crates/proto/src/version/v662/enums/score_packet_type.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ScoreboardId; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] -struct ScorePacketInfoChangeEntry { +pub struct ScorePacketInfoChangeEntry { pub id: ScoreboardId, pub objective_name: String, #[endianness(le)] @@ -11,7 +11,7 @@ struct ScorePacketInfoChangeEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct ScorePacketInfoRemoveEntry { +pub struct ScorePacketInfoRemoveEntry { pub id: ScoreboardId, pub objective_name: String, #[endianness(le)] diff --git a/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs b/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs index 457e1f1b..15d05bff 100644 --- a/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs +++ b/crates/proto/src/version/v662/enums/scoreboard_identity_packet_type.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ScoreboardId; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] -struct IdentityInfoUpdateEntry { +pub struct IdentityInfoUpdateEntry { pub scoreboard_id: ScoreboardId, #[endianness(var)] pub player_unique_id: i64, diff --git a/crates/proto/src/version/v662/packets/add_actor.rs b/crates/proto/src/version/v662/packets/add_actor.rs index 03c70675..1a3dba55 100644 --- a/crates/proto/src/version/v662/packets/add_actor.rs +++ b/crates/proto/src/version/v662/packets/add_actor.rs @@ -3,7 +3,7 @@ use bedrockrs_core::{Vec2, Vec3}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct AttributeEntry { +pub struct AttributeEntry { pub attribute_name: String, #[endianness(le)] pub min_value: f32, diff --git a/crates/proto/src/version/v662/packets/animate.rs b/crates/proto/src/version/v662/packets/animate.rs index 9ba5d010..a6874d13 100644 --- a/crates/proto/src/version/v662/packets/animate.rs +++ b/crates/proto/src/version/v662/packets/animate.rs @@ -9,7 +9,7 @@ use varint_rs::{VarintReader, VarintWriter}; #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] -enum Action { +pub enum Action { NoAction = 0, Swing = 1, WakeUp = 3, diff --git a/crates/proto/src/version/v662/packets/available_commands.rs b/crates/proto/src/version/v662/packets/available_commands.rs index 10d66ca4..b31300e2 100644 --- a/crates/proto/src/version/v662/packets/available_commands.rs +++ b/crates/proto/src/version/v662/packets/available_commands.rs @@ -6,7 +6,7 @@ use std::io::Cursor; use std::mem::size_of; #[derive(Clone, Debug)] -struct EnumDataEntry { +pub struct EnumDataEntry { name: String, values: Vec, } @@ -46,7 +46,7 @@ impl ProtoCodec for EnumDataEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct SubCommandValues { +pub struct SubCommandValues { #[endianness(le)] pub sub_command_first_value: u16, #[endianness(le)] @@ -54,7 +54,7 @@ struct SubCommandValues { } #[derive(ProtoCodec, Clone, Debug)] -struct ParameterDataEntry { +pub struct ParameterDataEntry { pub name: String, #[endianness(le)] pub parse_symbol: u32, @@ -63,7 +63,7 @@ struct ParameterDataEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct OverloadsEntry { +pub struct OverloadsEntry { pub is_chaining: bool, #[vec_repr(u32)] #[vec_endianness(var)] @@ -71,7 +71,7 @@ struct OverloadsEntry { } #[derive(Clone, Debug)] -struct CommandsEntry { +pub struct CommandsEntry { pub name: String, pub description: String, pub flags: u16, @@ -155,7 +155,7 @@ impl ProtoCodec for CommandsEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct SoftEnumsEntry { +pub struct SoftEnumsEntry { pub enum_name: String, #[vec_repr(u32)] #[vec_endianness(var)] @@ -163,7 +163,7 @@ struct SoftEnumsEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct ConstraintsEntry { +pub struct ConstraintsEntry { #[endianness(le)] pub enum_value_symbol: u32, #[endianness(le)] @@ -174,7 +174,7 @@ struct ConstraintsEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct ChainedSubCommandDataEntry { +pub struct ChainedSubCommandDataEntry { pub sub_command_name: String, #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/client_cache_miss_response.rs b/crates/proto/src/version/v662/packets/client_cache_miss_response.rs index dd870561..15dfd836 100644 --- a/crates/proto/src/version/v662/packets/client_cache_miss_response.rs +++ b/crates/proto/src/version/v662/packets/client_cache_miss_response.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct MissingBlobEntry { +pub struct MissingBlobEntry { #[endianness(le)] pub blob_id: u64, pub blob_data: String, diff --git a/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs b/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs index 5fa7b2bd..5b24b394 100644 --- a/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs +++ b/crates/proto/src/version/v662/packets/clientbound_debug_renderer.rs @@ -5,7 +5,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] -enum Type { +pub enum Type { Invalid = 0, ClearDebugMarkers = 1, AddDebugMarkerCube { diff --git a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs index 74815520..b2c13577 100644 --- a/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs +++ b/crates/proto/src/version/v662/packets/clientbound_map_item_data.rs @@ -6,7 +6,7 @@ use std::io::{Cursor, Read}; use varint_rs::{VarintReader, VarintWriter}; #[derive(ProtoCodec, Clone, Debug)] -struct PixelsEntry { +pub struct PixelsEntry { #[endianness(var)] pub pixel: u32, } @@ -15,7 +15,7 @@ struct PixelsEntry { #[enum_repr(u32)] #[enum_endianness(var)] #[repr(u32)] -enum Type { +pub enum Type { Invalid = 0x0, TextureUpdate { #[endianness(var)] diff --git a/crates/proto/src/version/v662/packets/command_output.rs b/crates/proto/src/version/v662/packets/command_output.rs index bdacae12..d6264972 100644 --- a/crates/proto/src/version/v662/packets/command_output.rs +++ b/crates/proto/src/version/v662/packets/command_output.rs @@ -8,7 +8,7 @@ use std::mem::size_of; use byteorder::{ReadBytesExt, WriteBytesExt}; #[derive(ProtoCodec, Clone, Debug)] -struct OutputMessagesEntry { +pub struct OutputMessagesEntry { pub successful: bool, pub message_id: String, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/creative_content.rs b/crates/proto/src/version/v662/packets/creative_content.rs index 09d29c37..0f7101c3 100644 --- a/crates/proto/src/version/v662/packets/creative_content.rs +++ b/crates/proto/src/version/v662/packets/creative_content.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::NetworkItemInstanceDescriptor; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct WriteEntry { +pub struct WriteEntry { #[endianness(var)] pub creative_net_id: u32, pub item_instance: NetworkItemInstanceDescriptor, diff --git a/crates/proto/src/version/v662/packets/emote.rs b/crates/proto/src/version/v662/packets/emote.rs index 85bd7d3a..52fb1f29 100644 --- a/crates/proto/src/version/v662/packets/emote.rs +++ b/crates/proto/src/version/v662/packets/emote.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] -enum Flags { +pub enum Flags { ServerSide = 0x0, MuteEmoteChat = 0x2, } diff --git a/crates/proto/src/version/v662/packets/feature_registry.rs b/crates/proto/src/version/v662/packets/feature_registry.rs index 428c3d21..db48c58c 100644 --- a/crates/proto/src/version/v662/packets/feature_registry.rs +++ b/crates/proto/src/version/v662/packets/feature_registry.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct FeaturesDataListEntry { +pub struct FeaturesDataListEntry { pub feature_name: String, pub binary_json_output: String, } diff --git a/crates/proto/src/version/v662/packets/interact.rs b/crates/proto/src/version/v662/packets/interact.rs index ce8a5bad..43c9c31a 100644 --- a/crates/proto/src/version/v662/packets/interact.rs +++ b/crates/proto/src/version/v662/packets/interact.rs @@ -8,7 +8,7 @@ use std::io::{Cursor, Read}; #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] -enum Action { +pub enum Action { Invalid = 0, StopRiding { #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/inventory_transaction.rs b/crates/proto/src/version/v662/packets/inventory_transaction.rs index 7cf3f676..7f48b491 100644 --- a/crates/proto/src/version/v662/packets/inventory_transaction.rs +++ b/crates/proto/src/version/v662/packets/inventory_transaction.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::InventoryTransaction; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct LegacySetItemSlotsEntry { +pub struct LegacySetItemSlotsEntry { pub container_enum: i8, // TODO: find container enum? #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/packets/item_component.rs b/crates/proto/src/version/v662/packets/item_component.rs index e31d8503..f0b90238 100644 --- a/crates/proto/src/version/v662/packets/item_component.rs +++ b/crates/proto/src/version/v662/packets/item_component.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct ItemsEntry { +pub struct ItemsEntry { pub component_item_name: String, #[nbt] pub component_data: nbtx::Value, // TODO: NBT Structure diff --git a/crates/proto/src/version/v662/packets/item_stack_request.rs b/crates/proto/src/version/v662/packets/item_stack_request.rs index 64971713..909b3381 100644 --- a/crates/proto/src/version/v662/packets/item_stack_request.rs +++ b/crates/proto/src/version/v662/packets/item_stack_request.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ItemStackRequestSlotInfo; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct ActionsEntry { +pub struct ActionsEntry { pub action_type: ItemStackRequestActionType, pub amount: i8, pub source: ItemStackRequestSlotInfo, @@ -11,7 +11,7 @@ struct ActionsEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct RequestsEntry { +pub struct RequestsEntry { #[endianness(var)] pub client_request_id: u32, #[vec_repr(u32)] diff --git a/crates/proto/src/version/v662/packets/lab_table.rs b/crates/proto/src/version/v662/packets/lab_table.rs index 7673ed12..19a920a0 100644 --- a/crates/proto/src/version/v662/packets/lab_table.rs +++ b/crates/proto/src/version/v662/packets/lab_table.rs @@ -5,7 +5,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] -enum Type { +pub enum Type { StartCombine = 0, StartReaction = 1, Reset = 2, diff --git a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs index 68989559..651e272b 100644 --- a/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs +++ b/crates/proto/src/version/v662/packets/legacy_telemetry_event.rs @@ -10,7 +10,7 @@ use varint_rs::{VarintReader, VarintWriter}; #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] -enum AgentResult { +pub enum AgentResult { ActionFail = 0, ActionSuccess = 1, QueryResultFalse = 2, @@ -21,7 +21,7 @@ enum AgentResult { #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] -enum Type { +pub enum Type { Achievement { #[endianness(var)] achievement_id: i32, diff --git a/crates/proto/src/version/v662/packets/level_chunk.rs b/crates/proto/src/version/v662/packets/level_chunk.rs index c83e4a63..5391e63a 100644 --- a/crates/proto/src/version/v662/packets/level_chunk.rs +++ b/crates/proto/src/version/v662/packets/level_chunk.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ChunkPos; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct CacheBlobEntry { +pub struct CacheBlobEntry { #[endianness(var)] blob: u64 } diff --git a/crates/proto/src/version/v662/packets/map_info_request.rs b/crates/proto/src/version/v662/packets/map_info_request.rs index deec71db..ed191ab7 100644 --- a/crates/proto/src/version/v662/packets/map_info_request.rs +++ b/crates/proto/src/version/v662/packets/map_info_request.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ActorUniqueID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct ClientPixelsListEntry { +pub struct ClientPixelsListEntry { #[endianness(le)] pub pixel: u32, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/mob_effect.rs b/crates/proto/src/version/v662/packets/mob_effect.rs index 561f44fa..179e0ae0 100644 --- a/crates/proto/src/version/v662/packets/mob_effect.rs +++ b/crates/proto/src/version/v662/packets/mob_effect.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] -enum Event { +pub enum Event { Invalid = 0, Add = 1, Update = 2, diff --git a/crates/proto/src/version/v662/packets/npc_dialogue.rs b/crates/proto/src/version/v662/packets/npc_dialogue.rs index 8e64689d..0b1e9bfc 100644 --- a/crates/proto/src/version/v662/packets/npc_dialogue.rs +++ b/crates/proto/src/version/v662/packets/npc_dialogue.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] -enum NpcDialogueActionType { +pub enum NpcDialogueActionType { Open = 0, Close = 1, } diff --git a/crates/proto/src/version/v662/packets/npc_request.rs b/crates/proto/src/version/v662/packets/npc_request.rs index 98a71370..0920c9e9 100644 --- a/crates/proto/src/version/v662/packets/npc_request.rs +++ b/crates/proto/src/version/v662/packets/npc_request.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] -enum RequestType { +pub enum RequestType { SetActions = 0, ExecuteAction = 1, ExecuteClosingCommands = 2, diff --git a/crates/proto/src/version/v662/packets/player_auth_input.rs b/crates/proto/src/version/v662/packets/player_auth_input.rs index 1863af2c..25c94918 100644 --- a/crates/proto/src/version/v662/packets/player_auth_input.rs +++ b/crates/proto/src/version/v662/packets/player_auth_input.rs @@ -66,7 +66,7 @@ pub enum PlayerAuthInputFlags { } #[derive(ProtoCodec, Clone, Debug)] -struct ActionsEntry { +pub struct ActionsEntry { pub action_type: ItemStackRequestActionType, pub amount: i8, pub source: ItemStackRequestSlotInfo, @@ -74,7 +74,7 @@ struct ActionsEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct PerformItemStackRequestData { +pub struct PerformItemStackRequestData { #[endianness(var)] pub client_request_id: u32, #[vec_repr(u32)] @@ -87,7 +87,7 @@ struct PerformItemStackRequestData { } #[derive(ProtoCodec, Clone, Debug)] -struct ClientPredictedVehicleData { +pub struct ClientPredictedVehicleData { #[endianness(le)] pub vehicle_rotation: Vec2, pub client_predicted_vehicle: ActorUniqueID, diff --git a/crates/proto/src/version/v662/packets/player_enchant_options.rs b/crates/proto/src/version/v662/packets/player_enchant_options.rs index c3b69db7..927b0fed 100644 --- a/crates/proto/src/version/v662/packets/player_enchant_options.rs +++ b/crates/proto/src/version/v662/packets/player_enchant_options.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::ItemEnchants; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct OptionsEntry { +pub struct OptionsEntry { #[endianness(var)] pub cost: u32, pub enchants: ItemEnchants, diff --git a/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs b/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs index 036b91f6..afc9acb9 100644 --- a/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs +++ b/crates/proto/src/version/v662/packets/position_tracking_db_client_request.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] -enum Action { +pub enum Action { Query = 0 } diff --git a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs index 5b938270..f43c71e4 100644 --- a/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs +++ b/crates/proto/src/version/v662/packets/position_tracking_db_server_broadcast.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] #[enum_repr(i8)] #[repr(i8)] -enum Action { +pub enum Action { Update = 0, Destroy = 1, NotFound = 2, diff --git a/crates/proto/src/version/v662/packets/resource_pack_stack.rs b/crates/proto/src/version/v662/packets/resource_pack_stack.rs index 85d40c64..d72cc053 100644 --- a/crates/proto/src/version/v662/packets/resource_pack_stack.rs +++ b/crates/proto/src/version/v662/packets/resource_pack_stack.rs @@ -2,7 +2,7 @@ use crate::version::v662::types::{BaseGameVersion, Experiments}; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct PackEntry { +pub struct PackEntry { pub id: String, pub version: String, pub sub_pack_name: String, diff --git a/crates/proto/src/version/v662/packets/resource_packs_info.rs b/crates/proto/src/version/v662/packets/resource_packs_info.rs index b5570bd1..d35dd0cb 100644 --- a/crates/proto/src/version/v662/packets/resource_packs_info.rs +++ b/crates/proto/src/version/v662/packets/resource_packs_info.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct BehaviourPackEntry { +pub struct BehaviourPackEntry { pub id: String, pub version: String, #[endianness(le)] @@ -13,7 +13,7 @@ struct BehaviourPackEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct ResourcePackEntry { +pub struct ResourcePackEntry { pub id: String, pub version: String, #[endianness(le)] @@ -26,7 +26,7 @@ struct ResourcePackEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct CDNUrl { +pub struct CDNUrl { pub first: String, pub second: String, } diff --git a/crates/proto/src/version/v662/packets/set_title.rs b/crates/proto/src/version/v662/packets/set_title.rs index e34367ad..d75cc039 100644 --- a/crates/proto/src/version/v662/packets/set_title.rs +++ b/crates/proto/src/version/v662/packets/set_title.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] -enum TitleType { +pub enum TitleType { Clear = 0, Reset = 1, Title = 2, diff --git a/crates/proto/src/version/v662/packets/show_credits.rs b/crates/proto/src/version/v662/packets/show_credits.rs index b77c46b5..82977f1c 100644 --- a/crates/proto/src/version/v662/packets/show_credits.rs +++ b/crates/proto/src/version/v662/packets/show_credits.rs @@ -5,7 +5,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[enum_repr(i32)] #[enum_endianness(var)] #[repr(i32)] -enum CreditsState { +pub enum CreditsState { Start = 0, Finished = 1, } diff --git a/crates/proto/src/version/v662/packets/simple_event.rs b/crates/proto/src/version/v662/packets/simple_event.rs index f41f0e4f..74f76313 100644 --- a/crates/proto/src/version/v662/packets/simple_event.rs +++ b/crates/proto/src/version/v662/packets/simple_event.rs @@ -4,7 +4,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[enum_repr(u16)] #[enum_endianness(le)] #[repr(u16)] -enum Subtype { +pub enum Subtype { UninitializedSubtype = 0, EnableCommands = 1, DisableCommands = 2, diff --git a/crates/proto/src/version/v662/packets/start_game.rs b/crates/proto/src/version/v662/packets/start_game.rs index defd532c..66954e25 100644 --- a/crates/proto/src/version/v662/packets/start_game.rs +++ b/crates/proto/src/version/v662/packets/start_game.rs @@ -5,7 +5,7 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; use uuid::Uuid; #[derive(ProtoCodec, Clone, Debug)] -struct BlockProperty { +pub struct BlockProperty { pub block_name: String, #[nbt] pub block_definition: nbtx::Value, // TODO: NBT Structure diff --git a/crates/proto/src/version/v662/packets/sub_chunk.rs b/crates/proto/src/version/v662/packets/sub_chunk.rs index 5f7588f1..eb8f9de0 100644 --- a/crates/proto/src/version/v662/packets/sub_chunk.rs +++ b/crates/proto/src/version/v662/packets/sub_chunk.rs @@ -30,7 +30,7 @@ pub enum SubChunkRequestResult { } #[derive(Clone, Debug)] -struct SubChunkDataEntry { +pub struct SubChunkDataEntry { pub sub_chunk_pos_offset: SubChunkPosOffset, pub sub_chunk_request_result: SubChunkRequestResult, pub serialized_sub_chunk: Option, // If sub_chunk_request_result == SuccessAllAir, or cache_enabled diff --git a/crates/proto/src/version/v662/packets/trim_data.rs b/crates/proto/src/version/v662/packets/trim_data.rs index 4157456a..cba5d2af 100644 --- a/crates/proto/src/version/v662/packets/trim_data.rs +++ b/crates/proto/src/version/v662/packets/trim_data.rs @@ -1,13 +1,13 @@ use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct TrimPattern { +pub struct TrimPattern { pub item_name: String, pub pattern_id: String, } #[derive(ProtoCodec, Clone, Debug)] -struct TrimMaterial { +pub struct TrimMaterial { pub material_id: String, pub color: String, pub item_name: String, diff --git a/crates/proto/src/version/v662/packets/update_attributes.rs b/crates/proto/src/version/v662/packets/update_attributes.rs index 70d654b1..7434248c 100644 --- a/crates/proto/src/version/v662/packets/update_attributes.rs +++ b/crates/proto/src/version/v662/packets/update_attributes.rs @@ -3,7 +3,7 @@ use crate::version::v662::types::ActorRuntimeID; use bedrockrs_macros::{gamepacket, ProtoCodec}; #[derive(ProtoCodec, Clone, Debug)] -struct AttributeModifier { +pub struct AttributeModifier { pub id: String, pub name: String, #[endianness(le)] @@ -14,7 +14,7 @@ struct AttributeModifier { } #[derive(ProtoCodec, Clone, Debug)] -struct AttributeData { +pub struct AttributeData { #[endianness(le)] pub min_value: f32, #[endianness(le)] diff --git a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs index 23ab6887..b2fd55b7 100644 --- a/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs +++ b/crates/proto/src/version/v662/packets/update_sub_chunk_blocks.rs @@ -8,7 +8,7 @@ use std::mem::size_of; use varint_rs::{VarintReader, VarintWriter}; #[derive(Clone, Debug)] -struct BlocksChangedEntry { +pub struct BlocksChangedEntry { pub pos: NetworkBlockPosition, pub runtime_id: u32, pub update_flags: u32, diff --git a/crates/proto/src/version/v662/types/camera_instruction.rs b/crates/proto/src/version/v662/types/camera_instruction.rs index a89da0ef..ecb7f60d 100644 --- a/crates/proto/src/version/v662/types/camera_instruction.rs +++ b/crates/proto/src/version/v662/types/camera_instruction.rs @@ -3,14 +3,14 @@ use bedrockrs_macros::ProtoCodec; use crate::version::v662::enums::EasingType; #[derive(ProtoCodec, Clone, Debug)] -struct EaseData { +pub struct EaseData { pub ease_type: EasingType, #[endianness(le)] pub ease_time: f32, } #[derive(ProtoCodec, Clone, Debug)] -struct SetInstruction { +pub struct SetInstruction { #[endianness(le)] pub runtime_id: i32, pub ease_data: Option, @@ -24,7 +24,7 @@ struct SetInstruction { } #[derive(ProtoCodec, Clone, Debug)] -struct TimeData { +pub struct TimeData { #[endianness(le)] pub fade_in_time: f32, #[endianness(le)] @@ -34,7 +34,7 @@ struct TimeData { } #[derive(ProtoCodec, Clone, Debug)] -struct Color { +pub struct Color { #[endianness(le)] pub r: f32, #[endianness(le)] @@ -44,7 +44,7 @@ struct Color { } #[derive(ProtoCodec, Clone, Debug)] -struct FadeInstruction { +pub struct FadeInstruction { pub time_data: Option, pub color: Option, } diff --git a/crates/proto/src/version/v662/types/item_enchants.rs b/crates/proto/src/version/v662/types/item_enchants.rs index e0055a0f..ae6f146f 100644 --- a/crates/proto/src/version/v662/types/item_enchants.rs +++ b/crates/proto/src/version/v662/types/item_enchants.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::EnchantType; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] -struct ItemEnchant { +pub struct ItemEnchant { pub enchant_type: EnchantType, pub enchant_level: i8, } diff --git a/crates/proto/src/version/v662/types/map_decoration.rs b/crates/proto/src/version/v662/types/map_decoration.rs index 70eeb19e..12c957bb 100644 --- a/crates/proto/src/version/v662/types/map_decoration.rs +++ b/crates/proto/src/version/v662/types/map_decoration.rs @@ -31,11 +31,11 @@ pub enum MapDecorationType { } impl MapDecorationType { - const PLAYER: MapDecorationType = MapDecorationType::MarkerWhite; - const PLAYER_OFF_MAP: MapDecorationType = MapDecorationType::SquareWhite; - const PLAYER_OFF_LIMITS: MapDecorationType = MapDecorationType::SmallSquareWhite; - const PLAYER_HIDDEN: MapDecorationType = MapDecorationType::NoDraw; - const ITEM_FRAME: MapDecorationType = MapDecorationType::MarkerGreen; + pub const PLAYER: MapDecorationType = MapDecorationType::MarkerWhite; + pub const PLAYER_OFF_MAP: MapDecorationType = MapDecorationType::SquareWhite; + pub const PLAYER_OFF_LIMITS: MapDecorationType = MapDecorationType::SmallSquareWhite; + pub const PLAYER_HIDDEN: MapDecorationType = MapDecorationType::NoDraw; + pub const ITEM_FRAME: MapDecorationType = MapDecorationType::MarkerGreen; } #[derive(ProtoCodec, Clone, Debug)] diff --git a/crates/proto/src/version/v662/types/material_reducer_data_entry.rs b/crates/proto/src/version/v662/types/material_reducer_data_entry.rs index 82b3a72e..e7ecded1 100644 --- a/crates/proto/src/version/v662/types/material_reducer_data_entry.rs +++ b/crates/proto/src/version/v662/types/material_reducer_data_entry.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] -struct MaterialReducerDataEntryIdAndCount { +pub struct MaterialReducerDataEntryIdAndCount { #[endianness(var)] pub id: i32, #[endianness(var)] diff --git a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs index 70cc0393..5fe795c3 100644 --- a/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs +++ b/crates/proto/src/version/v662/types/packed_item_use_legacy_inventory_transaction.rs @@ -4,7 +4,7 @@ use bedrockrs_core::Vec3; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] -struct ContainerSlotEntry { +pub struct ContainerSlotEntry { pub container_enum_name: String, #[vec_repr(u32)] #[vec_endianness(var)] diff --git a/crates/proto/src/version/v662/types/property_sync_data.rs b/crates/proto/src/version/v662/types/property_sync_data.rs index 3bff2ac0..bb7dff06 100644 --- a/crates/proto/src/version/v662/types/property_sync_data.rs +++ b/crates/proto/src/version/v662/types/property_sync_data.rs @@ -1,7 +1,7 @@ use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] -struct IntEntry { +pub struct IntEntry { #[endianness(var)] pub property_index: u32, #[endianness(le)] @@ -9,7 +9,7 @@ struct IntEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct FloatEntry { +pub struct FloatEntry { #[endianness(var)] pub property_index: u32, #[endianness(var)] diff --git a/crates/proto/src/version/v662/types/serialized_abilities_data.rs b/crates/proto/src/version/v662/types/serialized_abilities_data.rs index 8d158301..f9dafd93 100644 --- a/crates/proto/src/version/v662/types/serialized_abilities_data.rs +++ b/crates/proto/src/version/v662/types/serialized_abilities_data.rs @@ -5,7 +5,7 @@ use bedrockrs_macros::ProtoCodec; #[enum_repr(u16)] #[enum_endianness(le)] #[repr(u16)] -enum SerializedAbilitiesLayer { +pub enum SerializedAbilitiesLayer { CustomCache = 0, Base = 1, Spectator = 2, diff --git a/crates/proto/src/version/v662/types/serialized_skin.rs b/crates/proto/src/version/v662/types/serialized_skin.rs index 7872c4ee..bc94678d 100644 --- a/crates/proto/src/version/v662/types/serialized_skin.rs +++ b/crates/proto/src/version/v662/types/serialized_skin.rs @@ -2,7 +2,7 @@ use crate::version::v662::enums::{AnimatedTextureType, AnimationExpression}; use bedrockrs_macros::ProtoCodec; #[derive(ProtoCodec, Clone, Debug)] -struct SerializedSkinAnimationFrame { +pub struct SerializedSkinAnimationFrame { #[endianness(le)] pub image_width: u32, #[endianness(le)] @@ -15,7 +15,7 @@ struct SerializedSkinAnimationFrame { } #[derive(ProtoCodec, Clone, Debug)] -struct PersonaPiecesEntry { +pub struct PersonaPiecesEntry { pub piece_id: String, pub piece_type: String, pub pack_id: String, @@ -24,7 +24,7 @@ struct PersonaPiecesEntry { } #[derive(ProtoCodec, Clone, Debug)] -struct PieceTintColorsEntry { +pub struct PieceTintColorsEntry { pub piece_type: String, pub piece_tint_color: String, }