Aller au contenu

Discord

Relier un ou plusieurs serveurs Discord pour synchroniser rôles et pseudos, publier les messages du MDT et offrir des commandes à tes membres.

Sur cette page12
  1. Avant de commencer
  2. Relier un serveur
  3. Un serveur par service, ou un seul pour tous
  4. L’état d’un serveur
  5. Rôles
  6. Pseudos
  7. Salons et modèles de message
  8. Commandes slash
  9. Journal d’envoi
  10. Ce qui se règle sur Discord
  11. Messages privés
  12. Limites

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 Nom ou 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, /roster et /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.

Configuration › Discord : les serveurs reliés et ton compte
  • 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.
  1. Dans Configuration › Discord, onglet Serveurs, clique sur Ajouter un serveur.

  2. 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 …).

  3. Clique sur Continuer sur Discord. Discord te demande de choisir le serveur et d’accepter les permissions du bot : garde-les toutes cochées.

  4. 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.

Choisir les services du serveur avant d’ouvrir Discord

La 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

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.

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).

Associer un rôle au service et à chaque grade

Les 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.
L’onglet Pseudos : le modèle, ses variables et l’aperçu

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é.

Les salons d’un serveur et leurs modèles

Les 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 salons des demandes de procureur et d’avocat

Quand 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.

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 :

  1. le modèle modifié sur ce serveur, s’il existe ;
  2. sinon le modèle de l’organisation, réglé à l’accueil de Configuration › Discord, onglet Modèles, et partagé par tous les serveurs ;
  3. 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.

Les modèles de l’organisation, hérités par chaque serveur

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é).

L’éditeur de modèle et l’aperçu du message sur Discord

Pour 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 « … ».

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
L’onglet Commandes : chaque commande et son interrupteur
  • 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. /profile n’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 /absence suit 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. »

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. »

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.

Le journal d’envoi du bot

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 :

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

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.