diff options
Diffstat (limited to 'src/handler/events.rs')
| -rw-r--r-- | src/handler/events.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/handler/events.rs b/src/handler/events.rs new file mode 100644 index 0000000..d971b25 --- /dev/null +++ b/src/handler/events.rs @@ -0,0 +1,24 @@ +use crate::handler::Handler; +use log::*; +use poise::async_trait; +use poise::serenity_prelude::{ChannelPinsUpdateEvent, Context, EventHandler, Message}; + +#[async_trait] +impl EventHandler for Handler { + async fn message(&self, ctx: Context, msg: Message) { + if self.should_echo(&msg) { + let send = msg.reply(&ctx, &msg.content); + if let Err(why) = send.await { + error!("error when replying to {:?}: {:?}", msg.content, why); + } + } + } + + async fn channel_pins_update(&self, ctx: Context, pin: ChannelPinsUpdateEvent) { + let Some(pin_board) = &self.data.pin_board else { + return; + }; + + pin_board.handle_pin(&ctx, &pin).await; + } +} |
