Zum Hauptinhalt springen

CannonRTP Schutz-Integrationen

CannonRTP kann Kandidaten-Landeorte gegen mehrere Schutz-Plugins validieren, bevor sie zur Verwendung in die Warteschlange aufgenommen werden.

Unterstützte Integrationen​

Die unterstützten Schutz-Plugins sind:

  • WorldGuard (benötigt außerdem WorldEdit, das WorldGuard ohnehin voraussetzt)
  • Towny
  • Lands
  • GriefPrevention
  • HuskTowns
  • HuskClaims

Diese sind alle in der plugin.yml als softdepend deklariert (neben WorldEdit und FreeMinecraftModels). CannonRTP funktioniert auch ohne dass eines davon installiert ist; fehlende Plugins werden stillschweigend übersprungen.

Wie Schutzprüfungen funktionieren​

  • Adapter werden in einer festen Reihenfolge geprüft: WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, HuskClaims.
  • Ein Schutzadapter wird nur registriert, wenn (a) sein Schalter enabled in protection.yml auf true steht UND (b) das Plugin auf dem Server vorhanden und geladen ist.
  • Der erste Adapter, der einen Ort blockiert, stoppt die Prüfung und wird als gemeldeter Grund verwendet.
  • Wenn eine Schutz-API einen Fehler wirft, blockiert CannonRTP standardmäßig diese Landung (das sichere Verhalten). Dies wird durch failOpenOnProtectionErrors in landing.yml gesteuert.
  • Wenn ein Adapter aktiviert und sein Plugin vorhanden ist, der Adapter selbst sich aber nicht laden lässt (fehlende Klasse, inkompatible API-Version), protokolliert CannonRTP Failed to hook into <plugin> und behält für dieses Plugin einen Platzhalter in der Prüfkette, damit der Fehlschlag nicht so behandelt wird, als wäre das Plugin nicht installiert. failOpenOnProtectionErrors entscheidet, was der Platzhalter tut:
    • false (Standard): Der Platzhalter blockiert jeden Ort mit dem Grund its adapter failed to initialize (...), und die Kanonen hören auf zu suchen. Jede Kanone wird mit geschütztem Land als Grund als Exhausted markiert, statt Orte zu prüfen, die nicht bestehen können. Behebe die Integration oder deaktiviere sie in protection.yml und führe dann /wc reload aus.
    • true: Der Platzhalter erlaubt jeden Ort, und die anderen Adapter laufen weiterhin.

Der globale Sicherheitsschalter für API-Fehler ist:

  • failOpenOnProtectionErrors (in landing.yml)

Standard: false

Wenn auf true gesetzt, lässt CannonRTP Landungen weiterhin zu, wenn ein Schutz-Plugin nicht sicher abgefragt werden kann. Bei false blockiert ein Abfragefehler diesen Ort mit dem Grund its API could not be queried safely. Abfragefehler werden bei beiden Einstellungen als Warnungen protokolliert.

Der Befehl /wc probe​

Admins können sich an einer beliebigen Position aufstellen und /wc probe ausführen, um zu testen, ob diese Position alle aktivierten Schutzprüfungen besteht. Das Ergebnis meldet, welches Plugin den Ort blockiert hat und warum, oder bestätigt, dass die Schutzadapter ihn erlauben. Der Befehl prüft weder das Gelände noch die Blocksäule für den Abwurf, den Suchradius oder das API-Event zur Standortvalidierung.

Konfigurationsdatei​

Alle Schutzschalter befinden sich in plugins/CannonRTP/protection.yml. Schlüssel sind auf oberster Ebene (z. B. worldGuard.enabled, nicht protection.worldGuard.enabled).

Plugin-spezifisches Verhalten​

WorldGuard​

Konfigurationsschlüssel:

  • worldGuard.enabled
  • worldGuard.allowGlobalRegionOnly
  • worldGuard.allowBuildAllowedRegions
  • worldGuard.allowPassthroughRegions

Standardverhalten:

  • standardmäßig aktiviert
  • Orte, die nur von __global__ abgedeckt sind, sind standardmäßig erlaubt
  • Regionen mit build=ALLOW sind standardmäßig erlaubt
  • Regionen mit passthrough=ALLOW sind standardmäßig erlaubt
  • andere zutreffende geschützte Regionen werden blockiert

Towny​

Konfigurationsschlüssel:

  • towny.enabled
  • towny.allowWilderness
  • towny.allowNationZones
  • towny.allowClaimedTownBlocks

Standardverhalten:

  • standardmäßig aktiviert
  • Welten, in denen Towny nicht aktiviert ist, sind immer erlaubt
  • Wildnis ist erlaubt
  • Nationszonen werden blockiert
  • beanspruchte Town-Blöcke werden blockiert

Lands​

Konfigurationsschlüssel:

  • lands.enabled
  • lands.allowUnclaimedAreas
  • lands.allowClaimedAreas

Standardverhalten:

  • standardmäßig aktiviert
  • unbeanspruchte Gebiete sind erlaubt
  • beanspruchte Gebiete werden blockiert

GriefPrevention​

Konfigurationsschlüssel:

  • griefPrevention.enabled
  • griefPrevention.allowWilderness
  • griefPrevention.allowAdminClaims
  • griefPrevention.allowPlayerClaims

Standardverhalten:

  • standardmäßig aktiviert
  • Wildnis ist erlaubt
  • Admin-Claims werden blockiert
  • Spieler-Claims werden blockiert

HuskTowns​

Konfigurationsschlüssel:

  • huskTowns.enabled
  • huskTowns.allowWilderness
  • huskTowns.allowAdminClaims
  • huskTowns.allowRegularClaims
  • huskTowns.allowFarmClaims
  • huskTowns.allowPlotClaims

Standardverhalten:

  • standardmäßig aktiviert
  • Wildnis ist erlaubt
  • Admin-Claims werden blockiert
  • reguläre Town-Claims werden blockiert
  • Farm-Claims werden blockiert
  • Plot-Claims werden blockiert

HuskClaims​

Konfigurationsschlüssel:

  • huskClaims.enabled
  • huskClaims.allowWilderness
  • huskClaims.allowAdminClaims
  • huskClaims.allowPlayerClaims

Standardverhalten:

  • standardmäßig aktiviert
  • Wildnis ist erlaubt
  • Admin-Claims werden blockiert
  • Spieler-Claims werden blockiert

Weitere Validierung gilt weiterhin​

Schutz-Integrationen sind nur ein Teil der Landevalidierung. Ein Ort kann immer noch abgelehnt werden, weil:

  • er außerhalb der Weltgrenze liegt
  • keine sichere Oberfläche existiert
  • der Fuß- oder Kopfraum blockiert ist
  • das Gelände den konfigurierten Listen unsicherer Materialien entspricht
  • ein CannonRTPLocationValidationEvent-Listener ihn verwirft (siehe API-Events)

Fehlerberichterstattung​

Wenn eine Kanone erschöpft ist (sie findet nicht genügend gültige Orte, bevor searchTimeoutAttempts aufgebraucht ist, oder stoppt vorzeitig, weil eine Schutz-Integration nicht geladen werden konnte), nennen Statusausgabe und Spielernachrichten die in diesem Suchfenster aufgetretenen Ablehnungskategorien. Geschütztes Land wird bereits genannt, wenn ein einziger Kandidat deshalb abgelehnt wurde. Trotz Formulierungen wie „most samples“ im Standardtext enthält die Meldung weder Anzahlen noch eine Rangfolge nach Häufigkeit. Nutze sie, um zu untersuchende Prüfungen zu erkennen, nicht um deren Ablehnungshäufigkeit zu vergleichen.