From df167a5a391ef2a9bf2290a24d99ef8f559d9084 Mon Sep 17 00:00:00 2001 From: mat Date: Fri, 5 May 2023 17:15:49 +0000 Subject: fix some warnings --- azalea-inventory/azalea-inventory-macros/src/location_enum.rs | 2 +- azalea-inventory/azalea-inventory-macros/src/menu_impl.rs | 4 ++-- azalea-inventory/src/item/mod.rs | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'azalea-inventory') diff --git a/azalea-inventory/azalea-inventory-macros/src/location_enum.rs b/azalea-inventory/azalea-inventory-macros/src/location_enum.rs index 6cec88e6..cfcf3d48 100644 --- a/azalea-inventory/azalea-inventory-macros/src/location_enum.rs +++ b/azalea-inventory/azalea-inventory-macros/src/location_enum.rs @@ -26,7 +26,7 @@ pub fn generate(input: &DeclareMenus) -> TokenStream { name_snake_case.span(), ); let enum_name = Ident::new( - &format!("{}MenuLocation", variant_name), + &format!("{variant_name}MenuLocation"), variant_name.span(), ); menu_location_variants.extend(quote! { diff --git a/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs b/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs index 804f69f2..6bb37e8e 100644 --- a/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs +++ b/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs @@ -406,13 +406,13 @@ fn generate_menu_consts(menu: &Menu) -> TokenStream { if field.length == 1 { let field_name = Ident::new( - format!("{}_SLOT", field_name_start).as_str(), + format!("{field_name_start}_SLOT").as_str(), field.name.span(), ); menu_consts.extend(quote! { pub const #field_name: usize = #field_index_start; }); } else { let field_name = Ident::new( - format!("{}_SLOTS", field_name_start).as_str(), + format!("{field_name_start}_SLOTS").as_str(), field.name.span(), ); menu_consts.extend(quote! { pub const #field_name: RangeInclusive = #field_index_start..=#field_index_end; }); diff --git a/azalea-inventory/src/item/mod.rs b/azalea-inventory/src/item/mod.rs index 07e51363..0ad7b2c0 100644 --- a/azalea-inventory/src/item/mod.rs +++ b/azalea-inventory/src/item/mod.rs @@ -3,6 +3,8 @@ pub trait MaxStackSizeExt { /// /// This is a signed integer to be consistent with the `count` field of /// [`ItemSlotData`]. + /// + /// [`ItemSlotData`]: crate::ItemSlotData fn max_stack_size(&self) -> i8; /// Whether this item can be stacked with other items. -- cgit v1.2.3 From 84c0908f34b301c6ddb96ae4c314672f690f1bff Mon Sep 17 00:00:00 2001 From: mat Date: Sat, 6 May 2023 01:02:21 -0500 Subject: fix panic on disconnect --- azalea-client/src/interact.rs | 23 +++++++++------------- azalea-client/src/local_player.rs | 7 ++++--- .../azalea-inventory-macros/src/location_enum.rs | 5 +---- 3 files changed, 14 insertions(+), 21 deletions(-) (limited to 'azalea-inventory') diff --git a/azalea-client/src/interact.rs b/azalea-client/src/interact.rs index ec5ed87b..2da80760 100644 --- a/azalea-client/src/interact.rs +++ b/azalea-client/src/interact.rs @@ -6,7 +6,7 @@ use azalea_protocol::packets::game::{ }; use azalea_world::{ entity::{clamp_look_direction, view_vector, EyeHeight, LookDirection, Position, WorldName}, - InstanceContainer, + Instance, InstanceContainer, }; use bevy_app::{App, Plugin}; use bevy_ecs::{ @@ -153,13 +153,13 @@ fn update_hit_result_component( y: position.y + **eye_height as f64, z: position.z, }; - let hit_result = pick( - look_direction, - &eye_position, - world_name, - &instance_container, - pick_range, - ); + + let Some(instance_lock) = instance_container.get(world_name) else { + continue; + }; + let instance = instance_lock.read(); + + let hit_result = pick(look_direction, &eye_position, &instance, pick_range); if let Some(mut hit_result_ref) = hit_result_ref { **hit_result_ref = hit_result; } else { @@ -178,16 +178,11 @@ fn update_hit_result_component( pub fn pick( look_direction: &LookDirection, eye_position: &Vec3, - world_name: &WorldName, - instance_container: &InstanceContainer, + instance: &Instance, pick_range: f64, ) -> BlockHitResult { let view_vector = view_vector(look_direction); let end_position = eye_position + &(view_vector * pick_range); - let instance_lock = instance_container - .get(world_name) - .expect("entities must always be in a valid world"); - let instance = instance_lock.read(); azalea_physics::clip::clip( &instance.chunks, ClipContext { diff --git a/azalea-client/src/local_player.rs b/azalea-client/src/local_player.rs index 423b4308..691f9ced 100644 --- a/azalea-client/src/local_player.rs +++ b/azalea-client/src/local_player.rs @@ -139,9 +139,10 @@ pub fn update_in_loaded_chunk( ) { for (entity, local_player, position) in &query { let player_chunk_pos = ChunkPos::from(position); - let instance_lock = instance_container - .get(local_player) - .expect("local player should always be in an instance"); + let Some(instance_lock) = instance_container.get(local_player) else { + continue; + }; + let in_loaded_chunk = instance_lock.read().chunks.get(&player_chunk_pos).is_some(); if in_loaded_chunk { commands.entity(entity).insert(LocalPlayerInLoadedChunk); diff --git a/azalea-inventory/azalea-inventory-macros/src/location_enum.rs b/azalea-inventory/azalea-inventory-macros/src/location_enum.rs index cfcf3d48..5f2086b7 100644 --- a/azalea-inventory/azalea-inventory-macros/src/location_enum.rs +++ b/azalea-inventory/azalea-inventory-macros/src/location_enum.rs @@ -25,10 +25,7 @@ pub fn generate(input: &DeclareMenus) -> TokenStream { &to_pascal_case(&name_snake_case.to_string()), name_snake_case.span(), ); - let enum_name = Ident::new( - &format!("{variant_name}MenuLocation"), - variant_name.span(), - ); + let enum_name = Ident::new(&format!("{variant_name}MenuLocation"), variant_name.span()); menu_location_variants.extend(quote! { #variant_name(#enum_name), }); -- cgit v1.2.3