discord-emoji-apply-bot
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Ein Discord Bot, bei dem sich Member mit Emoji-Reaktionen auf einer Nachricht für Rollen bewerben können. Admins sehen die Bewerbungen in einem separaten Channel und können sie akzeptieren oder ablehnen.
- Emoji-Reaktions-Bewerbung — User reagieren auf eine Panel-Nachricht mit einem Emoji
- Admin-Review — Bewerbungen erscheinen in einem Admin-Channel mit Akzeptieren/Ablehnen-Buttons
- Automatische Rollenvergabe — Bei Akzeptierung bekommt der User die Rolle automatisch
- Vollständiges Logging — Alle Aktionen werden in einem Log-Channel protokolliert
| Command | Beschreibung |
|---|---|
/setup-create | Kanäle konfigurieren (Nachricht, Anfragen, Log, Setup) |
/setup-config | Aktuelle Konfiguration anzeigen |
/emoji-add | Emoji → Rolle Zuordnung hinzufügen |
/emoji-remove | Emoji → Rolle Zuordnung entfernen |
/emoji-edit | Emoji → Rolle Zuordnung bearbeiten |
/apply-send | Bewerbungs-Panel senden/aktualisieren |
| Command | Beschreibung |
|---|---|
/owner-add | Bot-Owner hinzufügen |
/owner-remove | Bot-Owner entfernen |
/owner-list | Alle Bot-Owner anzeigen |
/key-add | Key-User mit erweiterten Rechten hinzufügen |
/key-remove | Key-User entfernen |
/key-list | Alle Key-User anzeigen |
/maintenance | Wartungsmodus ein/aus (Bot für normale User deaktivieren) |
/restart | Bot-Neustart (DB-Migrationen neu ausführen) |
/support-create | Support-Server mit Kanälen & Panels erstellen |
/support-delete | Support-Server Setup löschen |
Rendering mermaid diagram...
main.ts — HTTP Endpoint (Discord Interactions)
commands/
router.ts — Command-Dispatcher
emoji.ts — /emoji-add, /emoji-remove, /emoji-edit
apply.ts — /apply-send
setup.ts — /setup-create, /setup-config
owner.ts — Owner-Only Commands
handlers/
buttons.ts — Akzeptieren/Ablehnen Button Handler
discord/
api.ts — Discord REST API Helpers
handler.ts — Interaction Router & Response Helpers
verify.ts — Ed25519 Signatur-Verifizierung
embeds.ts — Embed-Builder
permissions.ts — Owner/Key-User/Admin Checks
commands.ts — (Legacy) Slash Command Definitions
buttons.ts — (Legacy) Button Handler
database/
schema.ts — SQLite Migrations & Queries
cron/
poll-reactions.ts — Pollt Emoji-Reaktionen (Interval)
scripts/
register-commands.ts — Registriert Slash Commands bei Discord
| Variable | Beschreibung |
|---|---|
DISCORD_BOT_TOKEN | Bot Token aus dem Developer Portal |
DISCORD_PUBLIC_KEY | Public Key für Signatur-Verifizierung |
DISCORD_APPLICATION_ID | Application ID des Bots |
BOT_OWNER_ID | Discord User ID des Hauptbesitzers |
- Bot im Discord Developer Portal erstellen
- Environment Variables setzen
scripts/register-commands.tseinmal ausführen- Bot Interactions Endpoint URL auf die
main.tsEndpoint-URL setzen - Bot zum Server einladen (Scopes:
bot,applications.commands) /setup-createauf dem Server ausführen/emoji-addum Emoji-Rollen hinzuzufügen/apply-sendum das Bewerbungs-Panel zu senden
- Owner — Vollzugriff auf alle Commands (über
BOT_OWNER_IDoder/owner-add) - Key-User — Erweiterte Rechte, ähnlich wie Admin (über
/key-add) - Discord Admin — Server-Admins können Emoji-Commands nutzen
- Member — Können sich nur über Emoji-Reaktionen bewerben
Der Wartungsmodus deaktiviert den Bot für alle außer Owner.