mirror of
https://github.com/revanced/revanced-discord-bot.git
synced 2025-04-30 14:34:29 +02:00
fix(moderation): save overwrites before modifying them
This commit is contained in:
parent
6279a79132
commit
2f67c59bb3
@ -9,6 +9,7 @@ use poise::serenity_prelude::{
|
|||||||
RoleId,
|
RoleId,
|
||||||
User,
|
User,
|
||||||
};
|
};
|
||||||
|
use tracing::log::error;
|
||||||
use tracing::{debug, trace};
|
use tracing::{debug, trace};
|
||||||
|
|
||||||
use crate::db::model::{LockedChannel, Muted};
|
use crate::db::model::{LockedChannel, Muted};
|
||||||
@ -72,21 +73,9 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
// lock the channel by and creating the new permission overwrite
|
|
||||||
for permission_overwrite in &permission_overwrites {
|
|
||||||
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
|
|
||||||
channel
|
|
||||||
.create_permission(http, &PermissionOverwrite {
|
|
||||||
allow: permission_overwrite.allow & !permission,
|
|
||||||
deny: permission_overwrite.deny | permission,
|
|
||||||
kind: permission_overwrite.kind,
|
|
||||||
})
|
|
||||||
.await?;
|
|
||||||
}
|
|
||||||
|
|
||||||
// save the original overwrites
|
// save the original overwrites
|
||||||
let updated: Document = LockedChannel {
|
let updated: Document = LockedChannel {
|
||||||
overwrites: Some(permission_overwrites),
|
overwrites: Some(permission_overwrites.clone()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
.into();
|
.into();
|
||||||
@ -100,6 +89,22 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
// lock the channel by and creating the new permission overwrite
|
||||||
|
for permission_overwrite in &permission_overwrites {
|
||||||
|
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
|
||||||
|
|
||||||
|
if let Err(err) = channel
|
||||||
|
.create_permission(http, &PermissionOverwrite {
|
||||||
|
allow: permission_overwrite.allow & !permission,
|
||||||
|
deny: permission_overwrite.deny | permission,
|
||||||
|
kind: permission_overwrite.kind,
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
{
|
||||||
|
error!("Failed to create the new permission: {:?}", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
respond_moderation(
|
respond_moderation(
|
||||||
&ctx,
|
&ctx,
|
||||||
&ModerationKind::Lock(channel.name.clone(), None),
|
&ModerationKind::Lock(channel.name.clone(), None),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user