Aller au contenu

Programmer une zone chaque semaine

Votre KoTH tourne tous les vendredis et samedis soir, de 21h00 à 22h30. Plutôt que de demander à un membre du staff d’être connecté pour taper /sh start, vous pouvez inscrire ces horaires une bonne fois pour toutes et laisser SomaHider s’en charger.

Ça vaut quand les horaires ne bougent jamais. Si vos événements démarrent au moment où un admin le décide, passez plutôt par un déclencheur de chat : il suit l’annonce et non l’horloge.

  1. Ouvrez zones.yml et trouvez votre zone.

    Si la zone n’existe pas encore, créez-la d’abord avec /sh create, comme dans votre première zone.

  2. Ajoutez-lui un bloc schedule.

    zones.yml
    zones:
    kothjapon:
    world: events
    center:
    x: 1500
    z: 1500
    radius: 150
    schedule:
    - days: [friday, saturday]
    start: '21:00'
    stop: '22:30'
  3. Appliquez.

    /sh reload
  4. Vérifiez que le planning a bien été lu.

    /sh info kothjapon

    Le planning apparaît dans le détail de la zone. S’il n’y est pas, SomaHider n’a pas réussi à le lire, et la raison se trouve dans les logs du serveur.

La zone s’ouvre désormais toute seule à 21h00 le vendredi et le samedi, et se referme à 22h30.

ChampObligatoireCe qu’on écrit
daysOui[friday, saturday], ou daily pour tous les jours. Les formes courtes marchent aussi : [fri, sat].
startOuiL’heure d’ouverture, entre guillemets : '21:00'.
stopNonL’heure de fermeture, entre guillemets.

Sans stop, la zone s’ouvre à l’heure prévue et reste ouverte jusqu’à épuisement de sa durée, ou jusqu’à ce que quelqu’un l’arrête à la main.

Le planning est une liste, ajoutez-y autant d’entrées que nécessaire. Votre événement peut finir tard le week-end et tôt en semaine :

zones.yml
schedule:
- days: [friday, saturday]
start: '21:00'
stop: '23:00'
- days: [tuesday]
start: '19:00'
stop: '20:00'

Écrivez les horaires tels quels. SomaHider comprend qu’un stop antérieur au start désigne le lendemain :

zones.yml
schedule:
- days: [saturday]
start: '23:00'
stop: '01:00'

Cette zone s’ouvre le samedi à 23h00 et se ferme le dimanche à 01h00. Dans days, vous nommez toujours le jour où l’événement commence, jamais celui où il finit.

Un créneau programmé obéit à la même limite de temps que n’importe quelle autre exécution. Si votre créneau dure trois heures alors que la zone a un max_duration: 1h, la zone se ferme au bout d’une heure et reste fermée jusqu’au créneau suivant.

C’est vrai aussi quand la zone n’a aucun max_duration : c’est alors default_max_duration, dans config.yml, qui prend le relais, et il est réglé à deux heures d’origine.

Donc si votre créneau dépasse deux heures, dites-le sur la zone :

zones.yml
zones:
kothjapon:
max_duration: none
schedule:
- days: [saturday]
start: '20:00'
stop: '23:30'

max_duration: none fait du planning le seul élément qui décide quand la zone s’arrête.

Les créneaux sont vérifiés une fois par minute sur l’horloge du serveur.

Un créneau passé pendant que le serveur était éteint n’est pas rejoué au démarrage. Si votre zone devait s’ouvrir à 21h00 et que le serveur est revenu à 21h20, elle reste fermée et attend son prochain créneau. Démarrez-la à la main avec /sh start si vous la voulez quand même ce soir-là.

Une zone avec always_on: true est ouverte en permanence, il n’y a donc rien à programmer. SomaHider ignore le bloc schedule sur ce type de zone et le signale dans les logs.