fix(moderation): only mute on rejoin if previously muted

This commit is contained in:
oSumAtrIX 2022-10-07 11:03:12 +02:00
parent 7ea6f90ca0
commit 6e9f20df05
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4

View File

@ -4,7 +4,7 @@ use std::sync::Arc;
use mongodb::options::FindOptions; use mongodb::options::FindOptions;
use poise::serenity_prelude::{ChannelId, Http, User}; use poise::serenity_prelude::{ChannelId, Http, User};
use tokio::task::JoinHandle; use tokio::task::JoinHandle;
use tracing::{debug, error, trace}; use tracing::{debug, error};
use super::bot::get_data_lock; use super::bot::get_data_lock;
use super::*; use super::*;
@ -43,23 +43,28 @@ pub async fn mute_on_join(ctx: &serenity::Context, new_member: &mut serenity::Me
) )
.await .await
{ {
if cursor.advance().await.is_ok() {
trace!("Muted member {} rejoined the server", new_member.user.tag()); if let Ok(found) = cursor.advance().await {
if new_member if found {
.add_role(&ctx.http, RoleId(data.configuration.general.mute.role)) debug!("Muted member {} rejoined the server", new_member.user.tag());
.await if new_member
.is_ok() .add_role(&ctx.http, RoleId(data.configuration.general.mute.role))
{ .await
debug!( .is_ok()
"Muted member {} was successfully muted", {
new_member.user.tag() debug!(
); "Muted member {} was successfully muted",
} else { new_member.user.tag()
error!( );
"Failed to mute member {} after rejoining the server", } else {
new_member.user.tag() error!(
); "Failed to mute member {} after rejoining the server",
new_member.user.tag()
);
}
} }
} else {
error!("Failed to advance the cursor");
} }
} else { } else {
error!("Failed to query database for muted users"); error!("Failed to query database for muted users");