Zum Hauptinhalt springen

Konzeption der Discord-Integration

Diese Seite erklärt, wie die Discord-Integration in dzbot funktioniert und was zu prüfen ist, wenn Discord-Funktionen fehlen.

Was die Discord-Integration ermöglicht

Je nach Konfiguration und Berechtigungen kann dzbot:

  • Spieler mit Discord-Konten verknüpfen
  • Spitznamen mit Spielernamen im Spiel synchronisieren
  • Rollen zuweisen oder entfernen
  • Direktnachrichten senden
  • dedizierte Ticket-Channel erstellen, sowie pro Support-Level eine Kategorie und eine verwaltete Rolle
  • Panels für Anliegensarten posten, über die Spieler Tickets öffnen, und ihnen das Aufnahmeformular als Discord-Dialog zeigen
  • An Unterstützungs- oder Alarmkanäle posten
  • Einen Online-Spielerlisten-Kanal pflegen

Grundlagen der Bot-Installation

Die Installationsaufforderung für den Bot wird als Admin-Warnung angezeigt, wenn beide folgenden Bedingungen erfüllt sind:

  • ein Discord-Server aus dem verbundenen Discord-Konto des Administrators ist in den Einstellungen ausgewählt, und
  • dzbot erkennt, dass der Bot auf diesem Server nicht installiert ist.

Die Warnung enthält einen Discord-OAuth-Link, um den Bot hinzuzufügen, sowie einen erneuten Überprüfungslink, sobald er installiert ist. Sie erscheint nicht für Spieler oder auf der Shop-Frontend.

Den vollständigen Setup-Ablauf findest du unter Erste Schritte: Discord-Integration verbinden.

Eine Guild für mehrere Gameserver

Mehrere dzbot-Server können denselben Discord-Server auswählen — eine Community kann so zwei Gameserver über einen Discord betreiben. Eingehende Ereignisse (KI-Companion-Erwähnungen, über Discord eröffnete Tickets) werden dann über die Kategorie des Channels per Einstellung Zugeordnete Discord-Kategorien zugeordnet. Das erfordert bewusste Konfiguration — siehe Mehrere Gameserver in einer Discord-Guild für Einrichtung und Stolperfallen.

Ticket-Support-Level

Jedes Support-Level eines Servers besitzt zwei Discord-Objekte, die der Bot anlegt und pflegt:

  • eine Kategorie, in der die Ticket-Channel dieses Levels liegen, damit Mitarbeiter eines Levels nur an einer Stelle nachsehen müssen. Sie wird beim Anlegen des Levels erstellt und ist später unter Server Admin -> Tickets -> Level austauschbar; beim Wechsel wandern die bestehenden Channel des Levels mit.
  • eine Rolle, deren Mitgliedschaft dem Level-Recht in dzbot folgt. dzbot-Rechte sind hier die einzige Wahrheit, genau wie bei den Rollen connected und online — vergib sie nicht von Hand.

Weil die Levelsichtbarkeit kumulativ ist, erhält ein Mitarbeiter mit Level 3 auch die Rollen von Level 1 und 2, sodass die unteren Kategorien lesbar bleiben.

Beim Hochreichen wandert der Channel in die Kategorie des Ziel-Levels, und die Rollen-Overwrites werden getauscht. Das in dzbot gespeicherte Level ist maßgeblich: Schlägt ein Discord-Aufruf fehl, verbirgt die App das Ticket trotzdem korrekt und nur der Channel liegt falsch — das repariert Discord neu synchronisieren am Ticket.

Die frühere serverweite Einstellung „Discord-Tickets-Support-Rolle" wurde entfernt — eine einzelne Rolle, die jeden Ticket-Channel liest, ist in einem levelgetrennten System eine Hintertür.

Panels für Anliegensarten

Eine Anliegensart kann ein Panel in so vielen Channels besitzen, wie du brauchst — eines pro Channel: ein Embed mit Name und Beschreibung der Art und einem „Ticket öffnen"-Button pro gepflegter Sprache. Ein Klick öffnet das Aufnahmeformular dieser Art als Discord-Dialog, und aus den Antworten entsteht das Ticket — der Spieler verlässt Discord nie. Alle Panels einer Art sind austauschbar: ein Ticket aus dem Gäste-Channel ist dasselbe Ticket wie eines aus dem Mitglieder-Channel.

