跳至主要内容

WorldCannon 設定

WorldCannon 使用一個全域設定檔,並為每個砲台各自使用一個設定檔。

檔案配置

  • 全域設定:plugins/FunRTP/config.yml
  • 每個砲台的設定:plugins/FunRTP/custom/fun_rtps/<id>.yml

此外掛也附帶一個名為 example_world_cannon 的示例砲台套件。它預設為停用狀態。

全域設定結構

主設定依下列區塊組織:

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

執行階段設定

KeyDefaultBehavior
runtime.scanIntervalTicks10砲台檢查附近玩家的頻率
runtime.particleIntervalTicks15閒置砲台粒子效果的渲染頻率

落點搜尋設定

KeyDefaultBehavior
landing.searchAttemptsPerTick2預先載入期間,每個砲台每 tick 進行的搜尋嘗試次數
landing.preloadedLocationsPerCannon5外掛會嘗試為每個砲台佇列保留的安全目的地數量
landing.searchTimeoutSeconds1000砲台持續搜尋超過此時間後會被標記為耗盡
landing.slowFallingSeconds60到達後獲得緩降效果的持續時間(玩家落地時效果會提前移除)
landing.failOpenOnProtectionErrorsfalse如果保護 API 發生錯誤,預設會阻止此次落點

落點音效

以下音效鍵可進行設定:

  • landing.sounds.levitationStart.sound
  • landing.sounds.levitationStart.volume
  • landing.sounds.levitationStart.pitch
  • landing.sounds.blastOff.sound
  • landing.sounds.blastOff.volume
  • landing.sounds.blastOff.pitch

預設音效為:預熱使用 BLOCK_BEACON_ACTIVATE,發射使用 ENTITY_GENERIC_EXPLODE

不安全材料清單

WorldCannon 會根據兩份材料清單拒絕候選落點:

  • landing.unsafeGroundMaterials
  • landing.unsafeBodyMaterials

預設不安全地面材料:

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

預設不安全身體空間材料:

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

訊息設定

此外掛在以下路徑下提供訊息與標題鍵:

  • messages.prefix
  • messages.helpHeader
  • messages.createdCannon
  • messages.deletedCannon
  • messages.movedCannon
  • messages.targetWorldUpdated
  • messages.searchCenterUpdated
  • messages.reload
  • messages.noPermission
  • messages.cannonDisabled
  • messages.queueCalibration
  • messages.noValidLocationYet
  • messages.noValidLocationFound
  • messages.invalidConfiguration
  • messages.statusLine
  • messages.probeAllowed
  • messages.probeBlocked
  • messages.unknownCommand
  • messages.titles.launchQueuedTitle
  • messages.titles.launchQueuedSubtitle
  • messages.titles.destinationPreviewTitle
  • messages.titles.destinationPreviewSubtitle
  • messages.titles.destinationConfirmedTitle
  • messages.titles.destinationConfirmedSubtitle
  • messages.titles.arrivalSubtitles

標題鍵控制自動發射與到達時的訊息。arrivalSubtitles 是一個列表;外掛每次發射時會隨機選擇其中一行。目前的實作中沒有手動確認提示。

每個砲台的設定欄位

每個砲台檔案會儲存下列欄位:

FieldDefaultNotes
isEnabled新建立的砲台預設為 true停用的砲台不會觸發
displayName將 id 淨化後,把底線轉成空格用於訊息與狀態輸出
cannonLocation必填砲台觸發器所在的位置
targetWorld建立時的目前世界執行時必須已載入
searchCenter建立時的目前世界出生點如果之後未設定,外掛會回退到目標世界的出生點
triggerRadius1.75用來偵測附近玩家的半徑
minSearchRadius500從搜尋中心開始的最小落點搜尋距離
maxSearchRadius5000從搜尋中心開始的最大落點搜尋距離
launchWarmupSeconds6發射前的漂浮/倒數時間
verticalBoostTicks45傳送前向上推進的 tick 數
verticalBoostVelocity1.35發射時施加的向上速度
enableParticlestrue控制閒置砲台粒子效果
requiredPermission空白此砲台可選的額外權限門檻

建立砲台時的預設值

當你執行 /wc create 時:

  • 砲台 id 會轉成小寫,並將 a-z0-9_- 以外的字元替換為 _
  • 顯示名稱預設使用淨化後的 id,並將底線轉成空格
  • cannonLocation 會設為你目前所在的位置
  • targetWorld 會設為你目前所在的世界
  • searchCenter 會設為該世界的出生點

執行階段驗證行為

只要下列任一檢查失敗,WorldCannon 就會拒絕候選落點:

  • 目標世界未載入
  • 搜尋中心無效
  • 隨機取樣點落在世界邊界之外
  • 找不到安全的實體地表
  • 腳部或頭部空間被阻擋
  • 地形或身體空間方塊符合已設定的不安全材料清單
  • 某個保護整合阻止了該落點

如果某個砲台在 landing.searchTimeoutSeconds 之前無法找到有效位置,它會變成耗盡狀態,並開始回傳已設定的失敗訊息,而不是發射玩家。