feat: cure slash command

This commit is contained in:
Ushie 2023-05-13 02:34:01 +03:00
parent e0ca87322d
commit 166d4e334f
No known key found for this signature in database
GPG Key ID: 0EF73F1CA38B2D5F

View File

@ -2,23 +2,16 @@ use bson::{doc, Document};
use chrono::Utc;
use mongodb::options::{UpdateModifications, UpdateOptions};
use poise::serenity_prelude::{
self as serenity,
Mentionable,
PermissionOverwrite,
Permissions,
UserId,
self as serenity, Member, Mentionable, PermissionOverwrite, Permissions, UserId,
};
use tracing::{debug, error, trace};
use crate::db::model::{LockedChannel, Muted};
use crate::utils::bot::get_member;
use crate::utils::decancer::cure as cure_member;
use crate::utils::macros::to_user;
use crate::utils::moderation::{
ban_moderation,
queue_unmute_member,
respond_moderation,
BanKind,
ModerationKind,
ban_moderation, queue_unmute_member, respond_moderation, BanKind, ModerationKind,
};
use crate::utils::parse_duration;
use crate::{Context, Error};
@ -98,11 +91,14 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
if let Err(err) = channel
.create_permission(http, &PermissionOverwrite {
.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);
@ -469,3 +465,13 @@ async fn handle_ban(ctx: &Context<'_>, kind: &BanKind) -> Result<(), Error> {
)
.await
}
/// Cure a member.
#[poise::command(slash_command)]
pub async fn cure(
ctx: Context<'_>,
#[description = "The member to cure"] member: Member,
) -> Result<(), Error> {
cure_member(ctx.serenity_context(), &None, &member).await;
Ok(())
}