Skip to main content

CannonRTP Protection Integrations

CannonRTP can validate candidate landing locations against several protection plugins before it queues them for use.

Supported Integrations

The current soft dependencies are:

  • WorldGuard
  • Towny
  • Lands
  • GriefPrevention
  • HuskTowns
  • HuskClaims

These are declared as softdepend in plugin.yml. CannonRTP works without any of them installed.

How Protection Checks Work

  • Adapters are checked in a fixed order: WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, HuskClaims.
  • The first adapter that blocks a location stops the check and becomes the reported reason.
  • If an adapter is disabled in config or the plugin is not present, it is skipped.
  • If a protection API throws an error, CannonRTP blocks that landing by default.

The global safety toggle for API failures is:

  • landing.failOpenOnProtectionErrors

Default: false

When set to true, CannonRTP will allow landings to continue when a protection plugin cannot be queried safely.

The /wc probe Command

Admins can stand at any location and run /wc probe to test whether that location passes all protection checks. The result reports which plugin blocked the location and why, or confirms that the location is valid.

Config Paths

All protection toggles live under protection.* in plugins/CannonRTP/config.yml.

Per-Plugin Behavior

WorldGuard

Config keys:

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

Default behavior:

  • enabled by default
  • locations covered only by __global__ are allowed by default
  • regions with build=ALLOW are allowed by default
  • regions with passthrough=ALLOW are allowed by default
  • other matching protected regions are blocked

Towny

Config keys:

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

Default behavior:

  • enabled by default
  • wilderness is allowed
  • nation zones are blocked
  • claimed town blocks are blocked

Lands

Config keys:

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

Default behavior:

  • enabled by default
  • unclaimed areas are allowed
  • claimed areas are blocked

GriefPrevention

Config keys:

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

Default behavior:

  • enabled by default
  • wilderness is allowed
  • admin claims are blocked
  • player claims are blocked

HuskTowns

Config keys:

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

Default behavior:

  • enabled by default
  • wilderness is allowed
  • admin claims are blocked
  • regular town claims are blocked
  • farm claims are blocked
  • plot claims are blocked

HuskClaims

Config keys:

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

Default behavior:

  • enabled by default
  • wilderness is allowed
  • admin claims are blocked
  • player claims are blocked

Non-Protection Validation Still Applies

Protection integrations are only one part of landing validation. A location can still be rejected because:

  • it is outside the world border
  • no safe surface exists
  • the feet or head space is blocked
  • the terrain matches the configured unsafe material lists

Failure Reporting

When a cannon becomes exhausted (cannot find enough valid locations before the search timeout), the status output and player-facing messages include a breakdown of common rejection reasons. If most rejections came from protected land, that is reported. This helps admins diagnose whether protection settings are too restrictive for their server.