Artikel

Selbst zuweisbare Rollen verständlich gestalten

Themenrollen sollen Orientierung schaffen und jederzeit verständlich änderbar sein. Ein Benachrichtigungsmenü zeigt, wie Auswahlregeln, Zuständigkeit, alte Nachrichten und fehlgeschlagene Rollenwechsel zusammenpassen und welche Ansätze Yurnas vorhandene Rollenverwaltung dafür bietet.

BlackZackBlackZack

1534 Wörter · 8 Min. Lesezeit

  • yurna
  • rollen
  • community
  • bedienung
Selbst zuweisbare Rollen verständlich gestalten

Schematische Illustration zur Artikelserie; keine privaten Betriebsdaten.

Ein Mitglied möchte über Spieleabende informiert werden und findet eine Nachricht mit sechs bunten Symbolen. Welches Symbol bedeutet Veranstaltungen, welches allgemeine Neuigkeiten? Wird eine Rolle beim zweiten Klick entfernt? Darf man mehrere auswählen? Wenn diese Fragen unbeantwortet bleiben, ist die Rollenverwaltung technisch vorhanden, aber im Alltag nicht selbsterklärend. Selbst zuweisbare Rollen sind ein kleines Einstellungsmenü. Sie benötigen dieselbe Sorgfalt wie ein Formular im Dashboard: verständliche Auswahl, sichtbare Wirkung und einen sicheren Weg zurück.

Yurnas untersuchter Quellstand unterscheidet Rollenangebote auf bestehenden Nachrichten und vom Bot verwaltete Nachrichten. Außerdem sind Reaktionen und Dropdown-Auswahl als Varianten vorgesehen. Ein Synchronisationsprozess baut verwaltete Nachrichten und verarbeitet Aufgaben zur Aktualisierung. Das zeigt verschiedene technische Möglichkeiten, entscheidet aber noch nicht darüber, welche Variante für eine Community geeignet ist. Die folgenden Überlegungen beziehen sich auf einen konkreten Entwurf für freiwillige Benachrichtigungsthemen und benennen die Grenzen dieser Entscheidung.

Interessen und Befugnisse nicht vermischen

Eine Themenrolle beschreibt zunächst eine freiwillige Auswahl. Sie kann etwa festlegen, wer Hinweise zu Veranstaltungen erhalten möchte. Eine Verwaltungsrolle verleiht dagegen Befugnisse. Beide werden von Discord als Rollen dargestellt, erfüllen aber völlig unterschiedliche Zwecke. Das Auswahlmenü sollte deshalb nur ausdrücklich freigegebene Rollen kennen. Eine allgemeine Liste aller vom Bot technisch bearbeitbaren Rollen ist keine geeignete Grundlage für Selbstzuweisung. Technische Erreichbarkeit ist weiter gefasst als die beabsichtigte Funktion.

Auch Zugangsrollen verdienen eine gesonderte Betrachtung. Wenn eine Themenauswahl zusätzlich einen bislang unsichtbaren Bereich öffnet, muss diese Wirkung in der Beschreibung stehen. Sonst erscheint eine harmlose Benachrichtigungsentscheidung überraschend als Änderung des Serverzugangs. Umgekehrt sollte ein Mitglied nicht annehmen müssen, dass jede Interessensrolle neue Kanäle sichtbar macht. Die konkrete Wirkung wird pro Option erklärt. Ein kurzer Satz ist dabei nützlicher als ein dekoratives Symbol, dessen Bedeutung nur langjährige Mitglieder kennen.

Die Serververwaltung prüft außerdem, ob ausgewählte Rollen später andere Rechte erhalten könnten. Eine heute harmlose Rolle kann durch eine spätere Änderung mächtiger werden. Ein regelmäßiger Abgleich der freigegebenen Auswahl mit ihrer tatsächlichen Bedeutung verhindert, dass alte Menüs unbemerkt neue Befugnisse vergeben. Die Discord-Dokumentation zu Berechtigungen beschreibt die technischen Rollenmechanismen. Welche davon eine freiwillige Auswahl verwenden darf, bleibt eine eigene fachliche Regel von Yurna.