Was das für dein Discord-Setup bedeutet:

  • der Bot braucht Postrechte in jedem Panel-Channel; fehlen sie, schlägt das Veröffentlichen dort mit einer Warnung fehl und sonst passiert nichts, denn die Ticketerstellung hängt nicht an den Panels. Ein Speichervorgang, der einen Channel nicht erreicht, aktualisiert die übrigen Panels der Art trotzdem
  • jedes Panel wird bei jeder Änderung der Art an seiner Stelle bearbeitet, damit die Buttons immer zum aktuellen Formular passen. Löscht jemand eine Panel-Nachricht, merkt das der nächste Speichervorgang und bietet an, sie erneut zu veröffentlichen
  • Discord kann Nachrichten nicht verschieben, deshalb sortiert das Umsortieren der Anliegensarten die Panels nicht mit — die Aktion Panels neu aufbauen im Editor postet die Panels eines Channels neu
  • ein Discord-Dialog nimmt höchstens fünf Eingaben und kann keinen zweiten nach sich ziehen; deshalb ist ein Aufnahmeformular auf beiden Oberflächen auf fünf Felder begrenzt
  • auf einer geteilten Guild entsteht das Ticket auf dem Server, dem die Kategorie des Panel-Channels zugeordnet ist, Panels gehören also in die zugeordneten Kategorien ihres Servers — siehe Mehrere Gameserver in einer Discord-Guild

Veröffentlicht und neu aufgebaut werden Panels unter Server-Admin → Tickets → Anliegensarten; die Mechanik hinter dem Formular selbst steht im Ticket-Konzept.

Anforderungen an die Rollenhierarchie

Discord erlaubt es einem Bot nur, Rollen zu verwalten, die unterhalb der Bot-Rolle liegen. Wenn die Rollensynchronisierung nicht funktioniert, verschiebe die Bot-Rolle über die Rollen, die sie verwalten muss. Um sicherzustellen, dass der Bot alles tun kann, was er muss, stelle sicher, dass er die höchste Rolle im System hat.

Referenzen: https://docs.discord.com/developers/topics/permissions https://support.discord.com/hc/de/articles/214836687-Discord-Rollen-und-Berechtigungen

Berechtigungen für Spitznamen

Um seinen eigenen Spitznamen zu aktualisieren, benötigt ein Bot Spitznamen ändern. Um Spitznamen anderer Mitglieder zu aktualisieren, benötigt er Spitznamen verwalten.

Referenzen: https://support.discord.com/hc/de/articles/219070107-Server-Spitznamen https://docs.discord.com/developers/topics/permissions

Opt-in- und Opt-out-Verhalten

Wenn ein Benutzer sich abmeldet, werden Discord-basierte Benachrichtigungen für dieses Konto gestoppt. Es gibt zwei Möglichkeiten, wie Spieler den Erhalt von Discord-Nachrichten deaktivieren können:

Automatische Abmeldung bei Bot-Blockierung

Wenn der Spieler den Bot in Discord blockiert, wird er automatisch abgemeldet.

Explizite Abmeldung

Wir stellen einen expliziten Abmeldeendpunkt bereit, der in allen Nachrichten verlinkt ist, die der Bot direkt an Spieler sendet (per DM, nicht in Kanälen). Dies ermöglicht es Spielern, den Erhalt von Discord-Benachrichtigungen bei Bedarf einfach zu beenden.

Fehlerbehebung bei Abmeldungen

Oftmals erfolgen Abmeldungen ohne Kenntnis der Konsequenzen (oder unbewusst durch Bot-Blockierungen). Wenn Spieler sich über fehlende Benachrichtigungen (wie Basisalarme) beschweren, überprüfe stets den Abmeldestatus des betreffenden Spielers, indem du die Impersonationsfunktion verwendest. Abgemeldete Spieler erhalten auf allen Shop-Seiten eine deutliche Warnung, sich erneut anzumelden.

Allgemeine Überprüfungen bei fehlenden Discord-Funktionen

  • Discord-Server ist in Server-Admin → Einstellungen aus dem verbundenen Discord-Konto des Administrators ausgewählt
  • die Channel-/Kategorie-Dropdowns wurden nach dem Wechsel des Discord-Servers aktualisiert
  • Bot ist auf der richtigen Gilde installiert
  • Bot-Rolle steht über den von ihr verwalteten Rollen
  • Erforderliche Berechtigungen sind erteilt
  • Spieler ist nicht abgemeldet

Verwandte Dokumentation