From 4d92be1ad578a1e78b9339676bed33255b3dc142 Mon Sep 17 00:00:00 2001 From: Puechberty Arthur Date: Fri, 10 Apr 2026 08:53:48 +0200 Subject: [PATCH] feat: restrict commands from being used in DMs - Added `allow_in_dm: false` to various moderation, utility, and role management commands to prevent their usage in direct messages. - Updated the message event handler to check for the `allow_in_dm` flag and respond appropriately when a DM command is attempted. --- src/commands/administration/alladmins.rs | 1 + src/commands/administration/allbots.rs | 1 + src/commands/administration/bl.rs | 1 + src/commands/administration/blinfo.rs | 1 + src/commands/administration/botadmins.rs | 1 + src/commands/administration/clear_bl.rs | 1 + src/commands/administration/clear_owners.rs | 1 + src/commands/administration/discussion.rs | 1 + src/commands/administration/invite.rs | 1 + src/commands/administration/leave.rs | 1 + src/commands/administration/mainprefix.rs | 1 + src/commands/administration/mp.rs | 1 + src/commands/administration/owner.rs | 1 + src/commands/administration/prefix.rs | 1 + src/commands/administration/unbl.rs | 1 + src/commands/administration/unowner.rs | 1 + src/commands/bot/change.rs | 1 + src/commands/bot/changeall.rs | 1 + src/commands/bot/compet.rs | 1 + src/commands/bot/dnd.rs | 1 + src/commands/bot/idle.rs | 1 + src/commands/bot/invisible.rs | 1 + src/commands/bot/listen.rs | 1 + src/commands/bot/online.rs | 1 + src/commands/bot/playto.rs | 1 + src/commands/bot/remove_activity.rs | 1 + src/commands/bot/set.rs | 1 + src/commands/bot/shadowbot.rs | 1 + src/commands/bot/stream.rs | 1 + src/commands/bot/theme.rs | 1 + src/commands/bot/watch.rs | 1 + src/commands/command_contract.rs | 1 + src/commands/infos/banner.rs | 1 + src/commands/infos/boosters.rs | 1 + src/commands/infos/channel.rs | 1 + src/commands/infos/member.rs | 1 + src/commands/infos/pic.rs | 1 + src/commands/infos/ping.rs | 1 + src/commands/infos/role.rs | 1 + src/commands/infos/rolemembers.rs | 1 + src/commands/infos/server.rs | 1 + src/commands/infos/serverinfo.rs | 1 + src/commands/infos/showpics.rs | 1 + src/commands/infos/user.rs | 1 + src/commands/infos/vocinfo.rs | 1 + src/commands/logs/autoconfiglog.rs | 1 + src/commands/logs/boostembed.rs | 1 + src/commands/logs/boostlog.rs | 1 + src/commands/logs/join.rs | 1 + src/commands/logs/leave_settings.rs | 1 + src/commands/logs/messagelog.rs | 1 + src/commands/logs/modlog.rs | 1 + src/commands/logs/nolog.rs | 1 + src/commands/logs/raidlog.rs | 1 + src/commands/logs/rolelog.rs | 1 + src/commands/logs/set_boostembed.rs | 1 + src/commands/logs/set_modlogs.rs | 1 + src/commands/logs/viewlogs.rs | 1 + src/commands/logs/voicelog.rs | 1 + src/commands/moderation/ban.rs | 1 + src/commands/moderation/banlist.rs | 1 + src/commands/moderation/cleanup.rs | 1 + .../moderation/clear_all_sanctions.rs | 1 + src/commands/moderation/clear_messages.rs | 1 + src/commands/moderation/clear_sanctions.rs | 1 + src/commands/moderation/cmute.rs | 1 + src/commands/moderation/del_sanction.rs | 1 + src/commands/moderation/kick.rs | 1 + src/commands/moderation/mute.rs | 1 + src/commands/moderation/mutelist.rs | 1 + src/commands/moderation/renew.rs | 1 + src/commands/moderation/sanctions.rs | 1 + src/commands/moderation/tempban.rs | 1 + src/commands/moderation/tempcmute.rs | 1 + src/commands/moderation/tempmute.rs | 1 + src/commands/moderation/unban.rs | 1 + src/commands/moderation/unbanall.rs | 1 + src/commands/moderation/uncmute.rs | 1 + src/commands/moderation/unmute.rs | 1 + src/commands/moderation/unmuteall.rs | 1 + src/commands/moderation/warn.rs | 1 + src/commands/outils/autobackup.rs | 1 + src/commands/outils/autopublish.rs | 1 + src/commands/outils/autoreact.rs | 1 + src/commands/outils/backup.rs | 1 + src/commands/outils/button.rs | 1 + src/commands/outils/calc.rs | 1 + src/commands/outils/choose.rs | 1 + src/commands/outils/claim.rs | 1 + src/commands/outils/close.rs | 1 + src/commands/outils/create.rs | 1 + src/commands/outils/embed.rs | 1 + src/commands/outils/emoji.rs | 1 + src/commands/outils/end.rs | 1 + src/commands/outils/giveaway.rs | 1 + src/commands/outils/loading.rs | 1 + src/commands/outils/newsticker.rs | 1 + src/commands/outils/rename.rs | 1 + src/commands/outils/reroll.rs | 1 + src/commands/outils/say.rs | 1 + src/commands/outils/snipe.rs | 1 + src/commands/outils/suggestion.rs | 1 + src/commands/outils/ticket.rs | 1 + src/commands/outils/ticket_member.rs | 1 + src/commands/outils/tickets.rs | 1 + src/commands/permissions/alias.rs | 1 + src/commands/permissions/allperms.rs | 1 + src/commands/permissions/clear_perms.rs | 1 + src/commands/permissions/del.rs | 1 + src/commands/permissions/help.rs | 8 ++++ src/commands/permissions/helpalias.rs | 1 + src/commands/permissions/helpsetting.rs | 1 + src/commands/permissions/helptype.rs | 1 + src/commands/permissions/perms.rs | 1 + src/commands/roles/addrole.rs | 1 + src/commands/roles/delrole.rs | 1 + src/commands/roles/derank.rs | 1 + src/commands/roles/massiverole.rs | 1 + src/commands/roles/rolemenu.rs | 1 + src/commands/roles/sync.rs | 1 + src/commands/roles/temprole.rs | 1 + src/commands/roles/unmassiverole.rs | 1 + src/commands/roles/untemprole.rs | 1 + src/commands/salons_vocal/bringall.rs | 1 + src/commands/salons_vocal/hide.rs | 1 + src/commands/salons_vocal/hideall.rs | 1 + src/commands/salons_vocal/lock.rs | 1 + src/commands/salons_vocal/lockall.rs | 1 + src/commands/salons_vocal/slowmode.rs | 1 + src/commands/salons_vocal/tempvoc.rs | 1 + src/commands/salons_vocal/tempvoc_cmd.rs | 1 + src/commands/salons_vocal/unhide.rs | 1 + src/commands/salons_vocal/unhideall.rs | 1 + src/commands/salons_vocal/unlock.rs | 1 + src/commands/salons_vocal/unlockall.rs | 1 + src/commands/salons_vocal/voicekick.rs | 1 + src/commands/salons_vocal/voicemove.rs | 1 + src/events/message_event.rs | 37 +++++++++++++++++++ 138 files changed, 181 insertions(+) diff --git a/src/commands/administration/alladmins.rs b/src/commands/administration/alladmins.rs index b74d211..b3c8924 100644 --- a/src/commands/administration/alladmins.rs +++ b/src/commands/administration/alladmins.rs @@ -143,6 +143,7 @@ impl crate::commands::command_contract::CommandSpec for AlladminsCommand { description: "Affiche les membres qui possedent des droits administrateur sur le serveur.", examples: &["+alladmins", "+as", "+help alladmins"], default_aliases: &["aad"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/administration/allbots.rs b/src/commands/administration/allbots.rs index 56c31fe..755ad9f 100644 --- a/src/commands/administration/allbots.rs +++ b/src/commands/administration/allbots.rs @@ -126,6 +126,7 @@ impl crate::commands::command_contract::CommandSpec for AllbotsCommand { description: "Affiche la liste des membres bots presents sur le serveur courant.", examples: &["+allbots", "+as", "+help allbots"], default_aliases: &["abt"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/administration/bl.rs b/src/commands/administration/bl.rs index 8eea4ab..ddb66b5 100644 --- a/src/commands/administration/bl.rs +++ b/src/commands/administration/bl.rs @@ -85,6 +85,7 @@ impl crate::commands::command_contract::CommandSpec for BlCommand { description: "Affiche la blacklist ou ajoute un utilisateur a la blacklist globale du bot.", examples: &["+bl", "+help bl"], default_aliases: &["bls"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/blinfo.rs b/src/commands/administration/blinfo.rs index 9080bc7..d8f7ab0 100644 --- a/src/commands/administration/blinfo.rs +++ b/src/commands/administration/blinfo.rs @@ -90,6 +90,7 @@ impl crate::commands::command_contract::CommandSpec for BlinfoCommand { description: "Affiche les details de blacklist pour un utilisateur donne.", examples: &["+blinfo", "+bo", "+help blinfo"], default_aliases: &["bli"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/botadmins.rs b/src/commands/administration/botadmins.rs index 6547a9e..bf53f81 100644 --- a/src/commands/administration/botadmins.rs +++ b/src/commands/administration/botadmins.rs @@ -142,6 +142,7 @@ impl crate::commands::command_contract::CommandSpec for BotadminsCommand { description: "Affiche les utilisateurs ayant des droits admin sur le bot.", examples: &["+botadmins", "+bs", "+help botadmins"], default_aliases: &["bad"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/administration/clear_bl.rs b/src/commands/administration/clear_bl.rs index 00090c7..1559f1b 100644 --- a/src/commands/administration/clear_bl.rs +++ b/src/commands/administration/clear_bl.rs @@ -46,6 +46,7 @@ impl crate::commands::command_contract::CommandSpec for ClearBlCommand { description: "Supprime toutes les entrees de la blacklist globale.", examples: &["+clear bl", "+cl", "+help clear bl"], default_aliases: &["cbl"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/clear_owners.rs b/src/commands/administration/clear_owners.rs index 39f319d..e1a9630 100644 --- a/src/commands/administration/clear_owners.rs +++ b/src/commands/administration/clear_owners.rs @@ -46,6 +46,7 @@ impl crate::commands::command_contract::CommandSpec for ClearOwnersCommand { description: "Supprime tous les owners supplementaires en base de donnees.", examples: &["+clear owners", "+cs", "+help clear owners"], default_aliases: &["cro"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/discussion.rs b/src/commands/administration/discussion.rs index 3acb07d..0075990 100644 --- a/src/commands/administration/discussion.rs +++ b/src/commands/administration/discussion.rs @@ -70,6 +70,7 @@ impl crate::commands::command_contract::CommandSpec for DiscussionCommand { description: "Envoie un message de discussion sur un serveur cible.", examples: &["+discussion", "+dn", "+help discussion"], default_aliases: &["dsc"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/administration/invite.rs b/src/commands/administration/invite.rs index 50fc289..3ed3fc8 100644 --- a/src/commands/administration/invite.rs +++ b/src/commands/administration/invite.rs @@ -77,6 +77,7 @@ impl crate::commands::command_contract::CommandSpec for InviteCommand { description: "Cree une invitation temporaire sur un serveur cible accessible par le bot.", examples: &["+invite", "+ie", "+help invite"], default_aliases: &["ivt"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/administration/leave.rs b/src/commands/administration/leave.rs index 14c5d68..05339f8 100644 --- a/src/commands/administration/leave.rs +++ b/src/commands/administration/leave.rs @@ -41,6 +41,7 @@ impl crate::commands::command_contract::CommandSpec for LeaveCommand { description: "Force le bot a quitter un serveur cible ou le serveur courant.", examples: &["+leave", "+le", "+help leave"], default_aliases: &["lvg"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/mainprefix.rs b/src/commands/administration/mainprefix.rs index 116af7a..19d3ebe 100644 --- a/src/commands/administration/mainprefix.rs +++ b/src/commands/administration/mainprefix.rs @@ -55,6 +55,7 @@ impl crate::commands::command_contract::CommandSpec for MainprefixCommand { description: "Definit le prefixe principal utilise par le bot sur tous les serveurs.", examples: &["+mainprefix", "+mx", "+help mainprefix"], default_aliases: &["mpx"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/mp.rs b/src/commands/administration/mp.rs index 999ea61..a0897f3 100644 --- a/src/commands/administration/mp.rs +++ b/src/commands/administration/mp.rs @@ -467,6 +467,7 @@ impl crate::commands::command_contract::CommandSpec for MpCommand { description: "Permet de configurer, envoyer, lister et supprimer des messages prives envoyes.", examples: &["+mp", "+help mp"], default_aliases: &["dmsg"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/administration/owner.rs b/src/commands/administration/owner.rs index 7af75fc..0de360d 100644 --- a/src/commands/administration/owner.rs +++ b/src/commands/administration/owner.rs @@ -52,6 +52,7 @@ impl crate::commands::command_contract::CommandSpec for OwnerCommand { description: "Affiche l owner application et les owners ajoutes en base.", examples: &["+owner", "+or", "+help owner"], default_aliases: &["own"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/prefix.rs b/src/commands/administration/prefix.rs index e1640a7..cd8e5ac 100644 --- a/src/commands/administration/prefix.rs +++ b/src/commands/administration/prefix.rs @@ -64,6 +64,7 @@ impl crate::commands::command_contract::CommandSpec for PrefixCommand { description: "Definit le prefixe du serveur courant.", examples: &["+prefix", "+px", "+help prefix"], default_aliases: &["pfx"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/administration/unbl.rs b/src/commands/administration/unbl.rs index 7be3669..b8404d2 100644 --- a/src/commands/administration/unbl.rs +++ b/src/commands/administration/unbl.rs @@ -72,6 +72,7 @@ impl crate::commands::command_contract::CommandSpec for UnblCommand { description: "Retire un utilisateur de la blacklist globale du bot.", examples: &["+unbl", "+ul", "+help unbl"], default_aliases: &["unb"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/administration/unowner.rs b/src/commands/administration/unowner.rs index c30e979..5313442 100644 --- a/src/commands/administration/unowner.rs +++ b/src/commands/administration/unowner.rs @@ -81,6 +81,7 @@ impl crate::commands::command_contract::CommandSpec for UnownerCommand { description: "Retire un utilisateur de la liste des owners supplementaires du bot.", examples: &["+unowner", "+ur", "+help unowner"], default_aliases: &["uow"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/bot/change.rs b/src/commands/bot/change.rs index d428f95..946c5b9 100644 --- a/src/commands/bot/change.rs +++ b/src/commands/bot/change.rs @@ -84,6 +84,7 @@ impl crate::commands::command_contract::CommandSpec for ChangeCommand { description: "Definit le niveau ACL requis pour une commande ou reinitialise les overrides.", examples: &["+change", "+ce", "+help change"], default_aliases: &["chg"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/bot/changeall.rs b/src/commands/bot/changeall.rs index 0ae118e..57251b0 100644 --- a/src/commands/bot/changeall.rs +++ b/src/commands/bot/changeall.rs @@ -87,6 +87,7 @@ impl crate::commands::command_contract::CommandSpec for ChangeallCommand { description: "Remplace en masse un niveau ACL source par un niveau ACL cible.", examples: &["+changeall", "+cl", "+help changeall"], default_aliases: &["cga"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/bot/compet.rs b/src/commands/bot/compet.rs index c88e0a7..9c13132 100644 --- a/src/commands/bot/compet.rs +++ b/src/commands/bot/compet.rs @@ -94,6 +94,7 @@ impl crate::commands::command_contract::CommandSpec for CompetCommand { description: "Configure la rotation des messages d activite en mode competing.", examples: &["+compet", "+ct", "+help compet"], default_aliases: &["cpt"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/dnd.rs b/src/commands/bot/dnd.rs index 1e11ffe..ff3cfe3 100644 --- a/src/commands/bot/dnd.rs +++ b/src/commands/bot/dnd.rs @@ -38,6 +38,7 @@ impl crate::commands::command_contract::CommandSpec for DndCommand { description: "Change le statut du bot en do not disturb et sauvegarde ce statut.", examples: &["+dnd", "+dd", "+help dnd"], default_aliases: &["dnm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/idle.rs b/src/commands/bot/idle.rs index 00abaef..6241af8 100644 --- a/src/commands/bot/idle.rs +++ b/src/commands/bot/idle.rs @@ -38,6 +38,7 @@ impl crate::commands::command_contract::CommandSpec for IdleCommand { description: "Change le statut du bot en idle et sauvegarde ce statut.", examples: &["+idle", "+ie", "+help idle"], default_aliases: &["idl"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/invisible.rs b/src/commands/bot/invisible.rs index f676841..1ff9a05 100644 --- a/src/commands/bot/invisible.rs +++ b/src/commands/bot/invisible.rs @@ -38,6 +38,7 @@ impl crate::commands::command_contract::CommandSpec for InvisibleCommand { description: "Change le statut du bot en invisible et sauvegarde ce statut.", examples: &["+invisible", "+ie", "+help invisible"], default_aliases: &["ivs"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/listen.rs b/src/commands/bot/listen.rs index 75a9bb9..1321c5d 100644 --- a/src/commands/bot/listen.rs +++ b/src/commands/bot/listen.rs @@ -94,6 +94,7 @@ impl crate::commands::command_contract::CommandSpec for ListenCommand { description: "Configure la rotation des messages d activite en mode listening.", examples: &["+listen", "+ln", "+help listen"], default_aliases: &["lsn"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/online.rs b/src/commands/bot/online.rs index f32ae16..75dd66d 100644 --- a/src/commands/bot/online.rs +++ b/src/commands/bot/online.rs @@ -38,6 +38,7 @@ impl crate::commands::command_contract::CommandSpec for OnlineCommand { description: "Change le statut du bot en online et sauvegarde ce statut.", examples: &["+online", "+oe", "+help online"], default_aliases: &["onl"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/playto.rs b/src/commands/bot/playto.rs index ac2b92e..717c1e8 100644 --- a/src/commands/bot/playto.rs +++ b/src/commands/bot/playto.rs @@ -94,6 +94,7 @@ impl crate::commands::command_contract::CommandSpec for PlaytoCommand { description: "Configure la rotation des messages d activite en mode playing.", examples: &["+playto", "+po", "+help playto"], default_aliases: &["ply"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/remove_activity.rs b/src/commands/bot/remove_activity.rs index 5187cef..f716f07 100644 --- a/src/commands/bot/remove_activity.rs +++ b/src/commands/bot/remove_activity.rs @@ -41,6 +41,7 @@ impl crate::commands::command_contract::CommandSpec for RemoveActivityCommand { description: "Arrete la rotation d activite et retire lactivite courante du bot.", examples: &["+remove activity", "+ry", "+help remove activity"], default_aliases: &["rma"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/set.rs b/src/commands/bot/set.rs index 5de93bc..2368a0b 100644 --- a/src/commands/bot/set.rs +++ b/src/commands/bot/set.rs @@ -328,6 +328,7 @@ impl crate::commands::command_contract::CommandSpec for SetCommand { description: "Modifie le nom, lavatar, la banniere ou des options avancees via les sous commandes.", examples: &["+set", "+st", "+help set"], default_aliases: &["cfg"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/shadowbot.rs b/src/commands/bot/shadowbot.rs index 00b7aba..f79a7d4 100644 --- a/src/commands/bot/shadowbot.rs +++ b/src/commands/bot/shadowbot.rs @@ -29,6 +29,7 @@ impl crate::commands::command_contract::CommandSpec for ShadowbotCommand { description: "Affiche les informations globales et letat du bot.", examples: &["+shadowbot", "+st", "+help shadowbot"], default_aliases: &["sbt"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/bot/stream.rs b/src/commands/bot/stream.rs index a66ff9e..3fe692c 100644 --- a/src/commands/bot/stream.rs +++ b/src/commands/bot/stream.rs @@ -94,6 +94,7 @@ impl crate::commands::command_contract::CommandSpec for StreamCommand { description: "Configure la rotation des messages d activite en mode streaming.", examples: &["+stream", "+sm", "+help stream"], default_aliases: &["stm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/theme.rs b/src/commands/bot/theme.rs index aed61ca..fda1ed0 100644 --- a/src/commands/bot/theme.rs +++ b/src/commands/bot/theme.rs @@ -57,6 +57,7 @@ impl crate::commands::command_contract::CommandSpec for ThemeCommand { description: "Met a jour la couleur principale des embeds du bot.", examples: &["+theme", "+te", "+help theme"], default_aliases: &["thm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/bot/watch.rs b/src/commands/bot/watch.rs index 5355fbc..766ab0d 100644 --- a/src/commands/bot/watch.rs +++ b/src/commands/bot/watch.rs @@ -94,6 +94,7 @@ impl crate::commands::command_contract::CommandSpec for WatchCommand { description: "Configure la rotation des messages d activite en mode watching.", examples: &["+watch", "+wh", "+help watch"], default_aliases: &["wtc"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/command_contract.rs b/src/commands/command_contract.rs index 422ce02..e74b345 100644 --- a/src/commands/command_contract.rs +++ b/src/commands/command_contract.rs @@ -2,6 +2,7 @@ pub struct CommandMetadata { pub name: &'static str, pub category: &'static str, + pub allow_in_dm: bool, pub default_permission: u8, pub params: &'static str, pub summary: &'static str, diff --git a/src/commands/infos/banner.rs b/src/commands/infos/banner.rs index 6480cdb..b82ec6f 100644 --- a/src/commands/infos/banner.rs +++ b/src/commands/infos/banner.rs @@ -71,6 +71,7 @@ impl crate::commands::command_contract::CommandSpec for BannerCommand { description: "Affiche la banniere de profil dun utilisateur cible ou de lauteur.", examples: &["+banner", "+br", "+help banner"], default_aliases: &["bnr"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/infos/boosters.rs b/src/commands/infos/boosters.rs index f853585..e4faad5 100644 --- a/src/commands/infos/boosters.rs +++ b/src/commands/infos/boosters.rs @@ -138,6 +138,7 @@ impl crate::commands::command_contract::CommandSpec for BoostersCommand { description: "Affiche les membres qui boostent actuellement le serveur.", examples: &["+boosters", "+bs", "+help boosters"], default_aliases: &["bst"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/channel.rs b/src/commands/infos/channel.rs index 352b0fb..51ceee9 100644 --- a/src/commands/infos/channel.rs +++ b/src/commands/infos/channel.rs @@ -105,6 +105,7 @@ impl crate::commands::command_contract::CommandSpec for ChannelCommand { description: "Affiche les informations utiles dun salon texte ou vocal cible.", examples: &["+channel", "+cl", "+help channel"], default_aliases: &["chl"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/member.rs b/src/commands/infos/member.rs index c96733b..051318f 100644 --- a/src/commands/infos/member.rs +++ b/src/commands/infos/member.rs @@ -84,6 +84,7 @@ impl crate::commands::command_contract::CommandSpec for MemberCommand { description: "Affiche les informations dun membre dans le serveur courant.", examples: &["+member", "+mr", "+help member"], default_aliases: &["mbr"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/pic.rs b/src/commands/infos/pic.rs index 0bf6342..8364c7f 100644 --- a/src/commands/infos/pic.rs +++ b/src/commands/infos/pic.rs @@ -71,6 +71,7 @@ impl crate::commands::command_contract::CommandSpec for PicCommand { description: "Affiche la photo de profil dun utilisateur cible ou de lauteur.", examples: &["+pic", "+pc", "+help pic"], default_aliases: &["pfp"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/infos/ping.rs b/src/commands/infos/ping.rs index d8d3fd9..b3efda5 100644 --- a/src/commands/infos/ping.rs +++ b/src/commands/infos/ping.rs @@ -57,6 +57,7 @@ impl crate::commands::command_contract::CommandSpec for PingCommand { description: "Affiche le temps de reponse du bot et met a jour un embed avec la latence calculee.", examples: &["+ping", "+pg", "+help ping"], default_aliases: &["pg"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/infos/role.rs b/src/commands/infos/role.rs index 8a15c18..7c88772 100644 --- a/src/commands/infos/role.rs +++ b/src/commands/infos/role.rs @@ -99,6 +99,7 @@ impl crate::commands::command_contract::CommandSpec for RoleCommand { description: "Affiche les informations utiles dun role cible.", examples: &["+role", "+re", "+help role"], default_aliases: &["rol"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/rolemembers.rs b/src/commands/infos/rolemembers.rs index 3410286..3beb9df 100644 --- a/src/commands/infos/rolemembers.rs +++ b/src/commands/infos/rolemembers.rs @@ -93,6 +93,7 @@ impl crate::commands::command_contract::CommandSpec for RolemembersCommand { description: "Affiche les membres associes a un role donne.", examples: &["+rolemembers", "+rs", "+help rolemembers"], default_aliases: &["rmb"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/server.rs b/src/commands/infos/server.rs index 3ab5f54..03e6783 100644 --- a/src/commands/infos/server.rs +++ b/src/commands/infos/server.rs @@ -164,6 +164,7 @@ impl crate::commands::command_contract::CommandSpec for ServerCommand { description: "Affiche licone ou la banniere du serveur, ou liste les serveurs du bot selon la sous commande.", examples: &["+server", "+sr", "+help server"], default_aliases: &["srv"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/serverinfo.rs b/src/commands/infos/serverinfo.rs index fa8cc74..ea5c87b 100644 --- a/src/commands/infos/serverinfo.rs +++ b/src/commands/infos/serverinfo.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for ServerinfoCommand { description: "Affiche les informations principales dun serveur comme nom, id et statistiques.", examples: &["+serverinfo", "+so", "+help serverinfo"], default_aliases: &["svi"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/showpics.rs b/src/commands/infos/showpics.rs index 3d6c3be..5b2af14 100644 --- a/src/commands/infos/showpics.rs +++ b/src/commands/infos/showpics.rs @@ -68,6 +68,7 @@ impl crate::commands::command_contract::CommandSpec for ShowpicsCommand { description: "Affiche jusqua 5 avatars de membres du serveur.", examples: &["+show pics", "+help showpics"], default_aliases: &[], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/infos/user.rs b/src/commands/infos/user.rs index 367cae9..0fc7936 100644 --- a/src/commands/infos/user.rs +++ b/src/commands/infos/user.rs @@ -71,6 +71,7 @@ impl crate::commands::command_contract::CommandSpec for UserCommand { description: "Affiche les informations principales dun utilisateur cible.", examples: &["+user", "+ur", "+help user"], default_aliases: &["usr"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/infos/vocinfo.rs b/src/commands/infos/vocinfo.rs index 137a13b..be2b4d1 100644 --- a/src/commands/infos/vocinfo.rs +++ b/src/commands/infos/vocinfo.rs @@ -75,6 +75,7 @@ impl crate::commands::command_contract::CommandSpec for VocinfoCommand { description: "Affiche les informations dun salon vocal cible ou du salon vocal courant.", examples: &["+vocinfo", "+vo", "+help vocinfo"], default_aliases: &["vci"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/logs/autoconfiglog.rs b/src/commands/logs/autoconfiglog.rs index f9c56e6..02c044e 100644 --- a/src/commands/logs/autoconfiglog.rs +++ b/src/commands/logs/autoconfiglog.rs @@ -60,6 +60,7 @@ impl crate::commands::command_contract::CommandSpec for AutoconfiglogCommand { description: "Cree automatiquement les salons de logs et les configure.", examples: &["+autoconfiglog"], default_aliases: &["acl"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/boostembed.rs b/src/commands/logs/boostembed.rs index 094e5ca..7005170 100644 --- a/src/commands/logs/boostembed.rs +++ b/src/commands/logs/boostembed.rs @@ -684,6 +684,7 @@ impl crate::commands::command_contract::CommandSpec for BoostembedCommand { description: "Ouvre un panneau avec composants pour paramétrer l'embed boost et le salon où il est envoyé.", examples: &["+boostembed", "+boostembed settings", "+boostembed test"], default_aliases: &["bembed"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/boostlog.rs b/src/commands/logs/boostlog.rs index 78e0c98..e4950c3 100644 --- a/src/commands/logs/boostlog.rs +++ b/src/commands/logs/boostlog.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for BoostlogCommand { description: "Active ou desactive les logs de boosts.", examples: &["+boostlog on #logs", "+boostlog off"], default_aliases: &["blog"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/join.rs b/src/commands/logs/join.rs index c53efd9..fa756ca 100644 --- a/src/commands/logs/join.rs +++ b/src/commands/logs/join.rs @@ -135,6 +135,7 @@ impl crate::commands::command_contract::CommandSpec for JoinCommand { "+join settings on #welcome Bienvenue {user}", ], default_aliases: &["jset"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/leave_settings.rs b/src/commands/logs/leave_settings.rs index 1597f96..aa56372 100644 --- a/src/commands/logs/leave_settings.rs +++ b/src/commands/logs/leave_settings.rs @@ -136,6 +136,7 @@ impl crate::commands::command_contract::CommandSpec for LeaveSettingsCommand { "+leave settings on #logs {user} a quitte", ], default_aliases: &["lset"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/messagelog.rs b/src/commands/logs/messagelog.rs index 2972309..2302a07 100644 --- a/src/commands/logs/messagelog.rs +++ b/src/commands/logs/messagelog.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for MessagelogCommand { description: "Active ou desactive les logs des messages supprimes et edites.", examples: &["+messagelog on #logs", "+messagelog off"], default_aliases: &["msglog"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/modlog.rs b/src/commands/logs/modlog.rs index 262eaec..168a9cd 100644 --- a/src/commands/logs/modlog.rs +++ b/src/commands/logs/modlog.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for ModlogCommand { description: "Active ou desactive les logs de moderation dans un salon cible.", examples: &["+modlog on #logs", "+modlog off"], default_aliases: &["mlog"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/nolog.rs b/src/commands/logs/nolog.rs index 2b5af0b..f7c1379 100644 --- a/src/commands/logs/nolog.rs +++ b/src/commands/logs/nolog.rs @@ -116,6 +116,7 @@ impl crate::commands::command_contract::CommandSpec for NologCommand { description: "Desactive ou reactive les logs message/voice pour certains salons.", examples: &["+nolog add #secret all", "+nolog del #secret message"], default_aliases: &["nlg"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/raidlog.rs b/src/commands/logs/raidlog.rs index 9f90467..2c5207d 100644 --- a/src/commands/logs/raidlog.rs +++ b/src/commands/logs/raidlog.rs @@ -59,6 +59,7 @@ impl crate::commands::command_contract::CommandSpec for RaidlogCommand { description: "Active les logs antiraid dans un salon ou les desactive.", examples: &["+raidlog #logs", "+raidlog off"], default_aliases: &["rdlog"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/rolelog.rs b/src/commands/logs/rolelog.rs index 6dfcafd..15a6e56 100644 --- a/src/commands/logs/rolelog.rs +++ b/src/commands/logs/rolelog.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for RolelogCommand { description: "Active ou desactive les logs des roles.", examples: &["+rolelog on #logs", "+rolelog off"], default_aliases: &["rlog"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/set_boostembed.rs b/src/commands/logs/set_boostembed.rs index 5cb316a..2ee69b3 100644 --- a/src/commands/logs/set_boostembed.rs +++ b/src/commands/logs/set_boostembed.rs @@ -109,6 +109,7 @@ impl crate::commands::command_contract::CommandSpec for SetBoostembedCommand { "+set boostembed color #FF66CC", ], default_aliases: &["sboostembed"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/set_modlogs.rs b/src/commands/logs/set_modlogs.rs index 15899fa..4219c20 100644 --- a/src/commands/logs/set_modlogs.rs +++ b/src/commands/logs/set_modlogs.rs @@ -119,6 +119,7 @@ impl crate::commands::command_contract::CommandSpec for SetModlogsCommand { description: "Affiche ou modifie les evenements qui apparaissent dans les logs de moderation.", examples: &["+set modlogs", "+set modlogs warn off"], default_aliases: &["smodlog"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/logs/viewlogs.rs b/src/commands/logs/viewlogs.rs index 6a6400a..5889979 100644 --- a/src/commands/logs/viewlogs.rs +++ b/src/commands/logs/viewlogs.rs @@ -257,6 +257,7 @@ impl crate::commands::command_contract::CommandSpec for ViewLogsCommand { description: "Affiche les derniers logs d'audit du serveur avec pagination. Les logs incluent tous les événements (modération, messages, rôles, salons, etc.)", examples: &["+viewlogs", "+viewlogs 2"], default_aliases: &["vlogs", "audit"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/logs/voicelog.rs b/src/commands/logs/voicelog.rs index ae56c7c..9c3ca17 100644 --- a/src/commands/logs/voicelog.rs +++ b/src/commands/logs/voicelog.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for VoicelogCommand { description: "Active ou desactive les logs de l activite vocale.", examples: &["+voicelog on #logs", "+voicelog off"], default_aliases: &["vlog"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/ban.rs b/src/commands/moderation/ban.rs index ac60ece..6fa7604 100644 --- a/src/commands/moderation/ban.rs +++ b/src/commands/moderation/ban.rs @@ -68,6 +68,7 @@ impl crate::commands::command_contract::CommandSpec for BanCommand { description: "Ban un ou plusieurs membres.", examples: &["+ban @User"], default_aliases: &["b"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/banlist.rs b/src/commands/moderation/banlist.rs index 1743533..24e2d51 100644 --- a/src/commands/moderation/banlist.rs +++ b/src/commands/moderation/banlist.rs @@ -44,6 +44,7 @@ impl crate::commands::command_contract::CommandSpec for BanlistCommand { description: "Affiche la liste des bannissements en cours.", examples: &["+banlist"], default_aliases: &["bls"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/cleanup.rs b/src/commands/moderation/cleanup.rs index 3be114c..7438747 100644 --- a/src/commands/moderation/cleanup.rs +++ b/src/commands/moderation/cleanup.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for CleanupCommand { description: "Deconnecte tous les utilisateurs presents dans un salon vocal cible.", examples: &["+cleanup #General"], default_aliases: &["vclean", "vcleanup"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/clear_all_sanctions.rs b/src/commands/moderation/clear_all_sanctions.rs index ab411ed..90aa6de 100644 --- a/src/commands/moderation/clear_all_sanctions.rs +++ b/src/commands/moderation/clear_all_sanctions.rs @@ -60,6 +60,7 @@ impl crate::commands::command_contract::CommandSpec for ClearAllSanctionsCommand description: "Efface toutes les sanctions de tous les membres du serveur.", examples: &["+clear all sanctions"], default_aliases: &["casanctions"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/clear_messages.rs b/src/commands/moderation/clear_messages.rs index 44c4588..bde27b8 100644 --- a/src/commands/moderation/clear_messages.rs +++ b/src/commands/moderation/clear_messages.rs @@ -61,6 +61,7 @@ impl crate::commands::command_contract::CommandSpec for ClearMessagesCommand { description: "Supprime un nombre de messages, optionnellement filtres par membre.", examples: &["+clear 20", "+clear 20 @User"], default_aliases: &["purge"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/clear_sanctions.rs b/src/commands/moderation/clear_sanctions.rs index 739286c..230c614 100644 --- a/src/commands/moderation/clear_sanctions.rs +++ b/src/commands/moderation/clear_sanctions.rs @@ -70,6 +70,7 @@ impl crate::commands::command_contract::CommandSpec for ClearSanctionsCommand { description: "Efface completement les sanctions d un membre cible.", examples: &["+clear sanctions @User"], default_aliases: &["csanctions"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/cmute.rs b/src/commands/moderation/cmute.rs index 05ad6b7..8f6e404 100644 --- a/src/commands/moderation/cmute.rs +++ b/src/commands/moderation/cmute.rs @@ -64,6 +64,7 @@ impl crate::commands::command_contract::CommandSpec for CmuteCommand { description: "Mute un membre sur le salon courant.", examples: &["+cmute @User"], default_aliases: &["cm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/del_sanction.rs b/src/commands/moderation/del_sanction.rs index 89dde74..8ff5469 100644 --- a/src/commands/moderation/del_sanction.rs +++ b/src/commands/moderation/del_sanction.rs @@ -92,6 +92,7 @@ impl crate::commands::command_contract::CommandSpec for DelSanctionCommand { description: "Supprime une sanction specifique dans l historique d un membre.", examples: &["+del sanction @User 1"], default_aliases: &["delsanction"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/kick.rs b/src/commands/moderation/kick.rs index 2e501e4..ebf8a50 100644 --- a/src/commands/moderation/kick.rs +++ b/src/commands/moderation/kick.rs @@ -68,6 +68,7 @@ impl crate::commands::command_contract::CommandSpec for KickCommand { description: "Kick un ou plusieurs membres.", examples: &["+kick @User"], default_aliases: &["k"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/mute.rs b/src/commands/moderation/mute.rs index fe0baf1..9a167fb 100644 --- a/src/commands/moderation/mute.rs +++ b/src/commands/moderation/mute.rs @@ -64,6 +64,7 @@ impl crate::commands::command_contract::CommandSpec for MuteCommand { description: "Applique un mute a un ou plusieurs membres.", examples: &["+mute @User abus"], default_aliases: &["tmute"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/mutelist.rs b/src/commands/moderation/mutelist.rs index ccaeadf..d5e47a3 100644 --- a/src/commands/moderation/mutelist.rs +++ b/src/commands/moderation/mutelist.rs @@ -69,6 +69,7 @@ impl crate::commands::command_contract::CommandSpec for MutelistCommand { description: "Affiche tous les mutes en cours.", examples: &["+mutelist"], default_aliases: &["ml"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/renew.rs b/src/commands/moderation/renew.rs index 19a1d77..b016d52 100644 --- a/src/commands/moderation/renew.rs +++ b/src/commands/moderation/renew.rs @@ -61,6 +61,7 @@ impl crate::commands::command_contract::CommandSpec for RenewCommand { description: "Supprime puis recree un salon textuel en conservant les options principales.", examples: &["+renew", "+renew #general"], default_aliases: &["nuke", "rebuildch"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/sanctions.rs b/src/commands/moderation/sanctions.rs index fe4c894..b1dd87b 100644 --- a/src/commands/moderation/sanctions.rs +++ b/src/commands/moderation/sanctions.rs @@ -108,6 +108,7 @@ impl crate::commands::command_contract::CommandSpec for SanctionsCommand { description: "Liste l historique des sanctions d un membre.", examples: &["+sanctions @User"], default_aliases: &["sanct"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/tempban.rs b/src/commands/moderation/tempban.rs index e7961fb..d74fa7f 100644 --- a/src/commands/moderation/tempban.rs +++ b/src/commands/moderation/tempban.rs @@ -79,6 +79,7 @@ impl crate::commands::command_contract::CommandSpec for TempbanCommand { description: "Ban temporairement un ou plusieurs membres.", examples: &["+tempban @User 1d"], default_aliases: &["tb"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/tempcmute.rs b/src/commands/moderation/tempcmute.rs index 0051353..2145273 100644 --- a/src/commands/moderation/tempcmute.rs +++ b/src/commands/moderation/tempcmute.rs @@ -73,6 +73,7 @@ impl crate::commands::command_contract::CommandSpec for TempcmuteCommand { description: "Mute temporaire sur le salon courant.", examples: &["+tempcmute @User 5m"], default_aliases: &["tcm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/tempmute.rs b/src/commands/moderation/tempmute.rs index 6b36312..31c3e21 100644 --- a/src/commands/moderation/tempmute.rs +++ b/src/commands/moderation/tempmute.rs @@ -73,6 +73,7 @@ impl crate::commands::command_contract::CommandSpec for TempmuteCommand { description: "Mute un ou plusieurs membres pour une duree donnee.", examples: &["+tempmute @User 10m"], default_aliases: &["tm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/unban.rs b/src/commands/moderation/unban.rs index a7e5d9f..098d8dc 100644 --- a/src/commands/moderation/unban.rs +++ b/src/commands/moderation/unban.rs @@ -47,6 +47,7 @@ impl crate::commands::command_contract::CommandSpec for UnbanCommand { description: "Unban un ou plusieurs membres.", examples: &["+unban @User"], default_aliases: &["ub"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/unbanall.rs b/src/commands/moderation/unbanall.rs index c63629c..838f941 100644 --- a/src/commands/moderation/unbanall.rs +++ b/src/commands/moderation/unbanall.rs @@ -45,6 +45,7 @@ impl crate::commands::command_contract::CommandSpec for UnbanAllCommand { description: "Supprime tous les bans du serveur cible.", examples: &["+unbanall"], default_aliases: &["uball", "clearbans"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/uncmute.rs b/src/commands/moderation/uncmute.rs index d991629..8120d97 100644 --- a/src/commands/moderation/uncmute.rs +++ b/src/commands/moderation/uncmute.rs @@ -61,6 +61,7 @@ impl crate::commands::command_contract::CommandSpec for UncmuteCommand { description: "Met fin au mute salon.", examples: &["+uncmute @User"], default_aliases: &["ucm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/unmute.rs b/src/commands/moderation/unmute.rs index f984b3e..94785fe 100644 --- a/src/commands/moderation/unmute.rs +++ b/src/commands/moderation/unmute.rs @@ -60,6 +60,7 @@ impl crate::commands::command_contract::CommandSpec for UnmuteCommand { description: "Met fin au mute d un ou plusieurs membres.", examples: &["+unmute @User"], default_aliases: &["um"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/unmuteall.rs b/src/commands/moderation/unmuteall.rs index d2a6891..30956a8 100644 --- a/src/commands/moderation/unmuteall.rs +++ b/src/commands/moderation/unmuteall.rs @@ -75,6 +75,7 @@ impl crate::commands::command_contract::CommandSpec for UnmuteallCommand { description: "Supprime tous les mutes en cours.", examples: &["+unmuteall"], default_aliases: &["uma"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/moderation/warn.rs b/src/commands/moderation/warn.rs index 04f2d6f..cff255a 100644 --- a/src/commands/moderation/warn.rs +++ b/src/commands/moderation/warn.rs @@ -60,6 +60,7 @@ impl crate::commands::command_contract::CommandSpec for WarnCommand { description: "Ajoute un warn a un ou plusieurs membres.", examples: &["+warn @User spam"], default_aliases: &["avert"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/autobackup.rs b/src/commands/outils/autobackup.rs index e377ddf..b7b2e38 100644 --- a/src/commands/outils/autobackup.rs +++ b/src/commands/outils/autobackup.rs @@ -80,6 +80,7 @@ impl crate::commands::command_contract::CommandSpec for AutoBackupCommand { description: "Definit l'intervalle en jours des backups automatiques.", examples: &["+autobackup serveur 3", "+autobackup emoji 7"], default_aliases: &["abkp"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/autopublish.rs b/src/commands/outils/autopublish.rs index 6ca4924..7d15720 100644 --- a/src/commands/outils/autopublish.rs +++ b/src/commands/outils/autopublish.rs @@ -128,6 +128,7 @@ impl crate::commands::command_contract::CommandSpec for AutopublishCommand { "+help autopublish", ], default_aliases: &["apb"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/autoreact.rs b/src/commands/outils/autoreact.rs index 82f2e07..29994ce 100644 --- a/src/commands/outils/autoreact.rs +++ b/src/commands/outils/autoreact.rs @@ -150,6 +150,7 @@ impl crate::commands::command_contract::CommandSpec for AutoReactCommand { description: "Ajoute, retire et liste les reactions automatiquement appliquees aux messages d'un salon.", examples: &["+autoreact add #general 😀", "+autoreact list"], default_aliases: &["ar", "reactauto"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/backup.rs b/src/commands/outils/backup.rs index 18f0eb1..f884c4e 100644 --- a/src/commands/outils/backup.rs +++ b/src/commands/outils/backup.rs @@ -174,6 +174,7 @@ impl crate::commands::command_contract::CommandSpec for BackupCommand { "+backup load emoji nightly", ], default_aliases: &["bkp"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/button.rs b/src/commands/outils/button.rs index ac8cdda..7b7ed6e 100644 --- a/src/commands/outils/button.rs +++ b/src/commands/outils/button.rs @@ -53,6 +53,7 @@ impl crate::commands::command_contract::CommandSpec for ButtonCommand { "+button del https://example.com", ], default_aliases: &["btn"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/calc.rs b/src/commands/outils/calc.rs index b3488a5..20bbba6 100644 --- a/src/commands/outils/calc.rs +++ b/src/commands/outils/calc.rs @@ -101,6 +101,7 @@ impl crate::commands::command_contract::CommandSpec for CalcCommand { description: "Evalue une expression numerique simple et renvoie le resultat.", examples: &["+calc", "+cc", "+help calc"], default_aliases: &["clc"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/outils/choose.rs b/src/commands/outils/choose.rs index 33779fe..157b793 100644 --- a/src/commands/outils/choose.rs +++ b/src/commands/outils/choose.rs @@ -80,6 +80,7 @@ impl crate::commands::command_contract::CommandSpec for ChooseCommand { description: "Lance un tirage au sort instantane parmi les options donnees.", examples: &["+choose rouge | bleu | vert"], default_aliases: &["pick", "random"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/claim.rs b/src/commands/outils/claim.rs index 66d47ea..1d938a2 100644 --- a/src/commands/outils/claim.rs +++ b/src/commands/outils/claim.rs @@ -81,6 +81,7 @@ impl crate::commands::command_contract::CommandSpec for ClaimCommand { description: "Assigne le ticket courant au moderateur qui execute la commande.", examples: &["+claim", "+help claim"], default_aliases: &[], + allow_in_dm: false, default_permission: 2, } } diff --git a/src/commands/outils/close.rs b/src/commands/outils/close.rs index fa9978f..59847a9 100644 --- a/src/commands/outils/close.rs +++ b/src/commands/outils/close.rs @@ -88,6 +88,7 @@ impl crate::commands::command_contract::CommandSpec for CloseCommand { description: "Ferme le ticket courant et enregistre optionnellement une raison.", examples: &["+close", "+close Raison", "+help close"], default_aliases: &[], + allow_in_dm: false, default_permission: 2, } } diff --git a/src/commands/outils/create.rs b/src/commands/outils/create.rs index 612d407..fef37ee 100644 --- a/src/commands/outils/create.rs +++ b/src/commands/outils/create.rs @@ -99,6 +99,7 @@ impl crate::commands::command_contract::CommandSpec for CreateCommand { "+create https://... logo", ], default_aliases: &["mkemoji", "ce"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/embed.rs b/src/commands/outils/embed.rs index 355fc06..d58e7cd 100644 --- a/src/commands/outils/embed.rs +++ b/src/commands/outils/embed.rs @@ -75,6 +75,7 @@ impl crate::commands::command_contract::CommandSpec for EmbedCommand { description: "Affiche un generateur d'embed interactif version rapide.", examples: &["+embed"], default_aliases: &["emb"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/emoji.rs b/src/commands/outils/emoji.rs index 979527d..7068f89 100644 --- a/src/commands/outils/emoji.rs +++ b/src/commands/outils/emoji.rs @@ -90,6 +90,7 @@ impl crate::commands::command_contract::CommandSpec for EmojiCommand { description: "Affiche les details dun emoji fourni.", examples: &["+emoji", "+ei", "+help emoji"], default_aliases: &["emj"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/outils/end.rs b/src/commands/outils/end.rs index c50f3ad..97c9037 100644 --- a/src/commands/outils/end.rs +++ b/src/commands/outils/end.rs @@ -109,6 +109,7 @@ impl crate::commands::command_contract::CommandSpec for EndCommand { description: "Permet de stopper instantanement un giveaway avec l'identifiant du message.", examples: &["+end giveaway 123456789012345678"], default_aliases: &["gend"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/outils/giveaway.rs b/src/commands/outils/giveaway.rs index 0a8242b..414625e 100644 --- a/src/commands/outils/giveaway.rs +++ b/src/commands/outils/giveaway.rs @@ -52,6 +52,7 @@ impl crate::commands::command_contract::CommandSpec for GiveawayCommand { description: "Affiche une interface rapide pour initier un giveaway depuis le salon courant.", examples: &["+giveaway"], default_aliases: &["gstart", "gw"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/loading.rs b/src/commands/outils/loading.rs index ef3a0e7..404f6e8 100644 --- a/src/commands/outils/loading.rs +++ b/src/commands/outils/loading.rs @@ -106,6 +106,7 @@ impl crate::commands::command_contract::CommandSpec for LoadingCommand { description: "Anime une barre de progression avec la duree et le texte fournis.", examples: &["+loading 10s Traitement en cours"], default_aliases: &["loadbar", "bar"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/newsticker.rs b/src/commands/outils/newsticker.rs index 37a5017..91a0659 100644 --- a/src/commands/outils/newsticker.rs +++ b/src/commands/outils/newsticker.rs @@ -30,6 +30,7 @@ impl crate::commands::command_contract::CommandSpec for NewStickerCommand { description: "Cree un nouveau sticker a partir d'un sticker ou fichier repondu.", examples: &["+newsticker cool_pack"], default_aliases: &["stcreate", "nst"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/rename.rs b/src/commands/outils/rename.rs index e85581b..e5a39af 100644 --- a/src/commands/outils/rename.rs +++ b/src/commands/outils/rename.rs @@ -136,6 +136,7 @@ impl crate::commands::command_contract::CommandSpec for RenameCommand { description: "Renomme le salon du ticket et met a jour son titre en base.", examples: &["+rename support-client", "+help rename"], default_aliases: &[], + allow_in_dm: false, default_permission: 2, } } diff --git a/src/commands/outils/reroll.rs b/src/commands/outils/reroll.rs index 9435c00..122ad9e 100644 --- a/src/commands/outils/reroll.rs +++ b/src/commands/outils/reroll.rs @@ -65,6 +65,7 @@ impl crate::commands::command_contract::CommandSpec for RerollCommand { description: "Choisit un nouveau gagnant depuis le message cible.", examples: &["+reroll"], default_aliases: &["rro", "greroll"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/say.rs b/src/commands/outils/say.rs index c8183d8..1c2227f 100644 --- a/src/commands/outils/say.rs +++ b/src/commands/outils/say.rs @@ -34,6 +34,7 @@ impl crate::commands::command_contract::CommandSpec for SayCommand { description: "Envoie un message brut dans le salon courant via le bot.", examples: &["+say", "+sy", "+help say"], default_aliases: &["sym"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/snipe.rs b/src/commands/outils/snipe.rs index d5a89f8..a73c05e 100644 --- a/src/commands/outils/snipe.rs +++ b/src/commands/outils/snipe.rs @@ -76,6 +76,7 @@ impl crate::commands::command_contract::CommandSpec for SnipeCommand { description: "Affiche le dernier message supprime dans le salon ou un index de messages supprimes.", examples: &["+snipe", "+se", "+help snipe"], default_aliases: &["snp"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/outils/suggestion.rs b/src/commands/outils/suggestion.rs index 50ad0b9..b8d7871 100644 --- a/src/commands/outils/suggestion.rs +++ b/src/commands/outils/suggestion.rs @@ -514,6 +514,7 @@ impl crate::commands::command_contract::CommandSpec for SuggestionCommand { "+help suggestion", ], default_aliases: &[], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/outils/ticket.rs b/src/commands/outils/ticket.rs index 38f3ae6..8b1facf 100644 --- a/src/commands/outils/ticket.rs +++ b/src/commands/outils/ticket.rs @@ -455,6 +455,7 @@ impl crate::commands::command_contract::CommandSpec for TicketCommand { description: "Affiche le menu de configuration du systeme de tickets.", examples: &["+ticket", "+help ticket"], default_aliases: &[], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/outils/ticket_member.rs b/src/commands/outils/ticket_member.rs index dde68f4..fc07557 100644 --- a/src/commands/outils/ticket_member.rs +++ b/src/commands/outils/ticket_member.rs @@ -164,6 +164,7 @@ impl crate::commands::command_contract::CommandSpec for TicketMemberCommand { description: "Ajoute un membre supplementaire au ticket courant via +add.", examples: &["+add @User", "+help add"], default_aliases: &[], + allow_in_dm: false, default_permission: 2, } } diff --git a/src/commands/outils/tickets.rs b/src/commands/outils/tickets.rs index 1d52d10..e7c453e 100644 --- a/src/commands/outils/tickets.rs +++ b/src/commands/outils/tickets.rs @@ -80,6 +80,7 @@ impl crate::commands::command_contract::CommandSpec for TicketsCommand { description: "Affiche les tickets du serveur avec pagination.", examples: &["+tickets", "+tickets 2", "+help tickets"], default_aliases: &[], + allow_in_dm: false, default_permission: 2, } } diff --git a/src/commands/permissions/alias.rs b/src/commands/permissions/alias.rs index 9d01a0f..315c625 100644 --- a/src/commands/permissions/alias.rs +++ b/src/commands/permissions/alias.rs @@ -130,6 +130,7 @@ impl crate::commands::command_contract::CommandSpec for AliasCommand { description: "Liste, ajoute ou supprime des aliases de commandes stockes en base.", examples: &["+alias", "+as", "+help alias"], default_aliases: &["als"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/permissions/allperms.rs b/src/commands/permissions/allperms.rs index 2914580..6b2c530 100644 --- a/src/commands/permissions/allperms.rs +++ b/src/commands/permissions/allperms.rs @@ -131,6 +131,7 @@ impl crate::commands::command_contract::CommandSpec for AllpermsCommand { description: "Affiche le niveau ACL requis pour chaque commande avec pagination.", examples: &["+allperms", "+as", "+help allperms"], default_aliases: &["apm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/permissions/clear_perms.rs b/src/commands/permissions/clear_perms.rs index aab2c7b..3c9c564 100644 --- a/src/commands/permissions/clear_perms.rs +++ b/src/commands/permissions/clear_perms.rs @@ -42,6 +42,7 @@ impl crate::commands::command_contract::CommandSpec for ClearPermsCommand { description: "Supprime toutes les permissions ACL configurees en base.", examples: &["+clear perms", "+cs", "+help clear perms"], default_aliases: &["cpm"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/permissions/del.rs b/src/commands/permissions/del.rs index 4ffa5d0..4e6f484 100644 --- a/src/commands/permissions/del.rs +++ b/src/commands/permissions/del.rs @@ -63,6 +63,7 @@ impl crate::commands::command_contract::CommandSpec for DelCommand { description: "Supprime les permissions ACL associees a un role ou utilisateur.", examples: &["+del", "+dl", "+help del"], default_aliases: &["dlp"], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/permissions/help.rs b/src/commands/permissions/help.rs index 771d482..0c4fe20 100644 --- a/src/commands/permissions/help.rs +++ b/src/commands/permissions/help.rs @@ -54,6 +54,7 @@ struct HelpPage { struct CommandDoc { key: &'static str, command: &'static str, + allow_in_dm: bool, default_permission: u8, params: &'static str, summary: &'static str, @@ -323,6 +324,7 @@ fn command_doc(key: &str) -> Option { Some(CommandDoc { key: meta.name, command: meta.name, + allow_in_dm: meta.allow_in_dm, default_permission: meta.default_permission, params: meta.params, summary: meta.summary, @@ -770,6 +772,11 @@ pub async fn handle_help(ctx: &Context, msg: &Message, args: &[&str]) { .field("Catégorie", help_page_title_for_command_key(doc.key), false) .field("Alias", alias_text, false) .field("Paramètres", doc.params, false) + .field( + "Disponible en DM", + if doc.allow_in_dm { "Oui" } else { "Non" }, + true, + ) .field("Résumé", doc.summary, false) .field("Exemples", truncate_text(&examples, 1024), false); @@ -822,6 +829,7 @@ impl crate::commands::command_contract::CommandSpec for HelpCommand { description: "Affiche les pages daide du bot ou la fiche detaillee dune commande avec parametres, aliases et exemples.", examples: &["+help", "+hp", "+help help"], default_aliases: &["hp"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/permissions/helpalias.rs b/src/commands/permissions/helpalias.rs index ef7156d..bce9add 100644 --- a/src/commands/permissions/helpalias.rs +++ b/src/commands/permissions/helpalias.rs @@ -74,6 +74,7 @@ impl crate::commands::command_contract::CommandSpec for HelpaliasCommand { description: "Active ou desactive laffichage des aliases dans laide.", examples: &["+helpalias", "+hs", "+help helpalias"], default_aliases: &["hal"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/permissions/helpsetting.rs b/src/commands/permissions/helpsetting.rs index abcb603..fcb5230 100644 --- a/src/commands/permissions/helpsetting.rs +++ b/src/commands/permissions/helpsetting.rs @@ -406,6 +406,7 @@ impl crate::commands::command_contract::CommandSpec for HelpsettingCommand { "+helpsetting perms off", ], default_aliases: &["hs", "helpetting"], + allow_in_dm: false, default_permission: 9, } } diff --git a/src/commands/permissions/helptype.rs b/src/commands/permissions/helptype.rs index 6368bb3..ecf0b38 100644 --- a/src/commands/permissions/helptype.rs +++ b/src/commands/permissions/helptype.rs @@ -71,6 +71,7 @@ impl crate::commands::command_contract::CommandSpec for HelptypeCommand { description: "Definit le mode daffichage de laide entre button, select et hybrid.", examples: &["+helptype", "+he", "+help helptype"], default_aliases: &["htp"], + allow_in_dm: true, default_permission: 0, } } diff --git a/src/commands/permissions/perms.rs b/src/commands/permissions/perms.rs index 407e320..7bfe542 100644 --- a/src/commands/permissions/perms.rs +++ b/src/commands/permissions/perms.rs @@ -74,6 +74,7 @@ impl crate::commands::command_contract::CommandSpec for PermsCommand { description: "Affiche les permissions ACL configurees par role ou scope.", examples: &["+perms", "+ps", "+help perms"], default_aliases: &["prm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/addrole.rs b/src/commands/roles/addrole.rs index e65ce1b..a812c61 100644 --- a/src/commands/roles/addrole.rs +++ b/src/commands/roles/addrole.rs @@ -57,6 +57,7 @@ impl crate::commands::command_contract::CommandSpec for AddroleCommand { description: "Ajoute un role a un ou plusieurs membres.", examples: &["+addrole @User @Membre"], default_aliases: &["ar"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/delrole.rs b/src/commands/roles/delrole.rs index 26bf6a1..d5bbc91 100644 --- a/src/commands/roles/delrole.rs +++ b/src/commands/roles/delrole.rs @@ -57,6 +57,7 @@ impl crate::commands::command_contract::CommandSpec for DelroleCommand { description: "Retire un role a un ou plusieurs membres.", examples: &["+delrole @User @Membre"], default_aliases: &["dr"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/derank.rs b/src/commands/roles/derank.rs index 5f7dc40..f819524 100644 --- a/src/commands/roles/derank.rs +++ b/src/commands/roles/derank.rs @@ -58,6 +58,7 @@ impl crate::commands::command_contract::CommandSpec for DerankCommand { description: "Retire tous les roles gerables d un membre.", examples: &["+derank @User"], default_aliases: &["drk"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/massiverole.rs b/src/commands/roles/massiverole.rs index 304be0a..45339ce 100644 --- a/src/commands/roles/massiverole.rs +++ b/src/commands/roles/massiverole.rs @@ -68,6 +68,7 @@ impl crate::commands::command_contract::CommandSpec for MassiveRoleCommand { description: "Ajoute un role a tous les membres ou a ceux qui ont deja un role filtre.", examples: &["+massiverole @VIP", "+massiverole @VIP @Membres"], default_aliases: &["mrole", "mr"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/rolemenu.rs b/src/commands/roles/rolemenu.rs index fde0499..3f5fff4 100644 --- a/src/commands/roles/rolemenu.rs +++ b/src/commands/roles/rolemenu.rs @@ -591,6 +591,7 @@ impl crate::commands::command_contract::CommandSpec for RolemenuCommand { description: "Ouvre un panneau interactif (boutons + modales) pour construire un embed de roles et des boutons auto-roles.", examples: &["+rolemenu", "+rolemenu 123456789012345678", "+help rolemenu"], default_aliases: &["rmenu"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/sync.rs b/src/commands/roles/sync.rs index 5812a46..c3ecb45 100644 --- a/src/commands/roles/sync.rs +++ b/src/commands/roles/sync.rs @@ -85,6 +85,7 @@ impl crate::commands::command_contract::CommandSpec for SyncCommand { description: "Synchronise les permissions d'un salon avec sa categorie, ou tous les salons avec all.", examples: &["+sync all", "+sync #general"], default_aliases: &["chsync"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/temprole.rs b/src/commands/roles/temprole.rs index 6087c3a..e1b4a69 100644 --- a/src/commands/roles/temprole.rs +++ b/src/commands/roles/temprole.rs @@ -123,6 +123,7 @@ impl crate::commands::command_contract::CommandSpec for TempRoleCommand { description: "Attribue un role a un membre pour une duree donnee puis le retire automatiquement.", examples: &["+temprole @User @VIP 2h"], default_aliases: &["trole", "tmprole"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/unmassiverole.rs b/src/commands/roles/unmassiverole.rs index 18d865d..d9830de 100644 --- a/src/commands/roles/unmassiverole.rs +++ b/src/commands/roles/unmassiverole.rs @@ -68,6 +68,7 @@ impl crate::commands::command_contract::CommandSpec for UnMassiveRoleCommand { description: "Retire un role a tous les membres ou a ceux qui ont un role filtre.", examples: &["+unmassiverole @VIP", "+unmassiverole @VIP @Membres"], default_aliases: &["umrole", "umr"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/roles/untemprole.rs b/src/commands/roles/untemprole.rs index e8dccd3..622b9f4 100644 --- a/src/commands/roles/untemprole.rs +++ b/src/commands/roles/untemprole.rs @@ -80,6 +80,7 @@ impl crate::commands::command_contract::CommandSpec for UnTempRoleCommand { description: "Retire immediatement un role temporaire et desactive son expiration.", examples: &["+untemprole @User @VIP"], default_aliases: &["untrole", "deltrole"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/bringall.rs b/src/commands/salons_vocal/bringall.rs index 2d692a5..07aead2 100644 --- a/src/commands/salons_vocal/bringall.rs +++ b/src/commands/salons_vocal/bringall.rs @@ -72,6 +72,7 @@ impl crate::commands::command_contract::CommandSpec for BringAllCommand { description: "Deplace tous les membres actuellement en vocal vers un salon cible.", examples: &["+bringall #Event", "+bringall"], default_aliases: &["ball", "vbring"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/hide.rs b/src/commands/salons_vocal/hide.rs index 57586b4..ac99034 100644 --- a/src/commands/salons_vocal/hide.rs +++ b/src/commands/salons_vocal/hide.rs @@ -43,6 +43,7 @@ impl crate::commands::command_contract::CommandSpec for HideCommand { description: "Retire la visibilite d un salon.", examples: &["+hide", "+hide #general"], default_aliases: &["hd"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/hideall.rs b/src/commands/salons_vocal/hideall.rs index f5a76d8..4eb039b 100644 --- a/src/commands/salons_vocal/hideall.rs +++ b/src/commands/salons_vocal/hideall.rs @@ -44,6 +44,7 @@ impl crate::commands::command_contract::CommandSpec for HideallCommand { description: "Retire la visibilite de tous les salons.", examples: &["+hideall"], default_aliases: &["hda"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/lock.rs b/src/commands/salons_vocal/lock.rs index 51a5d37..2f97324 100644 --- a/src/commands/salons_vocal/lock.rs +++ b/src/commands/salons_vocal/lock.rs @@ -43,6 +43,7 @@ impl crate::commands::command_contract::CommandSpec for LockCommand { description: "Verrouille un salon texte ou vocal.", examples: &["+lock", "+lock #general"], default_aliases: &["lk"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/lockall.rs b/src/commands/salons_vocal/lockall.rs index a87bd69..d10eccc 100644 --- a/src/commands/salons_vocal/lockall.rs +++ b/src/commands/salons_vocal/lockall.rs @@ -42,6 +42,7 @@ impl crate::commands::command_contract::CommandSpec for LockallCommand { description: "Verrouille tous les salons du serveur.", examples: &["+lockall"], default_aliases: &["lka"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/slowmode.rs b/src/commands/salons_vocal/slowmode.rs index 577b1ec..b73a5af 100644 --- a/src/commands/salons_vocal/slowmode.rs +++ b/src/commands/salons_vocal/slowmode.rs @@ -120,6 +120,7 @@ impl crate::commands::command_contract::CommandSpec for SlowmodeCommand { "+slowmode off", ], default_aliases: &["sm"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/tempvoc.rs b/src/commands/salons_vocal/tempvoc.rs index 362e823..095f64f 100644 --- a/src/commands/salons_vocal/tempvoc.rs +++ b/src/commands/salons_vocal/tempvoc.rs @@ -454,6 +454,7 @@ impl crate::commands::command_contract::CommandSpec for TempvocCommand { description: "Affiche le menu de configuration du systeme de vocaux temporaires.", examples: &["+tempvoc", "+tempvoc cmd", "+help tempvoc"], default_aliases: &[], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/tempvoc_cmd.rs b/src/commands/salons_vocal/tempvoc_cmd.rs index 0a56698..7ca414d 100644 --- a/src/commands/salons_vocal/tempvoc_cmd.rs +++ b/src/commands/salons_vocal/tempvoc_cmd.rs @@ -29,6 +29,7 @@ impl crate::commands::command_contract::CommandSpec for TempvocCmdCommand { description: "Affiche un rappel des commandes et du fonctionnement de tempvoc.", examples: &["+tempvoc cmd", "+help tempvoc_cmd"], default_aliases: &[], + allow_in_dm: false, default_permission: 0, } } diff --git a/src/commands/salons_vocal/unhide.rs b/src/commands/salons_vocal/unhide.rs index 12617f0..12878ae 100644 --- a/src/commands/salons_vocal/unhide.rs +++ b/src/commands/salons_vocal/unhide.rs @@ -43,6 +43,7 @@ impl crate::commands::command_contract::CommandSpec for UnhideCommand { description: "Rend a nouveau visible un salon.", examples: &["+unhide", "+unhide #general"], default_aliases: &["uhd"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/unhideall.rs b/src/commands/salons_vocal/unhideall.rs index b660725..003c918 100644 --- a/src/commands/salons_vocal/unhideall.rs +++ b/src/commands/salons_vocal/unhideall.rs @@ -44,6 +44,7 @@ impl crate::commands::command_contract::CommandSpec for UnhideallCommand { description: "Rend visibles tous les salons du serveur.", examples: &["+unhideall"], default_aliases: &["uhda"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/unlock.rs b/src/commands/salons_vocal/unlock.rs index 94ac56f..27b4cbe 100644 --- a/src/commands/salons_vocal/unlock.rs +++ b/src/commands/salons_vocal/unlock.rs @@ -43,6 +43,7 @@ impl crate::commands::command_contract::CommandSpec for UnlockCommand { description: "Deverrouille un salon texte ou vocal.", examples: &["+unlock", "+unlock #general"], default_aliases: &["ulk"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/unlockall.rs b/src/commands/salons_vocal/unlockall.rs index 0c5cee4..9ab7d98 100644 --- a/src/commands/salons_vocal/unlockall.rs +++ b/src/commands/salons_vocal/unlockall.rs @@ -42,6 +42,7 @@ impl crate::commands::command_contract::CommandSpec for UnlockallCommand { description: "Deverrouille tous les salons du serveur.", examples: &["+unlockall"], default_aliases: &["ulka"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/voicekick.rs b/src/commands/salons_vocal/voicekick.rs index d790e72..62f1b1e 100644 --- a/src/commands/salons_vocal/voicekick.rs +++ b/src/commands/salons_vocal/voicekick.rs @@ -47,6 +47,7 @@ impl crate::commands::command_contract::CommandSpec for VoiceKickCommand { description: "Deconnecte un ou plusieurs membres de leur salon vocal actuel.", examples: &["+voicekick @User", "+voicekick @U1 @U2"], default_aliases: &["vk", "vdisconnect"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/commands/salons_vocal/voicemove.rs b/src/commands/salons_vocal/voicemove.rs index fb7e492..f330ce2 100644 --- a/src/commands/salons_vocal/voicemove.rs +++ b/src/commands/salons_vocal/voicemove.rs @@ -72,6 +72,7 @@ impl crate::commands::command_contract::CommandSpec for VoiceMoveCommand { description: "Deplace tous les membres d'un salon vocal vers un autre salon.", examples: &["+voicemove #General #Event"], default_aliases: &["vmove", "vmoveall"], + allow_in_dm: false, default_permission: 8, } } diff --git a/src/events/message_event.rs b/src/events/message_event.rs index 644770f..f6497bc 100644 --- a/src/events/message_event.rs +++ b/src/events/message_event.rs @@ -115,6 +115,43 @@ pub async fn handle_message(ctx: &Context, msg: &Message) { let command_key = permissions::command_key(&command, &args); + if msg.guild_id.is_none() { + let dm_metadata = crate::commands::command_metadata_by_key(&command_key) + .or_else(|| { + let mapped = match command_key.as_str() { + "show_pics" => Some("showpics"), + "suggestion_create" | "suggestion_settings" => Some("suggestion"), + "ticket_settings" => Some("ticket"), + "ticket_add" => Some("add"), + "ticket_remove" => Some("del"), + "ticket_close" => Some("close"), + "set_perm" => Some("set"), + "change_reset" => Some("change"), + "server_list" => Some("server"), + "end_giveaway" => Some("end"), + "mp_settings" | "mp_sent" | "mp_delete" => Some("mp"), + _ => None, + }; + + mapped.and_then(crate::commands::command_metadata_by_key) + }) + .or_else(|| crate::commands::command_metadata_by_key(&command)); + + if let Some(meta) = dm_metadata { + if !meta.allow_in_dm { + let embed = serenity::builder::CreateEmbed::new() + .title("Commande indisponible en DM") + .description(format!( + "La commande `+{}` n'est pas autorisee en message prive.", + command.replace('_', " ") + )) + .color(0xED4245); + crate::commands::common::send_embed(ctx, msg, embed).await; + return; + } + } + } + let can_use = permissions::can_use_command(ctx, msg, &command_key).await; if !can_use { let required = permissions::command_required_permission(ctx, &command_key).await;