aboutsummaryrefslogtreecommitdiff
path: root/azalea/examples/testbot
diff options
context:
space:
mode:
Diffstat (limited to 'azalea/examples/testbot')
-rw-r--r--azalea/examples/testbot/commands/movement.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/azalea/examples/testbot/commands/movement.rs b/azalea/examples/testbot/commands/movement.rs
index 3c66fefa..b0adec8b 100644
--- a/azalea/examples/testbot/commands/movement.rs
+++ b/azalea/examples/testbot/commands/movement.rs
@@ -3,7 +3,7 @@ use std::time::Duration;
use azalea::{
brigadier::prelude::*,
entity::{EyeHeight, Position},
- pathfinder::goals::{BlockPosGoal, XZGoal},
+ pathfinder::goals::{BlockPosGoal, RadiusGoal, XZGoal},
prelude::*,
BlockPos, SprintDirection, WalkDirection,
};
@@ -42,6 +42,24 @@ pub fn register(commands: &mut CommandDispatcher<Mutex<CommandSource>>) {
1
}),
)))
+ .then(literal("radius").then(argument("radius", float()).then(
+ argument("x", integer()).then(argument("y", integer()).then(
+ argument("z", integer()).executes(|ctx: &Ctx| {
+ let source = ctx.source.lock();
+ let radius = get_float(ctx, "radius").unwrap();
+ let x = get_integer(ctx, "x").unwrap();
+ let y = get_integer(ctx, "y").unwrap();
+ let z = get_integer(ctx, "z").unwrap();
+ println!("goto radius {radius}, position: {x} {y} {z}");
+ source.reply("ok");
+ source.bot.goto(RadiusGoal {
+ pos: BlockPos::new(x, y, z).center(),
+ radius,
+ });
+ 1
+ }),
+ )),
+ )))
.then(argument("x", integer()).then(argument("y", integer()).then(
argument("z", integer()).executes(|ctx: &Ctx| {
let source = ctx.source.lock();