跳至主要內容

CannonRTP 訊息與標題

所有面向玩家的字串位於 plugins/CannonRTP/messages.yml,並可完全覆寫。每個值皆支援 MagmaCore 漸層(<gradient:#start:#end>...</gradient>)、MiniMessage 標籤,以及舊式 & 顏色代碼。任何訊息中的 $prefix 預留位置會以已設定的 prefix 值取代。

Release 1 僅提供英文;config.yml 中的 language 鍵存在是為了讓未來的翻譯包可以鎖定它。

前綴與說明標頭​

鍵預留位置預設說明
prefix--<gradient:#ff9a3d:#ffd166>CannonRTP</gradient> &8|透過 $prefix 注入每則訊息的前綴
helpHeader$prefix$prefix &fCannonRTP commands:列印於 /cannonrtp、/wc help 與 /wc list / /wc status 頂端的問候列

聊天訊息​

鍵預留位置說明
createdCannon$prefix、$cannon、$id、$path/wc create 成功後發送
placedCannon$prefix、$cannon/wc place 成功後發送
removedCannon$prefix、$cannon/wc remove 成功後發送
deletedCannon$prefix、$cannon/wc delete 成功後發送
targetWorldUpdated$prefix、$cannon、$world/wc target 成功後發送
searchCenterUpdated$prefix、$cannon/wc center 成功後發送
reload$prefix、$count大砲編輯指令重建放置點後發送。/wc reload 重載整個插件,改用 MagmaCore 的共用完成訊息。
noPermission$prefix、$cannon當玩家走入其缺少 requiredPermission 的大砲時發送(每位玩家每座大砲節流為每 3 秒一次)
launchCooldown$prefix、$cannon、$seconds、$unit當玩家在其「已接受發射」冷卻結束前踏入任何大砲時發送。$seconds 會向上取整;$unit 為 second 或 seconds。通知會以每位玩家每座大砲每 3 秒一次的頻率節流。
cannonDisabled$prefix、$cannon保留。已停用的大砲會被完全排除在 tick 迴圈之外,因此目前的版本永遠不會發送這則訊息——該鍵會被寫入 messages.yml,但沒有任何程式碼會讀取它。
queueCalibration$prefix、$cannon、$queued、$target、$attempts當大砲仍在預載且玩家走入時發送。在此訊息中 $target 為 chargedLocationsPerCannon;$attempts 為大砲耗盡前剩餘的搜尋嘗試預算
noValidLocationYet$prefix、$cannon發射當下大砲佇列為空時的備用訊息。目前的版本會先檢查佇列,改為發送 queueCalibration 或 noValidLocationFound,因此這則訊息通常不會顯示。
noValidLocationFound$prefix、$cannon、$reason當玩家走入一座已放棄搜尋(用盡 searchTimeoutAttempts,或保護整合載入失敗)且佇列為空的大砲時發送。$reason 列出該輪搜尋遇到的拒絕類別,不包含次數或頻率排名。
invalidConfiguration$prefix、$cannon、$reason當偵測到設定錯誤時發送(例如目標世界未載入)
statusLine$prefix、$cannon、$status、$queued、$target、$reason用於 /wc list 與 /wc status 每一列的行格式。在此訊息中 $target 為 preloadedLocationsPerCannon(完整儲備目標,而非充能門檻)
probeAllowed$prefix保護整合允許該位置時由 /wc probe 發送;不檢查地形或 API 監聽器。
probeBlocked$prefix、$plugin、$reason當位置被阻擋時由 /wc probe 發送
unknownCommand$prefix保留。無法辨識的子指令是由共用的 MagmaCore 指令管理器處理的,因此目前的版本永遠不會發送這則訊息——該鍵會被寫入 messages.yml,但沒有任何程式碼會讀取它。

invalidConfiguration 同時兼作通用的管理員錯誤訊息行:當沒有放置任何大砲時,/wc list / /wc status 也會發送它;而當 id 或世界無法解析時,/wc create、/wc place、/wc remove、/wc delete、/wc target 和 /wc center 同樣會發送它;/wc create 收到已存在的 id,或大砲檔案無法儲存或刪除時,也會發送它。

狀態標籤​

浮動大砲標籤、/wc list 以及 $status 預留位置所使用的狀態字詞皆可設定。

鍵預設顯示時機
statusLabels.readyReady佇列達到 chargedLocationsPerCannon;即使低於此顯示門檻,也能使用佇列中的目的地發射。
statusLabels.chargingCharging大砲仍在尋找它的第一個安全目的地
statusLabels.maintainingMaintaining大砲正在補充其目的地儲備
statusLabels.exhaustedExhausted佇列達到充能門檻前已用盡搜尋失敗額度;佇列中的目的地仍可使用。
statusLabels.disabledDisabled大砲在其設定中被停用。僅出現在 /wc list 與 /wc status 中,因為已停用的大砲不會生成浮動標籤。
statusLabels.invalidInvalid保留鍵,不顯示。目標世界無法使用時,將搜尋重設為 SEARCHING 並移除該世界的目的地。空佇列顯示 Charging,$reason 回報無法使用的世界。

這些是原始字串,因此漸層與顏色代碼在此同樣有效。你設定的任何值都會成為 statusLine 中的 $status 值。

標題池​

發射序列中的數個標題欄位被設定為清單,而非單一字串。每次發射時,CannonRTP 會從清單中隨機挑選一個條目。這使得重複的發射不會感覺一模一樣。

鍵預留位置階段說明
titles.launchQueuedTitles$cannonSEARCHING 開始發射開始時顯示的標題字串池
titles.launchQueuedSubtitles$cannonSEARCHING 開始與發射開始標題搭配的副標題池
titles.destinationPreviewTitles--SEARCHING在隨機座標閃過時顯示的標題池。階段開始時會挑選一個條目,並在整個階段中維持不變。
titles.destinationPreviewSubtitle$x、$y、$zSEARCHING(每 tick)顯示閃爍隨機座標的單一副標題字串
titles.destinationConfirmedTitles$x、$y、$z、$worldFIRING 開始真實目的地鎖定瞬間顯示的標題池
titles.destinationConfirmedSubtitle$x、$y、$z、$worldFIRING 開始顯示真實目的地的單一副標題
titles.arrivalTitles$x、$y、$z、$worldTELEPORTING空投傳送後立即顯示的標題池
titles.arrivalSubtitles$x、$y、$z、$worldTELEPORTING與抵達標題並列顯示的副標題池

預留位置會從同一組值代入標題與其副標題,因此為某一半列出的任何預留位置在另一半中同樣可用。例外是 destinationPreviewTitles:選中的條目會在該階段開始時格式化一次,因此 $x、$y 與 $z 在其中不會被解析。$prefix 在任何地方都能解析,儘管在標題中很少會需要它。

若某個字串池被設為空清單,CannonRTP 會改用其內建預設值的第一個條目。

單一與池的差別

destinationPreviewSubtitle 與 destinationConfirmedSubtitle 為單一字串,因為它們包含必須始終被渲染的動態座標。其他標題與副標題欄位皆為池,每次發射時會從各自的池中隨機挑選一個條目。

預設標題池​

messages.yml 中附帶的預設值:

launchQueuedTitles —— Launching、Ignition、Liftoff(橙金漸層)

launchQueuedSubtitles —— $cannon(暖金色)

destinationPreviewTitles —— Calibrating、Scanning、Targeting(橙金色)

destinationConfirmedTitles —— Locked、Set、Engaged(綠色)

arrivalTitles —— Arrived、Touchdown、Airborne(冷白色)

arrivalSubtitles —— Good luck.、Stick the landing.、Eyes up. Ground soon.、Wind check complete. Good luck.、Drop zone acquired. Good luck.

預留位置參考​

預留位置解析為
$prefixmessages.yml -> prefix 的值
$cannon大砲的 displayName。在 deletedCannon 以及大多數透過 invalidConfiguration 發送的管理指令錯誤中,則是你輸入的 id。
$id大砲的設定 id(淨化過的小寫)
$path新建大砲設定檔的絕對路徑(僅在 createdCannon 中)
$world目標世界名稱
$count重建後已載入的大砲放置點數量(所有大砲檔案中每個 cannonLocations 條目算一個,包含已停用的大砲)
$queued大砲目前的佇列大小
$target視情境而定:於 queueCalibration 中為 chargedLocationsPerCannon,於 statusLine 中為 preloadedLocationsPerCannon。兩個鍵皆位於 landing.yml。
$attempts大砲耗盡前剩餘的搜尋嘗試次數
$seconds向上取整的剩餘發射冷卻時間
$unitsecond 或 seconds,與 $seconds 相符
$status對應的 statusLabels.* 值——預設為 Ready、Charging、Maintaining、Exhausted 或 Disabled
$reason狀態或失敗的人類可讀細節
$plugin阻擋位置的保護外掛程式名稱
$x、$y、$z座標(一位小數)

本地化備註​

上述列出的每個鍵在顯示給玩家之前都會經過 MagmaCore 的顏色/漸層處理器。鎖定 config.yml 中 language 的翻譯包將透過相同的 translatable() 掛接接入(目前在 Release 1 中為直通)。