ArkaMod

ArkaMod

Bot de modération pensé pour les communautés qui gèrent plusieurs serveurs Discord liés entre eux. Il centralise les sanctions et leur historique, partage une blacklist commune entre serveurs pour repérer rapidement les utilisateurs problématiques, et propose un système de support par tickets entièrement configurable. Toute la configuration — rôles, permissions par commande, salons, embeds — se fait depuis ce tableau de bord, sans avoir besoin de mémoriser une seule commande Discord.

⚙️ Configuration

/setup — Assistant de configuration Discord en 2 étapes, réservé au propriétaire du serveur :
1. Salon sanction.
2. Salons blacklist réseau, demandes d'appel et patch notes (optionnel).
Chaque sélection est enregistrée immédiatement.

Site web — toute la configuration avancée (permissions par rôle et par commande, et l'intégralité du système de tickets — templates, salons, rôles, motifs, embeds) se fait exclusivement via le site, réservé à l'admin principal du serveur.

/status — Indique si ce serveur est autorisé à écrire dans la blacklist réseau (liste fixée manuellement par l'administrateur réseau). Si non, précise qui contacter pour une demande d'habilitation.

🔨 Sanctions

Toutes les commandes de sanction partagent : un contrôle hiérarchique (impossible d'agir sur un rôle égal/supérieur ou sur le propriétaire du serveur), la création d'un case numéroté par serveur, et la publication du résultat dans chan-sanction.

/warn — Avertissement.
/ban / /unban — Banni l'utilisateur du serveur. Possibilité de purger les messages qu'il a envoyé, durée optionnelle (vide = permanent). Un ban permanent sur un serveur whitelisté ajoute automatiquement l'utilisateur à la blacklist réseau. /unban révoque cette entrée et rediffuse une alerte de déban aux autres serveurs.
/timeout / /untimeout — Timeout l'utilisateur
/mute / /unmute — Mute vocal serveur. Réappliqué automatiquement si l'utilisateur se reconnecte en vocal.
/quarantine / /unquarantine — Purge les messages des dernières 24h (limité aux 100 derniers messages par salon) et applique un timeout fixe de 24h.
/kick — Exclus l'utilisateur du serveur

📋 Consultation

/userinfo — Date de création du compte, date d'arrivée sur le serveur, rôles, nombre de cases, sanctions en cours (motif et expiration), statut blacklist réseau si applicable.

/cases view — Navigue dans le détail complet des sanctions d'un utilisateur (ou par numéro de case précis). Si la cible a un rôle admin/modération, affiche les sanctions qu'elle a appliquées plutôt que reçues.

/cases list — Liste compacte des sanctions (sans motifs), paginée à partir de 10 entrées.

/cases edit — Édite le motif d'un case (l'ancien et le nouveau motif restent visibles, avec l'historique complet en cas d'éditions multiples) ou annule un avertissement (reste visible dans l'historique avec la mention *annulé*). L'annulation via cette commande est réservée aux avertissements — les autres sanctions se lèvent via leur commande dédiée (/unban, /untimeout, etc.).

/list — Liste les membres du serveur présents sur la blacklist réseau, avec un bouton *Ban all* pour les bannir tous en une fois.

🌐 Blacklist réseau

Une whitelist de serveurs (fixée manuellement) est autorisée à écrire dans la blacklist réseau. Un ban permanent sur l'un de ces serveurs diffuse une alerte à tous les serveurs configurés, avec un bouton *Bannir ici* (bannit localement sans créer de nouvelle entrée d'origine) et *Dismiss*. Le même mécanisme existe en symétrique pour les débans.

Chaque annonce affiche en plus, si l'utilisateur est présent sur le serveur qui la reçoit, son userinfo local (arrivée, rôles, sanctions en cours sur ce serveur précis) — en complément des informations issues du serveur à l'origine du ban.

Un job automatique tourne chaque nuit à minuit : il compare la blacklist à tous les serveurs configurés et notifie s'il trouve des correspondances, sans jamais bannir automatiquement.

🧰 Utilitaires

/slowmode — Définit le slowmode du salon (0 pour désactiver).
/purge — Supprime des messages récents, avec ciblage optionnel par utilisateur.
/lock / /unlock — Verrouille un salon en écriture, avec durée optionnelle.

/vault / /unvault — Verrouillage anti-raid :
• Supprime toutes les invitations actives récupérables via l'API.
• Relève temporairement le niveau de vérification du serveur au maximum.
• Expulse automatiquement tout nouvel arrivant tant que le vault est actif.
/unvault restaure le niveau de vérification d'origine et arrête les expulsions automatiques.
• Limites connues : l'URL vanity (boost niveau 3) ne peut pas être supprimée par l'API, et les invitations via Discovery ou liens d'amis Nitro ne peuvent pas être bloquées.

/riot / /unriot — Verrouillage temporaire du salon dans lequel la commande est appelée : sauvegarde les permissions @everyone et le slowmode actuels, passe le salon en slowmode 30s et retire à @everyone les réactions, réactions externes, liens, images/gifs, soundboard et messages vocaux. /unriot restaure exactement l'état sauvegardé.

/rename — Change le pseudo d'un membre (contrôle hiérarchique identique aux sanctions).

/role add / /role remove — Ajoute ou retire un rôle à un membre. Le rôle concerné doit être strictement inférieur au rôle le plus haut de l'appelant (le propriétaire du serveur n'est jamais bloqué par cette règle).

/say — Fait poster un message par le bot dans un salon (actuel ou choisi), et épingle automatiquement le message.

🎫 Tickets

Système entièrement piloté depuis le site (dashboard → Tickets) — plus de commande Discord dédiée. Un serveur peut définir plusieurs templates de tickets indépendants (ex : "Support", "Recrutement"), chacun avec son propre salon de panneau, sa propre catégorie de création, son propre salon transcript, ses propres rôles, ses propres motifs et sa propre limite de tickets actifs par utilisateur. Une limite globale optionnelle (tous templates confondus) peut aussi être configurée.

Un membre clique sur le bouton du panneau d'un template pour ouvrir un salon privé (avec éventuellement un menu de motifs si configurés). Le créateur et les rôles à notifier sont notifiés par un ping réel. Chaque template a sa propre numérotation de tickets, indépendante des autres.

Trois types de rôles se configurent par template : rôles ayant accès aux tickets, rôles pouvant les claim, et rôles managers.

Claim/Unclaim — Une fois claim, tous les rôles "vue" (hors managers) perdent l'accès, sans exception de rang — seuls le claimeur, le créateur et les managers voient le ticket. Les managers gardent toujours l'accès, même si le ticket est claim par quelqu'un d'autre, et peuvent reprendre un ticket déjà claim en un clic.

Close/Reopen — Verrouille ou déverrouille l'écriture dans le salon.

Delete — Demande une confirmation avant suppression, génère un transcript complet du salon, l'archive dans le salon transcript du template et le transmet au créateur, puis supprime le salon.