BetterFood の互換性
ランタイム対象
現在のリポジトリの対象:
- プラグインバージョン:
1.5.5 - Bukkit
api-version:1.21.4 - Spigot API ビルドターゲット:
26.3-R0.1-SNAPSHOT - Java:
21
コマンド
プラグインは以下を使用します:
/betterfood/bf
プレイヤー向けサブコマンドは以下の切り替えに焦点を当てています:
- 自動食事(
toggleEating、または引数なしの/betterfood) - アクションバー上の消費フィードバックメッセージ(
toggleMessage)
管理者向けサブコマンド(betterfood.adminが必要)は、共有のNightbreakツール群を公開します:
setup— ゲーム内のセットアップメニューを開きますrecommendedplugins— BetterFoodと相性の良いプラグインを表示します。BetterFoodは現在、共有のおすすめカタログに登録がないため、これは空のメニューを開き、今のところ追加のおすすめはない旨を伝えます(コンソール送信者には同じ内容がチャット形式で表示されます)downloadpluginupdate/downloadall— プラグインの更新が利用可能な場合にダウンロードしますapplypluginupdate— ダウンロード済みのプラグイン更新を、サーバーを再起動せずに適用します(再起動不要のプラグイン更新を参照)downloadallcontent— BetterFoodにはコンテンツパックがないことを通知します
タブ補完は権限と入力済みの文字列で絞り込まれます。toggleEatingとtoggleMessageはbetterfood.userを持つ送信者に、downloadpluginupdate、applypluginupdate、downloadallcontent、setup、recommendedpluginsはbetterfood.adminを持つ送信者にのみ提示されます。downloadallは有効な別名ですが、候補には表示されません。2つの設定はプレイヤー専用です。明示的なtoggleEating / toggleMessageは、プレイヤー以外には「BetterFood settings can only be changed in-game.」と返します。引数なしの/betterfoodは、コンソールに更新コマンドを案内します。betterfood.userを持たないプレイヤーには権限不足が通知されます。未知のサブコマンドや2つ以上の引数を指定すると使い方が表示されます。管理者には2つの設定と更新・セットアップ・おすすめのコマンド、それ以外には2つの設定だけが表示されます。使い方にはdownloadallcontentが載っていませんが、実行でき、管理者のタブ補完にも表示されます。
共有 MagmaCore コマンド
同梱のMagmaCoreツールは起動時に以下のコマンドを追加します。共有コマンドは、名前が空いている場合だけ読み込み時に登録されます。他のMagmaGuyプラグインがあるサーバーでは、最初の登録が各コマンド名を使用します。BetterFoodのリリースノート用コマンドは、プラグインの有効化時に初期化されます。
/nightbreak plugins— プラグインカタログを閲覧します。ゲーム内ではメニューとして、コンソールからはチャットの一覧として表示されます(nightbreak.plugins、デフォルトop)。引数なしの/nightbreakは使い方の行を出力するだけです。/nightbreaklogin <token>と/nightbreaklogout— 共有のNightbreakアカウントトークンを接続・切断します(nightbreak.login、デフォルトop)/logify— 現在のサーバーログをmclo.gsへアップロードします(logify.*、デフォルトop)/betterfoodchangelog [dismiss|disable]— 未読のBetterFoodリリースノートを表示します。これはプラグインごとに名前空間が分かれているため衝突しません。万一/betterfoodchangelogがすでに取得されている場合は、betterfood:betterfoodchangelog形式のラベルにフォールバックします。
チェンジログコマンドは管理者専用かつゲーム内専用です。管理者権限を持たない送信者(およびコンソール)には「This command is only available to plugin administrators in-game.」と応答します。プレイヤーがopであるか、betterfood.adminまたはbetterfood.*を持っている場合に管理者と見なされます。また管理者は、/betterfoodchangelog disableを実行していない限り、参加後まもなく未読のリリースノートについて通知を受けます。既読・非表示の状態はプレイヤーごとにplugins/BetterFood/nightbreak-changelogs.ymlへ保存されます。
共有フローについてはNightbreakトークン、Nightbreakセットアップ、チェンジログ通知を参照してください。
権限
betterfood.user(デフォルトtrue)— 自動食事リスナーとプレイヤートグルを制御します。betterfood.admin(デフォルトop)— プラグイン更新のダウンロードと適用、セットアップメニュー、おすすめプラグインコマンドを制御します。チェンジログコマンドにおける管理者権限としても扱われます。nightbreak.plugins、nightbreak.login、logify.*(いずれもデフォルトop)— 上記の共有コマンド用に同梱のMagmaCoreツール群が登録するもので、BetterFoodのplugin.ymlには宣言されていません。
その他の連携
- bStatsメトリクスが有効化されています(プラグインID
4557)— オプトアウトしたい場合は、bStatsの設定でグローバルに無効化してください。 - BetterFoodは現在、共有のMagmaCoreツール群を同梱しています。
nightbreak.autoDownloadPluginUpdatesトグル(デフォルトfalse)とnightbreak.applyPluginUpdatesWithoutRestart(デフォルトnever、再起動不要のプラグイン更新を参照)の2つのキーを含むconfig.ymlを生成し、起動から数分後にnightbreak.ioで新しいリリースを確認し(この遅延はプラグインごとにずらされているため、複数のMagmaGuyプラグインが同時に外部へ問い合わせることはありません)、その後は約1時間ごとに確認します。結果は変化があったときにのみログへ出力されるため、コンソールが毎時間再び埋め尽くされることはありません。BetterFoodはSpigotMCのリソースIDを渡さず、カタログエントリーにも登録がないため、SpigotMCバージョンへのフォールバックはありません。 - 更新が保留中の状態で参加したオペレーターには、ログイン数秒後にダウンロードページのリンク付きのチャット通知が送られます。インストール済みバージョンが古いままである限り、参加のたびに毎回送信されます。
- アカウントトークンはプラグインフォルダの外、共有の
plugins/MagmaCore/nightbreak.ymlに保存されるため、一度リンクすればサーバー上のすべてのMagmaGuyプラグインでそれが有効になります。 - 外部プラグインの依存関係はありません。食料ロジックはバニラの
FoodLevelChangeEventのみをリッスンします。
再起動不要のプラグイン更新
ダウンロードされたプラグイン更新は、サーバーの更新フォルダで待機します。/betterfood applypluginupdateを使うと、サーバーを再起動せずに更新を差し替えられます。BetterFoodが無効化され、jarが置き換えられ、新しいバージョンが読み込まれて有効化されます。プレイヤーの自動食事とメッセージの設定はプレイヤー側に保存されているため、そのまま引き継がれます。
次の場合、このコマンドはメッセージを表示して実行を拒否します。ダウンロード済みの更新が待機していない場合、待機中の更新が実行中のバージョンより新しくないかjarが有効でない場合、別の作者のプラグインがBetterFoodにdependまたはsoft-dependしている場合、あるいは別のプラグイン差し替えがすでに実行中の場合です。新しいバージョンの有効化に失敗した場合は、以前のjarが再度読み込まれ、更新は次回の再起動に備えて更新フォルダに残ります。
config.ymlのnightbreak.applyPluginUpdatesWithoutRestartは、プラグイン更新のダウンロード直後に何が起こるかを決めます。これはdownloadpluginupdate、downloadall、セットアップメニュー、自動ダウンロードのいずれによるダウンロードにも適用されます。
| 値 | 動作 |
|---|---|
never | デフォルト。更新は次回の再起動まで待機します。betterfood.adminまたはbetterfood.*を持つオンラインの管理者には、再起動が必要であることが通知され、applypluginupdateコマンドが案内されます |
when-empty | オンラインのプレイヤーがいなければ即座に更新を適用します。いる場合は30秒ごとに確認し、サーバーが空になった時点で適用します |
immediately | ダウンロードが完了した時点ですぐに更新を適用します |
それ以外の値はneverとして扱われます。