Mensagens e Títulos do CannonRTP
Todas as strings voltadas ao jogador ficam em plugins/CannonRTP/messages.yml e podem ser totalmente sobrescritas. Todo valor suporta gradientes do MagmaCore (<gradient:#start:#end>...</gradient>), tags MiniMessage e códigos de cor legados com &. O placeholder $prefix em qualquer mensagem é substituído pelo valor configurado em prefix.
O Release 1 inclui apenas inglês; a chave language em config.yml existe para que futuros pacotes de tradução possam apontar para ela.
Prefix e Cabeçalho de Ajuda
| Chave | Placeholders | Padrão | Descrição |
|---|---|---|---|
prefix | -- | <gradient:#ff9a3d:#ffd166>CannonRTP</gradient> &8| | Prefixo injetado em todas as mensagens via $prefix |
helpHeader | $prefix | $prefix &fCannonRTP commands: | Linha de saudação impressa no topo de /cannonrtp, /wc help e /wc list / /wc status |
Mensagens de Chat
| Chave | Placeholders | Descrição |
|---|---|---|
createdCannon | $prefix, $cannon, $id, $path | Enviada após /wc create ser bem-sucedido |
placedCannon | $prefix, $cannon | Enviada após /wc place ser bem-sucedido |
removedCannon | $prefix, $cannon | Enviada após /wc remove ser bem-sucedido |
deletedCannon | $prefix, $cannon | Enviada após /wc delete ser bem-sucedido |
targetWorldUpdated | $prefix, $cannon, $world | Enviada após /wc target ser bem-sucedido |
searchCenterUpdated | $prefix, $cannon | Enviada após /wc center ser bem-sucedido |
reload | $prefix, $count | Enviada após /wc reload ser concluído |
noPermission | $prefix, $cannon | Enviada quando um jogador entra em um canhão para o qual não tem requiredPermission (limitada a uma vez a cada 3 segundos por jogador por canhão) |
launchCooldown | $prefix, $cannon, $seconds, $unit | Enviada quando um jogador entra em qualquer canhão antes de o cooldown do lançamento aceito expirar. $seconds é arredondado para cima; $unit é second ou seconds. As notificações são limitadas a uma vez a cada 3 segundos por jogador por canhão. |
cannonDisabled | $prefix, $cannon | Reservada. Canhões desativados são totalmente excluídos do laço de tick, então a build atual nunca envia esta mensagem -- a chave é escrita em messages.yml, mas nada a lê. |
queueCalibration | $prefix, $cannon, $queued, $target, $attempts | Enviada enquanto um canhão ainda está pré-carregando e um jogador entra. Nesta mensagem, $target é chargedLocationsPerCannon; $attempts é o orçamento restante de tentativas de busca antes do canhão se esgotar |
noValidLocationYet | $prefix, $cannon | Enviada quando nenhum local seguro foi enfileirado ainda |
noValidLocationFound | $prefix, $cannon, $reason | Enviada quando o CannonRTP desiste após esgotar searchTimeoutAttempts. $reason é um resumo separado por vírgulas dos motivos de rejeição mais comuns |
invalidConfiguration | $prefix, $cannon, $reason | Enviada quando um erro de configuração é detectado (ex.: mundo de destino não carregado) |
statusLine | $prefix, $cannon, $status, $queued, $target, $reason | Formato de linha usado em cada linha de /wc list e /wc status. Nesta mensagem, $target é preloadedLocationsPerCannon (o objetivo total da reserva, não o limite de "charged") |
probeAllowed | $prefix | Enviada por /wc probe quando o local é válido |
probeBlocked | $prefix, $plugin, $reason | Enviada por /wc probe quando o local é bloqueado |
unknownCommand | $prefix | Reservada. Subcomandos não reconhecidos são tratados pelo gerenciador de comandos compartilhado do MagmaCore, então a build atual nunca envia esta mensagem -- a chave é escrita em messages.yml, mas nada a lê. |
invalidConfiguration também funciona como linha genérica de erro administrativo: é o que /wc list / /wc status enviam quando nenhum canhão está posicionado, e o que /wc create, /wc place, /wc remove, /wc delete, /wc target e /wc center enviam quando um id ou mundo não pode ser resolvido.
Rótulos de Status
As palavras de status usadas pelo rótulo flutuante do canhão, por /wc list e pelo placeholder $status são configuráveis.
| Chave | Padrão | Exibido quando |
|---|---|---|
statusLabels.ready | Ready | O canhão tem locais pré-carregados suficientes para lançar jogadores |
statusLabels.charging | Charging | O canhão ainda está procurando seu primeiro destino seguro |
statusLabels.maintaining | Maintaining | O canhão está repondo sua reserva de destinos |
statusLabels.exhausted | Exhausted | O canhão não conseguiu encontrar um destino seguro |
statusLabels.disabled | Disabled | O canhão está desativado em sua configuração |
statusLabels.invalid | Invalid | Reservado. A build atual resolve todo status através dos três estados internos de busca (READY, SEARCHING, EXHAUSTED) mais a verificação de desativado, então nada renderiza este rótulo. Um canhão cujo targetWorld não está carregado mantém o rótulo do seu estado de busca e relata o problema através de $reason. |
Estes são strings brutas, então gradientes e códigos de cor também funcionam aqui. O que você definir se torna o valor de $status em statusLine.
Conjuntos de Títulos
Vários slots de título na sequência de lançamento são configurados como uma lista em vez de uma string única. Em cada lançamento, o CannonRTP escolhe uma entrada aleatória da lista. Isso impede que lançamentos repetidos pareçam idênticos.
| Chave | Placeholders | Fase | Descrição |
|---|---|---|---|
titles.launchQueuedTitles | $cannon | início de SEARCHING | Conjunto de strings de título mostradas quando um lançamento começa |
titles.launchQueuedSubtitles | $cannon | início de SEARCHING | Conjunto de subtítulos pareados com o título de início de lançamento |
titles.destinationPreviewTitles | -- | SEARCHING | Conjunto de títulos mostrados enquanto coordenadas aleatórias piscam na tela. Uma entrada é escolhida quando a fase começa e mantida durante toda a fase. |
titles.destinationPreviewSubtitle | $x, $y, $z | SEARCHING (a cada tick) | Subtítulo único exibindo as coordenadas aleatórias que piscam |
titles.destinationConfirmedTitles | $x, $y, $z, $world | início de FIRING | Conjunto de títulos mostrados no momento em que o destino real é confirmado |
titles.destinationConfirmedSubtitle | $x, $y, $z, $world | início de FIRING | Subtítulo único exibindo o destino real |
titles.arrivalTitles | $x, $y, $z, $world | TELEPORTING | Conjunto de títulos mostrados logo após o teletransporte do airdrop |
titles.arrivalSubtitles | $x, $y, $z, $world | TELEPORTING | Conjunto de subtítulos exibidos junto com o título de chegada |
Os placeholders são substituídos no título e no seu subtítulo a partir do mesmo conjunto, então qualquer placeholder listado para uma metade de um par também funciona na outra. $prefix é resolvido em toda parte, embora raramente seja desejado dentro de um título.
Único vs. conjunto
destinationPreviewSubtitleedestinationConfirmedSubtitlesão strings únicas porque contêm coordenadas dinâmicas que precisam sempre ser renderizadas. Os demais slots de título e subtítulo são conjuntos, e uma entrada é escolhida aleatoriamente de cada um a cada lançamento.
Conjuntos de Títulos Padrão
Os padrões enviados em messages.yml:
launchQueuedTitles -- Launching, Ignition, Liftoff (gradiente laranja-dourado)
launchQueuedSubtitles -- $cannon (dourado quente)
destinationPreviewTitles -- Calibrating, Scanning, Targeting (laranja-dourado)
destinationConfirmedTitles -- Locked, Set, Engaged (verde)
arrivalTitles -- Arrived, Touchdown, Airborne (branco frio)
arrivalSubtitles -- Good luck., Stick the landing., Eyes up. Ground soon., Wind check complete. Good luck., Drop zone acquired. Good luck.
Referência de Placeholders
| Placeholder | Resolvido para |
|---|---|
$prefix | O valor de messages.yml -> prefix |
$cannon | O displayName do canhão |
$id | O id de configuração do canhão (sanitizado em minúsculas) |
$path | Caminho absoluto para o arquivo de configuração do canhão recém-criado (apenas em createdCannon) |
$world | Nome do mundo de destino |
$count | Número de canhões carregados após um reload |
$queued | Tamanho atual da fila de um canhão |
$target | Depende do contexto: chargedLocationsPerCannon em queueCalibration, preloadedLocationsPerCannon em statusLine. Ambas as chaves ficam em landing.yml. |
$attempts | Tentativas de busca restantes antes do canhão se esgotar |
$seconds | Cooldown de lançamento restante, arredondado para cima |
$unit | second ou seconds, conforme $seconds |
$status | O valor correspondente de statusLabels.* -- por padrão Ready, Charging, Maintaining, Exhausted ou Disabled |
$reason | Detalhe legível de um status ou falha |
$plugin | O nome do plugin de proteção que bloqueou o local |
$x, $y, $z | Coordenadas (uma casa decimal) |
Nota Sobre Localização
Toda chave listada acima passa pelo processador de cores/gradientes do MagmaCore antes de ser exibida ao jogador. Pacotes de tradução que apontem para language em config.yml serão conectados através do mesmo hook translatable() (atualmente um passthrough no Release 1).