Aller au contenu

zones.yml

zones.yml est l’endroit où vivent vos zones. Une zone déclarée ici se démarre avec /sh start <id> et s’arrête avec /sh stop <id>, depuis un joueur comme depuis la console, ce qui permet à un planificateur ou à un plugin d’événements de la piloter.

Après une modification à la main, lancez /sh reload, puis /sh info <id> pour voir ce que SomaHider a réellement lu.

Quatre champs. Tout le reste est facultatif.

zones.yml
zones:
arene:
world: events
center:
x: 1500
z: 1500
radius: 150
zones.yml
zones:
kothjapon:
world: events
center:
x: 1500
z: 1500
radius: 150
duration: 30m
max_duration: 1h
schedule:
- days: [friday, saturday]
start: '21:00'
stop: '22:30'
triggers:
start_on_chat: '&6&lKoTH &f• Le KoTH &7Japon &fvient de commencer !'
stop_on_chat: '&6&lKoTH &f• Le KoTH &7Japon &fest terminé\.'
reveal:
- type: same_placeholder
placeholder: "%factionsuuid_faction_name%"
disguise:
name: {value: '%factionsuuid_faction_name%'}
skin: '%factionsuuid_faction_leader%'
disguise:
show_armor: false

La clé de la section est l’identifiant de la zone, et c’est lui que prennent toutes les commandes.

RègleDétail
Caractèresa-z, 0-9, _ et -. Les majuscules sont converties en minuscules.
LongueurDe 1 à 32 caractères.
InterditUn identifiant composé uniquement de chiffres, ou déjà utilisé par une autre zone.

Un identifiant rejeté fait sauter la zone entière, et la raison apparaît dans les logs.

CléObligatoireValeur
worldOuiNom du monde. La zone ne démarrera pas tant que ce monde n’est pas chargé.
center.xOuiCoordonnée du centre, en blocs.
center.zOuiCoordonnée du centre, en blocs.
radiusOuiDe 1 à 512 blocs.

Il n’y a ni y ni limite de hauteur. La zone est un cercle sur x et z, elle couvre donc toutes les altitudes à la fois.

CléValeur
durationDurée d’une exécution par défaut. Omettez-la pour tourner jusqu’à l’arrêt manuel.
max_durationPlafond propre à cette zone, quelle que soit la durée demandée. none supprime le plafond.

Les durées s’écrivent 20m, 1h30m ou 2h.

Trois valeurs déterminent la fin d’une exécution : celle qui a été demandée (via /sh start <id> <durée>, ou la duration de la zone), le max_duration de la zone, et default_max_duration dans config.yml quand la zone ne fixe aucun plafond. L’exécution dure le plus court des deux : la durée demandée ou le plafond applicable.

C’est ce dernier point qui piège le plus souvent : une zone sans duration ni max_duration s’arrête quand même au bout de deux heures, parce que default_max_duration est réglé à 2h d’origine.

always_on: true

La zone démarre avec le serveur et reste ouverte. SomaHider ignore duration, max_duration, schedule et triggers sur ce type de zone, et le signale dans les logs.

Une liste de créneaux hebdomadaires, vérifiés sur l’horloge du serveur. Voir programmer une zone chaque semaine.

ChampObligatoireValeur
daysOuiListe de jours en anglais, ou daily. Les formes à trois lettres sont acceptées.
startOuiHeure de la journée, entre guillemets, comme '21:00'.
stopNonHeure de la journée. Un stop antérieur au start désigne le lendemain.

Un créneau dont le stop est égal au start est rejeté. Les créneaux manqués pendant que le serveur était éteint ne sont pas rejoués au démarrage.

Des expressions régulières comparées aux messages du chat sortants. Voir démarrer une zone depuis un message.

ChampValeur
start_on_chatMotif qui démarre la zone.
stop_on_chatMotif qui l’arrête.

Au moins l’un des deux est nécessaire, sinon le bloc est ignoré. Les codes couleur s’écrivent avec &. Un motif sans aucun code couleur peut être tapé par un joueur dans le chat, et SomaHider prévient au chargement.

Une liste d’exceptions au déguisement, examinées dans l’ordre jusqu’à ce que l’une corresponde. Voir laisser certains joueurs se reconnaître.

ChampConcerneValeur
typeToutespermission, same_placeholder, match ou relational.
nodepermissionLa permission que l’observateur doit posséder.
placeholderLes trois autresUn placeholder de la forme %extension_parametres%.
equalsmatch, relationalUne valeur ou une liste. Les valeurs écrites %...% sont résolues globalement. La casse est ignorée.
disguiseToutesFacultatif. Un déguisement affiché à la place du vrai joueur quand la règle correspond.

Un placeholder relational doit commencer par %rel_.

Surcharge le déguisement de config.yml pour cette zone. Seules les clés que vous écrivez sont remplacées, le reste est hérité. Ce sont les mêmes clés que dans la section globale, décrites dans changer l’apparence des joueurs masqués.

Une zone incorrecte est ignorée et le reste du fichier se charge quand même : une faute de frappe ne fait donc pas tomber vos autres zones. SomaHider écrit une ligne par problème, au démarrage comme à chaque /sh reload, en nommant la zone et le champ :

zones.yml: zones.arena: radius must be between 1 and 512
zones.yml: zones.arena: reveal[0] relational placeholders start with %rel_
zones.yml: zones.kothjapon: duplicate id

/sh reload signale les mêmes problèmes dans le chat, et /sh info <id> marque une zone comme invalide quand elle n’a pas pu être lue du tout.

Deux erreurs expliquent la plupart des cas :

SymptômeCause
Un créneau du planning disparaît sans rien direL’heure n’était pas entre guillemets, YAML a donc lu 21:00 comme un nombre.
La zone se charge mais ne se déclenche jamaisLe motif a perdu ses codes couleur, ou un . est resté non échappé à un endroit qui compte.