2 GrumpyHelp
darksoon edited this page 2026-05-07 22:13:47 +02:00
This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Help — Help-Hub-Channel

Auto-deploytes Help-Embed mit Modul-Dropdown und Quick-Action-Buttons. User kriegen alle Commands auf einen Blick und können typische Aktionen (Ticket öffnen, Verifizieren) direkt vom Embed aus ansteuern.


Aktivierung

In configs/config.yml:

addons:
  help: true

channels:
  help: "HELP_CHANNEL_ID"   # Channel in dem das Help-Embed gepostet wird

Beim nächsten Start postet der Bot automatisch das Embed. Idempotent — beim erneuten Start nur, wenn das gespeicherte Embed gelöscht wurde.


help.yml

configs/modules/help.yml:

enabled: true
embed:
  author:
    name: "%guild_name%"
    iconUrl: "%guild_icon%"
  title: 📚 Befehlsübersicht
  description: |-
    **Willkommen im Help-Hub!**

    Hier findest du alle Funktionen des Bots auf einen Blick.

    **🎯 So funktioniert es:**
    1⃣ Wähle ein Modul aus dem Dropdown
    2⃣ Du bekommst eine Liste aller verfügbaren Befehle
    3⃣ Klicke auf einen Quick-Action-Button für häufige Aktionen
  color: "#5865F2"
  thumbnail: "%guild_icon%"
  footer:
    text: "%guild_name% · Help-Hub"
  timestamp: true
quickActions:
  - label: Ticket öffnen
    emoji: 🎫
    style: Primary
    action: ticket
  - label: Verifizieren
    emoji: 
    style: Success
    action: verify
moduleDescriptions: {}

Felder

Feld Bedeutung
enabled Master-Toggle. Auch bei addons.help: true lässt sich das Modul hier ausschalten.
embed Vollständiges Embed (Title, Description, Color, Author, Thumbnail, Footer, Fields, Timestamp). Placeholders: %guild_name%, %guild_icon%.
quickActions Liste von Buttons unter dem Embed. action: ticket (springt in den Support-Channel), verify (in den Verify-Channel) oder link (mit url-Feld). style: Primary / Secondary / Success / Danger / Link.
moduleDescriptions Optionale Per-Modul-Texte für das Dropdown. Key = Modul-Name, Value = Description.

Commands

Command Berechtigung Funktion
/help show Alle Inline-Help mit Modul-Dropdown (ephemeral)
/help module <name> Alle Direkt die Commands eines Moduls zeigen
/help redeploy Server verwalten Help-Embed neu posten (löscht das alte, postet ein neues)
/help reload Server verwalten help.yml neu laden

Verhalten

Auto-Deploy

Beim Start prüft der Bot:

  • Liegt eine Message-ID in der DB (HelpHubMessage)?
  • Existiert die Message noch im konfigurierten channels.help?
  • Falls nein → neu posten, neue ID speichern.

Channel-Wechsel

Wird channels.help auf einen anderen Channel geändert:

  • Beim nächsten Start löscht der Bot das alte Embed im alten Channel
  • Postet das neue Embed im neuen Channel
  • DB-Eintrag wird aktualisiert

Modul-Dropdown

Das Dropdown unter dem Embed listet alle aktivierten Module aus addons:. Der Filter zeigt User-Commands für alle, Staff-only-Commands nur Usern mit der entsprechenden Discord-Permission (ModerateMembers, KickMembers, BanMembers, Manage*).

Unbekannter Modul-Key

/help module <name> mit einem nicht existierenden oder deaktivierten Modul zeigt eine freundliche Fehler-Embed (statt einer leeren Liste).

Lange Command-Listen

Lange Modul-Command-Listen werden zeilenweise abgeschnitten (kein Mid-Line-Cut) und mit …und N weitere ergänzt — das hält das Embed immer unter dem Discord-Limit ohne unleserliche Halb-Sätze.

Quick-Action-Buttons

action: ticket → Link zu channels.support action: verify → Link zu channels.verify action: link → frei wählbare URL (z.B. zum Forum)

Wenn der referenzierte Channel nicht konfiguriert ist, wird der Button automatisch ausgeblendet.

Stale-Button-Schutz

Die Button- und Dropdown-IDs werden anhand der Konfiguration validiert (nicht über die customId der Discord-Komponente). Klickt jemand auf einen alten Button aus einem nicht mehr deployten Embed, kriegt er eine ephemeral „Diese Aktion ist nicht mehr verfügbar"-Antwort.


FAQ

Wie ändere ich die Buttons? configs/modules/help.yml > quickActions editieren, dann /help reload und /help redeploy.

Können User das Embed im Channel benutzen, ohne dass es ihnen gehört? Ja — alle Interaktionen (Dropdown, Button) sind ephemeral. Nur der klickende User sieht die Antwort.

Brauche ich für /help einen eigenen Channel? Für /help show nicht — der Command funktioniert überall ephemeral. Der channels.help-Channel ist nur für das Auto-deployte Hub-Embed.