跳至主要內容

CannonRTP 指令與權限

CannonRTP 將其指令註冊於 cannonrtp 命名空間之下。

  • 根指令:/cannonrtp
  • 別名:/crtp、/wc

/wc 是大多數管理員會使用的簡短別名,但所有子指令的底層權限節點皆為 cannonrtp.admin。

管理員指令​

create、place、remove、target 和 center 會先儲存設定,再套用變更。如果儲存失敗,指令會回報錯誤,不會重新載入或套用該變更。請先解決回報的檔案問題,再重試。

變更成功後,這些指令以及 delete 會重建每一座大砲,而不只是你編輯的那一座。進行中的發射會被取消,這些玩家會被送回大砲座位;每座大砲會捨棄其佇列中的目的地並重新開始搜尋,所有發射冷卻時間也會重設。

指令發送者說明
/cannonrtp任意顯示說明標頭,後接發送者可使用的每個已註冊子指令
/wc help任意與 /cannonrtp 相同 —— 列印說明清單
/wc create <id>玩家建立全新的大砲設定,並在你目前所在位置放置第一個實例。若 id 已存在則拒絕執行;請使用 /wc place 為其新增放置點。
/wc create <id> <display_name>玩家同上,但設定自訂顯示名稱(底線會轉為空格)
/wc place <id>玩家在你目前所在位置新增現有大砲的另一個放置點
/wc remove <id>玩家移除你目前世界中最接近的 <id> 放置點(保留設定檔)
/wc delete <id>任意直接刪除大砲的設定檔
/wc target <id> <world>玩家變更大砲的目標降落世界
/wc center <id>玩家將大砲的搜尋中心設為你目前所在位置
/wc list任意列出每個放置點的顯示名稱、狀態、佇列大小與最新狀態詳情
/wc status任意輸出與 /wc list 相同
/wc probe玩家測試你目前所在位置是否能通過所有啟用的保護檢查
/wc reload任意完整重新載入 CannonRTP:每個設定檔、大砲與保護介接器,以及 imports/ 資料夾中等待處理的任何內容
/wc setup玩家開啟 Nightbreak 風格的內容瀏覽器選單(列出已安裝與可下載的大砲內容包)
/wc recommendedplugins任意開啟 Nightbreak 的 CannonRTP 推薦搭配插件目錄
/wc downloadpluginupdate任意從 Nightbreak 下載較新的 CannonRTP 插件 jar。它會在下次伺服器重啟後使用;若 config.yml 中的 nightbreak.applyPluginUpdatesWithoutRestart 為 when-empty 或 immediately,則會更早使用
/wc applypluginupdate任意透過從新的 jar 重新載入插件,在不重啟的情況下套用已下載的 CannonRTP 更新。沒有有效且較新的更新在等待、有其他作者的插件依賴(depend)或軟依賴(soft-depend)CannonRTP,或另一個插件替換作業正在執行時,會拒絕執行。若新的 jar 無法啟用,會重新載入先前的 jar,更新則保留在更新資料夾中,待下次重啟時套用。請參閱不重啟即套用更新。
/wc downloadall任意下載 CannonRTP 插件更新以及Nightbreak 上所有可用的內容包
/wc downloadallcontent任意從 Nightbreak 下載所有可用的 CannonRTP 內容包(僅內容,不含插件 jar)
/wc updatecontent任意下載已過時的 CannonRTP 內容包更新(別名:/wc updateallcontent)
/wc forcereinstallcontent <package|all>任意即使本機副本已是最新,仍從 Nightbreak 重新下載內容 —— 可用來修復損毀或被手動編輯過的內容包檔案。傳入 all 可涵蓋所有已下載的內容包,或以 tab 補完選擇單一 Nightbreak 內容包代號(free-cannon-model、cannonrtp-premium-cannon-model)。

/wc initialize 為擁有 cannonrtp.admin 的玩家開啟首次設定選單。/wc setup 開啟內容瀏覽器。共用初始化流程會註冊這兩個指令;預設模式不決定 initialize 是否存在。

