Schedule Events
System geplanter Ereignisse mit Erinnerungen und automatischem Countdown. Ereignisse werden im Dashboard definiert, Instanzen über Befehle geplant.
Befehle
/event schedule
Plant eine neue Instanz eines gespeicherten Ereignisses für ein bestimmtes Datum und Uhrzeit.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| event_name | string | Ja | Name des gespeicherten Ereignisses (teilweise Suche, case-insensitive) |
| date | string | Ja | Datum im Format YYYY-MM-DD |
| time_str | string | Ja | Uhrzeit im 24h-Format HH:MM |
Berechtigungen: Server-Administrator
Beispiel: /event schedule event_name:Kill Event date:2026-06-15 time_str:20:00
Erfolg: Ephemerale Bestätigung mit Name, Datum (Discord-Timestamp-Format — automatische Zeitzonenkonvertierung) und Countdown
Fehler:
- Keine Administrator-Berechtigung
- Ereignis nicht gefunden (im Dashboard erstellen)
- Ungültiges Datums-/Zeitformat
Die Uhrzeit wird als UTC+2 (MESZ) interpretiert. Discord konvertiert die Anzeige automatisch in die Zeitzone jedes Benutzers.
/event list
Zeigt die Liste bevorstehender geplanter Ereignisse.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| (keine) | — | — | — |
Berechtigungen: Jeder (Everyone)
Beispiel: /event list
Erfolg: Embed "📅 Upcoming Events" mit Liste der bis zu 10 nächsten Ereignisse (Name + Datum/Zeit + Countdown)
Fehler:
- Keine bevorstehenden Ereignisse (ephemerale Information)
Die Liste zeigt nur Instanzen mit Status scheduled und einem zukünftigen Datum. Vergangene, stornierte und verpasste Ereignisse werden nicht angezeigt.
/event cancel
Storniert die nächste bevorstehende Instanz eines Ereignisses.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| event_name | string | Ja | Name des zu stornierenden Ereignisses (teilweise Suche) |
Berechtigungen: Server-Administrator
Beispiel: /event cancel event_name:Kill Event
Erfolg: Ephemerale Stornierungsbestätigung
Fehler:
- Keine Administrator-Berechtigung
- Keine bevorstehende Instanz mit diesem Namen gefunden
Erinnerungssystem
Der Bot sendet automatisch Erinnerungen vor Ereignisbeginn:
Schleifen-Funktionsweise (alle 30 Sekunden)
- Ruft alle Instanzen mit Status
scheduledab, die innerhalb von 24h beginnen - Prüft für jede Instanz die konfigurierten Erinnerungs-Offsets (
reminder_offsets_minutes) - Wenn die aktuelle Zeit im ±30s-Fenster des Erinnerungszeitpunkts liegt → sendet Embed
- Vor dem Senden einer neuen Erinnerung wird die vorherige gelöscht (Anti-Spam)
- Wenn das Ereignis beginnt → sendet "🚀 Event is starting NOW!" (Auto-Löschung nach 15 Min)
Offset-Beispiel
Wenn reminder_offsets_minutes = [60, 15, 5] und das Ereignis um 20:00 ist:
- 19:00 → Erinnerung "in 1 Stunde"
- 19:45 → Erinnerung "in 15 Minuten"
- 19:55 → Erinnerung "in 5 Minuten"
- 20:00 → "Event is starting NOW!"
Verpasste Ereignisse
Wenn der Bot offline war und das Ereignis mehr als 1 Stunde überfällig ist, wird die Instanz automatisch als missed markiert (keine verspäteten Benachrichtigungen).
Ereignisse erstellen
Ereignisse (Definitionen/Vorlagen) werden im Dashboard erstellt:
- Dashboard → Cog "Schedule Events" → Edit
- CRUD-Oberfläche zum Erstellen/Bearbeiten/Löschen von Events
- Jedes Ereignis hat:
- Name
- Kanal (oder Standard)
- Embed-Vorlage (Titel, Beschreibung, Farbe, Bilder) mit Platzhalter
{countdown} - Erinnerungs-Offsets (Liste der Minuten vor Start)
- Optionaler
content(Text über dem Embed)
Platzhalter {countdown}
In der Vorlage kann {countdown} verwendet werden — wird durch Discord Timestamp Relative ersetzt (<t:UNIX:R>), der automatisch "in X Minuten/Stunden" anzeigt.
Instanz-Status
| Status | Beschreibung |
|---|---|
scheduled | Geplant, wartet auf Start |
started | "starting NOW"-Nachricht gesendet |
missed | Verpasst (Bot offline / >1h nach Zeit) |
cancelled | Vom Administrator storniert |
Konfiguration
| Option | Beschreibung | Standardwert |
|---|---|---|
default_channel_id | Standardkanal für Ereignisse | keine |
Die restliche Konfiguration (Events, Vorlagen, Offsets) wird pro Event im Dashboard verwaltet und in der Tabelle schedule_events der Datenbank gespeichert.