summaryrefslogtreecommitdiff
path: root/src/handler/mod.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2023-11-16 00:33:59 -0500
committerseth <[email protected]>2023-11-16 05:41:54 +0000
commitfcf951b7712da947f3bc3a474b04a0b46c287ede (patch)
tree999e69cc43f0f307d0b3ff603d5adc0251f9cbfd /src/handler/mod.rs
parent387b7dee5c022dab74bd7afc920b58793b8308de (diff)
feat: implement event handler correctly
Diffstat (limited to 'src/handler/mod.rs')
-rw-r--r--src/handler/mod.rs51
1 files changed, 26 insertions, 25 deletions
diff --git a/src/handler/mod.rs b/src/handler/mod.rs
index 7f7c881..6085617 100644
--- a/src/handler/mod.rs
+++ b/src/handler/mod.rs
@@ -1,34 +1,35 @@
-use crate::utils;
-use crate::{consts, Data};
-use log::*;
+use crate::{Data, Error};
+use poise::serenity_prelude as serenity;
+use poise::Event;
-use poise::serenity_prelude::Message;
+mod message;
+pub mod pinboard;
-mod events;
+pub async fn handle(
+ ctx: &serenity::Context,
+ event: &Event<'_>,
+ _framework: poise::FrameworkContext<'_, Data, Error>,
+ data: &Data,
+) -> Result<(), Error> {
+ match event {
+ Event::Ready { data_about_bot } => {
+ log::info!("logged in as {}", data_about_bot.user.name)
+ }
-pub struct Handler {
- data: Data,
-}
+ Event::Message { new_message } => {
+ message::handle(ctx, event, _framework, data, new_message).await?;
+ }
-impl Handler {
- pub fn new(data: Data) -> Self {
- Self { data }
- }
+ Event::ChannelPinsUpdate { pin } => {
+ let Some(pin_board) = &data.pin_board else {
+ return Ok(());
+ };
- fn should_echo(&self, msg: &Message) -> bool {
- let gid = msg.guild_id.unwrap_or_default();
- if msg.author.id == self.data.bot || !utils::is_guild_allowed(gid) {
- info!("not running copypasta command in {gid}");
- return false;
+ pin_board.handle_pin(ctx, pin).await;
}
- let content = &msg.content;
-
- content == "🗿"
- || consts::TEAMOJIS.contains(&content.as_str())
- || content.to_ascii_lowercase() == "moyai"
- || content
- .to_ascii_lowercase()
- .contains("twitter's recommendation algorithm")
+ _ => {}
}
+
+ Ok(())
}