Messages et titres de CannonRTP
Tous les textes destinés aux joueurs se trouvent dans plugins/CannonRTP/messages.yml et sont entièrement personnalisables. Chaque valeur prend en charge les dégradés MagmaCore (<gradient:#start:#end>...</gradient>), les balises MiniMessage et les anciens codes couleur &. Dans chaque message, la variable $prefix est remplacée par la valeur configurée de prefix.
La version 1 fournit uniquement l'anglais ; la clé language de config.yml est prévue pour de futurs packs de traduction.
Préfixe et en-tête d'aide
| Clé | Variables | Valeur par défaut | Description |
|---|---|---|---|
prefix | -- | <gradient:#ff9a3d:#ffd166>CannonRTP</gradient> &8| | Préfixe inséré dans chaque message via $prefix |
helpHeader | $prefix | $prefix &fCannonRTP commands: | Ligne affichée au début de /cannonrtp, /wc help, /wc list et /wc status |
Messages du chat
| Clé | Variables | Description |
|---|---|---|
createdCannon | $prefix, $cannon, $id, $path | Envoyé après la réussite de /wc create |
placedCannon | $prefix, $cannon | Envoyé après la réussite de /wc place |
removedCannon | $prefix, $cannon | Envoyé après la réussite de /wc remove |
deletedCannon | $prefix, $cannon | Envoyé après la réussite de /wc delete |
targetWorldUpdated | $prefix, $cannon, $world | Envoyé après la réussite de /wc target |
searchCenterUpdated | $prefix, $cannon | Envoyé après la réussite de /wc center |
reload | $prefix, $count | Envoyé lorsque les commandes de modification des canons reconstruisent les placements. /wc reload recharge tout le plugin et utilise le message de fin partagé de MagmaCore. |
noPermission | $prefix, $cannon | Envoyé lorsqu'un joueur entre dans un canon sans posséder sa requiredPermission ; limité à une fois toutes les 3 secondes par joueur et par canon |
launchCooldown | $prefix, $cannon, $seconds, $unit | Envoyé lorsqu'un joueur entre dans un canon avant l'expiration du délai suivant un lancement accepté. $seconds est arrondi au supérieur et $unit vaut second ou seconds. Les notifications sont limitées à une fois toutes les 3 secondes par joueur et par canon. |
cannonDisabled | $prefix, $cannon | Réservé. Les canons désactivés étant entièrement exclus de la boucle de tick, la version actuelle n'envoie jamais ce message. La clé est écrite dans messages.yml, mais aucun code ne la lit. |
queueCalibration | $prefix, $cannon, $queued, $target, $attempts | Envoyé lorsqu'un joueur entre dans un canon encore en préchargement. Ici, $target correspond à chargedLocationsPerCannon et $attempts au nombre de tentatives restantes avant l'épuisement de la recherche. |
noValidLocationYet | $prefix, $cannon | Message de secours pour un canon dont la file est vide au moment du lancement. La version actuelle vérifie d'abord la file et envoie plutôt queueCalibration ou noValidLocationFound : ce message n'apparaît donc normalement pas. |
noValidLocationFound | $prefix, $cannon, $reason | Envoyé lorsqu'un joueur entre dans un canon dont la file est vide après l'abandon de sa recherche (épuisement de searchTimeoutAttempts, ou échec du chargement d'une intégration de protection). $reason liste les catégories de rejet rencontrées pendant cette période de recherche, sans nombres ni classement par fréquence. |
invalidConfiguration | $prefix, $cannon, $reason | Envoyé lorsqu'une erreur de configuration est détectée, par exemple un monde cible non chargé |
statusLine | $prefix, $cannon, $status, $queued, $target, $reason | Format de chaque ligne de /wc list et /wc status. Ici, $target correspond à preloadedLocationsPerCannon, soit la réserve totale visée, et non le seuil d'affichage Ready. |
probeAllowed | $prefix | Envoyé par /wc probe lorsque les intégrations de protection autorisent l'emplacement ; cette commande ne vérifie ni le terrain ni les écouteurs de l'API |
probeBlocked | $prefix, $plugin, $reason | Envoyé par /wc probe lorsque l'emplacement est bloqué |
unknownCommand | $prefix | Réservé. Les sous-commandes inconnues sont traitées par le gestionnaire de commandes partagé de MagmaCore ; la version actuelle n'envoie donc jamais ce message. La clé est écrite dans messages.yml, mais aucun code ne la lit. |
invalidConfiguration sert également de message d'erreur générique pour les administrateurs. /wc list et /wc status l'utilisent lorsqu'aucun canon n'est placé ; /wc create, /wc place, /wc remove, /wc delete, /wc target et /wc center l'utilisent lorsqu'un identifiant ou un monde est introuvable, lorsque /wc create reçoit un identifiant déjà existant, ou lorsqu'un fichier de canon ne peut pas être enregistré ou supprimé.
Libellés de statut
Les libellés utilisés dans l'étiquette flottante du canon, /wc list et la variable $status sont configurables.
| Clé | Valeur par défaut | Condition d'affichage |
|---|---|---|
statusLabels.ready | Ready | La file atteint chargedLocationsPerCannon ; une destination en file reste utilisable pour un lancement même sous ce seuil d'affichage |
statusLabels.charging | Charging | Le canon cherche encore sa première destination sûre |
statusLabels.maintaining | Maintaining | Le canon reconstitue sa réserve de destinations |
statusLabels.exhausted | Exhausted | La limite de recherches échouées a été atteinte avant le seuil Ready ; les destinations déjà en file restent utilisables |
statusLabels.disabled | Disabled | Le canon est désactivé dans sa configuration. N'apparaît que dans /wc list et /wc status, car les canons désactivés ne créent aucune étiquette flottante. |
statusLabels.invalid | Invalid | Réservé, non affiché. Un monde cible indisponible remet la recherche à SEARCHING et retire ses destinations de la file. Une file vide affiche Charging ; $reason signale le monde indisponible. |
Il s'agit de chaînes ordinaires : les dégradés et les codes couleur fonctionnent également ici. La valeur définie devient celle de $status dans statusLine.
Listes de titres
Plusieurs titres de la séquence de lancement sont configurés sous forme de liste plutôt que de chaîne unique. À chaque lancement, CannonRTP tire une entrée au hasard dans la liste, afin de varier les lancements successifs.
| Clé | Variables | Phase | Description |
|---|---|---|---|
titles.launchQueuedTitles | $cannon | début de SEARCHING | Liste des titres affichés au début du lancement |
titles.launchQueuedSubtitles | $cannon | début de SEARCHING | Liste des sous-titres accompagnant le titre de début de lancement |
titles.destinationPreviewTitles | -- | SEARCHING | Liste des titres affichés pendant le défilement des coordonnées aléatoires. Une entrée est choisie au début de la phase et conservée jusqu'à sa fin. |
titles.destinationPreviewSubtitle | $x, $y, $z | SEARCHING, chaque tick | Sous-titre unique affichant les coordonnées aléatoires qui défilent |
titles.destinationConfirmedTitles | $x, $y, $z, $world | début de FIRING | Liste des titres affichés lorsque la destination réelle est confirmée |
titles.destinationConfirmedSubtitle | $x, $y, $z, $world | début de FIRING | Sous-titre unique affichant la destination réelle |
titles.arrivalTitles | $x, $y, $z, $world | TELEPORTING | Liste des titres affichés juste après la téléportation de largage |
titles.arrivalSubtitles | $x, $y, $z, $world | TELEPORTING | Liste des sous-titres accompagnant le titre d'arrivée |
Le titre et son sous-titre reçoivent le même ensemble de substitutions. Toute variable indiquée pour l'un fonctionne donc aussi dans l'autre. L'exception est destinationPreviewTitles : l'entrée choisie est mise en forme une seule fois au début de la phase, donc $x, $y et $z n'y sont pas remplacés. $prefix est disponible partout, même s'il est rarement souhaitable dans un titre.
Si une liste est définie comme vide, CannonRTP utilise à la place la première entrée de sa valeur par défaut intégrée.
Chaîne unique ou liste
destinationPreviewSubtitleetdestinationConfirmedSubtitlesont des chaînes uniques, car leurs coordonnées dynamiques doivent toujours être affichées. Les autres titres et sous-titres utilisent des listes, dont une entrée est choisie au hasard pour chaque lancement.
Listes de titres par défaut
Les valeurs fournies dans messages.yml sont :
launchQueuedTitles — Launching, Ignition, Liftoff, avec un dégradé orange-or
launchQueuedSubtitles — $cannon, en or chaud
destinationPreviewTitles — Calibrating, Scanning, Targeting, en orange-or
destinationConfirmedTitles — Locked, Set, Engaged, en vert
arrivalTitles — Arrived, Touchdown, Airborne, en blanc froid
arrivalSubtitles — Good luck., Stick the landing., Eyes up. Ground soon., Wind check complete. Good luck., Drop zone acquired. Good luck.
Référence des variables
| Variable | Valeur obtenue |
|---|---|
$prefix | Valeur de messages.yml -> prefix |
$cannon | displayName du canon. Dans deletedCannon et dans la plupart des erreurs de commandes d'administration envoyées via invalidConfiguration, il s'agit plutôt de l'identifiant saisi. |
$id | Identifiant de configuration du canon, nettoyé et mis en minuscules |
$path | Chemin absolu du fichier de configuration qui vient d'être créé, uniquement dans createdCannon |
$world | Nom du monde cible |
$count | Nombre de placements de canons chargés après la reconstruction (un par entrée de cannonLocations dans l'ensemble des fichiers de canons, canons désactivés compris) |
$queued | Taille actuelle de la file du canon |
$target | Selon le contexte : chargedLocationsPerCannon dans queueCalibration, preloadedLocationsPerCannon dans statusLine. Les deux clés se trouvent dans landing.yml. |
$attempts | Tentatives de recherche restantes avant épuisement |
$seconds | Temps de récupération restant, arrondi à la seconde supérieure |
$unit | second ou seconds, selon $seconds |
$status | Valeur correspondante de statusLabels.*, soit par défaut Ready, Charging, Maintaining, Exhausted ou Disabled |
$reason | Détail lisible d'un statut ou d'un échec |
$plugin | Nom du plugin de protection ayant bloqué un emplacement |
$x, $y, $z | Coordonnées avec une décimale |
Remarque sur la traduction
Chaque clé ci-dessus passe par le traitement des couleurs et des dégradés de MagmaCore avant son affichage au joueur. Les futurs packs de traduction utilisant language dans config.yml passeront par le même hook translatable(), qui renvoie actuellement le texte sans modification dans la version 1.