Zum Hauptinhalt springen

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:

FeldAufgabe
typeDer 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.
commandsBefehle, die über die Konsole ausgeführt werden. %player% wird durch den Spielernamen ersetzt, PlaceholderAPI-Platzhalter werden aufgelöst.
triggersTypeWriter-Entries, die für den Spieler ausgelöst werden.
closeMenuSchließ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:

BefehlWirkung
gui:closeDas Menü schließen.
gui:backDas 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:refreshDas 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.

warnung

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​

  • viewPermission blendet den Slot aus.
  • clickPermission lässt den Slot sichtbar und entfernt seine Interaktionen, Eingaben und Trigger.
  • criteria fü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.