Zum Hauptinhalt springen

DiscordSRV-Integration

EliteMobs verwendet DiscordSRV, um die Übertragung von Ankündigungen mit Prioritätsstufe 3 und höher zu ermöglichen. Du kannst mehr über das Ankündigungsprioritätssystem hier lesen.

Im Wesentlichen bedeutet dies, dass einige besondere benutzerdefinierte Bosse Nachrichten auf Discord senden können, die so aussehen:

Beispiel einer Discord-Nachricht

Gedacht ist dies für einen eigenen EliteMobs-Ankündigungskanal. Dort können Spieler nachsehen, welche interessanten Weltbosse gerade leben, sie besiegen und ihren Erfolg in der Bestenliste zeigen.

Alles einrichten

DiscordSRV einrichten​

DiscordSRV ist ein anderes Plugin, das nicht von mir entwickelt wurde. Du findest deren ausführliche Einrichtungsanleitung hier. Falls du Schwierigkeiten bei der Einrichtung hast, findest du deren Support-Raum hier. Ich kann keinen Support für dieses Plugin leisten, wende dich bitte an die Entwickler für diesen Teil der Installation.

EliteMobs wird gegen DiscordSRV 1.28.0 kompiliert. Prüfe mit dem Testbefehl unten, ob die Zustellung mit der auf deinem Server installierten Version funktioniert.

Die EliteMobs-DiscordSRV-Konfiguration einrichten​

Sobald du DiscordSRV korrekt konfiguriert hast (und du musst testen, ob es wirklich funktioniert, bevor du zu diesem Schritt übergehst), besteht die EliteMobs-Konfiguration nur aus einem Schritt.

Gehe zur Konfigurationsdatei DiscordSRV.yml im EliteMobs-Konfigurationsordner (typischerweise plugins/EliteMobs/DiscordSRV.yml) und du findest eine Konfigurationsoption namens announcementRoomName.

Es gibt drei Werte, die du für diese Nachricht verwenden kannst. Ich empfehle Nr. 1.

  1. [Empfohlen] Der Name des Raums, wie du ihn in der DiscordSRV-Konfigurationsdatei konfiguriert hast. Es spielt keine Rolle, wie du den Raum genannt hast, nur dass du den korrekten Namen verwendest. Hier ist ein Beispiel des Raums, den ich für EliteMobs-Events konfiguriert habe: Beispiel mit Kanalname In meinem Fall sollte die Option announcementRoomName: EMEvents lauten.

  2. Die ID des Raums, wie du sie in der DiscordSRV-Konfigurationsdatei konfiguriert hast. Hier ist ein Beispiel des Raums. Bitte beachte, dass jeder Raum einzigartig ist. Ich zeige die Bilder nur als Beispiel, versuche nicht, die ID-Nummern zu kopieren. Es wird nicht funktionieren. Dein Setup sollte einen einzigartigen Satz von Nummern basierend auf deiner Discord-Raum-ID haben. Beispiel mit Kanal-ID

  3. [Weniger zuverlässig] Der Kanalname, wie er auf Discord erscheint. Die abschließende Suche ignoriert Groß- und Kleinschreibung und nimmt den ersten passenden Textkanal. Doppelte Namen können daher zum falschen Ziel führen. DiscordSRV und sein Bot müssen weiterhin eingerichtet sein und Zugriff auf den Kanal haben; diese Namenssuche selbst benötigt keine Spielkanal-Zuordnung.

Technische Hinweise​

  • Nachrichten, die an Discord gesendet werden, haben Minecraft-Farbcodes automatisch entfernt, um eine korrekte Anzeige zu gewährleisten
  • Discord-Nachrichten werden asynchron gesendet, um Server-Lag zu vermeiden
  • EliteMobs verwendet eine dreistufige Suche, um deinen Discord-Kanal zu finden: zuerst nach Kanal-ID (nur wenn announcementRoomName ausschließlich aus Ziffern besteht), dann nach DiscordSRVs Kanal-Zuordnung und schließlich nach Kanalnamen-Suche
  • Automatische Inhaltsankündigungen benötigen Priorität 3 oder höher: Spawn-, Todes- und Fluchtnachrichten benutzerdefinierter Bosse sowie startMessage/endMessage benutzerdefinierter Events. Der manuelle Testbefehl unten sendet direkt, ohne eine Inhaltspriorität zu prüfen.
  • Dieselben Nachrichten, die im Spiel angezeigt werden, werden an Discord gesendet
  • Der Kanal wird für jede Ankündigung erneut gesucht, daher wird ein korrigierter announcementRoomName nach /em reload wirksam. Findet die Suche nichts, wird Channel room <name> is not valid! protokolliert; lehnt Discord eine Nachricht ab, wird DiscordSRV announcement failed for <name> protokolliert.

Testen​

Du kannst den Befehl /em discord <message> verwenden, um zu testen, ob deine Konfiguration funktioniert. Ersetze <message> durch einen beliebigen Text, den du an Discord senden möchtest.

Beispiel: /em discord Testnachricht von EliteMobs!

Prüfe, ob die Nachricht im vorgesehenen Discord-Kanal erscheint. Die Befehlsbestätigung bestätigt nur einen Sendeversuch. Sie kann auch erscheinen, wenn DiscordSRV fehlt, noch der Platzhalter eingestellt ist oder die Kanalsuche scheitert. Ohne Nachricht in Discord ist die Zustellung nicht nachgewiesen.

Hinweis: Dieser Befehl erfordert die Berechtigung elitemobs.discord.message

Zusätzlich kannst du /em discord (ohne Nachricht) verwenden, um den Einladungslink zum EliteMobs-Discord-Server für Support und Downloads anzuzeigen. Dieser Befehl erfordert die Berechtigung elitemobs.discord.link.

Fehlerbehebung​

Nachrichten erscheinen nicht auf Discord:

  • Überprüfe, ob DiscordSRV installiert ist und funktioniert (teste zuerst mit DiscordSRVs eigenen Befehlen)
  • Stelle sicher, dass announcementRoomName NICHT auf den Standard-Platzhalterwert gesetzt ist
  • Stelle sicher, dass der Raumname/die ID genau mit dem übereinstimmt, was in deiner DiscordSRV-Konfiguration steht
  • Überprüfe die Konsole auf EliteMobs-Warnungen zur Discord-Integration
  • Überprüfe, ob du die Berechtigung elitemobs.discord.message zum Testen hast

Kanal-nicht-gefunden-Fehler:

  • Überprüfe die Schreibweise deines Kanalnamens in beiden Dateien, DiscordSRV.yml und EliteMobs DiscordSRV.yml
  • Versuche die numerische Kanal-ID anstelle des Namens zu verwenden
  • Stelle sicher, dass der Kanal in DiscordSRVs config.yml korrekt konfiguriert ist

Testbefehl funktioniert nicht:

  • Überprüfe, ob du die Berechtigung elitemobs.discord.message hast
  • Verwende die korrekte Syntax: /em discord <message> (mit einer Nachricht)
  • Überprüfe die Serverkonsole auf Fehlermeldungen