跳至主要內容

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 完成後發送
noPermission$prefix$cannon當玩家走入其缺少 requiredPermission 的大砲時發送(每位玩家每座大砲節流為每 3 秒一次)
launchCooldown$prefix$cannon$seconds$unit當玩家在其「已接受發射」冷卻結束前踏入任何大砲時發送。$seconds 會向上取整;$unitsecondseconds。通知會以每位玩家每座大砲每 3 秒一次的頻率節流。
cannonDisabled$prefix$cannon保留。已停用的大砲會被完全排除在 tick 迴圈之外,因此目前的版本永遠不會發送這則訊息——該鍵會被寫入 messages.yml,但沒有任何程式碼會讀取它。
queueCalibration$prefix$cannon$queued$target$attempts當大砲仍在預載且玩家走入時發送。在此訊息中 $targetchargedLocationsPerCannon$attempts 為大砲耗盡前剩餘的搜尋嘗試預算
noValidLocationYet$prefix$cannon當尚無任何安全位置被加入佇列時發送
noValidLocationFound$prefix$cannon$reason當 CannonRTP 用盡 searchTimeoutAttempts 後放棄時發送。$reason 為最常見拒絕原因的逗號分隔摘要
invalidConfiguration$prefix$cannon$reason當偵測到設定錯誤時發送(例如目標世界未載入)
statusLine$prefix$cannon$status$queued$target$reason用於 /wc list/wc status 每一列的行格式。在此訊息中 $targetpreloadedLocationsPerCannon(完整儲備目標,而非充能門檻)
probeAllowed$prefix當位置有效時由 /wc probe 發送
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 list 以及 $status 預留位置所使用的狀態字詞皆可設定。

預設顯示時機
statusLabels.readyReady大砲已有足夠的預載位置可以發射玩家
statusLabels.chargingCharging大砲仍在尋找它的第一個安全目的地
statusLabels.maintainingMaintaining大砲正在補充其目的地儲備
statusLabels.exhaustedExhausted大砲找不到安全的目的地
statusLabels.disabledDisabled大砲在其設定中被停用
statusLabels.invalidInvalid保留。目前的版本會透過三個內部搜尋狀態(READYSEARCHINGEXHAUSTED)加上停用檢查來解析每個狀態,因此不會有任何情況渲染這個標籤。targetWorld 未載入的大砲會保留其搜尋狀態標籤,並改為透過 $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與抵達標題並列顯示的副標題池

預留位置會從同一組值代入標題與其副標題,因此為某一半列出的任何預留位置在另一半中同樣可用。$prefix 在任何地方都能解析,儘管在標題中很少會需要它。

單一與池的差別

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

預設標題池

messages.yml 中附帶的預設值:

launchQueuedTitles —— LaunchingIgnitionLiftoff(橙金漸層)

launchQueuedSubtitles —— $cannon(暖金色)

destinationPreviewTitles —— CalibratingScanningTargeting(橙金色)

destinationConfirmedTitles —— LockedSetEngaged(綠色)

arrivalTitles —— ArrivedTouchdownAirborne(冷白色)

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
$id大砲的設定 id(淨化過的小寫)
$path新建大砲設定檔的絕對路徑(僅在 createdCannon 中)
$world目標世界名稱
$count重新載入後已載入的大砲數量
$queued大砲目前的佇列大小
$target視情境而定:於 queueCalibration 中為 chargedLocationsPerCannon,於 statusLine 中為 preloadedLocationsPerCannon。兩個鍵皆位於 landing.yml
$attempts大砲耗盡前剩餘的搜尋嘗試次數
$seconds向上取整的剩餘發射冷卻時間
$unitsecondseconds,與 $seconds 相符
$status對應的 statusLabels.* 值——預設為 ReadyChargingMaintainingExhaustedDisabled
$reason狀態或失敗的人類可讀細節
$plugin阻擋位置的保護外掛程式名稱
$x$y$z座標(一位小數)

本地化備註

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