Native Dialog
Minecraft 1.21.6以降のPaperサーバーでは、新しい Native Dialog API が利用可能になりました。
EasyMenu 7では、設定ファイルに dialog: true と書くだけで、対応環境のプレイヤーに対して洗練されたクライアントネイティブのダイアログ画面としてメニューを表示できます。
Native Dialogの有効化
最もシンプルな有効化方法は、メニューファイルに dialog: true を追加することです。
menu-title: "&aショップ"
dialog: true # 対応サーバーではダイアログ、非対応サーバーではチェストUI
menu-items:
- id: buy_diamond
material: DIAMOND
name: "ダイヤモンドを購入"
lore:
- "価格: 1,000円"
command: "shop buy diamond"
- id: buy_gold
material: GOLD_INGOT
name: "金を購入"
lore:
- "価格: 500円"
command: "shop buy gold"
dialog キーの意味は次のとおりです。
| 書き方 | 結果 |
|---|---|
dialog: true | presentation.mode: native-preferred と同じ扱いです(ダイアログ非対応ならインベントリGUIへ)。 |
dialog: false | インベントリ表示を強制します。 config.yml の runtime.default-presentation が auto などでも、このメニューだけは常にインベントリGUIになります。 |
| 書かない | runtime.default-presentation(既定: inventory)に従います。 |
dialog と presentation を両方書く | presentation が優先され、dialog は無視されます。警告(dialog-key-ignored)が出力されます。 |
Native Dialogでの要素の変換
Native Dialogでは、アイテムはインベントリのスロットではなく、ダイアログ上のボタンとして描画されます。
| アイテム設定 | Native Dialogでの描画 |
|---|---|
name | ボタンのラベルテキスト |
lore | ボタンにカーソルを合わせたときのツールチップ |
material | アイテム外観の元データ(対応環境ではボタンのSprite / Headにも使用) |
ダイアログレイアウトのカスタマイズ
presentation.native セクションで、ボタンの列数や幅、ESCキーでの終了挙動などを細かく調整できます。
presentation:
mode: native-preferred
fallback: true
native:
columns: 3 # ボタンの列数 (既定: 3、範囲: 1〜8)
button-width: 150 # ボタンの横幅 (既定: 150、範囲: 1〜1024)
can-close-with-escape: true # ESCキーで閉じられるようにするか (既定: true)
pause: false # シングルプレイ時のゲーム一時停止フラグ (既定: false)
| キー | 既定値 | 範囲・補足 |
|---|---|---|
columns | 3 | 1〜8 に丸められます。1 未満を書くと警告が出て既定値が使われます。 |
button-width | 150 | 1〜1024 に丸められます。1 未満を書くと警告が出て既定値が使われます。 |
can-close-with-escape | true | false にすると、ESCキーでダイアログを閉じられません。ボタンで閉じる手段を用意してください。 |
pause | false | シングルプレイ(統合サーバー)でのみ意味を持つ設定です。 |
columns と button-width は、Bedrockプレイヤー向けのフォームでも「レイアウトの希望値」として使われますが、Java版のNative Dialogとは制約が異なります。
Bedrock Rich UIでは、列数は最大3列に制限され、ボタン幅は 100 以下・101〜180・181 以上の3段階に丸められます。詳しくは Bedrock / Geyser / Rich UI ガイド を参照してください。
非対応環境での自動フォールバック
Native Dialog APIを持たない環境(Minecraft 1.20.1〜1.21.5のサーバーなど)では、dialog: true や mode: native-preferred と記述されていても、自動的に従来のインベントリGUI(チェスト画面)へフォールバックしてメニューが開きます。
管理者がサーバーバージョンごとに設定ファイルを書き分けたり、条件分岐を設定する必要は一切ありません。