From 735cd3e70a66943f3b958fa9ce275389c189d180 Mon Sep 17 00:00:00 2001 From: minneelyyyy Date: Mon, 9 Dec 2024 15:30:54 -0500 Subject: [PATCH] remove ping limiter --- src/main.rs | 3 --- src/ping_limit.rs | 43 ------------------------------------------- 2 files changed, 46 deletions(-) delete mode 100644 src/ping_limit.rs diff --git a/src/main.rs b/src/main.rs index c15e1da..64a5a55 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,4 @@ mod commands; -mod ping_limit; pub mod common; use crate::common::{Context, Error, Data}; @@ -31,8 +30,6 @@ async fn event_handler( match event { serenity::FullEvent::Message { new_message: message } => { if message.author.bot { return Ok(()) } - - ping_limit::ping_spam_yeller(ctx, &message, data).await?; } _ => (), } diff --git a/src/ping_limit.rs b/src/ping_limit.rs deleted file mode 100644 index ddd99b7..0000000 --- a/src/ping_limit.rs +++ /dev/null @@ -1,43 +0,0 @@ -use crate::common::{Error, Data}; - -use poise::serenity_prelude::{self as serenity, Message, UserId}; -use regex::Regex; - -use std::time::{Instant, Duration}; - -pub fn extract_mentions(content: &str) -> Vec { - // Define the regex pattern for user mentions - let re = Regex::new(r"<@(\d+)>").unwrap(); - - // Find all matches and capture the IDs - re.captures_iter(content) - .filter_map(|cap| cap.get(1).map(|id| id.as_str().parse().unwrap())) - .collect() -} - -pub async fn ping_spam_yeller(ctx: &serenity::Context, message: &Message, data: &Data) -> Result<(), Error> { - let mentions = extract_mentions(&message.content); - let mut cooldowns = data.mentions.lock().await; - - if mentions.iter() - .filter(|&&id| id != message.author.id) - .any(|mention| cooldowns.get(mention).map(|t| Instant::now().duration_since(*t) < Duration::from_secs(20)).unwrap_or(false)) - { - message.reply_ping(ctx, "stop spamming!").await?; - - let guild = match message.guild_id { - Some(g) => g, - None => return Ok(()), - }; - - let mut member = guild.member(ctx, message.author.id).await.unwrap(); - member.disable_communication_until_datetime(ctx, - serenity::Timestamp::from_unix_timestamp(serenity::Timestamp::now().unix_timestamp() + 60i64).unwrap()).await?; - } - - for mention in mentions { - cooldowns.insert(mention, Instant::now()); - } - - Ok(()) -} \ No newline at end of file