diff options
| author | Ubuntu <github@matdoes.dev> | 2022-10-17 18:51:42 +0000 |
|---|---|---|
| committer | Ubuntu <github@matdoes.dev> | 2022-10-17 18:51:42 +0000 |
| commit | 5ffc46ae5c746287b84e96f2b60d7a2ff07deddf (patch) | |
| tree | 54acf6900d4db03d6ee0b4b15572f4659d7f89ea /azalea | |
| parent | d4d4ba054f4da0dcf550524523792ee79268d40d (diff) | |
| download | azalea-drasl-5ffc46ae5c746287b84e96f2b60d7a2ff07deddf.tar.xz | |
change the order of event in handle fn
Diffstat (limited to 'azalea')
| -rw-r--r-- | azalea/src/bot.rs | 2 | ||||
| -rw-r--r-- | azalea/src/lib.rs | 17 |
2 files changed, 9 insertions, 10 deletions
diff --git a/azalea/src/bot.rs b/azalea/src/bot.rs index 1570fa5e..26e35fda 100644 --- a/azalea/src/bot.rs +++ b/azalea/src/bot.rs @@ -33,7 +33,7 @@ impl BotTrait for azalea_client::Client { #[async_trait] impl crate::Plugin for Plugin { - async fn handle(self: Arc<Self>, mut bot: Client, event: Arc<Event>) { + async fn handle(self: Arc<Self>, event: Arc<Event>, mut bot: Client) { if let Event::Tick = *event { let mut state = self.state.lock(); if state.jumping_once { diff --git a/azalea/src/lib.rs b/azalea/src/lib.rs index 8ef02e7c..493745cb 100644 --- a/azalea/src/lib.rs +++ b/azalea/src/lib.rs @@ -11,10 +11,9 @@ use thiserror::Error; /// Plugins can keep their own personal state, listen to events, and add new functions to Client. #[async_trait] pub trait Plugin: Send + Sync { - async fn handle(self: Arc<Self>, bot: Client, event: Arc<Event>); + async fn handle(self: Arc<Self>, event: Arc<Event>, bot: Client); } -// pub type HeuristicFn<N, W> = fn(start: &Vertex<N, W>, current: &Vertex<N, W>) -> W; pub type HandleFn<Fut, S> = fn(Client, Arc<Event>, Arc<Mutex<S>>) -> Fut; pub struct Options<S, A, Fut> @@ -65,18 +64,18 @@ pub async fn start< while let Some(event) = rx.recv().await { // we put it into an Arc so it's cheaper to clone + let event = Arc::new(event); for plugin in &options.plugins { - tokio::spawn(plugin.clone().handle(bot.clone(), event.clone())); + tokio::spawn(plugin.clone().handle(event.clone(), bot.clone())); } - { - let bot_plugin = bot_plugin.clone(); - let bot = bot.clone(); - let event = event.clone(); - tokio::spawn(bot::Plugin::handle(bot_plugin, bot, event)); - }; + tokio::spawn(bot::Plugin::handle( + bot_plugin.clone(), + event.clone(), + bot.clone(), + )); tokio::spawn((options.handle)(bot.clone(), event.clone(), state.clone())); } |
