Szenen-Planer

Eine Szene ist eine Teilkonfiguration, die sich über Ihre normalen Einstellungen legt, sobald ihr Zeitplan passt. Einmal einstellen, danach läuft sie jedes Jahr von allein.

Szenen liegen in data/scenes.json innerhalb der Resource. Das ist der einzige Teil von HZ-Loading, der als Datei statt im Panel bearbeitet wird — ein Zeitplan ist eine seltene, bewusste Änderung, keine tägliche.


Aufbau

{
  "scenes": [
    {
      "id": "halloween",
      "name": "Halloween",
      "schedule": "* * 25-31 10 *",
      "config": {
        "theme": "vice",
        "tagline": "Spooky season",
        "imagePlaylist": ["default-01.jpg", "default-02.jpg"],
        "tips": [
          "Bleibt zusammen — die Nacht ist lang",
          "Süßes oder Saures — tippt /halloween für das Event"
        ]
      }
    }
  ]
}

FeldBedeutung
idEindeutige Kennung. Wird im Szenen-Label des Loading Screens angezeigt.
nameAnzeigename, z. B. Halloween.
schedulePOSIX-Cron mit 5 Feldern, in UTC.
configEine beliebige Teilmenge der Einstellungen, die der Creator verwaltet.

Die Regeln

Die erste Übereinstimmung gewinnt. Szenen werden in der Reihenfolge des Arrays geprüft, und die erste passende wird angewendet. Ordnen Sie das Array bewusst — die spezifischste Szene zuerst. Bewusst unvollständig. Alles, was eine Szene nicht deklariert, fällt direkt auf Ihre normale Konfiguration zurück. Genau das hält Szenen klein und ungefährlich: Eine Halloween-Szene, die nur einen Slogan und eine Playlist setzt, ändert sonst nichts.
Listenfelder werden vollständig ersetzt, nicht ergänzt. Eine Szene, die imagePlaylist deklariert, ersetzt für ihre Dauer die gesamte Playlist; sie fügt nichts hinzu. Dasselbe gilt für tips und musicPlaylist.
Eine Szene ohne schedule wird nie aktiv. Das ist meist ein Versehen, deshalb gibt der Server beim Start eine deutliche Warnung aus, statt stillzuschweigen.

Cron

Fünf Felder, UTC: Minute Stunde Tag Monat Wochentag.

ZeitplanBedeutung
* * 25-31 10 *25.–31. Oktober, durchgehend
* 3-4 * * 2Jeden Dienstag, 03:00 bis 04:59
* * * 12 *Der gesamte Dezember
* * 1 1 *1. Januar, ganztägig
0 6 * * 2Jeden Dienstag, nur die Minute 06:00
Eine Szene ist nur aktiv, solange die Uhr zu ihrem Cron passt. Es gibt keinen Anfang, kein Ende und keine Dauer — der Server prüft jede Minute neu und lässt die Szene fallen, sobald sie nicht mehr passt.

Die Felder Minute und Stunde müssen daher * bleiben, wenn eine Szene stehen bleiben soll. 0 0 25-31 10 * bedeutet nicht „ab Mitternacht des 25."; es bedeutet „während der Minute 00:00 an jedem dieser Tage" — also etwa eine Minute pro Tag. Nutzen Sie * * 25-31 10 *.

UTC, nicht die lokale Zeit Ihres Servers. Im Sommer bekommt ein europäischer Betreiber mit 0 6 die Zeit 08:00 lokal.

Anwenden und prüfen

Bearbeiten Sie data/scenes.json, dann refresh und restart hz_loading. Szenen sind das Einzige, was nicht im laufenden Betrieb neu geladen wird.

/hzloading:scenes (Admin) listet jede deklarierte Szene auf, welche gerade aktiv ist und warum. Damit prüfen Sie, ob ein Cron-Ausdruck wirklich tut, was Sie glauben, bevor das Datum kommt — besser, als bis Oktober zu warten, um es herauszufinden.

Ist eine Szene aktiv, sehen Spieler unter dem Markenblock ein dezentes Label mit ihrem Namen, sodass die Variante als gewollt und nicht als Fehler gelesen wird.