Eine Auswahlregel pro verständlicher Gruppe

Für das Beispiel gibt es drei Themen: Spieleabende, Projektneuigkeiten und Kreativrunden. Mitglieder dürfen beliebig viele dieser drei auswählen und jederzeit alle abwählen. Diese Regel gehört direkt an das Menü. Eine andere Gruppe könnte eine einzelne bevorzugte Sprache anbieten. Beide Gruppen sollten nicht in derselben Auswahl vermischt werden, weil ihre Regeln verschieden sind. Wer Interessen mehrfach wählen darf, erwartet nicht plötzlich, dass die letzte Auswahl eine vorherige Sprache entfernt.

Yurnas betrachteter Dropdown-Aufbau berücksichtigt eine Einstellung für Mehrfachauswahl und erlaubt eine leere Auswahl. Für den Entwurf ist entscheidend, welche Bedeutung eine leere Auswahl erhält. Hier heißt sie ausdrücklich: keine der von diesem Menü verwalteten Themenrollen. Sie bedeutet nicht, dass sämtliche Rollen des Mitglieds entfernt werden. Diese Grenze muss die ausführende Funktion einhalten. Ein Menü darf nur über die Rollen verfügen, die seinem eigenen Verwaltungsbereich zugeordnet sind.

Das verhindert Konflikte mit anderen Funktionen. Ein Mitglied kann zusätzlich eine manuell vergebene Teamrolle oder eine Anerkennungsrolle besitzen. Beim Speichern der Themenauswahl bleiben diese unberührt. Auch zwei Themenmenüs sollten nicht versehentlich dieselbe Rolle mit widersprüchlichen Regeln verwalten. Wenn eine Überschneidung notwendig ist, braucht sie eine ausdrücklich definierte Bedeutung. Meist ist es einfacher und besser erklärbar, jeder selbst verwalteten Rolle genau eine zuständige Auswahlgruppe zu geben.

Den gewünschten Endzustand übertragen

Ein Dropdown kann die vollständige gewünschte Auswahl ausdrücken. Das ist häufig robuster als eine Reihe von Umschaltbefehlen. Ein Umschalter bedeutet „ändere das Gegenteil des aktuellen Zustands“. Wird derselbe Aufruf versehentlich zweimal ausgeführt, kann die zweite Ausführung die erste rückgängig machen. Eine vollständige Auswahl bedeutet dagegen „diese Themen sollen aktiv sein“. Eine Wiederholung derselben Absicht führt zum selben Endzustand, sofern sich die zugrunde liegende Konfiguration nicht verändert hat.

// Entwurf: Es werden ausschließlich Rollen dieses Menüs verändert.
const roleDifference = (
  current: Set<string>,
  desired: Set<string>,
  managed: Set<string>
) => ({
  add: [...desired].filter(role => managed.has(role) && !current.has(role)),
  remove: [...managed].filter(role => current.has(role) && !desired.has(role)),
});

Die kleine Rechnung ist noch keine vollständige Rollenverwaltung. Zuvor muss geprüft werden, ob alle gewünschten Werte zu diesem Menü gehören. Danach folgt die tatsächliche Discord-Ausführung mit Fehlerbehandlung. Sie zeigt aber den wichtigen Umfang: Entfernt werden nur verwaltete Rollen, die nicht mehr gewünscht sind. Hinzugefügt werden nur gültige gewünschte Rollen, die fehlen. Eine unabhängige Teamrolle taucht in keiner der beiden Änderungslisten auf und bleibt dadurch außerhalb des Vorgangs.

Bei Reaktionen ist die Bedienung stärker an einzelne Ereignisse gebunden. Eine hinzugefügte Reaktion kann eine Rolle anfordern, eine entfernte Reaktion sie abwählen. Das kann für wenige offensichtliche Optionen angenehm sein. Allerdings muss der Ablauf auch Ereignisse nach einem Neustart und unvollständige lokale Informationen berücksichtigen. Entscheidend bleibt der Abgleich mit dem tatsächlichen Mitgliedszustand. Ein optisches Reaktionssymbol allein sollte nicht als unfehlbarer dauerhafter Nachweis einer Rollenmitgliedschaft behandelt werden.

