aboutsummaryrefslogtreecommitdiff
path: root/azalea/src
diff options
context:
space:
mode:
authorShayBox <shaybox@shaybox.com>2025-10-30 12:14:19 -0400
committerGitHub <noreply@github.com>2025-10-30 11:14:19 -0500
commit818f2d01d49e574946d1a704e1445156afc9c2fb (patch)
tree4190ce61994e7d1280cbcd6b43811fa9f6b03b09 /azalea/src
parentc7cc381fae569f3dfc9f2abe86c2c38d59b68cf2 (diff)
downloadazalea-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.rs20
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);