Zum Hauptinhalt springen

CannonRTP-Nachrichten und -Titel

Alle spielerseitigen Zeichenketten liegen in plugins/CannonRTP/messages.yml und sind vollständig überschreibbar. Jeder Wert unterstützt MagmaCore-Gradienten (<gradient:#start:#end>...</gradient>), MiniMessage-Tags und ältere &-Farbcodes. Der Platzhalter $prefix in jeder Nachricht wird durch den konfigurierten Wert von prefix ersetzt.

Release 1 liefert nur Englisch; der Schlüssel language in config.yml existiert, damit zukünftige Übersetzungspakete ihn ansprechen können.

Präfix und Hilfe-Kopfzeile

SchlüsselPlatzhalterStandardBeschreibung
prefix--<gradient:#ff9a3d:#ffd166>CannonRTP</gradient> &8|Präfix, das über $prefix in jede Nachricht eingefügt wird
helpHeader$prefix$prefix &fCannonRTP commands:Begrüßungszeile, die oben in /cannonrtp, /wc help und /wc list / /wc status ausgegeben wird

Chat-Nachrichten

SchlüsselPlatzhalterBeschreibung
createdCannon$prefix, $cannon, $id, $pathWird nach erfolgreichem /wc create gesendet
placedCannon$prefix, $cannonWird nach erfolgreichem /wc place gesendet
removedCannon$prefix, $cannonWird nach erfolgreichem /wc remove gesendet
deletedCannon$prefix, $cannonWird nach erfolgreichem /wc delete gesendet
targetWorldUpdated$prefix, $cannon, $worldWird nach erfolgreichem /wc target gesendet
searchCenterUpdated$prefix, $cannonWird nach erfolgreichem /wc center gesendet
reload$prefix, $countWird nach Abschluss von /wc reload gesendet
noPermission$prefix, $cannonWird gesendet, wenn ein Spieler in eine Kanone tritt, für die ihm requiredPermission fehlt (gedrosselt auf einmal alle 3 Sekunden pro Spieler und Kanone)
launchCooldown$prefix, $cannon, $seconds, $unitWird gesendet, wenn ein Spieler eine beliebige Kanone betritt, bevor die Abklingzeit seines angenommenen Starts abgelaufen ist. $seconds wird aufgerundet; $unit ist second oder seconds. Die Benachrichtigungen sind auf einmal alle 3 Sekunden pro Spieler und Kanone gedrosselt.
cannonDisabled$prefix, $cannonReserviert. Deaktivierte Kanonen werden vollständig aus der Tick-Schleife ausgeschlossen, daher sendet der aktuelle Build diese Nachricht nie -- der Schlüssel wird zwar in messages.yml geschrieben, aber von nichts gelesen.
queueCalibration$prefix, $cannon, $queued, $target, $attemptsWird gesendet, während eine Kanone noch vorlädt und ein Spieler hineintritt. In dieser Nachricht ist $target chargedLocationsPerCannon; $attempts ist das verbleibende Suchversuchs-Budget, bevor die Kanone erschöpft ist
noValidLocationYet$prefix, $cannonWird gesendet, wenn noch kein sicherer Ort in die Warteschlange aufgenommen wurde
noValidLocationFound$prefix, $cannon, $reasonWird gesendet, wenn CannonRTP nach Ausschöpfen von searchTimeoutAttempts aufgibt. $reason ist eine kommagetrennte Zusammenfassung der häufigsten Ablehnungsgründe
invalidConfiguration$prefix, $cannon, $reasonWird gesendet, wenn ein Konfigurationsfehler erkannt wird (z. B. nicht geladene Zielwelt)
statusLine$prefix, $cannon, $status, $queued, $target, $reasonZeilenformat, das für jede Zeile von /wc list und /wc status verwendet wird. In dieser Nachricht ist $target preloadedLocationsPerCannon (das volle Reserveziel, nicht der Aufgeladen-Schwellenwert)
probeAllowed$prefixWird von /wc probe gesendet, wenn der Ort gültig ist
probeBlocked$prefix, $plugin, $reasonWird von /wc probe gesendet, wenn der Ort blockiert ist
unknownCommand$prefixReserviert. Nicht erkannte Unterbefehle werden vom gemeinsamen MagmaCore-Befehlsmanager behandelt, daher sendet der aktuelle Build diese Nachricht nie -- der Schlüssel wird zwar in messages.yml geschrieben, aber von nichts gelesen.

invalidConfiguration dient zugleich als generische Admin-Fehlerzeile: Sie wird auch von /wc list / /wc status gesendet, wenn keine Kanonen platziert sind, sowie von /wc create, /wc place, /wc remove, /wc delete, /wc target und /wc center, wenn eine ID oder Welt nicht aufgelöst werden kann.

Statusbezeichnungen

Die Statuswörter, die von der schwebenden Kanonenbeschriftung, von /wc list und vom Platzhalter $status verwendet werden, sind konfigurierbar.

SchlüsselStandardWird angezeigt, wenn
statusLabels.readyReadyDie Kanone hat genügend vorgeladene Orte, um Spieler abzuschießen
statusLabels.chargingChargingDie Kanone sucht noch ihr erstes sicheres Ziel
statusLabels.maintainingMaintainingDie Kanone füllt ihre Zielreserve wieder auf
statusLabels.exhaustedExhaustedDie Kanone konnte kein sicheres Ziel finden
statusLabels.disabledDisabledDie Kanone ist in ihrer Konfiguration deaktiviert
statusLabels.invalidInvalidReserviert. Der aktuelle Build löst jeden Status über die drei internen Suchzustände (READY, SEARCHING, EXHAUSTED) plus die Deaktiviert-Prüfung auf, daher rendert nichts diese Bezeichnung. Eine Kanone, deren targetWorld nicht geladen ist, behält ihre Suchzustands-Bezeichnung und meldet das Problem stattdessen über $reason.

Das sind rohe Zeichenketten, daher funktionieren auch hier Gradienten und Farbcodes. Was du hier setzt, wird zum $status-Wert in statusLine.

Titelpools

Mehrere Titelplätze in der Startsequenz sind als Liste statt als einzelne Zeichenkette konfiguriert. Bei jedem Start wählt CannonRTP einen Eintrag zufällig aus der Liste. Das verhindert, dass sich wiederholte Starts identisch anfühlen.

SchlüsselPlatzhalterPhaseBeschreibung
titles.launchQueuedTitles$cannonBeginn von SEARCHINGPool von Titelzeichenketten, die beim Beginn eines Starts angezeigt werden
titles.launchQueuedSubtitles$cannonBeginn von SEARCHINGPool von Untertiteln, die mit dem Starttitel gepaart werden
titles.destinationPreviewTitles--SEARCHINGPool von Titeln, die angezeigt werden, während zufällige Koordinaten vorbeiflackern. Ein Eintrag wird zu Beginn der Phase gewählt und für die gesamte Phase beibehalten.
titles.destinationPreviewSubtitle$x, $y, $zSEARCHING (jeder Tick)Einzelne Untertitelzeichenkette, die die flackernden zufälligen Koordinaten anzeigt
titles.destinationConfirmedTitles$x, $y, $z, $worldBeginn von FIRINGPool von Titeln, die in dem Moment angezeigt werden, in dem das echte Ziel feststeht
titles.destinationConfirmedSubtitle$x, $y, $z, $worldBeginn von FIRINGEinzelner Untertitel, der das echte Ziel anzeigt
titles.arrivalTitles$x, $y, $z, $worldTELEPORTINGPool von Titeln, die direkt nach der Luftabwurf-Teleportation angezeigt werden
titles.arrivalSubtitles$x, $y, $z, $worldTELEPORTINGPool von Untertiteln, die neben dem Ankunftstitel angezeigt werden

Platzhalter werden aus derselben Menge in den Titel und seinen Untertitel eingesetzt, sodass jeder Platzhalter, der für eine Hälfte eines Paares aufgeführt ist, auch in der anderen funktioniert. $prefix wird überall aufgelöst, wird innerhalb eines Titels aber selten gewünscht.

Einzeln vs. Pool

destinationPreviewSubtitle und destinationConfirmedSubtitle sind einzelne Zeichenketten, weil sie dynamische Koordinaten enthalten, die immer gerendert werden müssen. Die anderen Titel- und Untertitelplätze sind Pools, und aus jedem wird pro Start ein Eintrag zufällig gewählt.

Standard-Titelpools

Die in messages.yml mitgelieferten Standardwerte:

launchQueuedTitles -- Launching, Ignition, Liftoff (Orange-Gold-Gradient)

launchQueuedSubtitles -- $cannon (warmes Gold)

destinationPreviewTitles -- Calibrating, Scanning, Targeting (Orange-Gold)

destinationConfirmedTitles -- Locked, Set, Engaged (Grün)

arrivalTitles -- Arrived, Touchdown, Airborne (kühles Weiß)

arrivalSubtitles -- Good luck., Stick the landing., Eyes up. Ground soon., Wind check complete. Good luck., Drop zone acquired. Good luck.

Platzhalter-Referenz

PlatzhalterAufgelöst zu
$prefixDer Wert von messages.yml -> prefix
$cannonDer displayName der Kanone
$idDie Konfigurations-ID der Kanone (bereinigte Kleinschreibung)
$pathAbsoluter Pfad zur frisch erstellten Kanonenkonfigurationsdatei (nur in createdCannon)
$worldName der Zielwelt
$countAnzahl der nach einem Reload geladenen Kanonen
$queuedAktuelle Warteschlangengröße einer Kanone
$targetKontextabhängig: chargedLocationsPerCannon in queueCalibration, preloadedLocationsPerCannon in statusLine. Beide Schlüssel liegen in landing.yml.
$attemptsVerbleibende Suchversuche, bevor die Kanone erschöpft ist
$secondsAufgerundete verbleibende Start-Abklingzeit
$unitsecond oder seconds, passend zu $seconds
$statusDer passende statusLabels.*-Wert -- standardmäßig Ready, Charging, Maintaining, Exhausted oder Disabled
$reasonMenschenlesbares Detail eines Status oder Fehlers
$pluginDer Name des Schutz-Plugins, das einen Ort blockiert hat
$x, $y, $zKoordinaten (eine Nachkommastelle)

Hinweis zur Lokalisierung

Jeder oben aufgeführte Schlüssel durchläuft den Farb-/Gradientenprozessor von MagmaCore, bevor er dem Spieler angezeigt wird. Übersetzungspakete, die auf language in config.yml abzielen, werden über denselben translatable()-Hook eingebunden (in Release 1 derzeit ein Passthrough).