From 166d4e334f8ebb96da94a73f93e67ef5f5b071c4 Mon Sep 17 00:00:00 2001 From: Ushie Date: Sat, 13 May 2023 02:34:01 +0300 Subject: [PATCH] feat: cure slash command --- src/commands/moderation.rs | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/commands/moderation.rs b/src/commands/moderation.rs index 165fa82..7824021 100644 --- a/src/commands/moderation.rs +++ b/src/commands/moderation.rs @@ -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 { - allow: permission_overwrite.allow & !permission, - deny: permission_overwrite.deny | permission, - kind: permission_overwrite.kind, - }) + .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(()) +}