Zum Hauptinhalt springen

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.

ParameterTypErforderlichBeschreibung
event_namestringJaName des gespeicherten Ereignisses (teilweise Suche, case-insensitive)
datestringJaDatum im Format YYYY-MM-DD
time_strstringJaUhrzeit 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
Zeitzone

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.

ParameterTypErforderlichBeschreibung
(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)
Filterung

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.

ParameterTypErforderlichBeschreibung
event_namestringJaName 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)

  1. Ruft alle Instanzen mit Status scheduled ab, die innerhalb von 24h beginnen
  2. Prüft für jede Instanz die konfigurierten Erinnerungs-Offsets (reminder_offsets_minutes)
  3. Wenn die aktuelle Zeit im ±30s-Fenster des Erinnerungszeitpunkts liegt → sendet Embed
  4. Vor dem Senden einer neuen Erinnerung wird die vorherige gelöscht (Anti-Spam)
  5. 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:

  1. Dashboard → Cog "Schedule Events" → Edit
  2. CRUD-Oberfläche zum Erstellen/Bearbeiten/Löschen von Events
  3. 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

StatusBeschreibung
scheduledGeplant, wartet auf Start
started"starting NOW"-Nachricht gesendet
missedVerpasst (Bot offline / >1h nach Zeit)
cancelledVom Administrator storniert

Konfiguration

OptionBeschreibungStandardwert
default_channel_idStandardkanal für Ereignissekeine

Die restliche Konfiguration (Events, Vorlagen, Offsets) wird pro Event im Dashboard verwaltet und in der Tabelle schedule_events der Datenbank gespeichert.