Zum Hauptinhalt springen

CannonRTP-Konfiguration

CannonRTP verwendet eine globale Konfigurationsdatei plus eine Konfigurationsdatei pro Kanone.

Dateilayout

  • Globale Konfiguration: plugins/CannonRTP/config.yml
  • Konfigurationen pro Kanone: plugins/CannonRTP/custom/fun_rtps/<id>.yml

Das Plugin liefert außerdem ein Beispiel-Kanonenpaket namens example_world_cannon mit. Es ist standardmäßig deaktiviert.

Struktur der globalen Konfiguration

Die Hauptkonfiguration ist unter folgenden Bereichen organisiert:

  • runtime.*
  • landing.*
  • messages.*
  • protection.*

Laufzeiteinstellungen

SchlüsselStandardVerhalten
runtime.scanIntervalTicks2Wie oft Kanonen nach Spielern in der Nähe suchen (Minimum 2)
runtime.particleIntervalTicks15Wie oft Leerlaufpartikel der Kanone gerendert werden (Minimum 5)

Einstellungen für die Landesuche

SchlüsselStandardVerhalten
landing.searchAttemptsPerTick2Suchversuche pro Kanone pro Tick während des Vorladens (Minimum 1)
landing.preloadedLocationsPerCannon10Gesamtzahl sicherer Ziele, die das Plugin pro Kanone in der Warteschlange halten soll (Minimum 1)
landing.chargedLocationsPerCannon5Wie viele Positionen eine Kanone haben muss, bevor sie als geladen und startbereit gilt (Minimum 1, begrenzt durch preloadedLocationsPerCannon)
landing.searchTimeoutSeconds1000Zeit in Sekunden, bevor eine weiterhin suchende Kanone als erschöpft markiert wird (Minimum 10)
landing.slowFallingSeconds60Dauer von Langsamer Fall nach der Ankunft in Sekunden; der Effekt wird beim Landen frühzeitig entfernt (Minimum 1)
landing.failOpenOnProtectionErrorsfalseWenn eine Schutz-API einen Fehler meldet, wird die Landung standardmäßig blockiert

Landegeräusche

Die folgenden Sound-Schlüssel sind konfigurierbar:

  • landing.sounds.levitationStart.sound (Standard: BLOCK_BEACON_ACTIVATE)
  • landing.sounds.levitationStart.volume (Standard: 1.0)
  • landing.sounds.levitationStart.pitch (Standard: 1.15)
  • landing.sounds.blastOff.sound (Standard: ENTITY_GENERIC_EXPLODE)
  • landing.sounds.blastOff.volume (Standard: 1.0)
  • landing.sounds.blastOff.pitch (Standard: 0.9)

Sound-Werte verwenden Bukkit Sound-Registrierungsnamen oder Namensraum-Schlüssel. Ungültige Sound-Namen werden als Warnungen protokolliert und der Sound wird stillschweigend übersprungen.

Listen unsicherer Materialien

CannonRTP lehnt mögliche Landeorte anhand von zwei Materiallisten ab:

  • landing.unsafeGroundMaterials -- Blöcke, auf denen man niemals stehen sollte
  • landing.unsafeBodyMaterials -- Blöcke, die niemals den Fuß- oder Kopfbereich belegen sollten

Standardmäßig unsichere Bodenmaterialien:

  • LAVA
  • MAGMA_BLOCK
  • CAMPFIRE
  • SOUL_CAMPFIRE
  • CACTUS
  • POWDER_SNOW

Standardmäßig unsichere Körpermaterialien:

  • LAVA
  • WATER
  • FIRE
  • SOUL_FIRE
  • SWEET_BERRY_BUSH
  • POWDER_SNOW
  • COBWEB

Nachrichteneinstellungen

Alle Nachrichten unterstützen MagmaCore-Gradienten, MiniMessage-Tags und ältere Farbcodes. Der Platzhalter $prefix wird durch den konfigurierten Präfixwert ersetzt.

Das Plugin stellt folgende Nachrichtenschlüssel bereit:

