Native Dialog
Minecraft 1.21.6以降のPaperサーバーでは、新しい Native Dialog API が利用可能になりました。
EasyMenu 7では、設定ファイルに dialog: true と書くだけで、対応環境のプレイヤーに対して洗練されたクライアントネイティブのダイアログ画面としてメニューを表示できます。
Native Dialogの有効化
最もシンプルな有効化方法は、メニューファイルに dialog: true を追加することです。
plugins/EasyMenu/sub/shop.yml
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"
Native Dialogでの要素の変換
Native Dialogでは、アイテムはインベントリのスロットではなく、ダイアログ上のボタンとして描画されます。
| アイテム設定 | Native Dialogでの描画 |
|---|---|
name | ボタンのラベルテキスト |
lore | ボタンにカーソルを合わせたときのツールチップ |
material | 装飾(body item)として使用 |
ダイアログレイアウトのカスタマイズ
presentation.native セクションで、ボタンの列数や幅、ESCキーでの終了挙動などを細かく調整できます。
presentation:
mode: native-preferred
fallback: true
native:
columns: 2 # ボタンの列数 (デフォルト: 1〜3)
button-width: 150 # ボタンの横幅
can-close-with-escape: true # ESCキーで閉じられるようにするか
pause: false # シングルプレイ時のゲーム一時停止フラグ
非対応環境での自動フォールバック
Native Dialog APIを持たない環境(Minecraft 1.20.1〜1.21.5のサーバーなど)では、dialog: true や mode: native-preferred と記述されていても、自動的に従来のインベントリGUI(チェスト画面)へフォールバックしてメニューが開きます。
管理者がサーバーバージョンごとに設定ファイルを書き分けたり、条件分岐を設定する必要は一切ありません。