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.
La plus petite zone qui fonctionne
Section intitulée « La plus petite zone qui fonctionne »Quatre champs. Tout le reste est facultatif.
zones: arene: world: events center: x: 1500 z: 1500 radius: 150Une zone qui utilise tout
Section intitulée « Une zone qui utilise tout »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: falseL’identifiant
Section intitulée « L’identifiant »La clé de la section est l’identifiant de la zone, et c’est lui que prennent toutes les commandes.
| Règle | Détail |
|---|---|
| Caractères | a-z, 0-9, _ et -. Les majuscules sont converties en minuscules. |
| Longueur | De 1 à 32 caractères. |
| Interdit | Un 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.
Position
Section intitulée « Position »| Clé | Obligatoire | Valeur |
|---|---|---|
world | Oui | Nom du monde. La zone ne démarrera pas tant que ce monde n’est pas chargé. |
center.x | Oui | Coordonnée du centre, en blocs. |
center.z | Oui | Coordonnée du centre, en blocs. |
radius | Oui | De 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 |
|---|---|
duration | Durée d’une exécution par défaut. Omettez-la pour tourner jusqu’à l’arrêt manuel. |
max_duration | Plafond 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
Section intitulée « always_on »always_on: trueLa 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.
schedule
Section intitulée « schedule »Une liste de créneaux hebdomadaires, vérifiés sur l’horloge du serveur. Voir programmer une zone chaque semaine.
| Champ | Obligatoire | Valeur |
|---|---|---|
days | Oui | Liste de jours en anglais, ou daily. Les formes à trois lettres sont acceptées. |
start | Oui | Heure de la journée, entre guillemets, comme '21:00'. |
stop | Non | Heure 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.
triggers
Section intitulée « triggers »Des expressions régulières comparées aux messages du chat sortants. Voir démarrer une zone depuis un message.
| Champ | Valeur |
|---|---|
start_on_chat | Motif qui démarre la zone. |
stop_on_chat | Motif 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.
| Champ | Concerne | Valeur |
|---|---|---|
type | Toutes | permission, same_placeholder, match ou relational. |
node | permission | La permission que l’observateur doit posséder. |
placeholder | Les trois autres | Un placeholder de la forme %extension_parametres%. |
equals | match, relational | Une valeur ou une liste. Les valeurs écrites %...% sont résolues globalement. La casse est ignorée. |
disguise | Toutes | Facultatif. Un déguisement affiché à la place du vrai joueur quand la règle correspond. |
Un placeholder relational doit commencer par %rel_.
disguise
Section intitulée « disguise »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.
Quand une zone ne se charge pas
Section intitulée « Quand une zone ne se charge pas »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 512zones.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ôme | Cause |
|---|---|
| Un créneau du planning disparaît sans rien dire | L’heure n’était pas entre guillemets, YAML a donc lu 21:00 comme un nombre. |
| La zone se charge mais ne se déclenche jamais | Le motif a perdu ses codes couleur, ou un . est resté non échappé à un endroit qui compte. |