1 GrumpyReactionRoles
darksoon edited this page 2026-05-12 21:49:21 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Reaction Roles — Self-Service Rollen-Panels

GrumpyReactionRoles ermöglicht es Mitgliedern, sich Rollen selbst zu vergeben — per Button oder Dropdown-Menü, ohne einen Mod fragen zu müssen. Admins richten einmalig Panels ein, User klicken einfach.


Aktivierung

In configs/config.yml:

addons:
  reactionroles: true

Beim ersten Start wird configs/modules/reactionroles.yml erzeugt.


reactionroles.yml

enabled: true
defaultColor: "#5865F2"    # Standard-Farbe für neue Panels

Setup-Workflow

Ein Panel besteht aus mehreren Gruppen — jede Gruppe ist eine Button-Zeile oder ein Dropdown. Jede Gruppe enthält Rollen-Einträge.

Panel
 └── Gruppe 1 (z.B. Buttons, max 1 Wahl → Farb-Rollen)
 │    ├── Blau-Rolle
 │    ├── Rot-Rolle
 │    └── Grün-Rolle
 └── Gruppe 2 (z.B. Dropdown, unbegrenzt → Ping-Rollen)
      ├── @Events-Ping
      └── @Updates-Ping

Schritt 1 — Panel erstellen

/reactionrole panel create #kanal Wähle deine Rollen

Schritt 2 — Gruppe hinzufügen

/reactionrole group add <panel-id> buttons label:"Farb-Rollen" max:1
  • style: buttons (Buttons) oder select (Dropdown)
  • max: 0 = unbegrenzt · 1 = Exklusiv-Wahl (alte Rolle wird automatisch entfernt) · 225 = Multi-Select
  • required-role: User braucht diese Rolle um die Gruppe zu nutzen (optional)
  • placeholder: Dropdown-Platzhaltertext

Schritt 3 — Rollen hinzufügen

/reactionrole role add <panel-id> <group-id> @Blaue-Rolle label:"💙 Blau"
/reactionrole role add <panel-id> <group-id> @Rote-Rolle label:"❤️ Rot" emoji:"❤️"

Schritt 4 — Deployen

/reactionrole panel deploy <panel-id>

Das Panel wird in den konfigurierten Kanal gepostet. Wenn die Nachricht gelöscht wird, einfach erneut /reactionrole panel deploy ausführen — postet automatisch neu.


Commands-Übersicht

Command Beschreibung Berechtigung
/reactionrole panel create Panel erstellen Manage Roles
/reactionrole panel deploy Panel posten / aktualisieren Manage Roles
/reactionrole panel delete Panel löschen Manage Roles
/reactionrole panel list Alle Panels anzeigen Manage Roles
/reactionrole panel info Panel-Details Manage Roles
/reactionrole group add Gruppe hinzufügen Manage Roles
/reactionrole group remove Gruppe entfernen Manage Roles
/reactionrole role add Rolle zur Gruppe hinzufügen Manage Roles
/reactionrole role remove Rolle entfernen Manage Roles

Alle Subcommands haben Autocomplete für Panel-ID und Gruppe-ID.


Limits

Was Limit
Gruppen pro Panel 5 (Discord: max 5 Action Rows)
Buttons pro Gruppe 25 (5 Rows × 5 Buttons)
Optionen pro Dropdown 25
Panels pro Server Unbegrenzt

Sicherheit

  • Rollen-Validierung: Button-CustomIDs werden gegen die DB validiert — manipulierte Klicks mit fremden Rollen-IDs werden abgelehnt.
  • Per-User-Lock: Doppel-Klick-Schutz verhindert Race Conditions bei maxSelections.
  • Hierarchie-Check: Bot kann keine Rollen vergeben, die höher als seine eigene Höchst-Rolle sind.
  • Guild-Ownership: Alle Subcommands prüfen, dass das Panel zum eigenen Server gehört.