跳至主要內容

Nightbreak 更新日誌通知

MagmaCore 內建了一個共用的更新日誌收件匣。每個使用 MagmaCore Nightbreak 更新器的外掛程式都會取得這項功能,並用它在遊戲中告知伺服器管理員:該外掛程式或其某個已安裝的內容包有尚未閱讀的發行說明。

由於收件匣位於 MagmaCore 中,它在各處的行為完全相同。唯一會改變的只有指令名稱以及所回報的外掛程式。

指令​

每個外掛程式都會註冊自己的更新日誌指令,該指令由外掛程式的根指令加上 changelog 組成——而不是由其顯示名稱組成,因此標籤會跟隨該外掛程式所使用的根指令:

外掛程式指令
EliteMobs/emchangelog
BetterStructures/bschangelog
EternalTD/etdchangelog
WorldCannon/wcchangelog
FreeMinecraftModels/freeminecraftmodelschangelog
ResurrectionChest/resurrectionchestchangelog
BetterFood/betterfoodchangelog
ResourcePackManager/resourcepackmanagerchangelog
Extractioncraft/extractioncraftchangelog
MegaBlock Survivors/mbschangelog

如果該標籤在伺服器上已被佔用,外掛程式會改為註冊一個帶命名空間的備用標籤;若完全找不到沒有衝突的標籤,則會記錄一則警告。

用法作用
/<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 回傳的歷史已不再包含起始版本,該元件的追蹤範圍就會限制為截至已安裝版本的最近 20 個版本。

說明內文來自 Nightbreak,依字面文字顯示;對話視窗會為標準變更標籤著色。每篇內文最多顯示 6,000 個字元。若無法連線到更新日誌服務,外掛程式會在背景重試,第一次約在 15 分鐘後,之後逐漸延長間隔至最長約四小時。在此期間會顯示已快取的內容。

已讀狀態儲存在哪裡​

每個外掛程式將自己的狀態儲存在:

plugins/<PluginName>/nightbreak-changelogs.yml

<PluginName> 是外掛程式的內部名稱,不一定與其 Wiki 名稱相同: WorldCannon 的資料夾是 plugins/CannonRTP。

該檔案保存版本追蹤基準、已擷取發行說明的快取,以及以 UUID 為索引、每位管理員各自的已讀與退出狀態。它不含帳戶權杖,除了玩家 UUID 外也不含任何個人資料。

刪除該檔案會重設追蹤:外掛程式會將當前版本視為全新的基準,且每位管理員都會從乾淨的已讀狀態重新開始。

關閉此功能​

沒有伺服器層級的總開關。提醒是以管理員為單位退出的,方式為:

/<root>changelog disable

這會將目前所有可用的內容標記為已讀,並在外掛程式的狀態檔中記錄該玩家的退出旗標。若之後他們想手動查看,指令仍可正常使用——只有自動通知會停止。