SchlüsselPlatzhalterBeschreibung
messages.prefix--Präfix für alle CannonRTP-Nachrichten
messages.helpHeader$prefixKopfzeile, die von /cannonrtp angezeigt wird
messages.createdCannon$prefix, $cannon, $id, $pathGesendet nach dem Erstellen einer Kanone
messages.deletedCannon$prefix, $cannonGesendet nach dem Löschen einer Kanone
messages.movedCannon$prefix, $cannonGesendet nach dem Verschieben einer Kanone
messages.targetWorldUpdated$prefix, $cannon, $worldGesendet nach dem Ändern der Zielwelt einer Kanone
messages.searchCenterUpdated$prefix, $cannonGesendet nach dem Ändern des Suchzentrums einer Kanone
messages.reload$prefix, $countGesendet nach dem Neuladen
messages.noPermission$prefix, $cannonGesendet wenn ein Spieler eine Kanone sehen, aber nicht nutzen kann
messages.cannonDisabled$prefix, $cannonGesendet wenn ein Spieler eine deaktivierte Kanone betritt
messages.queueCalibration$prefix, $cannon, $queued, $target, $secondsGesendet während eine Kanone noch vorlädt
messages.noValidLocationYet$prefix, $cannonGesendet wenn noch kein sicherer Ort gefunden wurde
messages.noValidLocationFound$prefix, $cannon, $reasonGesendet wenn CannonRTP nach Zeitüberschreitung aufgibt
messages.invalidConfiguration$prefix, $cannon, $reasonGesendet wenn ein Konfigurationsfehler erkannt wird
messages.statusLine$prefix, $cannon, $status, $queued, $target, $reasonZeilenformat für /wc status und /wc list
messages.probeAllowed$prefixVon /wc probe gesendet wenn der Ort gültig ist
messages.probeBlocked$prefix, $plugin, $reasonVon /wc probe gesendet wenn der Ort blockiert ist
messages.unknownCommand$prefixGesendet wenn ein Administrator einen unbekannten Unterbefehl verwendet

Titelnachrichten

SchlüsselPlatzhalterBeschreibung
messages.titles.launchQueuedTitle$cannonTitel beim Start eines Abschusses
messages.titles.launchQueuedSubtitle$cannonUntertitel beim Start eines Abschusses
messages.titles.destinationPreviewTitle$x, $y, $zTitel während des Aufwärm-Countdowns
messages.titles.destinationPreviewSubtitle$x, $y, $zUntertitel während des Aufwärm-Countdowns
messages.titles.destinationConfirmedTitle$x, $y, $z, $worldTitel direkt vor der Teleportation
messages.titles.destinationConfirmedSubtitle$x, $y, $z, $worldUntertitel direkt vor der Teleportation
messages.titles.arrivalSubtitles--Liste von Untertiteln; nach jedem Abschuss wird einer zufällig ausgewählt

Die Koordinatenvorschau während der Aufwärmphase zeigt nicht das tatsächliche Ziel -- sie zeigt zufällige Koordinaten innerhalb des Suchbereichs der Kanone als visuellen Effekt. Das wahre Ziel wird erst im Bestätigungstitel enthüllt.

Konfigurationsfelder pro Kanone

Jede Kanonendatei (plugins/CannonRTP/custom/fun_rtps/<id>.yml) speichert diese Felder:

FeldStandardHinweise
isEnabledtrue für neu erstellte KanonenDeaktivierte Kanonen werden nicht ausgelöst
displayNameCannonRTP (oder der bei der Erstellung angegebene Name)Wird in Nachrichten, Statusausgabe und dem schwebenden Label verwendet
cannonLocationErforderlichWo sich der Kanonenauslöser befindet
targetWorldAktuelle Welt zum Zeitpunkt der ErstellungMuss zur Laufzeit geladen sein
searchCenternull (fällt auf den Spawn der Zielwelt zurück)Wenn nicht gesetzt, verwendet das Plugin den Spawn-Ort der Zielwelt
triggerRadius1.75Radius zur Erkennung naher Spieler (Minimum 0.5)
minSearchRadius500Mindestdistanz für die Landesuche vom Suchzentrum (Minimum 0)
maxSearchRadius5000Maximale Distanz für die Landesuche vom Suchzentrum (immer mindestens minSearchRadius + 1)
launchWarmupSeconds6Levitation-/Countdown-Zeit vor dem Start (Minimum 0; bei 0 ist der Start sofort)
verticalBoostTicks45Ticks mit Aufwärtsgeschwindigkeit vor dem Teleport (Minimum 0)
verticalBoostVelocity1.35Aufwärtsgeschwindigkeit während des Starts (Minimum 0)
enableParticlestrueSteuert die Leerlaufpartikel der Kanone
requiredPermissionleerOptionale zusätzliche Berechtigungsschranke für diese Kanone
customModelleerOptionaler FreeMinecraftModels-Modellname zur Anzeige am Kanonenstandort

Standardwerte bei der Kanonenerstellung

Wenn du /wc create <id> ausführst:

  • die Kanonen-ID wird kleingeschrieben und Zeichen außer a-z, 0-9, _ und - werden durch _ ersetzt
  • der Anzeigename wird standardmäßig CannonRTP, wenn nicht angegeben, oder der angegebene Name mit Unterstrichen als Leerzeichen
  • cannonLocation wird auf deine aktuelle Position gesetzt
  • targetWorld wird auf deine aktuelle Welt gesetzt
  • searchCenter wird nicht gesetzt (fällt auf den Spawn der Zielwelt zurück)

Nach der Erstellung zeigt das Plugin den Pfad der Konfigurationsdatei an und schlägt vor, welche Felder manuell bearbeitet werden sollten: displayName, customModel, requiredPermission, launchWarmupSeconds, verticalBoostTicks und verticalBoostVelocity.

FreeMinecraftModels-Integration

Wenn eine Kanonenkonfiguration customModel auf einen gültigen FreeMinecraftModels-Modellnamen setzt und FreeMinecraftModels installiert ist:

  • Eine statische Modellentität wird am Kanonenstandort erzeugt
  • Das schwebende Textlabel wird höher gesetzt, um Überlappungen mit dem Modell zu vermeiden
  • Wenn auch ein Modell namens fire existiert, wird eine alternative Startanimation verwendet: Der Spieler wird zum Kanonensitz teleportiert und während einer 2-Sekunden (40-Tick) Ladesequenz festgehalten, bevor der Abschuss mit Explosionspartikeleffekt erfolgt

Verhalten bei der Laufzeitvalidierung

CannonRTP lehnt mögliche Landeorte ab, wenn eine dieser Prüfungen fehlschlägt:

  • die Zielwelt ist nicht geladen
  • das Suchzentrum ist ungültig
  • die Zufallsprobe landet außerhalb der Weltgrenze
  • es wird keine sichere feste Oberfläche gefunden
  • der Fuß- oder Kopfbereich ist blockiert
  • Terrain- oder Körperblöcke entsprechen den konfigurierten Listen unsicherer Materialien
  • eine Schutzintegration blockiert die Landung

Wenn eine Kanone vor landing.searchTimeoutSeconds keine gültigen Orte finden kann, wird sie als erschöpft markiert und gibt die konfigurierte Fehlermeldung zurück, statt Spieler zu starten. Die Fehlermeldung enthält eine Zusammenfassung der häufigsten Ablehnungsgründe.

Das Suchfenster der Kanone startet neu, wenn verbrauchte Positionen nachgefüllt werden müssen (z.B. nachdem ein Spieler gestartet wurde und ein Platz frei wird).

Interaktions-Abklingzeit

CannonRTP erzwingt eine 3-Sekunden-Abklingzeit zwischen Interaktionen pro Spieler. Diese Abklingzeit gilt unabhängig davon, ob die Interaktion ein erfolgreicher Start, eine Berechtigungsablehnung oder eine andere Kanonenprüfung war. Die Abklingzeit ist nicht konfigurierbar.