Texte schreiben, die den nächsten Klick erklären

Die Überschrift des Beispielmenüs lautet „Wozu möchtest du Hinweise erhalten?“. Die Beschreibung erklärt Mehrfachauswahl und Abwahl. Jede Option nennt ein Thema und eine kurze Wirkung, etwa „Spieleabende – Einladungen zu gemeinsamen Runden“. Damit beschreibt das Menü einen Nutzen statt interner Rollennamen. Ein Emoji kann die Wiedererkennung unterstützen, trägt aber nicht allein die Bedeutung. Das ist besonders hilfreich bei unbekannten Symbolen oder einer Nutzung, bei der grafische Details schwerer wahrgenommen werden.

Die Discord-Komponentenreferenz beschreibt Auswahlkomponenten und ihre Beschriftungsfelder. Für den eigenen Entwurf ist nicht jede mögliche Komponente gleichermaßen hilfreich. Ein überschaubares Menü mit klaren Themen kann besser funktionieren als mehrere Reihen dekorativer Knöpfe. Die technische Obergrenze einer Komponente ist kein Gestaltungsziel. Wenn sehr viele Optionen nötig werden, lohnt sich zunächst eine verständliche Gruppierung, statt möglichst viele Einträge in dieselbe Nachricht zu drücken.

Die Antwort nach dem Speichern nennt den erreichten Zustand. „Deine Themen: Spieleabende und Kreativrunden“ ist eindeutiger als „Rollen aktualisiert“. Bei vollständiger Abwahl heißt sie beispielsweise, dass aus dieser Auswahl keine Hinweise mehr abonniert sind. Dadurch kann das Mitglied seine Absicht unmittelbar kontrollieren. Eine Rückmeldung, die lediglich die Anzahl geänderter Rollen nennt, wäre weniger hilfreich: Zwei Änderungen könnten sowohl zwei neue Themen als auch einen Austausch zwischen Themen bedeuten.

Teilweise fehlgeschlagene Änderungen erklären

Discord-Rollenänderungen können scheitern, obwohl das Menü korrekt angezeigt wurde. Die Bot-Rolle könnte verschoben worden sein oder eine Zielrolle existiert nicht mehr. Ein Ablauf, der mehrere Rollen einzeln verändert, kann zudem nach einem erfolgreichen Schritt abbrechen. Dann ist ein pauschales „fehlgeschlagen“ zu ungenau. Das Mitglied braucht den tatsächlich erreichten Zustand und einen Hinweis darauf, welche gewünschte Änderung noch fehlt. Dafür ist gegebenenfalls ein erneutes Laden der Mitgliedsrollen sinnvoll.

Im Beispiel sollen Spieleabende hinzugefügt und Projektneuigkeiten entfernt werden. Die erste Änderung gelingt, die zweite wird abgelehnt. Die Antwort sollte nicht behaupten, beide Themen entsprächen bereits der neuen Auswahl. Stattdessen zeigt sie, dass Spieleabende aktiv sind und Projektneuigkeiten noch nicht abgewählt werden konnten. Eine spätere Wiederholung derselben gewünschten Auswahl kann den fehlenden Schritt nachholen. Genau hier ist ein Endzustand hilfreicher als ein unbestimmter Umschaltbefehl.

Eine automatische Rücknahme der ersten Änderung ist nicht immer die beste Lösung. Auch sie kann scheitern und zusätzliche Anfragen erzeugen. Der Entwurf muss bewusst entscheiden, ob er bestmöglichen Abgleich mit sichtbarem Teilzustand oder eine aufwendigere Kompensation verfolgt. Für freiwillige Themenrollen ist ein klar erklärter Teilzustand oft angemessen. Für ein gegenseitig ausschließendes Zugangsmodell gelten möglicherweise strengere Anforderungen. Die Funktion der Rollen bestimmt, wie viel Zwischenzustand akzeptabel ist.

