diff options
| author | ShayBox <shaybox@shaybox.com> | 2025-10-30 12:14:19 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-30 11:14:19 -0500 |
| commit | 818f2d01d49e574946d1a704e1445156afc9c2fb (patch) | |
| tree | 4190ce61994e7d1280cbcd6b43811fa9f6b03b09 /azalea/src | |
| parent | c7cc381fae569f3dfc9f2abe86c2c38d59b68cf2 (diff) | |
| download | azalea-drasl-818f2d01d49e574946d1a704e1445156afc9c2fb.tar.xz | |
Add support for mob effects (#269)
* Add support for mob effects
* Remove Option
* MobEffectFlags
* jump_boost_power f32
Diffstat (limited to 'azalea/src')
| -rw-r--r-- | azalea/src/auto_tool.rs | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/azalea/src/auto_tool.rs b/azalea/src/auto_tool.rs index e7eb614d..af3d4352 100644 --- a/azalea/src/auto_tool.rs +++ b/azalea/src/auto_tool.rs @@ -1,7 +1,7 @@ use azalea_block::{BlockState, BlockTrait, fluid_state::FluidKind}; use azalea_client::{Client, inventory::Inventory}; use azalea_core::position::BlockPos; -use azalea_entity::{FluidOnEyes, Physics}; +use azalea_entity::{ActiveEffects, FluidOnEyes, Physics}; use azalea_inventory::{ItemStack, Menu, components}; use crate::bot::BotClientExt; @@ -19,10 +19,16 @@ pub trait AutoToolClientExt { impl AutoToolClientExt for Client { fn best_tool_in_hotbar_for_block(&self, block: BlockState) -> BestToolResult { - self.query_self::<(&Inventory, &Physics, &FluidOnEyes), _>( - |(inventory, physics, fluid_on_eyes)| { + self.query_self::<(&Inventory, &Physics, &FluidOnEyes, &ActiveEffects), _>( + |(inventory, physics, fluid_on_eyes, active_effects)| { let menu = &inventory.inventory_menu; - accurate_best_tool_in_hotbar_for_block(block, menu, physics, fluid_on_eyes) + accurate_best_tool_in_hotbar_for_block( + block, + menu, + physics, + fluid_on_eyes, + active_effects, + ) }, ) } @@ -48,11 +54,13 @@ pub fn best_tool_in_hotbar_for_block(block: BlockState, menu: &Menu) -> BestTool let mut physics = Physics::default(); physics.set_on_ground(true); + let inactive_effects = ActiveEffects::default(); accurate_best_tool_in_hotbar_for_block( block, menu, &physics, &FluidOnEyes::new(FluidKind::Empty), + &inactive_effects, ) } @@ -61,6 +69,7 @@ pub fn accurate_best_tool_in_hotbar_for_block( menu: &Menu, physics: &Physics, fluid_on_eyes: &FluidOnEyes, + active_effects: &ActiveEffects, ) -> BestToolResult { let hotbar_slots = &menu.slots()[menu.hotbar_slots_range()]; @@ -92,6 +101,7 @@ pub fn accurate_best_tool_in_hotbar_for_block( menu, fluid_on_eyes, physics, + active_effects, )); } ItemStack::Present(item_stack) => { @@ -104,6 +114,7 @@ pub fn accurate_best_tool_in_hotbar_for_block( menu, fluid_on_eyes, physics, + active_effects, )); } else { this_item_speed = None; @@ -127,6 +138,7 @@ pub fn accurate_best_tool_in_hotbar_for_block( menu, fluid_on_eyes, physics, + active_effects, ); if this_item_speed > best_speed { best_slot = Some(i); |
