インタラクションとナビゲーション
インタラクションは、スロットへのクリックと動作を結び付けるものです。アイテムの interactionList で設定します。
インタラクションの追加
レイアウト内のアイテムで、interactionList にエントリーを追加します。
| フィールド | 役割 |
|---|---|
type | クリックの種類: LEFT_CLICK、RIGHT_CLICK、SHIFT_LEFT_CLICK、SHIFT_RIGHT_CLICK、MIDDLE_CLICK、DOUBLE_CLICK、NUMBER_KEY_1 から NUMBER_KEY_9、DROP、DROP_ALL、SWAP_OFFHAND。 |
commands | コンソールから実行されるコマンドです。%player% はプレイヤー名に置き換えられ、PlaceholderAPI のプレースホルダーも解決されます。 |
triggers | プレイヤーに対して発火させる TypeWriter エントリーです。 |
closeMenu | アクションの後にメニューを閉じます。 |
executeReturn | アクションの後に前のメニューを開き直します。 |
アイテム自体にも triggers と modifiers があります。これらは、左クリックまたは右クリックのとき、あるいはアイテムの特定のインタラクションに一致したときに発火します。modifiers は、アクションのモディファイアとまったく同じようにファクトを変更します。
audio.onClick に設定したクリック音は、何かが実行されたクリックごとに 1 回再生されます。
内部コマンド
gui: で始まるコマンドは GUI が処理します。
| コマンド | 効果 |
|---|---|
gui:close | メニューを閉じます。 |
gui:back | 前のメニューを開き直します。 |
gui:open <entry_id>, gui:action <entry_id> | 別のエントリー(通常は別の Open GUI)を発火します。 |
gui:view <view_id> | ウィンドウを閉じずにビューを切り替えます。 |
gui:page <delta> [layout_id] | ページ分割レイアウトのページを変更します。 |
gui:scroll <dx> <dy> [layout_id] | スクロールレイアウトをスクロールします。 |
gui:refresh | メニューを再描画します。 |
gui:sound <sound_key> | minecraft:ui.button.click のようなサウンドキーを再生します。 |
gui:close や gui:back を自分で入力する必要はほとんどありません。closeMenu または executeReturn にチェックを入れてください。
入力ダイアログ
アイテムに input を設定すると、そのスロットをクリックしたときにテキストダイアログが開きます。このダイアログは、そのクリックのインタラクションを置き換えます。title、placeholder、onInputCommands、onInputTriggers を入力します。onInputCommands では、{input} が入力されたテキストに、%player% がプレイヤー名に置き換えられます。ダイアログを確定すると、メニューが再描画されます。
フィールドのヘルプには %value% と書かれていますが、コード上で置き換えられるのは {input} です。プレイヤーの入力内容は、コマンド、数量、パーミッションに渡る前に検証してください。
パーミッション
viewPermissionはスロットを非表示にします。clickPermissionはスロットを表示したまま、そのインタラクション、入力、トリガーを無効にします。criteriaは TypeWriter の条件を追加します。
ロックされたボタンを説明用のロア付きで表示するには clickPermission を、非表示にするには viewPermission を使用します。値が空の場合は何も制限されません。
他のエクステンションが提供するボタン
buttonType を持つアイテムは、タグ付きボタンになります。Shops と Quest Codex はこのようなマーカーを配置し、その後、他方のエクステンションがインタラクションを自身のものに置き換えます。タグは buttonPrefix に buttonType を続けたものです(例: shop_button: と SHOP_ITEM)。どのエクステンションもそのタグを使用しない場合、アイテムは設定したインタラクションをそのまま保持します。
クールダウンとライブメニュー
cooldownTicks は、クリック後その tick 数のあいだ、同じスロットをブロックします。Open GUI の autoRefreshTicks は、N tick ごとに名前とロアを現在のプレースホルダーで再描画します。動きが不要なメニューでは 20 以上にしてください。
クリックしても何も起きないとき
次の順に確認してください。clickPermission、cooldownTicks、criteria、クリックを引き受けている input、そして buttonType のプレフィックスです。コマンドはコンソールから実行されるため、プレイヤーを実行者として必要とするコマンドは動作しません。