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üssel | Platzhalter | Standard | Beschreibung |
|---|---|---|---|
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üssel | Platzhalter | Beschreibung |
|---|---|---|
createdCannon | $prefix, $cannon, $id, $path | Wird nach erfolgreichem /wc create gesendet |
placedCannon | $prefix, $cannon | Wird nach erfolgreichem /wc place gesendet |
removedCannon | $prefix, $cannon | Wird nach erfolgreichem /wc remove gesendet |
deletedCannon | $prefix, $cannon | Wird nach erfolgreichem /wc delete gesendet |
targetWorldUpdated | $prefix, $cannon, $world | Wird nach erfolgreichem /wc target gesendet |
searchCenterUpdated | $prefix, $cannon | Wird nach erfolgreichem /wc center gesendet |
reload | $prefix, $count | Wird nach Abschluss von /wc reload gesendet |
noPermission | $prefix, $cannon | Wird 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, $unit | Wird 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, $cannon | Reserviert. 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, $attempts | Wird 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, $cannon | Wird gesendet, wenn noch kein sicherer Ort in die Warteschlange aufgenommen wurde |
noValidLocationFound | $prefix, $cannon, $reason | Wird gesendet, wenn CannonRTP nach Ausschöpfen von searchTimeoutAttempts aufgibt. $reason ist eine kommagetrennte Zusammenfassung der häufigsten Ablehnungsgründe |
invalidConfiguration | $prefix, $cannon, $reason | Wird gesendet, wenn ein Konfigurationsfehler erkannt wird (z. B. nicht geladene Zielwelt) |
statusLine | $prefix, $cannon, $status, $queued, $target, $reason | Zeilenformat, 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 | $prefix | Wird von /wc probe gesendet, wenn der Ort gültig ist |
probeBlocked | $prefix, $plugin, $reason | Wird von /wc probe gesendet, wenn der Ort blockiert ist |
unknownCommand | $prefix | Reserviert. 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üssel | Standard | Wird angezeigt, wenn |
|---|---|---|
statusLabels.ready | Ready | Die Kanone hat genügend vorgeladene Orte, um Spieler abzuschießen |
statusLabels.charging | Charging | Die Kanone sucht noch ihr erstes sicheres Ziel |
statusLabels.maintaining | Maintaining | Die Kanone füllt ihre Zielreserve wieder auf |
statusLabels.exhausted | Exhausted | Die Kanone konnte kein sicheres Ziel finden |
statusLabels.disabled | Disabled | Die Kanone ist in ihrer Konfiguration deaktiviert |
statusLabels.invalid | Invalid | Reserviert. 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üssel | Platzhalter | Phase | Beschreibung |
|---|---|---|---|
titles.launchQueuedTitles | $cannon | Beginn von SEARCHING | Pool von Titelzeichenketten, die beim Beginn eines Starts angezeigt werden |
titles.launchQueuedSubtitles | $cannon | Beginn von SEARCHING | Pool von Untertiteln, die mit dem Starttitel gepaart werden |
titles.destinationPreviewTitles | -- | SEARCHING | Pool 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, $z | SEARCHING (jeder Tick) | Einzelne Untertitelzeichenkette, die die flackernden zufälligen Koordinaten anzeigt |
titles.destinationConfirmedTitles | $x, $y, $z, $world | Beginn von FIRING | Pool von Titeln, die in dem Moment angezeigt werden, in dem das echte Ziel feststeht |
titles.destinationConfirmedSubtitle | $x, $y, $z, $world | Beginn von FIRING | Einzelner Untertitel, der das echte Ziel anzeigt |
titles.arrivalTitles | $x, $y, $z, $world | TELEPORTING | Pool von Titeln, die direkt nach der Luftabwurf-Teleportation angezeigt werden |
titles.arrivalSubtitles | $x, $y, $z, $world | TELEPORTING | Pool 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
destinationPreviewSubtitleunddestinationConfirmedSubtitlesind 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
| Platzhalter | Aufgelöst zu |
|---|---|
$prefix | Der Wert von messages.yml -> prefix |
$cannon | Der displayName der Kanone |
$id | Die Konfigurations-ID der Kanone (bereinigte Kleinschreibung) |
$path | Absoluter Pfad zur frisch erstellten Kanonenkonfigurationsdatei (nur in createdCannon) |
$world | Name der Zielwelt |
$count | Anzahl der nach einem Reload geladenen Kanonen |
$queued | Aktuelle Warteschlangengröße einer Kanone |
$target | Kontextabhängig: chargedLocationsPerCannon in queueCalibration, preloadedLocationsPerCannon in statusLine. Beide Schlüssel liegen in landing.yml. |
$attempts | Verbleibende Suchversuche, bevor die Kanone erschöpft ist |
$seconds | Aufgerundete verbleibende Start-Abklingzeit |
$unit | second oder seconds, passend zu $seconds |
$status | Der passende statusLabels.*-Wert -- standardmäßig Ready, Charging, Maintaining, Exhausted oder Disabled |
$reason | Menschenlesbares Detail eines Status oder Fehlers |
$plugin | Der Name des Schutz-Plugins, das einen Ort blockiert hat |
$x, $y, $z | Koordinaten (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).