From 4b75d76c177e246c8856f91e81bb3cdf9c24e51a Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Fri, 14 Jun 2024 20:44:39 +0200 Subject: [PATCH] fix: Handle response whitelist and blacklist correctly --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/utils/message_response.rs | 13 +++++-------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 11bd0f5..593279c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1683,7 +1683,7 @@ dependencies = [ [[package]] name = "revanced-discord-bot" -version = "2.8.0" +version = "2.9.0" dependencies = [ "base64 0.22.1", "bson", diff --git a/Cargo.toml b/Cargo.toml index c5cbc13..8b5ce89 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ homepage = "https://revanced.app" license = "GPL-3.0" name = "revanced-discord-bot" repository = "https://github.com/revanced/revanced-discord-bot" -version = "2.8.0" +version = "2.9.0" edition = "2021" [profile.release] diff --git a/src/utils/message_response.rs b/src/utils/message_response.rs index a828a2a..39c478c 100644 --- a/src/utils/message_response.rs +++ b/src/utils/message_response.rs @@ -4,16 +4,13 @@ use serenity::Message; use tracing::log::error; use super::*; -use crate::{ - model::application::Trigger, - BotData, -}; +use crate::{model::application::Trigger, BotData}; impl Trigger { fn matches(&self, new_message: &Message, member_roles: &[RoleId]) -> bool { if let Some(channels) = &self.channels { if !channels.contains(&new_message.channel_id.get()) { - return true; + return false; } } @@ -22,11 +19,11 @@ impl Trigger { .iter() .any(|&member_role| roles.contains(&member_role.get())) { - return true; + return false; } } - if !self.regex.iter().any(|r| r.is_match(&new_message.content)) { + if !self.regex.is_empty() && self.regex.iter().any(|r| r.is_match(&new_message.content)) { return true; } @@ -49,7 +46,7 @@ pub async fn handle_message_response( for response in &configuration.responses { if let Some(whitelist) = &response.whitelist { - if whitelist.matches(new_message, member_roles) { + if !whitelist.matches(new_message, member_roles) { continue; } }