Zum Hauptinhalt springen

Geplante Ereignisse (Schedule Events)

Das Schedule-Events-Modul verwaltet geplante Spielereignisse mit Erinnerungssystem, Countdown und automatischer Bereinigung. Ideal für Events in Dark War Survival wie KvK, War Rally oder andere wiederkehrende Aktivitäten.

Modul aktivieren

  1. Dashboard → Ihr Server → Toggle Schedule Events
  2. Klicken Sie auf Edit, um Ereignisdefinitionen zu erstellen
  3. Planen Sie Instanzen per Befehl oder über das Dashboard
  4. Speichern Sie die Änderungen

Konfiguration

OptionTypStandardBeschreibung
default_channel_idstring / nullnullStandardkanal für Erinnerungen

Ereignisdefinitionen (Erstellung im Dashboard)

Jede Ereignisdefinition enthält:

  • name — Ereignisname
  • template — Embed-Vorlage (Titel, Beschreibung, Farbe, Bild)
  • channel_id — Erinnerungskanal (oder null → verwendet Standard)
  • reminder_offsets_minutes — Liste der Offsets (z.B. [60, 30, 10] = 1h, 30m, 10m vorher)
  • is_active — ob die Definition aktiv ist

Dashboard — Konfiguration

Das Bearbeitungspanel von Schedule Events enthält:

  • Default Channel — Dropdown
  • Event Definitions — CRUD-Liste der Definitionen:
    • Neue Definition erstellen (Name, Vorlage, Kanal, Offsets)
    • Bestehende bearbeiten
    • Löschen
  • Instances — Übersicht geplanter Instanzen (bevorstehende)

Filterung

Dashboard und Befehl /event list zeigen nur zukünftige Ereignisse an (status = 'scheduled' AND starts_at > now). Vergangene/abgeschlossene werden nicht angezeigt.

Befehle

/event schedule

Plant eine neue Instanz eines gespeicherten Ereignisses.

ParameterErforderlichBeschreibung
event_nameName der Ereignisdefinition (ILIKE-Suche)
dateDatum (YYYY-MM-DD)
time_strUhrzeit (HH:MM, 24-Stunden-Format)

Voraussetzungen: Administrator.

Beispiel:

/event schedule event_name:KvK date:2026-06-15 time_str:20:00
Zeitzone

Die Zeit wird als UTC+2 (MESZ) interpretiert. Die Instanz wird mit dem entsprechenden timezone-aware Datetime gespeichert.

/event list

Zeigt bevorstehende geplante Ereignisse an (max 10).

Jeder Eintrag enthält:

  • Ereignisname
  • Datum/Uhrzeit (Discord-Timestamp: vollständig + relativ)

/event cancel

Storniert die nächste Instanz eines Ereignisses.

ParameterErforderlichBeschreibung
event_nameName des zu stornierenden Ereignisses

Voraussetzungen: Administrator.

Ändert den Status der Instanz auf 'cancelled'.

Erinnerungssystem

Erinnerungen werden automatisch basierend auf reminder_offsets_minutes gesendet:

Beispiel: offsets = [60, 30, 10]

  • 60 Minuten vorher → Embed "Event starts in 1 hour"
  • 30 Minuten vorher → Embed (ersetzt vorheriges)
  • 10 Minuten vorher → Embed (ersetzt vorheriges)
  • 0 Minuten (Start) → Embed "🚀 Event is starting NOW!" (Auto-Löschung nach 15 Min)

Automatische Bereinigung

  • Jede neue Erinnerung löscht die vorherige (nur 1 Nachricht im Kanal)
  • Die "starting NOW"-Nachricht löscht sich nach 15 Minuten automatisch
  • Der Kanal bleibt sauber

Platzhalter {countdown}

In Erinnerungsvorlagen kann {countdown} verwendet werden — wird durch Discord Relative Timestamp ersetzt (z.B. <t:1718474400:R> → "in 30 minutes").

Instanz-Status

StatusBeschreibung
scheduledGeplant, wartet auf Start
startedGestartet ("NOW!"-Nachricht gesendet)
cancelledVom Admin storniert
missedVerpasst (>1h nach geplantem Start ohne Versand)

Auto-Markierung als "missed"

Wenn der Bot eine Instanz nicht rechtzeitig verarbeiten konnte (z.B. offline war) und mehr als 1 Stunde seit starts_at vergangen ist, wird die Instanz automatisch als 'missed' markiert, anstatt eine verspätete Benachrichtigung zu senden.

Zyklische Aufgabe

_check_loop — alle 30 Sekunden:

  1. Ruft alle scheduled-Instanzen innerhalb der nächsten 24h ab
  2. Prüft für jede, ob es Zeit ist für:
    • Erinnerung (im 30s-Fenster ab Offset-Trigger)
    • Start (now >= starts_at)
    • Markierung als missed (>1h nach Start)

Datenbank

TabelleBeschreibung
schedule_eventsEreignisdefinitionen (name, template, channel_id, reminder_offsets, is_active)
schedule_instancesGeplante Instanzen (event_id, guild_id, starts_at, status, last_reminder_message_id)

Protokollierung

Das Schedule-Events-Modul hat keine dedizierte Log-Kategorie. Aktionen werden über die Instanz-Status in der Datenbank verfolgt.

Tipps

Best Practices
  • Erstellen Sie Definitionen für wiederkehrende Events (KvK, Rally usw.)
  • Setzen Sie 2–3 Erinnerungs-Offsets (z.B. 60, 30, 10 Minuten vorher)
  • Verwenden Sie {countdown} in der Vorlagenbeschreibung — Discord zeigt einen dynamischen Countdown an
  • Ein dedizierter Kanal (z.B. #events) bleibt dank Auto-Bereinigung ordentlich
Wiederkehrende Ereignisse

Für wöchentlich wiederkehrende Events planen Sie mehrere Instanzen im Voraus. Das Dashboard ermöglicht schnelles Hinzufügen von Instanzen.

warnung

Ereignisdefinitionen werden im Dashboard erstellt. Der Befehl /event schedule dient nur zur Planung von Instanzen bestehender Definitionen.