From 2901ed3be21a9798b69845f3dcd8ad70f81f5e28 Mon Sep 17 00:00:00 2001 From: Joey Hines Date: Wed, 24 Sep 2025 18:03:01 -0600 Subject: [PATCH] Fix ghoul message spam --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/event_listener/mod.rs | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 922e71b..ba03637 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1093,7 +1093,7 @@ dependencies = [ [[package]] name = "fren" -version = "2.4.0" +version = "2.4.1" dependencies = [ "axum 0.8.1", "base64 0.22.1", diff --git a/Cargo.toml b/Cargo.toml index 7c69e25..823b7f9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fren" -version = "2.4.0" +version = "2.4.1" edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/event_listener/mod.rs b/src/event_listener/mod.rs index 741d83c..75e4ac2 100644 --- a/src/event_listener/mod.rs +++ b/src/event_listener/mod.rs @@ -12,6 +12,7 @@ use rand::{Rng, rng}; use serde::{Deserialize, Serialize}; use std::fmt::Debug; use std::sync::Arc; +use crate::discord::get_role; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(tag = "type")] @@ -243,6 +244,14 @@ impl Listener { trigger_event.channel_id.say(ctx.http(), msg).await?; } Action::Ghoulify { hours } => { + // slight hack to prevent ghoul spamming + let ghoul_role = get_role(&ctx.http, data.cfg.guild_id, &UserRole::Ghoul.to_string()).await?; + if let Ok(user) = data.cfg.guild_id.member(&ctx.http(), trigger_event.triggerer).await + && let Some(ghoul_role) = ghoul_role + && user.roles.contains(&ghoul_role) { + break; + } + User::add_role( ctx.http(), &data.db,