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 chrono::Utc;
use mongodb::options::{UpdateModifications, UpdateOptions}; use mongodb::options::{UpdateModifications, UpdateOptions};
use poise::serenity_prelude::{ use poise::serenity_prelude::{
self as serenity, self as serenity, Member, Mentionable, PermissionOverwrite, Permissions, UserId,
Mentionable,
PermissionOverwrite,
Permissions,
UserId,
}; };
use tracing::{debug, error, trace}; use tracing::{debug, error, trace};
use crate::db::model::{LockedChannel, Muted}; use crate::db::model::{LockedChannel, Muted};
use crate::utils::bot::get_member; use crate::utils::bot::get_member;
use crate::utils::decancer::cure as cure_member;
use crate::utils::macros::to_user; use crate::utils::macros::to_user;
use crate::utils::moderation::{ use crate::utils::moderation::{
ban_moderation, ban_moderation, queue_unmute_member, respond_moderation, BanKind, ModerationKind,
queue_unmute_member,
respond_moderation,
BanKind,
ModerationKind,
}; };
use crate::utils::parse_duration; use crate::utils::parse_duration;
use crate::{Context, Error}; use crate::{Context, Error};
@ -98,11 +91,14 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS; let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
if let Err(err) = channel if let Err(err) = channel
.create_permission(http, &PermissionOverwrite { .create_permission(
http,
&PermissionOverwrite {
allow: permission_overwrite.allow & !permission, allow: permission_overwrite.allow & !permission,
deny: permission_overwrite.deny | permission, deny: permission_overwrite.deny | permission,
kind: permission_overwrite.kind, kind: permission_overwrite.kind,
}) },
)
.await .await
{ {
error!("Failed to create the new permission: {:?}", err); error!("Failed to create the new permission: {:?}", err);
@ -469,3 +465,13 @@ async fn handle_ban(ctx: &Context<'_>, kind: &BanKind) -> Result<(), Error> {
) )
.await .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(())
}