メインコンテンツまでスキップ

Body・Presentation

EasyMenu 7では、メニュー画面全体の表示形式を制御する presentation 設定と、Native Dialog画面を装飾するための body コンテンツをサポートしています。


ボディコンテンツ (body)​

body は、Native Dialogの上部に説明文やアイテムアイコンなどの装飾コンテンツを表示する機能です。

menu-title: "&6特設ショップ"
dialog: true

# ダイアログ上部に表示する装飾コンテンツ
body:
- type: text
text: "&e毎週土曜日はショップ全品20%OFFセール開催中!\n&7お得なアイテムをチェックしてください。"

- type: item
material: NETHERITE_SWORD
name: "&c&l今週の目玉商品"
lore:
- "&7伝説のネザライトソード"
- "&e特別価格: 5,000円"

menu-items:
- id: buy
material: EMERALD
name: "購入する"
command: "shop buy featured"

body のキー​

typeキー既定値説明
text(省略時)text必須表示する文章。& のカラーコードとプレースホルダーが使えます。ダブルクォートで囲んだYAML文字列内の \n は改行になります。
widthなしテキストの横幅(ピクセル)。省略するとバックエンドの既定値になります。
itemmaterial必須表示するアイテムの素材。
name / lore / amount / glint / custom-model-data / base64 / componentsアイテムの設定 と同じ書き方です。
descriptionなしアイテムの横に表示する説明文。
show-tooltiptrueアイテムにカーソルを合わせたときのツールチップを表示するか。
show-decorationstrue個数や耐久バーなどの装飾を表示するか。

type に text と item 以外を指定するとエラーです。

インベントリGUIでの扱い

インベントリGUI(チェスト画面)では、body コンテンツは自動的に省略されます。body にはコマンドやアクションなどの動作は結びついていない純粋な装飾要素であるため、機能が失われることはありません。


詳細な表示モード設定 (presentation)​

メニューファイルごとに表示方法を細かく指定できます。

presentation:
mode: native-preferred # 表示モード
fallback: true # 非対応環境でインベントリGUIへのフォールバックを許可するか

inventory:
size: 54
background: "GRAY_STAINED_GLASS_PANE"

native:
columns: 3
button-width: 160
can-close-with-escape: true
pause: false

各キーの意味と範囲は次のとおりです。

キー既定値説明
modeconfig.yml の runtime.default-presentation(既定: inventory)表示モード。下の一覧を参照。未知の値はエラーです。
fallbacktrue要求した方式で開けないとき、次の方式へ切り替えてよいか。false なら切り替えずに失敗します。
inventory.size54インベントリのスロット数(9 の倍数、9〜54)。menu-size と同じ意味です。
inventory.backgroundGRAY_STAINED_GLASS_PANE背景アイテム。none で背景なし。
native.columns / button-width / can-close-with-escape / pauseNative Dialog を参照

menu-size と menu-background-item(メニュー直下のキー)は、presentation.inventory を省略したときの値として使われます。

表示モード一覧 (presentation.mode)​

モード優先する描画方式説明
inventory (既定値)インベントリGUI従来のチェスト画面形式で表示します。
native-preferredNative Dialog → インベントリGUIダイアログ対応環境ではダイアログ、非対応環境ではチェスト画面で表示します。
native-requiredNative Dialog のみダイアログ対応環境でのみ表示します(非対応環境ではエラーメッセージを表示)。
rich-preferredリッチUI → 通常Bedrockフォーム → ダイアログ → インベントリGeyserプレイヤーにはRich UIを優先し、利用不可なら対応する描画方式へフォールバックします。
rich-requiredリッチUI のみリッチ描画対応環境でのみ表示します。
auto自動選択リッチUI、通常Bedrockフォーム、ダイアログ、インベントリの順で対応する描画方式を選択します。

native と rich は、それぞれ native-preferred と rich-preferred の別名として使えます。 *-required のモードは fallback の値にかかわらず切り替えを行わず、条件を満たさないプレイヤーにはメニューが開きません。 Bedrock向けの設定手順と構成の違いは Bedrock / Geyser / Rich UI ガイド にまとめています。

Bedrock Rich UI

Geyser接続では rich-preferred または auto を指定するとRich UIを試します。 NegiLibの bedrock.rich-ui は既定で auto です。 plugins/NegiLib/config.yml で off にすると通常のBedrockフォームを使用します。 v11 PackのGridMenuは画面高の82%を使い、タイトルと閉じるボタンを固定して内容だけをスクロールします。 Pack更新後は再接続してください。 Pack登録成功だけではクライアント側のJSON UI描画成功は保証されないため、GUI Scale、狭い画面、スクロール、入力操作は利用するクライアントで確認してください。

dialog との併用

dialog と presentation セクションを同時に記述した場合、presentation の設定が優先され、dialog は無視されます(警告 dialog-key-ignored が出力されます)。 dialog: false を単独で書いた場合は、インベントリ表示を強制します。