diff options
| author | seth <[email protected]> | 2023-11-30 22:18:51 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-01 07:12:49 -0500 |
| commit | 76c0f94e6d7aa108424b34826eb7d8514b026287 (patch) | |
| tree | 7315bd6dfe52c158041bed64ba39781718a69335 /src/handlers/event/mod.rs | |
| parent | db52e639b85d79bed870020aec7a045851ca5ee3 (diff) | |
feat: use eyre, better logging, & refactor
small commits be damned
Diffstat (limited to 'src/handlers/event/mod.rs')
| -rw-r--r-- | src/handlers/event/mod.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/handlers/event/mod.rs b/src/handlers/event/mod.rs new file mode 100644 index 0000000..09be62b --- /dev/null +++ b/src/handlers/event/mod.rs @@ -0,0 +1,40 @@ +use crate::Data; + +use color_eyre::eyre::{Report, Result}; +use poise::serenity_prelude as serenity; +use poise::{Event, FrameworkContext}; + +mod message; +mod pinboard; +mod reactboard; + +pub async fn handle( + ctx: &serenity::Context, + event: &Event<'_>, + framework: FrameworkContext<'_, Data, Report>, + data: &Data, +) -> Result<()> { + match event { + Event::Ready { data_about_bot } => { + log::info!("logged in as {}", data_about_bot.user.name) + } + + Event::Message { new_message } => message::handle(ctx, framework, new_message).await?, + + Event::ChannelPinsUpdate { pin } => { + if let Some(settings) = &data.settings { + pinboard::handle(ctx, pin, settings).await + } + } + + Event::ReactionAdd { add_reaction } => { + if let Some(settings) = &data.settings { + reactboard::handle(ctx, add_reaction, settings).await? + } + } + + _ => {} + } + + Ok(()) +} |
