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ボタン付きの短いチャット通知を送信します。すでにオンラインの管理者にも、バックグラウンドの取得処理が完了して新しい情報が見つかった時点で一度通知されます。
未読リリースの一覧が変化していない限り同じ通知は繰り返されないため、通常のセッションでは大量の通知ではなくリマインダーが1回届くだけです。disable を実行した管理者には一切通知されません。
ノートの表示方法
Minecraft 1.21.6以降では、ノートはDismiss These UpdatesおよびNever Show Changelogsボタンを備えたダイアログウィンドウで開きます。それより古いサーバーでは、同じ内容が同等のコマンド説明とともにチャットに出力されます。
1回の表示につき最大20件のリリースが新しい順に表示され、プラグイン本体と追跡対象の各コンテンツパッケージが交互に並びます。それを超える分は省略されたリリース数として報告されます。1ページ分をすべて既読にしても古いノートはキューに残り、続くメッセージにVIEW NEXTボタンが表示されます。
追跡される対象
- プラグイン自身のリリース(公開されているNightbreak変更履歴から取得)。
- Nightbreakスラッグを持つインストール済みコンテンツパッケージすべて(そのパッケージの公開変更履歴から取得)。
インボックスを備えたプラグインを初めて実行したとき、プラグインは現在のバージョンを追跡の基準点として記録し、その現行リリースのみを表示します。それ以降は、記録された基準点から現在実行中のバージョンまでの間のリリースを表示します。そのため、複数バージョンを一度にアップグレードした場合でも、何も表示されないのではなく、その全区間をカバーする1つのダイジェストが生成されます。
リリース本文はNightbreakから取得され、常にプレーンテキストとして描画されます。変更履歴サービスに接続できない場合、プラグインはバックグラウンドで再試行し(最初は約15分後、以降はおよそ4時間まで間隔を延ばします)、その間はすでにキャッシュしている内容を表示します。
既読状態の保存場所
各プラグインは独自の状態を次の場所に保存します:
plugins/<PluginName>/nightbreak-changelogs.yml
<PluginName> はプラグインの内部名であり、Wiki上の名称と常に一致するとは限りません。
WorldCannonのフォルダーは plugins/CannonRTP です。
このファイルには、バージョン追跡の基準点、取得したリリースノートのキャッシュ、そしてUUIDをキーとする管理者ごとの既読状態とオプトアウト状態が保存されます。アカウントトークンは含まれず、プレイヤーUUID以上の個人データも含まれません。
このファイルを削除すると追跡がリセットされます。プラグインは現在のバージョンを新しい基準点として扱い、すべての管理者の既読状態が初期状態に戻ります。
無効化する方法
サーバー全体を対象とするスイッチはありません。リマインダーは管理者ごとに次のコマンドでオプトアウトします:
/<root>changelog disable
これにより、現在利用可能なすべての内容が既読としてマークされ、そのプレイヤーのオプトアウトフラグがプラグインの状態ファイルに記録されます。その後も手動で確認したい場合はコマンドを使用できます。停止するのは自動通知だけです。