Zum Inhalt springen

Slash-Command-Prüfer

Füge die Antwort von Discords Commands-Endpoint ein. Heraus kommt die Liste, die deine Nutzer tippen können: Unterbefehle aufgelöst, Kontextmenüs aussortiert, Doppelte entfernt.

Die Antwort des Commands-Endpoints, ein Objekt darum herum oder ein einzelner Befehl. Die Datei bleibt auf deinem Rechner.

Woher das JSON kommt

Discord gibt jedem Entwickler die registrierten Befehle seines Bots als JSON heraus, über den Endpoint `/applications/{id}/commands` mit dem Bot-Token im Authorization-Header. Ein einziger curl-Aufruf genügt; die Antwort ist eine Liste von Befehlsobjekten mit Namen, Beschreibungen und Optionen.

Diese Liste ist als Datenquelle besser als jedes Abtippen: Sie ist vollständig, sie ist aktuell, und sie enthält genau die Beschreibungen, die deine Nutzer in Discord sehen. Der Prüfer hier macht daraus eine lesbare Liste.

Was der Prüfer mit der Liste macht

Unterbefehle werden zu dem aufgelöst, was man tatsächlich tippen kann: `/hosting` mit den Unterbefehlen `status` und `logs` wird zu hosting status und hosting logs, der bloße Ordner `/hosting` verschwindet, denn er lässt sich nicht aufrufen. Kontextmenü-Befehle, also Rechtsklick-Aktionen auf Nutzer und Nachrichten, werden gezählt und übersprungen.

Doppelte Namen fallen weg; sie entstehen, wenn globale und Server-Befehle in einer Datei landen. Was übrig bleibt, ist die Liste, die auch das Einreichungsformular hier versteht: Ein Eintrag auf Topbot.gg kann seine Befehle direkt aus demselben JSON übernehmen.

Häufige Fragen

Wie bekomme ich die Befehlsliste meines Bots als JSON?
Mit einem GET auf discord.com/api/v10/applications/DEINE_APP_ID/commands und dem Header „Authorization: Bot DEIN_TOKEN". Das funktioniert nur für deinen eigenen Bot, weil der Token die Berechtigung trägt. Die vollständige Anleitung mit Beispielen in mehreren Sprachen steht auf unserer Seite zu Bot-Befehlen.
Warum tauchen meine Kontextmenü-Befehle nicht auf?
Kontextmenü-Befehle haben in Discords JSON einen anderen Typ als Slash-Commands und lassen sich nicht als Text eintippen, deshalb überspringt der Prüfer sie bewusst und weist die Anzahl aus. Eine Befehlsliste soll zeigen, was man tippen kann; Rechtsklick-Aktionen gehören in die Beschreibung des Bots.
Warum steht mein Hauptbefehl nicht in der Liste, seine Unterbefehle aber schon?
Weil Discord einen Befehl mit Unterbefehlen nicht direkt aufrufbar macht: /hosting allein existiert für Nutzer nicht, erst /hosting status lässt sich tippen. Der Prüfer bildet genau das ab und zeigt jede aufrufbare Form als eigene Zeile, der bloße Gruppenname entfällt.
Was fange ich mit der geprüften Liste an?
Zum Beispiel in deinen Eintrag auf Topbot.gg übernehmen: Das Einreichungsformular und das Dashboard verstehen dasselbe JSON und füllen die Befehlsliste deines Listings damit. Oder als Markdown kopieren und in deine README, deine Doku oder deinen Support-Server stellen.
Wie viele Slash-Commands darf ein Bot überhaupt haben?
Discord erlaubt 100 globale Chat-Befehle je Anwendung, dazu 100 je Server. Durch Unterbefehle wächst die Zahl der aufrufbaren Formen aber weit darüber hinaus: Ein Befehl darf bis zu 25 Optionen tragen, und Gruppen verschachteln eine Ebene tief. Ein Bot mit 200 tippbaren Formen ist deshalb völlig normal.

Dein Bot kann mehr, als hier steht?

Ein Eintrag im Verzeichnis zeigt Befehle, Beschreibung und Statistiken an einem Ort. Kostenlos, von Hand geprüft.