Nightbreak 更新日誌通知
MagmaCore 內建了一個共用的更新日誌收件匣。每個使用 MagmaCore Nightbreak 更新器的外掛程式都會取得這項功能,並用它在遊戲中告知伺服器管理員:該外掛程式或其某個已安裝的內容包有尚未閱讀的發行說明。
由於收件匣位於 MagmaCore 中,它在各處的行為完全相同。唯一會改變的只有指令名稱以及所回報的外掛程式。
指令
每個外掛程式都會註冊自己的更新日誌指令,該指令由外掛程式的根指令加上 changelog 組成——而不是由其顯示名稱組成,因此標籤會跟隨該外掛程式所使用的根指令:
| 外掛程式 | 指令 |
|---|---|
| EliteMobs | /emchangelog |
| BetterStructures | /bschangelog |
| EternalTD | /etdchangelog |
| WorldCannon | /wcchangelog |
| FreeMinecraftModels | /freeminecraftmodelschangelog |
| ResurrectionChest | /resurrectionchestchangelog |
| BetterFood | /betterfoodchangelog |
| ResourcePackManager | /resourcepackmanagerchangelog |
如果該標籤在伺服器上已被佔用,外掛程式會改為註冊一個帶命名空間的備用標籤;若完全找不到沒有衝突的標籤,則會記錄一則警告。
| 用法 | 作用 |
|---|---|
/<root>changelog | 開啟未讀的發行說明。 |
/<root>changelog dismiss | 將剛才顯示給您的說明標記為已讀。 |
/<root>changelog disable | 永久停止對您發送自動提醒。指令本身仍可繼續使用。 |
此指令僅限遊戲內且僅限管理員使用。若您是 OP,或持有該外掛程式的萬用字元權限、管理員權限、設定權限或初始化權限,即視為管理員。
加入時的通知
當管理員加入伺服器時,外掛程式會等待幾秒鐘,然後在有未讀說明時發送一則簡短的聊天通知,其中含有可點擊的 VIEW CHANGELOG 按鈕。已經在線上的管理員,也會在背景擷取完成並發現新內容時收到一次通知。
只要未讀發行版本的集合沒有變動,同一則通知就不會重複發送,因此一般的遊玩時段只會收到一次提醒,而不是連續不斷的訊息。已執行 disable 的管理員永遠不會收到通知。
說明的顯示方式
在 Minecraft 1.21.6 及更新版本上,說明會在對話視窗中開啟,並附有 Dismiss These Updates 和 Never Show Changelogs 按鈕。在較舊的伺服器上,相同內容會列印到聊天欄,並附上對應的指令說明。
單次檢視最多顯示 20 個發行版本,最新的排在最前面,並在外掛程式本身與每個被追蹤的內容包之間交錯排列。超出的部分會以「已省略的發行版本數量」形式回報。關閉一整頁後,較舊的說明仍會排隊等待,後續訊息會提供 VIEW NEXT 按鈕。
追蹤的內容
- 外掛程式自身的發行版本,取自其公開的 Nightbreak 更新日誌。
- 每個具有 Nightbreak slug 的已安裝內容包,取自該內容包的公開更新日誌。
外掛程式第一次搭配收件匣執行時,會將當前所在的版本記錄為追蹤基準,並且只顯示該當前發行版本。從此之後,它會顯示介於所記錄基準與您現在執行的版本之間的所有發行版本,因此一次升級多個版本時會產生一份涵蓋整個跨度的摘要,而不是什麼都不顯示。
發行說明的內文來自 Nightbreak,且一律以純文字呈現。如果無法連線到更新日誌服務,外掛程式會在背景重試——大約 15 分鐘後開始,並逐步延長至約四小時——期間則顯示它已快取的內容。
已讀狀態儲存在哪裡
每個外掛程式將自己的狀態儲存在:
plugins/<PluginName>/nightbreak-changelogs.yml
<PluginName> 是外掛程式的內部名稱,不一定與其 Wiki 名稱相同:
WorldCannon 的資料夾是 plugins/CannonRTP。
該檔案保存版本追蹤基準、已擷取發行說明的快取,以及以 UUID 為索引、每位管理員各自的已讀與退出狀態。它不含帳戶權杖,除了玩家 UUID 外也不含任何個人資料。
刪除該檔案會重設追蹤:外掛程式會將當前版本視為全新的基準,且每位管理員都會從乾淨的已讀狀態重新開始。
關閉此功能
沒有伺服器層級的總開關。提醒是以管理員為單位退出的,方式為:
/<root>changelog disable
這會將目前所有可用的內容標記為已讀,並在外掛程式的狀態檔中記錄該玩家的退出旗標。若之後他們想手動查看,指令仍可正常使用——只有自動通知會停止。