diff options
| author | seth <[email protected]> | 2023-11-16 00:33:59 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-11-16 05:41:54 +0000 |
| commit | fcf951b7712da947f3bc3a474b04a0b46c287ede (patch) | |
| tree | 999e69cc43f0f307d0b3ff603d5adc0251f9cbfd /src/handler/message.rs | |
| parent | 387b7dee5c022dab74bd7afc920b58793b8308de (diff) | |
feat: implement event handler correctly
Diffstat (limited to 'src/handler/message.rs')
| -rw-r--r-- | src/handler/message.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/handler/message.rs b/src/handler/message.rs new file mode 100644 index 0000000..37a49bf --- /dev/null +++ b/src/handler/message.rs @@ -0,0 +1,35 @@ +use crate::{consts, utils, Data, Error}; +use log::*; +use poise::serenity_prelude as serenity; +use poise::{Event, FrameworkContext}; + +fn should_echo(framework: FrameworkContext<'_, Data, Error>, msg: &serenity::Message) -> bool { + let gid = msg.guild_id.unwrap_or_default(); + if msg.author.id == framework.bot_id || !utils::is_guild_allowed(gid) { + info!("not running copypasta command in {gid}"); + return false; + } + + 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") +} + +pub async fn handle( + ctx: &serenity::Context, + _event: &Event<'_>, + framework: FrameworkContext<'_, Data, Error>, + _data: &Data, + msg: &serenity::Message, +) -> Result<(), Error> { + if should_echo(framework, msg) { + msg.reply(ctx, &msg.content).await?; + } + + Ok(()) +} |
