Aller au contenu principal

Intégration DiscordSRV

EliteMobs utilise DiscordSRV pour permettre la diffusion des messages de priorité d'annonce de niveau 3 et supérieur. Vous pouvez en apprendre plus sur le système de priorité d'annonce ici.

Concrètement, cela signifie que certains Boss Personnalisés très spéciaux peuvent envoyer des messages sur Discord d'une manière qui ressemble à ceci :

exemple de message discord

L'intention est de créer un salon d'annonces dédié à EliteMobs que les joueurs peuvent consulter pour voir s'il y a des Boss de Monde intéressants actuellement en vie qu'ils peuvent aller tuer, et le montrer dans le classement des éliminations.

Tout mettre en place

Configurer DiscordSRV​

DiscordSRV est un plugin différent qui n'est pas développé par moi. Vous pouvez trouver leur guide de configuration détaillé ici. Si vous avez du mal à le configurer, leur salon de support est ici. Je ne suis pas en mesure de fournir du support pour ce plugin, veuillez donc vous adresser à eux pour cette partie de l'installation.

EliteMobs est compilé avec DiscordSRV 1.28.0. Utilisez la commande de test ci-dessous pour vérifier la réception des messages avec la version installée sur votre serveur.

Configurer l'intégration DiscordSRV d'EliteMobs​

Une fois que vous avez correctement configuré DiscordSRV (et vous devez tester pour vérifier que cela fonctionne réellement avant de passer à cette étape), la configuration d'EliteMobs ne comporte qu'une seule étape.

Rendez-vous dans le fichier de configuration DiscordSRV.yml du dossier de configuration d'EliteMobs (généralement plugins/EliteMobs/DiscordSRV.yml) et vous y trouverez une option de configuration nommée announcementRoomName.

Il existe trois valeurs utilisables pour ce message. Je recommande la n°1.

  1. [Recommandé] Le nom du salon tel que vous l'avez configuré dans le fichier de configuration de DiscordSRV. Peu importe comment vous avez appelé le salon, seul compte le fait d'utiliser le bon nom. Voici un exemple du salon que j'ai configuré pour être dédié aux événements EliteMobs : exemple avec le nom Dans mon cas, l'option devrait être announcementRoomName: EMEvents.

  2. L'ID du salon tel que vous l'avez configuré dans le fichier de configuration de DiscordSRV. Voici un exemple du salon. Notez que chaque salon est unique. Je ne montre les images qu'à titre d'exemple, n'essayez pas de copier les numéros d'ID. Cela ne fonctionnera pas. Votre configuration doit avoir un ensemble de chiffres unique basé sur l'id de votre salon discord. exemple avec l'id

  3. [Moins fiable] Le nom du salon tel qu'il apparaît sur Discord. La recherche de secours ignore la casse et sélectionne le premier salon textuel correspondant ; des noms identiques peuvent donc mener au mauvais destinataire. DiscordSRV et son bot doivent être configurés et avoir accès au salon ; cette recherche par nom ne nécessite pas elle-même de correspondance avec un canal du jeu.

Notes techniques​

  • Les codes couleur Minecraft sont automatiquement retirés des messages envoyés vers Discord afin d'assurer un affichage correct
  • Les messages Discord sont envoyés de façon asynchrone pour éviter les ralentissements du serveur
  • EliteMobs utilise une recherche à trois niveaux pour trouver votre salon Discord : d'abord par ID de salon (uniquement si announcementRoomName ne contient que des chiffres), puis par la correspondance de salons de DiscordSRV, et enfin par recherche du nom de salon
  • Les annonces automatiques de contenu nécessitent une priorité de 3 ou plus : messages d'apparition, de mort et de fuite des boss personnalisés, ainsi que startMessage/endMessage des événements personnalisés. La commande de test manuel ci-dessous envoie directement sans vérifier de priorité de contenu.
  • Les mêmes messages que ceux affichés en jeu sont envoyés vers Discord
  • Le salon est recherché à nouveau pour chaque annonce : une correction de announcementRoomName prend donc effet après /em reload. Une recherche qui ne trouve rien enregistre Channel room <name> is not valid! dans la console ; un message refusé par Discord enregistre DiscordSRV announcement failed for <name>.

Tests​

Vous pouvez utiliser la commande /em discord <message> pour tester si votre configuration fonctionne. Remplacez <message> par le texte de votre choix à envoyer sur Discord.

Exemple : /em discord Test message from EliteMobs!

Vérifiez que le message apparaît dans le salon Discord prévu. L'accusé de réception de la commande confirme seulement une tentative d'envoi ; il peut apparaître même si DiscordSRV manque, si le réglage contient encore la valeur d'exemple ou si la recherche du salon échoue. Sans message dans Discord, la livraison n'est pas vérifiée.

Remarque : cette commande nécessite la permission elitemobs.discord.message

Vous pouvez également utiliser /em discord (sans message) pour afficher le lien d'invitation du serveur Discord d'EliteMobs, pour le support et les téléchargements. Cette commande nécessite la permission elitemobs.discord.link.

Dépannage​

Les messages n'apparaissent pas sur Discord :

  • Vérifiez que DiscordSRV est installé et fonctionnel (testez d'abord avec les propres commandes de DiscordSRV)
  • Vérifiez que announcementRoomName n'est PAS laissé à sa valeur d'exemple par défaut
  • Assurez-vous que le nom/ID du salon correspond exactement à ce qui figure dans votre configuration DiscordSRV
  • Consultez la console pour d'éventuels avertissements d'EliteMobs concernant l'intégration Discord
  • Vérifiez que vous disposez de la permission elitemobs.discord.message pour les tests

Erreurs de salon introuvable :

  • Revérifiez l'orthographe du nom de votre salon dans DiscordSRV.yml et dans le DiscordSRV.yml d'EliteMobs
  • Essayez d'utiliser l'ID numérique du salon plutôt que son nom
  • Assurez-vous que le salon est correctement configuré dans le config.yml de DiscordSRV

La commande de test ne fonctionne pas :

  • Vérifiez que vous disposez de la permission elitemobs.discord.message
  • Utilisez la syntaxe correcte : /em discord <message> (avec un message)
  • Consultez la console du serveur pour d'éventuels messages d'erreur