From 0aa439d5caa8028b6d310de45258cbcef16ca2eb Mon Sep 17 00:00:00 2001 From: mat Date: Sun, 7 Jan 2024 21:50:38 -0600 Subject: rewrite testbot to use brigadier --- azalea/examples/testbot/commands.rs | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 azalea/examples/testbot/commands.rs (limited to 'azalea/examples/testbot/commands.rs') diff --git a/azalea/examples/testbot/commands.rs b/azalea/examples/testbot/commands.rs new file mode 100644 index 00000000..db606aa6 --- /dev/null +++ b/azalea/examples/testbot/commands.rs @@ -0,0 +1,46 @@ +pub mod combat; +pub mod debug; +pub mod movement; + +use azalea::brigadier::prelude::*; +use azalea::chat::ChatPacket; +use azalea::ecs::prelude::Entity; +use azalea::ecs::prelude::*; +use azalea::entity::metadata::Player; +use azalea::Client; +use azalea::GameProfileComponent; +use parking_lot::Mutex; + +use crate::State; + +pub type Ctx = CommandContext>; + +pub struct CommandSource { + pub bot: Client, + pub state: State, + pub chat: ChatPacket, +} + +impl CommandSource { + pub fn reply(&self, message: &str) { + if self.chat.is_whisper() { + self.bot + .chat(&format!("/w {} {}", self.chat.username().unwrap(), message)); + } else { + self.bot.chat(message); + } + } + + pub fn entity(&mut self) -> Option { + let username = self.chat.username()?; + self.bot.entity_by::, &GameProfileComponent>( + |profile: &&GameProfileComponent| profile.name == username, + ) + } +} + +pub fn register_commands(commands: &mut CommandDispatcher>) { + combat::register(commands); + debug::register(commands); + movement::register(commands); +} -- cgit v1.2.3