Planificateur de scènes

Une scène est une configuration partielle qui se superpose à vos réglages normaux quand son horaire correspond. Réglez-la une fois, elle tourne toute seule chaque année.

Les scènes vivent dans data/scenes.json, à l'intérieur de la resource. C'est la seule partie de HZ-Loading qui s'édite en fichier plutôt qu'au panel — un calendrier est un changement rare et délibéré, pas quotidien.


Anatomie

{
  "scenes": [
    {
      "id": "halloween",
      "name": "Halloween",
      "schedule": "  25-31 10 *",
      "config": {
        "theme": "vice",
        "tagline": "Spooky season",
        "imagePlaylist": ["default-01.jpg", "default-02.jpg"],
        "tips": [
          "Restez groupés — la nuit est longue",
          "Des bonbons ou un sort — tapez /halloween pour l'événement"
        ]
      }
    }
  ]
}
ChampSignification
idIdentifiant unique. Affiché dans le libellé de scène du loading screen.
nameNom affiché, par exemple Halloween.
scheduleCron POSIX à 5 champs, en UTC.
configN'importe quel sous-ensemble des réglages gérés par le Creator.

Les règles

La première qui correspond gagne. Les scènes sont évaluées dans l'ordre du tableau et la première dont l'horaire correspond est appliquée. Ordonnez le tableau délibérément — placez la scène la plus spécifique en premier. Partielle par conception. Tout ce qu'une scène ne déclare pas retombe directement sur votre configuration normale. C'est ce qui garde les scènes petites et sûres : une scène Halloween qui ne fixe qu'un slogan et une playlist ne change rien d'autre.
Les champs listes sont des remplacements complets, pas des ajouts. Une scène qui déclare imagePlaylist remplace toute la playlist pour sa durée ; elle ne s'y ajoute pas. Idem pour tips et musicPlaylist.
Une scène sans schedule ne s'active jamais. C'est en général une erreur, donc le serveur affiche un avertissement explicite au démarrage plutôt que de rester silencieux.

Cron

Cinq champs, en UTC : minute heure jour mois jour-de-semaine.

HoraireSignification
25-31 10 *Du 25 au 31 octobre, en continu
3-4 * 2Chaque mardi, de 03:00 à 04:59
12 Tout le mois de décembre
1 1 *Le 1er janvier, toute la journée
0 6 2Chaque mardi, la minute de 06:00 uniquement
Une scène est active uniquement tant que l'horloge correspond à son cron. Il n'y a ni début, ni fin, ni durée — le serveur réévalue chaque minute et abandonne la scène dès qu'elle cesse de correspondre.

Les champs minute et heure doivent donc rester à pour une scène censée rester affichée. 0 0 25-31 10 ne veut pas dire « à partir de minuit le 25 » ; ça veut dire « pendant la minute 00:00 de chacun de ces jours », soit environ une minute par jour. Utilisez 25-31 10 *.

UTC, pas l'heure locale de votre serveur. En été, un opérateur européen qui écrit 0 6 obtient 08:00 locales.

Appliquer et vérifier

Éditez data/scenes.json, puis refresh et restart HZ-Loading. Les scènes sont la seule chose qui ne se recharge pas à chaud.

/hzloading:scenes (admin) liste toutes les scènes déclarées, laquelle est active et pourquoi. Utilisez-la pour confirmer qu'une expression cron fait bien ce que vous croyez avant que la date arrive — ça vaut mieux que d'attendre octobre pour le découvrir.

Quand une scène est active, les joueurs voient sous le bloc de marque un libellé discret portant son nom, de sorte que la variation se lit comme intentionnelle et non comme un bug.