- Documentation
- 07Discord
Discord
Relier un ou plusieurs serveurs Discord pour synchroniser rôles et pseudos, publier les messages du MDT et offrir des commandes à tes membres.
Le bot SuperMDT relie ton organisation à tes serveurs Discord. Une fois relié, un serveur :
- donne les rôles de service et de grade à tes membres, et les retire quand ils changent de grade ou quittent le service ;
- impose les pseudos, si tu le veux, au format
[Matricule] Prénom Nomou au tien ; - publie les annonces, absences, sanctions, convocations et prises de service dans les salons de ton choix, avec des messages dont tu choisis la forme ;
- répond aux commandes
/duty,/absence,/rosteret/profile.
Le MDT fait foi, Discord reflète : on ne gère ni grades ni effectif depuis Discord. Quand quelque chose change dans le MDT, le bot corrige Discord ; l’inverse n’arrive jamais.
Tout se règle dans Configuration › Discord, réservé aux administrateurs de l’organisation et aux grades qui ont Administration déléguée › Régler Discord (voir L’administration déléguée). Chaque liaison, déliaison et chaque réglage (services couverts, rôles, pseudos, salons, modèles, commandes) s’inscrit au journal d’audit.
start-discord-homeAvant de commencer
Section intitulée « Avant de commencer »- Tu dois être administrateur ou propriétaire de l’organisation, ou avoir la permission Administration déléguée › Régler Discord (jamais donnée par défaut).
- Sur Discord, tu dois avoir la permission Gérer le serveur sur le serveur à relier.
- Utilise le même compte Discord que celui avec lequel tu te connectes au MDT : sinon la liaison est refusée.
- Tes membres sont reconnus sur Discord dès qu’ils se sont connectés au MDT avec Discord. La carte Ton compte indique combien l’ont fait (par exemple « 18 membres sur 24 ont lié leur compte Discord »). Personne n’est invité dans le MDT à partir de ses rôles Discord : l’entrée passe toujours par une invitation.
Relier un serveur
Section intitulée « Relier un serveur »-
Dans Configuration › Discord, onglet Serveurs, clique sur Ajouter un serveur.
-
Coche les Services couverts par ce serveur. Par défaut, ceux qui n’ont pas encore de serveur sont cochés ; ceux déjà couverts ailleurs sont grisés (Déjà sur …).
-
Clique sur Continuer sur Discord. Discord te demande de choisir le serveur et d’accepter les permissions du bot : garde-les toutes cochées.
-
Tu reviens dans SuperMDT avec le message Serveur Discord relié. Le serveur s’ouvre : le bot lit ses rôles et ses salons (quelques secondes), puis donne leurs rôles aux membres des services couverts.
start-discord-add-serverLa demande reste valable 15 minutes. Si la liaison échoue, un message explique pourquoi :
| Message | Ce qui s’est passé |
|---|---|
| Ajout du bot annulé sur Discord. | tu as fermé ou refusé la fenêtre de Discord |
| La demande a expiré : recommence. | plus de 15 minutes, ou lien déjà utilisé |
| Le compte Discord utilisé n’est pas celui de ton compte MDT. | tu étais connecté à Discord avec un autre compte |
| Ce serveur Discord est déjà relié à une autre organisation. | un serveur Discord n’appartient qu’à une seule organisation |
| Choisis sur Discord le serveur que tu voulais réinviter. | en réinvitant le bot, tu as choisi un autre serveur que celui de la liste |
| Discord n’a pas confirmé l’ajout du bot. Réessaie. | incident passager côté Discord |
Un serveur par service, ou un seul pour tous
Section intitulée « Un serveur par service, ou un seul pour tous »Une organisation peut relier jusqu’à 20 serveurs. Deux façons de faire, que tu peux mélanger :
- un serveur partagé qui couvre tous tes services ;
- un serveur par service : le Discord de la police couvre la police, celui des secours couvre les secours, etc.
La règle : un service n’appartient qu’à un seul serveur. C’est ce serveur qui donne les rôles de ses membres et reçoit ses publications. Un serveur sans service ne reçoit que les annonces de toute l’organisation. Sous la liste, Services sans serveur rappelle ceux qui ne sont couverts nulle part.
Pour changer les services d’un serveur, ouvre-le, onglet Serveur, carte Services couverts, puis Enregistrer les services. Retirer un service retire aussi, sur ce serveur, les rôles que SuperMDT gérait pour ses membres.
L’état d’un serveur
Section intitulée « L’état d’un serveur »Chaque serveur de la liste porte une pastille :
| Pastille | Signification | Que faire |
|---|---|---|
| Prêt | le bot est présent et a toutes ses permissions | rien |
| Pas encore lu | le bot n’a pas encore lu les rôles et les salons | attendre qu’il soit en ligne, ou Actualiser |
| Permissions manquantes | une permission du bot a été retirée | Réinviter le bot |
| Bot retiré | quelqu’un a expulsé le bot du serveur | Réinviter le bot |
En haut de la liste, Bot en ligne ou Bot hors ligne indique si le bot répond (il donne signe de vie toutes les 5 minutes ; sans nouvelle depuis 11 minutes, il est affiché hors ligne). Hors ligne, rien n’est perdu : les envois attendent dans la file et partent à son retour.
Dans l’onglet Serveur d’un serveur :
- Actualiser redemande au bot la liste des rôles et des salons (elle se met aussi à jour toute seule quand tu modifies des rôles ou des salons sur Discord) ;
- Réinviter le bot rouvre Discord sur ce même serveur, pour le remettre ou lui rendre ses permissions ;
- Délier le serveur (maintenir appuyé) : le bot quitte le serveur. Les rôles déjà donnés et les messages déjà publiés restent sur Discord.
Onglet Rôles d’un serveur. Pour chaque service couvert, choisis :
- le Rôle du service, donné à tous ses membres ;
- un Rôle du grade … par grade, donné à ceux qui portent ce grade.
Chaque liste se filtre en tapant quelques lettres ; les rôles s’affichent avec leur couleur Discord. Aucun retire l’association. Un rôle supprimé sur Discord s’affiche Introuvable sur le serveur : choisis-en un autre. Un rôle grisé est placé au-dessus du rôle du bot : Discord interdit au bot de le donner (voir Ce qui se règle sur Discord).
start-discord-rolesLes rôles suivent le MDT automatiquement : à l’arrivée d’un membre par invitation, à son affectation, à sa promotion, à son retrait d’un service ou de l’organisation, et quand il change de personnage. SuperMDT ne touche qu’aux rôles que tu as associés : les autres rôles de tes membres (amis, streamers, notifications…) ne bougent jamais.
Rôle de mise à pied (facultatif) : ajouté pendant une mise à pied, retiré à la fin. Les autres rôles du membre restent en place ; c’est à toi de régler sur Discord ce que ce rôle empêche (salons masqués, par exemple).
Resynchroniser tous les membres redonne à chaque membre lié ses rôles et son pseudo. Utile après avoir déplacé des rôles sur Discord ou corrigé la position du rôle du bot.
Onglet Pseudos d’un serveur. Imposer les pseudos est désactivé par défaut : désactivé, SuperMDT ne touche jamais aux pseudos.
Activé, chaque membre lié reçoit le pseudo du Modèle du pseudo, tenu à jour à chaque
changement de grade, de matricule ou de personnage. Le modèle par défaut est
[{callsign}] {firstName} {lastName}, ce qui donne « [12] Jordan Miles ». Clique sur une
variable pour l’insérer au curseur :
| Variable | Remplacée par |
|---|---|
{callsign} |
le matricule |
{firstName} / {lastName} |
le prénom / le nom |
{name} |
le nom complet |
{grade} |
le grade |
{service} / {serviceShort} |
le nom / le sigle du service |
- Le nom est le nom RP du personnage actif quand l’intégration au jeu est activée, sinon le nom du compte.
- Le pseudo reprend le service principal du membre parmi ceux du serveur (le premier dans l’ordre de tes services).
- Des crochets ou parenthèses restés vides disparaissent : sans matricule, « [12] Jordan Miles » devient « Jordan Miles ». L’Aperçu montre les deux cas.
- Discord limite un pseudo à 32 caractères : au-delà, il est coupé.
- Une variable inconnue (faute de frappe) est signalée sous le champ.
discord-nicknamesSalons et modèles de message
Section intitulée « Salons et modèles de message »Onglet Salons d’un serveur. Six salons de publication, chacun activable à part :
| Salon | Ce qui y est publié |
|---|---|
| Annonces | les annonces publiées dans le MDT |
| Absences | les absences déclarées, prolongées ou annulées |
| Sanctions et convocations | les sanctions et convocations, avec la mention de l’agent concerné |
| Prises et fins de service | le pointage des membres |
| Demandes de procureur | les demandes de procureur d’un dossier, avec un bouton Accepter |
| Demandes d’avocat commis d’office | les demandes d’avocat de la défense d’un dossier, avec un bouton Accepter |
Pour chacun : choisis le Salon (les salons où le bot ne peut pas écrire sont grisés ; chaque salon porte son type, Salon textuel ou Salon d’annonces, tous deux acceptés), puis Publier dans ce salon. Le Rôle à mentionner, facultatif, est cité en tête de chaque message ; un rôle qui ne peut pas être mentionné est signalé.
start-discord-channelsLes messages suivent le MDT : une absence prolongée modifie son message, une absence annulée le supprime ; une sanction levée ou échue met son message à jour, une sanction archivée le supprime ; une annonce modifiée ou reprogrammée aussi. Les prises et fins de service sont publiées une fois. Le motif d’une absence privée est remplacé par « Motif réservé à l’encadrement ».
Les demandes de procureur et d’avocat
Section intitulée « Les demandes de procureur et d’avocat »discord-counsel-channelsQuand un membre demande un procureur ou un avocat commis d’office sur un dossier, le message part dans le salon Demandes de procureur (ou Demandes d’avocat commis d’office) de chaque serveur relié qui l’a activé : règle-le sur le serveur qui couvre ta justice, ou ton barreau. Le Rôle à mentionner est pingé en tête du message : c’est lui qui prévient les procureurs (ou les avocats) disponibles.
Le message donne le dossier, le prévenu, les infractions, le lieu, le statut de la demande et un lien vers le dossier dans le MDT. Sous le message, un bouton Accepter :
- le clic accepte la demande avec les mêmes règles que dans le MDT : il faut que le compte Discord soit lié à un membre qui peut être procureur (ou avocat) ; la réponse du bot n’est visible que par lui ;
- le premier qui accepte, sur Discord ou dans le MDT, prend le dossier ; le message est alors mis à jour (« Acceptée par … »), perd son bouton et sa mention ;
- une demande annulée ou expirée met aussi son message à jour.
Où part une annonce ? Celle d’un service va au serveur de ce service. Celle de toute l’organisation va à chaque serveur dont l’interrupteur Annonces de toute l’organisation (carte Annonces) est activé ; il l’est par défaut.
Les modèles hérités
Section intitulée « Les modèles hérités »Chaque type de message (Annonce publiée, Absence, Sanction, Convocation, Prise de service, Fin de service, Demande de procureur, Demande d’avocat) a un modèle, résolu dans cet ordre :
- le modèle modifié sur ce serveur, s’il existe ;
- sinon le modèle de l’organisation, réglé à l’accueil de Configuration › Discord, onglet Modèles, et partagé par tous les serveurs ;
- sinon le modèle par défaut, écrit dans la langue de l’organisation.
Dans l’onglet Salons, chaque modèle affiche sa source : Modifié sur ce serveur, Modèle de l’organisation ou Par défaut. Commence par régler les modèles de l’organisation, puis ne modifie sur un serveur que ce qui doit y différer.
start-discord-templatesL’éditeur et sa visionneuse
Section intitulée « L’éditeur et sa visionneuse »Modifier ouvre l’éditeur. À côté des champs, la visionneuse montre le message tel qu’il apparaîtra sur Discord, avec des valeurs d’exemple, et se met à jour pendant que tu écris.
- Texte du message : au-dessus de l’embed. C’est ici qu’une mention (
{agentMention}) notifie vraiment ; dans l’embed, elle ne fait que s’afficher. - Titre, Description, Pied : le corps de l’embed.
- Couleur : Couleur du service (à défaut, l’accent de l’organisation) ou Couleur
choisie au format
#rrggbb. - Champs : jusqu’à 10, avec un Intitulé, une Valeur et l’option Côte à côte ; les flèches les réordonnent. Un champ vide disparaît du message publié.
- Afficher l’heure de l’événement : l’heure s’affiche sous l’embed.
- Les variables propres à chaque type de message s’insèrent d’un clic (tableau ci-dessous). Une variable inconnue est laissée telle quelle et signalée.
L’en-tête de l’éditeur rappelle la portée du modèle : Pour … seulement (un serveur) ou Pour tous les serveurs qui ne le modifient pas (modèle de l’organisation).
| Modèle | Variables |
|---|---|
| Annonce publiée | {title} titre, {body} texte, {author} auteur, {service}, {org}, {date} |
| Absence | {agent}, {agentMention}, {callsign}, {grade}, {service}, {from} premier jour, {to} dernier jour, {days} nombre de jours, {reason} motif, {status}, {org} |
| Sanction | {agent}, {agentMention}, {callsign}, {grade}, {service}, {type} type de sanction, {reason}, {status}, {issuer} auteur de la décision, {until} échéance, {org} |
| Convocation | {agents} noms des convoqués, {agentMentions} leurs mentions, {service}, {date}, {place} lieu, {subject} objet, {issuer}, {status}, {org} |
| Prise de service | {agent}, {agentMention}, {callsign}, {grade}, {service}, {time} heure, {org} |
| Fin de service | les mêmes, plus {duration} durée du service et {endReason} raison de la fin |
| Demande de procureur, Demande d’avocat | {file} numéro du dossier, {defendant} prévenu, {offenses} infractions, {place}, {link} lien vers le dossier, {requester} auteur de la demande, {service}, {status}, {expires} expiration de la demande, {org} |
Les modèles par défaut utilisent ces variables : par exemple « Absence de {agent} » avec les
champs Du, Au, Statut et Motif, ou {agentMention} en texte du message d’une sanction
(l’agent est notifié).
start-discord-template-editorPour revenir en arrière (maintenir appuyé) : Revenir au modèle de l’organisation sur un serveur, Rétablir le modèle par défaut pour le modèle de l’organisation. Envoyer un test publie le modèle avec les valeurs d’exemple dans le salon choisi : pratique pour vérifier les permissions et le rendu.
Discord impose ses limites : 2000 caractères pour le texte, 256 pour le titre, 4096 pour la description, 2048 pour le pied, 256 pour un intitulé et 1024 pour une valeur. L’éditeur les signale ; au moment de publier, un texte trop long est coupé avec « … ».
Commandes slash
Section intitulée « Commandes slash »Onglet Commandes d’un serveur. Les commandes s’écrivent en anglais sur Discord ; les réponses suivent la langue du membre (celle choisie dans le MDT, sinon celle de Discord). Elles ne portent que sur les services couverts par ce serveur, et le membre doit avoir lié son compte en se connectant au MDT avec Discord.
| Commande | Ce qu’elle fait | Permission nécessaire | Visible par |
|---|---|---|---|
/duty [service] |
qui est en service (15 noms par service au plus), et ton propre statut | Prise de service › Voir les heures de l’équipe, ou l’accès au dispatch ou aux unités | toi seul |
/absence from reason [to] [service] |
déclarer une absence, comme dans le MDT ; dates AAAA-MM-JJ ou JJ/MM/AAAA, to vaut from s’il est omis |
Absences › Déclarer ses absences | toi seul |
/roster [service] |
l’effectif d’un service : grades, matricules, noms (25 au plus) | Effectif › Voir l’effectif | tout le salon |
/profile |
tes heures (cette semaine, la précédente), ta dernière fiche de paie, tes sanctions en cours | aucune | toi seul |
discord-commands- Le module concerné doit être activé dans le service (Prise de service, Absences,
Effectif), et la permission se règle dans la matrice des permissions.
/profilen’affiche les salaires qu’avec le module Salaires, et les sanctions que si le service a activé L’agent voit ses propres sanctions. - Une absence déclarée par
/absencesuit les règles du service : elle peut attendre une validation, et un agent mis à pied ne peut pas en déclarer. - Si tu es dans plusieurs services, précise le
service: Discord propose la liste. - Aucune commande ne consulte un casier, une plaque ou un mandat. Les dossiers restent dans le MDT.
Désactiver une commande avec son interrupteur Activée la coupe sur ce serveur seulement : elle reste visible dans Discord mais répond « Cette commande est désactivée sur ce serveur. »
Les réponses du bot
Section intitulée « Les réponses du bot »| Réponse | Cause |
|---|---|
| « Ce serveur Discord n’est relié à aucune organisation SuperMDT. » | la commande est tapée sur un serveur non relié |
| « Ton compte Discord n’est lié à aucun membre de … » | le membre ne s’est jamais connecté au MDT avec ce compte Discord |
| « Tu n’as pas la permission d’utiliser cette commande. » | permission ou module manquant dans ses services |
| « Aucun de tes services ne correspond. » | le service choisi n’est pas un des siens sur ce serveur |
| « Tu es affecté à plusieurs services : précise le service. » | /absence sans service, pour un membre de plusieurs services |
| « Tu es mis à pied dans ce service. » | /absence pendant une mise à pied |
| « Absence déclarée. » ou « Absence déclarée : elle attend une validation. » | l’absence est créée, validée d’office ou en attente |
| « Dates invalides… », « Une absence couvre déjà une partie de ces jours. » ou « Précise un motif (1000 caractères au plus). » | /absence refusée |
| « Une erreur est survenue. Réessaie dans un instant. » | erreur passagère |
| « SuperMDT is unavailable right now. Try again in a moment. » | SuperMDT n’a pas répondu à temps (le seul message du bot toujours en anglais) |
Le bouton Accepter d’une demande de procureur ou d’avocat répond aussi au seul membre qui clique : « C’est noté : tu es désigné sur le dossier … », « Cette demande a déjà été prise ou n’est plus ouverte. », « Tu ne peux pas accepter cette demande… » ou « Demande introuvable. »
Journal d’envoi
Section intitulée « Journal d’envoi »L’onglet Journal (à l’accueil pour tous les serveurs, avec un filtre Serveur ; dans un serveur pour lui seul) liste chaque message et chaque synchronisation envoyés par le bot : Annonce, Absence, Sanction, Convocation, Prise de service, Fin de service, Demande de procureur ou d’avocat, Rôles et pseudo, Lecture du serveur, Départ du serveur, Message privé, Test et Suppression du message. Un serveur délié s’affiche Serveur délié.
| Statut | Signification |
|---|---|
| En attente / En cours | dans la file du bot |
| Envoyé | fait |
| Ignoré | sans objet : membre absent du serveur, message déjà supprimé, serveur délié |
| Échec | Discord a refusé ; l’erreur de Discord s’affiche sous la ligne |
Un échec passager est retenté automatiquement, 5 essais au plus (« 3 essais » s’affiche à côté du sujet). Le journal charge 20 lignes à la fois, avec Afficher plus, et garde 30 jours d’historique.
start-discord-logCe qui se règle sur Discord
Section intitulée « Ce qui se règle sur Discord »SuperMDT ne peut pas modifier les réglages de ton serveur Discord à ta place. Fais ces vérifications dans Paramètres du serveur sur Discord :
- Position du rôle du bot. Dans Rôles, fais glisser le rôle SuperMDT au-dessus de tous les rôles qu’il doit donner et au-dessus des rôles de tes membres. Un bot ne peut ni donner un rôle placé plus haut que le sien, ni renommer quelqu’un dont le rôle le plus haut dépasse le sien.
- Permissions du bot. Il lui faut : Voir les salons, Envoyer des messages, Intégrer des liens, Voir l’historique des messages, Gérer les pseudos et Gérer les rôles. Elles sont demandées à l’invitation ; si quelqu’un en retire une, la pastille Permissions manquantes apparaît et Réinviter le bot les rend.
- Salons de publication. Si un salon est privé, ajoute le rôle du bot à ses permissions (voir, envoyer, intégrer des liens), sinon il reste grisé dans la liste.
- Rôles mentionnés. Pour qu’un Rôle à mentionner notifie vraiment, active Permettre à tout le monde de mentionner ce rôle sur ce rôle.
- Accès aux commandes (facultatif). Dans Intégrations › SuperMDT, Discord permet de limiter chaque commande à certains rôles ou salons, en plus des permissions du MDT.
Après avoir déplacé des rôles, clique sur Resynchroniser tous les membres.
Messages privés
Section intitulée « Messages privés »Le bot envoie aussi les notifications personnelles en message privé aux membres qui ont lié leur compte Discord et l’ont choisi, avec un bouton Ouvrir dans le MDT. Chaque membre règle ses catégories dans Mon profil › Notifications ; l’organisation autorise ou non les messages privés, et pour quelles catégories, dans Configuration › Notifications. Débit limité, répétitions regroupées, messages privés fermés gérés : voir Notifications.
- 20 serveurs par organisation ; un serveur Discord n’est relié qu’à une organisation ; un service n’est couvert que par un serveur.
- Les rôles et les pseudos ne concernent que les membres qui se sont connectés au MDT avec Discord.
- Le propriétaire du serveur Discord ne peut jamais être renommé.
- Les messages privés ne portent que les notifications personnelles : les publications (annonces, absences, sanctions…) passent toujours par les salons.
- Le bot ne lit pas les messages de ton serveur ; il ne fait qu’y écrire et y gérer les rôles associés.