Pular para o conteúdo principal

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

ChavePlaceholdersPadrãoDescriçã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

ChavePlaceholdersDescrição
createdCannon$prefix, $cannon, $id, $pathEnviada após /wc create ser bem-sucedido
placedCannon$prefix, $cannonEnviada após /wc place ser bem-sucedido
removedCannon$prefix, $cannonEnviada após /wc remove ser bem-sucedido
deletedCannon$prefix, $cannonEnviada após /wc delete ser bem-sucedido
targetWorldUpdated$prefix, $cannon, $worldEnviada após /wc target ser bem-sucedido
searchCenterUpdated$prefix, $cannonEnviada após /wc center ser bem-sucedido
reload$prefix, $countEnviada após /wc reload ser concluído
noPermission$prefix, $cannonEnviada 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, $unitEnviada 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, $cannonReservada. 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, $attemptsEnviada 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, $cannonEnviada quando nenhum local seguro foi enfileirado ainda
noValidLocationFound$prefix, $cannon, $reasonEnviada 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, $reasonEnviada quando um erro de configuração é detectado (ex.: mundo de destino não carregado)
statusLine$prefix, $cannon, $status, $queued, $target, $reasonFormato 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$prefixEnviada por /wc probe quando o local é válido
probeBlocked$prefix, $plugin, $reasonEnviada por /wc probe quando o local é bloqueado
unknownCommand$prefixReservada. 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.

ChavePadrãoExibido quando
statusLabels.readyReadyO canhão tem locais pré-carregados suficientes para lançar jogadores
statusLabels.chargingChargingO canhão ainda está procurando seu primeiro destino seguro
statusLabels.maintainingMaintainingO canhão está repondo sua reserva de destinos
statusLabels.exhaustedExhaustedO canhão não conseguiu encontrar um destino seguro
statusLabels.disabledDisabledO canhão está desativado em sua configuração
statusLabels.invalidInvalidReservado. 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.

ChavePlaceholdersFaseDescrição
titles.launchQueuedTitles$cannoninício de SEARCHINGConjunto de strings de título mostradas quando um lançamento começa
titles.launchQueuedSubtitles$cannoninício de SEARCHINGConjunto de subtítulos pareados com o título de início de lançamento
titles.destinationPreviewTitles--SEARCHINGConjunto 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, $zSEARCHING (a cada tick)Subtítulo único exibindo as coordenadas aleatórias que piscam
titles.destinationConfirmedTitles$x, $y, $z, $worldinício de FIRINGConjunto de títulos mostrados no momento em que o destino real é confirmado
titles.destinationConfirmedSubtitle$x, $y, $z, $worldinício de FIRINGSubtítulo único exibindo o destino real
titles.arrivalTitles$x, $y, $z, $worldTELEPORTINGConjunto de títulos mostrados logo após o teletransporte do airdrop
titles.arrivalSubtitles$x, $y, $z, $worldTELEPORTINGConjunto 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

destinationPreviewSubtitle e destinationConfirmedSubtitle sã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

PlaceholderResolvido para
$prefixO valor de messages.yml -> prefix
$cannonO displayName do canhão
$idO id de configuração do canhão (sanitizado em minúsculas)
$pathCaminho absoluto para o arquivo de configuração do canhão recém-criado (apenas em createdCannon)
$worldNome do mundo de destino
$countNúmero de canhões carregados após um reload
$queuedTamanho atual da fila de um canhão
$targetDepende do contexto: chargedLocationsPerCannon em queueCalibration, preloadedLocationsPerCannon em statusLine. Ambas as chaves ficam em landing.yml.
$attemptsTentativas de busca restantes antes do canhão se esgotar
$secondsCooldown de lançamento restante, arredondado para cima
$unitsecond ou seconds, conforme $seconds
$statusO valor correspondente de statusLabels.* -- por padrão Ready, Charging, Maintaining, Exhausted ou Disabled
$reasonDetalhe legível de um status ou falha
$pluginO nome do plugin de proteção que bloqueou o local
$x, $y, $zCoordenadas (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).