Interaktionen und Navigation
Eine Interaktion verbindet einen Klick auf einen Slot mit einem Verhalten. Sie wird am Item konfiguriert, in interactionList.
Eine Interaktion hinzufügen
Füge bei einem Item eines Layouts einen Eintrag zu interactionList hinzu:
| Feld | Aufgabe |
|---|---|
type | Der Klick: LEFT_CLICK, RIGHT_CLICK, SHIFT_LEFT_CLICK, SHIFT_RIGHT_CLICK, MIDDLE_CLICK, DOUBLE_CLICK, NUMBER_KEY_1 bis NUMBER_KEY_9, DROP, DROP_ALL, SWAP_OFFHAND. |
commands | Befehle, die über die Konsole ausgeführt werden. %player% wird durch den Spielernamen ersetzt, PlaceholderAPI-Platzhalter werden aufgelöst. |
triggers | TypeWriter-Entries, die für den Spieler ausgelöst werden. |
closeMenu | Schließt das Menü nach der Aktion. |
executeReturn | Öffnet nach der Aktion das vorherige Menü erneut. |
Das Item selbst hat ebenfalls triggers und modifiers. Sie werden bei einem Links- oder Rechtsklick ausgelöst oder immer dann, wenn eine bestimmte Interaktion des Items zutrifft. modifiers ändern Facts, genau wie die Modifier einer Aktion.
Der in audio.onClick festgelegte Klickton wird einmal pro Klick abgespielt, der etwas bewirkt hat.
Interne Befehle
Ein Befehl, der mit gui: beginnt, wird von GUI verarbeitet:
| Befehl | Wirkung |
|---|---|
gui:close | Das Menü schließen. |
gui:back | Das vorherige Menü erneut öffnen. |
gui:open <entry_id>, gui:action <entry_id> | Einen anderen Entry auslösen, typischerweise ein weiteres Open GUI. |
gui:view <view_id> | Die Ansicht wechseln, ohne das Fenster zu schließen. |
gui:page <delta> [layout_id] | Die Seite eines paginierten Layouts wechseln. |
gui:scroll <dx> <dy> [layout_id] | Ein scrollbares Layout scrollen. |
gui:refresh | Das Menü neu zeichnen. |
gui:sound <sound_key> | Einen Sound-Key wie minecraft:ui.button.click abspielen. |
Du musst gui:close und gui:back selten selbst eintippen: Aktiviere stattdessen closeMenu oder executeReturn.
Eingabedialog
Wenn du bei einem Item input setzt, öffnet sich beim Klick auf den Slot ein Textdialog. Der Dialog ersetzt die Interaktionen dieses Klicks. Fülle title, placeholder, onInputCommands und onInputTriggers aus. In onInputCommands wird {input} durch den eingegebenen Text und %player% durch den Spielernamen ersetzt. Nach der Bestätigung des Dialogs wird das Menü neu gezeichnet.
Die Feldhilfe erwähnt %value%, aber der Code ersetzt {input}. Prüfe, was Spieler eingeben, bevor es in einen Befehl, eine Menge oder eine Berechtigung gelangt.
Berechtigungen
viewPermissionblendet den Slot aus.clickPermissionlässt den Slot sichtbar und entfernt seine Interaktionen, Eingaben und Trigger.criteriafügt eine TypeWriter-Bedingung hinzu.
Verwende clickPermission, um einen gesperrten Button mit erklärender Lore anzuzeigen, und viewPermission, um ihn auszublenden. Ein leerer Wert schränkt nichts ein.
Buttons anderer Erweiterungen
Ein Item mit einem buttonType wird zu einem markierten Button. Shops und Quest Codex platzieren solche Marker; die andere Erweiterung ersetzt dann die Interaktionen durch ihre eigenen. Das Tag besteht aus buttonPrefix gefolgt von buttonType (zum Beispiel shop_button: und SHOP_ITEM). Wenn keine Erweiterung das Tag beansprucht, behält das Item die von dir konfigurierten Interaktionen.
Cooldowns und Live-Menüs
cooldownTicks sperrt denselben Slot nach einem Klick für so viele Ticks. autoRefreshTicks am Open GUI zeichnet Namen und Lore alle N Ticks mit ihren aktuellen Platzhaltern neu; belasse den Wert bei 20 oder mehr für Menüs, die sich nicht bewegen müssen.
Wenn ein Klick nichts bewirkt
Prüfe in dieser Reihenfolge: clickPermission, cooldownTicks, criteria, ein input, das den Klick übernimmt, dann das Präfix von buttonType. Ein Befehl, der einen Spieler als Absender benötigt, funktioniert nicht, da Befehle über die Konsole ausgeführt werden.