mirror of
https://github.com/arthur-pbty/shadowbot.git
synced 2026-06-03 23:36:25 +02:00
Refactor command handling and permissions management
- Updated examples formatting in SetpermCommand and LeaveSettingsCommand for consistency. - Consolidated the handling of guild targets into a new utility file (servertarget.rs). - Moved the del command logic to a new utility file (del.rs) for better organization. - Enhanced the set command functionalities by creating a dedicated set.rs file, improving readability and maintainability. - Removed deprecated servertarget.rs and del.rs files from the commands directory. - Improved the help command structure for better readability and maintainability. - Added new utility files for permissions and server target handling to streamline command processing.
This commit is contained in:
@@ -45,7 +45,9 @@ pub async fn handle_alias(ctx: &Context, msg: &Message, args: &[&str]) {
|
||||
}
|
||||
|
||||
let command = args[0].trim_start_matches('+').to_lowercase();
|
||||
let is_known = all_command_keys().iter().any(|candidate| candidate == &command)
|
||||
let is_known = all_command_keys()
|
||||
.iter()
|
||||
.any(|candidate| candidate == &command)
|
||||
|| crate::commands::command_metadata_by_key(&command).is_some();
|
||||
if !is_known {
|
||||
let embed = serenity::builder::CreateEmbed::new()
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
use serenity::builder::CreateEmbed;
|
||||
use serenity::model::prelude::*;
|
||||
use serenity::prelude::*;
|
||||
|
||||
use crate::commands::common::send_embed;
|
||||
use crate::commands::perms_helpers::{ensure_owner, get_pool, parse_user_or_role};
|
||||
use crate::db::remove_scope_permissions;
|
||||
|
||||
pub async fn handle_del(ctx: &Context, msg: &Message, args: &[&str]) {
|
||||
if !ensure_owner(ctx, msg).await {
|
||||
return;
|
||||
}
|
||||
|
||||
if args.is_empty() {
|
||||
let embed = CreateEmbed::new()
|
||||
.title("Erreur")
|
||||
.description("Usage: `+delperm <role/membre>`")
|
||||
.color(0xED4245);
|
||||
send_embed(ctx, msg, embed).await;
|
||||
return;
|
||||
}
|
||||
|
||||
let Some((scope_type, scope_id)) = parse_user_or_role(args[0]) else {
|
||||
let embed = CreateEmbed::new()
|
||||
.title("Erreur")
|
||||
.description("Role/membre invalide.")
|
||||
.color(0xED4245);
|
||||
send_embed(ctx, msg, embed).await;
|
||||
return;
|
||||
};
|
||||
|
||||
let bot_id = ctx.cache.current_user().id;
|
||||
let Some(pool) = get_pool(ctx).await else {
|
||||
let embed = CreateEmbed::new()
|
||||
.title("Erreur")
|
||||
.description("DB indisponible.")
|
||||
.color(0xED4245);
|
||||
send_embed(ctx, msg, embed).await;
|
||||
return;
|
||||
};
|
||||
|
||||
let removed = remove_scope_permissions(&pool, bot_id, scope_type, scope_id)
|
||||
.await
|
||||
.unwrap_or(0);
|
||||
|
||||
let embed = CreateEmbed::new()
|
||||
.title("Permissions supprimees")
|
||||
.description(format!("{} entree(s) supprimee(s).", removed))
|
||||
.color(0x57F287);
|
||||
send_embed(ctx, msg, embed).await;
|
||||
}
|
||||
|
||||
+12
-38
@@ -135,28 +135,10 @@ fn help_page_for_command(
|
||||
"modlog" | "messagelog" | "voicelog" | "boostlog" | "rolelog" | "raidlog"
|
||||
| "autoconfiglog" | "nolog" | "joinsettings" | "boostembed" | "setmodlogs"
|
||||
| "setboostembed" | "leavesettings" | "viewlogs" => "logs",
|
||||
"warn"
|
||||
| "mute"
|
||||
| "tempmute"
|
||||
| "unmute"
|
||||
| "cmute"
|
||||
| "tempcmute"
|
||||
| "uncmute"
|
||||
| "mutelist"
|
||||
| "unmuteall"
|
||||
| "kick"
|
||||
| "ban"
|
||||
| "tempban"
|
||||
| "unban"
|
||||
| "banlist"
|
||||
| "unbanall"
|
||||
| "sanctions"
|
||||
| "delsanction"
|
||||
| "clearsanctions"
|
||||
| "clearallsanctions"
|
||||
| "cleanup"
|
||||
| "renew"
|
||||
| "clearmessages" => "moderation",
|
||||
"warn" | "mute" | "tempmute" | "unmute" | "cmute" | "tempcmute" | "uncmute"
|
||||
| "mutelist" | "unmuteall" | "kick" | "ban" | "tempban" | "unban" | "banlist"
|
||||
| "unbanall" | "sanctions" | "delsanction" | "clearsanctions" | "clearallsanctions"
|
||||
| "cleanup" | "renew" | "clearmessages" => "moderation",
|
||||
"addrole" | "delrole" | "derank" | "massiverole" | "unmassiverole" | "temprole"
|
||||
| "untemprole" | "sync" => "roles",
|
||||
"lock" | "unlock" | "lockall" | "unlockall" | "hide" | "unhide" | "hideall"
|
||||
@@ -164,19 +146,13 @@ fn help_page_for_command(
|
||||
"giveaway" | "end" | "reroll" | "choose" | "calc" | "emoji" | "embed" | "say"
|
||||
| "create" | "newsticker" | "button" | "autoreact" | "snipe" | "loading" | "backup"
|
||||
| "autobackup" => "outils",
|
||||
"shadowbot" | "setname" | "setpic" | "setbanner" | "setprofil" | "setperm"
|
||||
| "theme" | "playto" | "listen" | "watch" | "compet" | "stream"
|
||||
| "removeactivity" | "online" | "idle" | "dnd" | "invisible" | "change"
|
||||
| "changereset" | "changeall" => {
|
||||
"bot"
|
||||
}
|
||||
"owner" | "unowner" | "clearowners" | "bl" | "unbl" | "blinfo" | "clearbl"
|
||||
| "allbots" | "alladmins" | "botadmins" | "mainprefix" | "prefix" | "mp"
|
||||
| "mpsettings" | "mpsent" | "mpdelete" | "invite" | "leave" | "discussion" => {
|
||||
"administration"
|
||||
}
|
||||
"perms" | "delperm" | "clearperms" | "allperms" | "alias" | "help"
|
||||
| "helpsetting" => {
|
||||
"shadowbot" | "setname" | "setpic" | "setbanner" | "setprofil" | "setperm" | "theme"
|
||||
| "playto" | "listen" | "watch" | "compet" | "stream" | "removeactivity" | "online"
|
||||
| "idle" | "dnd" | "invisible" | "change" | "changereset" | "changeall" => "bot",
|
||||
"owner" | "unowner" | "clearowners" | "bl" | "unbl" | "blinfo" | "clearbl" | "allbots"
|
||||
| "alladmins" | "botadmins" | "mainprefix" | "prefix" | "mp" | "mpsettings" | "mpsent"
|
||||
| "mpdelete" | "invite" | "leave" | "discussion" => "administration",
|
||||
"perms" | "delperm" | "clearperms" | "allperms" | "alias" | "help" | "helpsetting" => {
|
||||
"permissions"
|
||||
}
|
||||
_ => match meta.category {
|
||||
@@ -410,9 +386,7 @@ fn help_lookup_to_key(input: &str) -> Option<&'static str> {
|
||||
"newsticker" => Some("newsticker"),
|
||||
"piconly" => Some("piconly"),
|
||||
"piconly add" | "piconlyadd" => Some("piconlyadd"),
|
||||
"piconly del" | "piconly remove" | "piconly delete" | "piconlydel" => {
|
||||
Some("piconlydel")
|
||||
}
|
||||
"piconly del" | "piconly remove" | "piconly delete" | "piconlydel" => Some("piconlydel"),
|
||||
"massiverole" => Some("massiverole"),
|
||||
"unmassiverole" => Some("unmassiverole"),
|
||||
"noderank" => Some("noderank"),
|
||||
|
||||
Reference in New Issue
Block a user