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 gesendet, wenn Befehle zur Kanonenbearbeitung die Platzierungen neu aufbauen. /wc reload lädt das gesamte Plugin neu und verwendet die gemeinsame Abschlussmeldung von MagmaCore.
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, $cannonRückfall für eine Kanone, deren Warteschlange im Moment des Starts leer ist. Der aktuelle Build prüft zuerst die Warteschlange und sendet stattdessen queueCalibration oder noValidLocationFound, daher erscheint diese Nachricht normalerweise nicht.
noValidLocationFound$prefix, $cannon, $reasonWird gesendet, wenn ein Spieler eine Kanone betritt, deren Warteschlange leer ist, nachdem sie die Suche aufgegeben hat (sie hat searchTimeoutAttempts ausgeschöpft, oder eine Schutz-Integration konnte nicht geladen werden). $reason nennt die in diesem Suchfenster aufgetretenen Ablehnungskategorien, ohne Anzahlen oder Rangfolge nach Häufigkeit.
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 die Schutzintegrationen den Ort erlauben. Der Befehl prüft weder Gelände noch API-Listener
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, wenn /wc create eine bereits existierende ID erhält oder wenn eine Kanonendatei nicht gespeichert oder gelöscht 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 Warteschlange erreicht chargedLocationsPerCannon. Ein Start kann auch unterhalb dieser Anzeigeschwelle ein Ziel aus der Warteschlange verwenden
statusLabels.chargingChargingDie Kanone sucht noch ihr erstes sicheres Ziel
statusLabels.maintainingMaintainingDie Kanone füllt ihre Zielreserve wieder auf
statusLabels.exhaustedExhaustedDas Limit fehlgeschlagener Suchversuche wurde erreicht, bevor die Warteschlange die Aufgeladen-Schwelle erreicht hat. Bereits vorgemerkte Ziele bleiben nutzbar
statusLabels.disabledDisabledDie Kanone ist in ihrer Konfiguration deaktiviert. Erscheint nur in /wc list und /wc status, weil deaktivierte Kanonen kein schwebendes Label erzeugen.
statusLabels.invalidInvalidReserviert; wird nicht angezeigt. Eine nicht verfügbare Zielwelt setzt die Suche auf SEARCHING zurück und entfernt Ziele für diese Welt. Eine leere Warteschlange zeigt Charging; $reason meldet die nicht verfügbare Welt.

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. Die Ausnahme ist destinationPreviewTitles: Der gewählte Eintrag wird einmal zu Beginn der Phase formatiert, daher werden $x, $y und $z dort nicht aufgelöst. $prefix wird überall aufgelöst, wird innerhalb eines Titels aber selten gewünscht.

Ist ein Pool auf eine leere Liste gesetzt, verwendet CannonRTP stattdessen den ersten Eintrag seines eingebauten Standards.

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. In deletedCannon und in den meisten über invalidConfiguration gesendeten Fehlern von Admin-Befehlen ist es stattdessen die von dir eingegebene ID.
$idDie Konfigurations-ID der Kanone (bereinigte Kleinschreibung)
$pathAbsoluter Pfad zur frisch erstellten Kanonenkonfigurationsdatei (nur in createdCannon)
$worldName der Zielwelt
$countAnzahl der nach dem Neuaufbau geladenen Kanonenplatzierungen (eine pro cannonLocations-Eintrag über alle Kanonendateien, deaktivierte Kanonen eingeschlossen)
$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).