在設定標記為完成(config.yml 中的 setupDone)之前,擁有 cannonrtp.admin 的玩家會在加入約 10 秒後收到聊天提醒,其中附有可點擊的 /wc initialize 與 /wc setup 連結。首次設定選單中的每個選項(Recommended Setup、Manual Setup、Use Current Content)都會將 setupDone 設為 true 並停止提醒。

以上所有管理員子指令皆需要 cannonrtp.admin。

這些 Nightbreak 指令隨 CannonRTP 一同提供

/wc setup、/wc initialize、/wc recommendedplugins、/wc downloadpluginupdate、/wc applypluginupdate、/wc downloadall、/wc downloadallcontent、/wc updatecontent 與 /wc forcereinstallcontent 是由內嵌(shaded)至 CannonRTP 的共用 MagmaCore 函式庫所提供。它們會自動註冊 —— 你不會在 plugin.yml 中看到它們。獨立的 /nightbreaklogin 指令(同樣來自 MagmaCore)會將伺服器連結到你的 Nightbreak 帳號以下載高級內容,而 /nightbreaklogout 則會解除連結(請參閱中斷伺服器連結)。

MagmaCore 也會註冊 /wcchangelog,向管理員顯示未讀的 CannonRTP 與大砲內容包發行說明。請參閱更新日誌通知。

關於 /wc setup、/wc downloadall 與 /wc updatecontent 實際管理的內容,請參閱內容包頁面。

create 與 place、remove、delete 的區別

一份大砲設定(plugins/CannonRTP/cannons/<id>.yml)可驅動多個世界中的放置點。create 建立設定並產生第一個放置點。place 為現有設定新增另一個放置點。remove 刪除一個放置點(你所在世界中距你最近的),但保留設定檔。delete 則直接刪除設定檔,移除所有放置點。三個內建檔案(example_cannonrtp、cannonrtp_free_cannon、cannonrtp_premium_cannon)會在隨後的重新載入時以預設值、不含任何放置點的狀態重新出現。

玩家互動​

沒有玩家指令可啟用大砲。玩家是透過走入大砲的觸發半徑(triggerRadius,預設 1.75 格)來使用 CannonRTP。

權限​

plugin.yml 中註冊了兩個權限節點:

權限預設說明
cannonrtp.adminop所有管理員子指令所需(包含隨附的 Nightbreak setup / downloadall / updatecontent 指令)
cannonrtp.usetrue玩家觸發任何大砲前所需

共用的 /nightbreaklogin 與 /nightbreaklogout 指令(由 MagmaCore 提供,並未宣告於 CannonRTP 的 plugin.yml 中)使用其自身的 nightbreak.login 權限節點,預設為 op。

cannonrtp.use 的運作方式​

若玩家缺少 cannonrtp.use,大砲會默默忽略該玩家。此基礎權限檢查不會發送任何拒絕訊息 —— 他們只是穿過大砲區域而不會被發射。

個別大砲的額外權限​

每份大砲設定也可以定義 requiredPermission 欄位。

  • 若 requiredPermission 為空(預設),大砲只檢查 cannonrtp.use。
  • 若 requiredPermission 已設定,且玩家有 cannonrtp.use 但缺少此個別大砲的節點,CannonRTP 會發送包含大砲顯示名稱的 noPermission 訊息。該訊息對於每位玩家每座大砲節流為每 3 秒一次。

Tab 自動完成​

作用於現有大砲的指令(place、remove、delete、target、center)會從已知大砲設定 id 清單中對 <id> 進行 tab 補完,並且只接受已存在的 id。/wc create 是例外:它的 <id> 與 <display_name> 是自由文字,因此 tab 補完只會顯示 <id> / <display_name> 提示。接受 <world> 參數的指令會從目前已載入的世界名稱清單中進行 tab 補完,而 /wc forcereinstallcontent 會補完 all 以及每個 Nightbreak 內容包代號。