Files
shadowbot/src/commands/mod.rs
T
Puechberty Arthur bc623a7736 Refactor code for improved readability and consistency across various command files
- Adjusted formatting and indentation in `rename.rs`, `suggestion.rs`, `tempvoc.rs`, `ticket.rs`, `ticket_member.rs`, and `tickets.rs` for better clarity.
- Consolidated `if` statements and method calls for cleaner code in `suggestion.rs`, `tempvoc.rs`, and `ticket.rs`.
- Updated the `LOGS_PER_PAGE` constant in `viewlogs.rs` to increase the number of logs displayed per page.
- Removed unused `handle_boostembed` function from `logs_service.rs`.
- Added new modules in `mod.rs` for better organization of command files.
- Enhanced the `handle_show_pics` function in `showpics.rs` for improved member filtering.
- Updated the `handle_message` function in `message_event.rs` to streamline command handling.
2026-04-10 03:48:38 +02:00

424 lines
13 KiB
Rust

use crate::commands::command_contract::{CommandMetadata, CommandSpec};
#[path = "admin/addrole.rs"]
pub mod addrole;
pub mod admin_common;
pub mod admin_service;
pub mod advanced_tools;
#[path = "permissions/alias.rs"]
pub mod alias;
#[path = "general/alladmins.rs"]
pub mod alladmins;
#[path = "general/allbots.rs"]
pub mod allbots;
#[path = "permissions/allperms.rs"]
pub mod allperms;
#[path = "admin/autobackup.rs"]
pub mod autobackup;
#[path = "admin/autoconfiglog.rs"]
pub mod autoconfiglog;
#[path = "admin/autopublish.rs"]
pub mod autopublish;
#[path = "admin/autoreact.rs"]
pub mod autoreact;
#[path = "admin/backup.rs"]
pub mod backup;
#[path = "admin/ban.rs"]
pub mod ban;
#[path = "admin/banlist.rs"]
pub mod banlist;
#[path = "general/banner.rs"]
pub mod banner;
#[path = "admin/bl.rs"]
pub mod bl;
#[path = "admin/blinfo.rs"]
pub mod blinfo;
#[path = "admin/boostembed.rs"]
pub mod boostembed;
#[path = "general/boosters.rs"]
pub mod boosters;
#[path = "admin/boostlog.rs"]
pub mod boostlog;
#[path = "general/botadmins.rs"]
pub mod botadmins;
pub mod botconfig_common;
pub mod botconfig_service;
#[path = "admin/bringall.rs"]
pub mod bringall;
#[path = "admin/button.rs"]
pub mod button;
#[path = "general/calc.rs"]
pub mod calc;
#[path = "permissions/change.rs"]
pub mod change;
#[path = "permissions/changeall.rs"]
pub mod changeall;
#[path = "general/channel.rs"]
pub mod channel;
#[path = "general/choose.rs"]
pub mod choose;
#[path = "admin/claim.rs"]
pub mod claim;
#[path = "admin/cleanup.rs"]
pub mod cleanup;
#[path = "admin/clear_all_sanctions.rs"]
pub mod clear_all_sanctions;
#[path = "admin/clear_bl.rs"]
pub mod clear_bl;
#[path = "admin/clear_messages.rs"]
pub mod clear_messages;
#[path = "admin/clear_owners.rs"]
pub mod clear_owners;
#[path = "permissions/clear_perms.rs"]
pub mod clear_perms;
#[path = "admin/clear_sanctions.rs"]
pub mod clear_sanctions;
#[path = "admin/close.rs"]
pub mod close;
#[path = "admin/cmute.rs"]
pub mod cmute;
pub mod command_contract;
pub mod common;
#[path = "profile/compet.rs"]
pub mod compet;
#[path = "admin/create.rs"]
pub mod create;
#[path = "permissions/del.rs"]
pub mod del;
#[path = "admin/del_sanction.rs"]
pub mod del_sanction;
#[path = "admin/delrole.rs"]
pub mod delrole;
#[path = "admin/derank.rs"]
pub mod derank;
#[path = "profile/discussion.rs"]
pub mod discussion;
#[path = "profile/dnd.rs"]
pub mod dnd;
#[path = "admin/embed.rs"]
pub mod embed;
#[path = "general/emoji.rs"]
pub mod emoji;
#[path = "admin/end.rs"]
pub mod end;
#[path = "admin/giveaway.rs"]
pub mod giveaway;
#[path = "general/help.rs"]
pub mod help;
#[path = "permissions/helpsetting.rs"]
pub mod helpsetting;
#[path = "admin/hide.rs"]
pub mod hide;
#[path = "admin/hideall.rs"]
pub mod hideall;
#[path = "profile/idle.rs"]
pub mod idle;
#[path = "profile/invisible.rs"]
pub mod invisible;
#[path = "admin/invite.rs"]
pub mod invite;
#[path = "admin/join.rs"]
pub mod join;
#[path = "admin/kick.rs"]
pub mod kick;
#[path = "admin/leave.rs"]
pub mod leave;
#[path = "admin/leave_settings.rs"]
pub mod leave_settings;
#[path = "profile/listen.rs"]
pub mod listen;
#[path = "general/loading.rs"]
pub mod loading;
#[path = "admin/lock.rs"]
pub mod lock;
#[path = "admin/lockall.rs"]
pub mod lockall;
pub mod logs_service;
#[path = "permissions/mainprefix.rs"]
pub mod mainprefix;
#[path = "admin/massiverole.rs"]
pub mod massiverole;
#[path = "general/member.rs"]
pub mod member;
#[path = "admin/messagelog.rs"]
pub mod messagelog;
pub mod moderation_tools;
#[path = "admin/modlog.rs"]
pub mod modlog;
#[path = "profile/mp.rs"]
pub mod mp;
#[path = "admin/mute.rs"]
pub mod mute;
#[path = "admin/mutelist.rs"]
pub mod mutelist;
#[path = "admin/newsticker.rs"]
pub mod newsticker;
#[path = "admin/nolog.rs"]
pub mod nolog;
#[path = "profile/online.rs"]
pub mod online;
#[path = "admin/owner.rs"]
pub mod owner;
#[path = "permissions/perms.rs"]
pub mod perms;
pub mod perms_service;
#[path = "general/pic.rs"]
pub mod pic;
#[path = "general/ping.rs"]
pub mod ping;
#[path = "profile/playto.rs"]
pub mod playto;
#[path = "permissions/prefix.rs"]
pub mod prefix;
#[path = "admin/raidlog.rs"]
pub mod raidlog;
#[path = "profile/remove_activity.rs"]
pub mod remove_activity;
#[path = "admin/rename.rs"]
pub mod rename;
#[path = "admin/renew.rs"]
pub mod renew;
#[path = "admin/reroll.rs"]
pub mod reroll;
#[path = "general/role.rs"]
pub mod role;
#[path = "admin/rolelog.rs"]
pub mod rolelog;
#[path = "general/rolemembers.rs"]
pub mod rolemembers;
#[path = "admin/sanctions.rs"]
pub mod sanctions;
#[path = "admin/say.rs"]
pub mod say;
#[path = "general/server.rs"]
pub mod server;
#[path = "general/serverinfo.rs"]
pub mod serverinfo;
#[path = "profile/set.rs"]
pub mod set;
#[path = "admin/set_boostembed.rs"]
pub mod set_boostembed;
#[path = "admin/set_modlogs.rs"]
pub mod set_modlogs;
#[path = "general/shadowbot.rs"]
pub mod shadowbot;
#[path = "general/showpics.rs"]
pub mod showpics;
#[path = "general/snipe.rs"]
pub mod snipe;
#[path = "profile/stream.rs"]
pub mod stream;
#[path = "admin/suggestion.rs"]
pub mod suggestion;
#[path = "admin/sync.rs"]
pub mod sync;
#[path = "admin/tempban.rs"]
pub mod tempban;
#[path = "admin/tempcmute.rs"]
pub mod tempcmute;
#[path = "admin/tempmute.rs"]
pub mod tempmute;
#[path = "admin/temprole.rs"]
pub mod temprole;
#[path = "admin/tempvoc.rs"]
pub mod tempvoc;
#[path = "admin/tempvoc_cmd.rs"]
pub mod tempvoc_cmd;
#[path = "profile/theme.rs"]
pub mod theme;
#[path = "admin/ticket.rs"]
pub mod ticket;
#[path = "admin/ticket_member.rs"]
pub mod ticket_member;
#[path = "admin/tickets.rs"]
pub mod tickets;
#[path = "admin/unban.rs"]
pub mod unban;
#[path = "admin/unbanall.rs"]
pub mod unbanall;
#[path = "admin/unbl.rs"]
pub mod unbl;
#[path = "admin/uncmute.rs"]
pub mod uncmute;
#[path = "admin/unhide.rs"]
pub mod unhide;
#[path = "admin/unhideall.rs"]
pub mod unhideall;
#[path = "admin/unlock.rs"]
pub mod unlock;
#[path = "admin/unlockall.rs"]
pub mod unlockall;
#[path = "admin/unmassiverole.rs"]
pub mod unmassiverole;
#[path = "admin/unmute.rs"]
pub mod unmute;
#[path = "admin/unmuteall.rs"]
pub mod unmuteall;
#[path = "admin/unowner.rs"]
pub mod unowner;
#[path = "admin/untemprole.rs"]
pub mod untemprole;
#[path = "general/user.rs"]
pub mod user;
#[path = "logs/viewlogs.rs"]
pub mod viewlogs;
#[path = "general/vocinfo.rs"]
pub mod vocinfo;
#[path = "admin/voicekick.rs"]
pub mod voicekick;
#[path = "admin/voicelog.rs"]
pub mod voicelog;
#[path = "admin/voicemove.rs"]
pub mod voicemove;
#[path = "admin/warn.rs"]
pub mod warn;
#[path = "profile/watch.rs"]
pub mod watch;
pub fn all_command_metadata() -> Vec<CommandMetadata> {
vec![
ping::COMMAND_DESCRIPTOR.metadata(),
allbots::COMMAND_DESCRIPTOR.metadata(),
alladmins::COMMAND_DESCRIPTOR.metadata(),
botadmins::COMMAND_DESCRIPTOR.metadata(),
boosters::COMMAND_DESCRIPTOR.metadata(),
rolemembers::COMMAND_DESCRIPTOR.metadata(),
serverinfo::COMMAND_DESCRIPTOR.metadata(),
vocinfo::COMMAND_DESCRIPTOR.metadata(),
role::COMMAND_DESCRIPTOR.metadata(),
join::COMMAND_DESCRIPTOR.metadata(),
channel::COMMAND_DESCRIPTOR.metadata(),
user::COMMAND_DESCRIPTOR.metadata(),
member::COMMAND_DESCRIPTOR.metadata(),
pic::COMMAND_DESCRIPTOR.metadata(),
banner::COMMAND_DESCRIPTOR.metadata(),
server::COMMAND_DESCRIPTOR.metadata(),
snipe::COMMAND_DESCRIPTOR.metadata(),
emoji::COMMAND_DESCRIPTOR.metadata(),
giveaway::COMMAND_DESCRIPTOR.metadata(),
modlog::COMMAND_DESCRIPTOR.metadata(),
messagelog::COMMAND_DESCRIPTOR.metadata(),
voicelog::COMMAND_DESCRIPTOR.metadata(),
boostlog::COMMAND_DESCRIPTOR.metadata(),
rolelog::COMMAND_DESCRIPTOR.metadata(),
raidlog::COMMAND_DESCRIPTOR.metadata(),
autoconfiglog::COMMAND_DESCRIPTOR.metadata(),
boostembed::COMMAND_DESCRIPTOR.metadata(),
nolog::COMMAND_DESCRIPTOR.metadata(),
set_modlogs::COMMAND_DESCRIPTOR.metadata(),
set_boostembed::COMMAND_DESCRIPTOR.metadata(),
sanctions::COMMAND_DESCRIPTOR.metadata(),
end::COMMAND_DESCRIPTOR.metadata(),
reroll::COMMAND_DESCRIPTOR.metadata(),
choose::COMMAND_DESCRIPTOR.metadata(),
embed::COMMAND_DESCRIPTOR.metadata(),
clear_messages::COMMAND_DESCRIPTOR.metadata(),
backup::COMMAND_DESCRIPTOR.metadata(),
autobackup::COMMAND_DESCRIPTOR.metadata(),
loading::COMMAND_DESCRIPTOR.metadata(),
create::COMMAND_DESCRIPTOR.metadata(),
newsticker::COMMAND_DESCRIPTOR.metadata(),
massiverole::COMMAND_DESCRIPTOR.metadata(),
unmassiverole::COMMAND_DESCRIPTOR.metadata(),
voicemove::COMMAND_DESCRIPTOR.metadata(),
voicekick::COMMAND_DESCRIPTOR.metadata(),
cleanup::COMMAND_DESCRIPTOR.metadata(),
bringall::COMMAND_DESCRIPTOR.metadata(),
renew::COMMAND_DESCRIPTOR.metadata(),
unbanall::COMMAND_DESCRIPTOR.metadata(),
warn::COMMAND_DESCRIPTOR.metadata(),
mute::COMMAND_DESCRIPTOR.metadata(),
tempmute::COMMAND_DESCRIPTOR.metadata(),
unmute::COMMAND_DESCRIPTOR.metadata(),
cmute::COMMAND_DESCRIPTOR.metadata(),
tempcmute::COMMAND_DESCRIPTOR.metadata(),
uncmute::COMMAND_DESCRIPTOR.metadata(),
mutelist::COMMAND_DESCRIPTOR.metadata(),
unmuteall::COMMAND_DESCRIPTOR.metadata(),
kick::COMMAND_DESCRIPTOR.metadata(),
ban::COMMAND_DESCRIPTOR.metadata(),
tempban::COMMAND_DESCRIPTOR.metadata(),
unban::COMMAND_DESCRIPTOR.metadata(),
banlist::COMMAND_DESCRIPTOR.metadata(),
lock::COMMAND_DESCRIPTOR.metadata(),
unlock::COMMAND_DESCRIPTOR.metadata(),
lockall::COMMAND_DESCRIPTOR.metadata(),
unlockall::COMMAND_DESCRIPTOR.metadata(),
hide::COMMAND_DESCRIPTOR.metadata(),
unhide::COMMAND_DESCRIPTOR.metadata(),
hideall::COMMAND_DESCRIPTOR.metadata(),
unhideall::COMMAND_DESCRIPTOR.metadata(),
addrole::COMMAND_DESCRIPTOR.metadata(),
delrole::COMMAND_DESCRIPTOR.metadata(),
derank::COMMAND_DESCRIPTOR.metadata(),
del_sanction::COMMAND_DESCRIPTOR.metadata(),
clear_sanctions::COMMAND_DESCRIPTOR.metadata(),
clear_all_sanctions::COMMAND_DESCRIPTOR.metadata(),
temprole::COMMAND_DESCRIPTOR.metadata(),
untemprole::COMMAND_DESCRIPTOR.metadata(),
sync::COMMAND_DESCRIPTOR.metadata(),
button::COMMAND_DESCRIPTOR.metadata(),
autoreact::COMMAND_DESCRIPTOR.metadata(),
calc::COMMAND_DESCRIPTOR.metadata(),
shadowbot::COMMAND_DESCRIPTOR.metadata(),
set::COMMAND_DESCRIPTOR.metadata(),
theme::COMMAND_DESCRIPTOR.metadata(),
playto::COMMAND_DESCRIPTOR.metadata(),
listen::COMMAND_DESCRIPTOR.metadata(),
watch::COMMAND_DESCRIPTOR.metadata(),
compet::COMMAND_DESCRIPTOR.metadata(),
stream::COMMAND_DESCRIPTOR.metadata(),
remove_activity::COMMAND_DESCRIPTOR.metadata(),
online::COMMAND_DESCRIPTOR.metadata(),
idle::COMMAND_DESCRIPTOR.metadata(),
dnd::COMMAND_DESCRIPTOR.metadata(),
invisible::COMMAND_DESCRIPTOR.metadata(),
owner::COMMAND_DESCRIPTOR.metadata(),
unowner::COMMAND_DESCRIPTOR.metadata(),
clear_owners::COMMAND_DESCRIPTOR.metadata(),
bl::COMMAND_DESCRIPTOR.metadata(),
unbl::COMMAND_DESCRIPTOR.metadata(),
blinfo::COMMAND_DESCRIPTOR.metadata(),
clear_bl::COMMAND_DESCRIPTOR.metadata(),
say::COMMAND_DESCRIPTOR.metadata(),
change::COMMAND_DESCRIPTOR.metadata(),
changeall::COMMAND_DESCRIPTOR.metadata(),
mainprefix::COMMAND_DESCRIPTOR.metadata(),
prefix::COMMAND_DESCRIPTOR.metadata(),
perms::COMMAND_DESCRIPTOR.metadata(),
del::COMMAND_DESCRIPTOR.metadata(),
clear_perms::COMMAND_DESCRIPTOR.metadata(),
allperms::COMMAND_DESCRIPTOR.metadata(),
help::COMMAND_DESCRIPTOR.metadata(),
helpsetting::COMMAND_DESCRIPTOR.metadata(),
alias::COMMAND_DESCRIPTOR.metadata(),
mp::COMMAND_DESCRIPTOR.metadata(),
invite::COMMAND_DESCRIPTOR.metadata(),
leave::COMMAND_DESCRIPTOR.metadata(),
leave_settings::COMMAND_DESCRIPTOR.metadata(),
viewlogs::COMMAND_DESCRIPTOR.metadata(),
discussion::COMMAND_DESCRIPTOR.metadata(),
]
}
pub fn command_metadata_by_key(key: &str) -> Option<CommandMetadata> {
all_command_metadata()
.into_iter()
.find(|meta| meta.key == key)
}
pub fn resolve_default_alias(alias: &str) -> Option<&'static str> {
let normalized = alias.trim().trim_start_matches('+').to_lowercase();
all_command_metadata().into_iter().find_map(|meta| {
if meta
.default_aliases
.iter()
.any(|candidate| candidate.eq_ignore_ascii_case(&normalized))
{
Some(meta.key)
} else {
None
}
})
}