summaryrefslogtreecommitdiff
path: root/src/handlers/event/reactboard.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2023-12-02 07:00:24 -0500
committerseth <[email protected]>2023-12-15 16:41:13 -0500
commit0025ad5ea8d412aacc3184d18063fd5ff3de0175 (patch)
tree1d2b5ac5c04a092756180722358d929feeae50aa /src/handlers/event/reactboard.rs
parentac32ec2a0ba37deb0ad82b4f2ee9c1e1b359cc88 (diff)
feat: add per guild configuration
Diffstat (limited to 'src/handlers/event/reactboard.rs')
-rw-r--r--src/handlers/event/reactboard.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/handlers/event/reactboard.rs b/src/handlers/event/reactboard.rs
index 2a417da..2435976 100644
--- a/src/handlers/event/reactboard.rs
+++ b/src/handlers/event/reactboard.rs
@@ -1,4 +1,4 @@
-use crate::{utils, Data};
+use crate::{utils, Data, Settings};
use color_eyre::eyre::{eyre, Context as _, Result};
use log::*;
@@ -52,14 +52,24 @@ async fn send_to_reactboard(
msg: &Message,
data: &Data,
) -> Result<()> {
+ let gid = msg.guild_id.unwrap_or_default();
+ let settings = Settings::from_redis(&data.redis, &gid).await?;
+
// make sure everything is in order...
- if !data.settings.can_use_reaction(reaction) {
- info!("Reaction {} can't be used!", reaction.reaction_type);
+ let target = if let Some(target) = settings.reactboard_channel {
+ target
+ } else {
+ debug!("Reactboard is disabled in {gid}, ignoring");
+ return Ok(());
+ };
+
+ if !settings.can_use_reaction(&reaction.reaction_type) {
+ debug!("Reaction {} can't be used!", reaction.reaction_type);
return Ok(());
}
- if reaction.count < data.settings.reactboard_requirement.unwrap_or(5) {
- info!(
+ if reaction.count < settings.reactboard_requirement.unwrap_or(5) {
+ debug!(
"Ignoring message {} on reactboard, not enough reactions",
msg.id
);
@@ -137,9 +147,7 @@ async fn send_to_reactboard(
} else {
let embed = utils::resolve_message_to_embed(ctx, msg).await;
- let resp = data
- .settings
- .reactboard_target
+ let resp = target
.send_message(ctx, |m| {
m.allowed_mentions(|am| am.empty_parse())
.content(content)