跳至主要内容

CannonRTP 保護插件整合

CannonRTP 可以在將候選降落位置加入使用佇列之前,對其進行多個保護插件的驗證。

支援的整合

目前的軟體相依為:

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

這些在 plugin.yml 中以 softdepend 宣告。即使未安裝任何一個,CannonRTP 仍可運作;缺少的插件會被默默略過。

保護檢查的運作方式

  • 介接器以固定順序進行檢查:WorldGuard、Towny、Lands、GriefPrevention、HuskTowns、HuskClaims。
  • 保護介接器只在 (a) 其 enabled 開關於 protection.yml 中為 true,且 (b) 該插件已於伺服器上存在並載入時才會被註冊。
  • 第一個阻擋位置的介接器會停止檢查,並成為回報的原因。
  • 若保護 API 拋出錯誤,CannonRTP 預設會阻擋該降落(fail-closed,失敗封閉)。此行為由 landing.yml 中的 failOpenOnProtectionErrors 控制。

API 失敗時的全域安全切換為:

  • failOpenOnProtectionErrors(位於 landing.yml

預設:false

當設為 true 時,CannonRTP 會在保護插件無法被安全查詢時允許降落繼續。

/wc probe 指令

管理員可站在任何位置並執行 /wc probe 來測試該位置是否能通過所有啟用的保護檢查。結果會報告哪個插件阻擋了該位置以及為何阻擋,或確認該位置有效。

設定檔

所有保護開關位於 plugins/CannonRTP/protection.yml。鍵為頂層(例如 worldGuard.enabled,而非 protection.worldGuard.enabled)。

各插件行為

WorldGuard

設定鍵:

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

預設行為:

  • 預設啟用
  • 僅由 __global__ 覆蓋的位置預設被允許
  • 設定 build=ALLOW 的區域預設被允許
  • 設定 passthrough=ALLOW 的區域預設被允許
  • 其他匹配的受保護區域被阻擋

Towny

設定鍵:

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

預設行為:

  • 預設啟用
  • 荒野被允許
  • 國家區域被阻擋
  • 已佔領的城鎮方塊被阻擋

Lands

設定鍵:

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

預設行為:

  • 預設啟用
  • 未佔領區域被允許
  • 已佔領區域被阻擋

GriefPrevention

設定鍵:

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

預設行為:

  • 預設啟用
  • 荒野被允許
  • 管理員領地被阻擋
  • 玩家領地被阻擋

HuskTowns

設定鍵:

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

預設行為:

  • 預設啟用
  • 荒野被允許
  • 管理員領地被阻擋
  • 一般城鎮領地被阻擋
  • 農地領地被阻擋
  • 地塊領地被阻擋

HuskClaims

設定鍵:

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

預設行為:

  • 預設啟用
  • 荒野被允許
  • 管理員領地被阻擋
  • 玩家領地被阻擋

非保護驗證同樣適用

保護插件整合只是降落驗證的一部分。位置仍可能因下列原因被拒絕:

  • 位於世界邊界外
  • 不存在安全表面
  • 腳部或頭部空間被阻擋
  • 地形與設定的不安全材質清單匹配
  • CannonRTPLocationValidationEvent 監聽器否決該位置(見 API 事件

失敗報告

當大砲變為 exhausted(在 searchTimeoutAttempts 用盡之前無法找到足夠的有效位置)時,狀態輸出與面向玩家的訊息會包含常見拒絕原因的細項。若大部分拒絕來自受保護的土地,該情況會被回報。這有助於管理員診斷其保護設定是否對伺服器過於嚴格。