Alte Nachrichten und neue Konfiguration

Ein Rollenmenü kann lange im Server stehen. Währenddessen ändern sich Bezeichnungen, Rollen und Auswahlregeln. Deshalb sollte der Klick eine aktuelle Konfiguration laden und nicht blind einer alten eingebetteten Rollenkennung vertrauen. Yurnas Synchronisationscode verwendet Konfigurationsbezüge für verwaltete Nachrichten und kann fehlende Nachrichten erkennen. Diese Trennung zwischen Konfiguration und veröffentlichter Darstellung ist hilfreich, wenn Änderungen nachvollziehbar nach Discord übertragen werden sollen.

Wird ein Thema entfernt, muss geklärt werden, was mit bestehenden Mitgliedschaften passiert. Das Entfernen aus dem Menü bedeutet nicht automatisch, dass die Rolle bei allen Mitgliedern verschwinden soll. Vielleicht wird nur das Angebot vorübergehend pausiert. Vielleicht soll eine Rolle vollständig stillgelegt werden. Das sind verschiedene Verwaltungsaktionen. Die Oberfläche sollte sie getrennt anbieten und ihre Reichweite erklären. Ein kleiner redaktioneller Eingriff in eine Nachricht darf keine unerwartete Massenänderung auslösen.

Bei einer gelöschten verwalteten Nachricht kann eine bewusste Neuveröffentlichung sinnvoll sein. Bei einer fremden bestehenden Nachricht ist eine automatische Ersatznachricht möglicherweise nicht gewünscht. Der Quellstand unterscheidet diese Fälle bereits auf Ebene des Inhaltsmodus. Für die Bedienung sollte sichtbar bleiben, ob das Menü fehlt, neu veröffentlicht wurde oder noch auf Synchronisation wartet. „Gespeichert“ beschreibt nur die Konfiguration, nicht zwangsläufig die Erreichbarkeit des Angebots für Mitglieder.

Die Auswahl aus Mitgliedssicht testen

Der erste Test verwendet ein Mitglied ohne Themenrollen und mit einer unabhängigen Testrolle. Es wählt zwei Themen, ändert die Auswahl auf eines und entfernt schließlich alle. Nach jedem Schritt werden Antwort und tatsächliche Rollen verglichen. Die unabhängige Rolle bleibt erhalten. Danach wird dieselbe Auswahl zweimal gesendet. Der zweite Aufruf darf nichts umkehren. Diese einfachen Fälle prüfen den Kern des Menüs besser als eine bloße erfolgreiche Veröffentlichung der Nachricht.

Anschließend wird eine Zielrolle zwischen Anzeige und Ausführung gelöscht. Ein weiterer Versuch nimmt dem Bot die Möglichkeit, eine Rolle zu bearbeiten. Die Rückmeldungen müssen den Unterschied zwischen nicht mehr angebotener Option und vorübergehend nicht umsetzbarer Auswahl deutlich machen. Auch zwei schnell aufeinanderfolgende unterschiedliche Auswahlen werden geprüft. Der Ablauf darf eine ältere Absicht nicht unbemerkt nach der neueren anwenden. Falls die Reihenfolge nicht garantiert werden kann, braucht der Vorgang eine erkennbare Konfliktbehandlung.

Zum Schluss liest eine Person ohne Kenntnis der Einrichtung nur die Menünachricht. Sie soll erklären können, ob mehrere Themen erlaubt sind, wie sie alle abwählt und welche Benachrichtigungen folgen. Missverständnisse in diesem Gespräch sind wertvolle Hinweise auf die Beschriftung. Selbst zuweisbare Rollen funktionieren dann gut, wenn Mitglieder ihre Interessen ausdrücken können, ohne das interne Rollensystem zu verstehen. Yurnas technische Varianten liefern dafür Werkzeuge; die Klarheit entsteht durch begrenzte Zuständigkeit und ehrliche Rückmeldungen.