Zum Hauptinhalt springen

Dialog Menu

Native Minecraft-Dialogbildschirme, gesteuert über TypeWriter: Schaltflächen, Eingaben, Bestätigungen.

Kostenlosv0.7Menüs & Visuelles
BenötigtTypeWriter0.9Paper1.21.6+Basic extensionPlaceholderAPIoptional

Überblick​

Dialog Menu öffnet über Papers Dialog-API die nativen Dialogbildschirme von Minecraft 1.21.6 und neuer. Ein Dialog ist ein Fenster in der Bildschirmmitte mit Titel, Textkörper, optionalem Item, Buttons und Eingabefeldern. Er benötigt kein Resource Pack und kein benutzerdefiniertes Inventar.

Du baust den gesamten Dialog in einem einzigen Action-Entry, Paper Dialog. Jeder Button führt entweder einen Befehl als Spieler aus oder löst andere TypeWriter-Entries aus. Eingabefelder (Text, Schalter, Auswahl, Schieberegler) werden gelesen, wenn der Spieler bestätigt, und ihre Werte werden mit $(key) in den Befehl eingesetzt.

Funktionen​

  • Native Dialoge — das Vanilla-Dialogfenster, geöffnet über Papers Dialog-API.
  • Drei Layouts — ein Raster aus Buttons, eine Ja/Nein-Bestätigung oder ein Hinweis mit einem einzelnen Button.
  • Aktions-Buttons — führen einen Befehl als Spieler aus, optional als OP.
  • Trigger-Buttons — lösen TypeWriter-Entries direkt aus, ohne Befehl.
  • Eingaben — Textfeld (auch mehrzeilig), Schalter, Mehrfachauswahl und Zahlenschieberegler.
  • Eingabewerte in Befehlen — verwende $(key) in einem Befehl, um einzusetzen, was der Spieler eingegeben oder gewählt hat.
  • Dynamischer Text — Titel, Nachrichten und Beschriftungen akzeptieren MiniMessage und PlaceholderAPI-Platzhalter.
  • Body-Item — zeigt ein Item im Dialogkörper an.
  • Verhalten nach der Aktion — den Dialog schließen, offen lassen oder auf eine Serverantwort warten.
  • Platzhalter — prüfe, ob ein Spieler gerade einen Dialog geöffnet hat.

Installation​

  1. Betreibe Paper (oder einen Fork wie Folia) in der Version 1.21.6 oder neuer: Ältere Versionen haben die Dialog-API nicht.
  2. Stelle sicher, dass die Basic-Erweiterung von TypeWriter installiert ist (siehe die TypeWriter-Dokumentation).
  3. Optional: Installiere PlaceholderAPI, um Platzhalter in Texten zu verwenden.
  4. Lege die Dialog-Menu-JAR in plugins/Typewriter/extensions/ ab und starte den Server neu.

Erste Schritte​

Zeige ein Bestätigungsfenster, bevor ein Spieler teleportiert wird:

  1. Öffne im TypeWriter-Web-Panel eine Sequence-Page und füge einen Paper Dialog-Entry hinzu.
  2. Setze displayName auf <gold>Travel to the spawn? und message auf den Text des Dialogkörpers.
  3. Setze dialogType auf CONFIRMATION.
  4. Füge in buttons einen Aktions-Button hinzu. Setze sein label auf Yes und seinen command auf spawn.
  5. Setze in exitButton das label auf No. Lass command leer: Der Button schließt dann nur den Dialog.
  6. Verknüpfe den Entry mit dem, was ihn öffnen soll: eine NPC-Interaktion, ein Befehl oder eine Dialogoption.
  7. Veröffentliche und löse den Entry im Spiel aus.

Um einen Wert abzufragen, füge buttons eine Texteingabe hinzu: Setze key auf name, buttonLabel auf Send und command auf rename $(name). Wenn der Spieler auf den Button klickt, wird der Text anstelle von $(name) eingesetzt.

warnung

asOp führt den Befehl mit temporären Operator-Rechten aus. Verwende es nur für Befehle, die du vollständig kontrollierst, und setze niemals freien Text eines Spielers in einen solchen Befehl ein.

Funktionsweise​

Wenn die Aktion ausgeführt wird, wird der Dialog aus dem Entry aufgebaut und dem auslösenden Spieler angezeigt. Ein Button ist einmalig verwendbar: Nach einem Klick wird seine Aktion für diesen Dialog einmal ausgeführt. Der Dialog wird entsprechend afterAction geschlossen oder bleibt offen.

Alle Textfelder unterstützen MiniMessage und Platzhalter. displayName fällt auf den Entry-Namen zurück, wenn es leer ist.

Menüs​

Das Dialog-Layout hängt von dialogType ab:

TypLayout
MULTI_ACTIONEin Raster aus Buttons mit columns Spalten, plus dem Exit-Button, wenn showExitButton aktiviert ist.
CONFIRMATIONDas Vanilla-Ja/Nein-Fenster: Der erste Button bestätigt, der Exit-Button lehnt ab. Der Exit-Button wird in diesem Modus immer erzeugt.
NOTICEEin Fenster mit einem einzelnen Button, der den ersten Button verwendet oder den Exit-Button, falls es keinen gibt.

Die Button-Typen, die du zu buttons hinzufügen kannst:

TypFelderBefehls-Makro
Aktions-Buttonlabel, command, asOpkeines
Trigger-Buttonlabel, triggerskeines
Texteingabelabel, key (Standard input), buttonLabel, command, asOp, width, labelVisible, initial, maxLength, maxLines, height$(input)
Boolean-Schalterlabel, key (Standard boolean), initial, onTrue, onFalse, buttonLabel, command, asOp$(boolean), ersetzt durch onTrue oder onFalse
Mehrfachauswahllabel, key (Standard choice), options, buttonLabel, command, asOp$(choice)
Zahlenbereichlabel, key (Standard value), start, end, initial, step, buttonLabel, command, asOp$(value), auf eine ganze Zahl gerundet

Eingabefelder werden über den Buttons angezeigt. Jeder Eingabe-Button fügt außerdem seinen eigenen Bestätigungs-Button hinzu, mit buttonLabel als Text; ein Befehl kann das $(key) jeder Eingabe im selben Dialog verwenden. Der Exit-Button wird separat in exitButton konfiguriert.

Schreibe bei einer Mehrfachauswahl options als kommagetrennte Liste und füge ein * hinter der Option an, die anfangs ausgewählt sein soll, zum Beispiel Easy,Normal*,Hard.

Platzhalter​

PlaceholderAPI-Platzhalter, bereitgestellt von der Expansion typewriter.

PlatzhalterGibt zurück
%typewriter_inmenudialog%1, wenn der Spieler einen Dialog dieser Erweiterung geöffnet hat, sonst 0.
%typewriter_inmenudialog_<name>%1, wenn der geöffnete Dialog der Paper-Dialog-Entry mit diesem Entry-Namen ist. %typewriter_inmenudialog:<name>% funktioniert ebenfalls.

Der Zustand wird zurückgesetzt, wenn auf einen Button geklickt wird, wenn der Spieler den Server verlässt und wenn TypeWriter neu lädt. Er wird nicht zurückgesetzt, wenn der Spieler den Dialog mit der Escape-Taste schließt.

Entries​

1 Einträge, aus dem Quellcode der Erweiterung generiert.

Aktionen1

Fehlerbehebung​

Beim Ausführen der Aktion wird nichts angezeigt. Dialoge benötigen Paper 1.21.6 oder neuer. Auf einem älteren Server existiert die Dialog-API nicht, und die Aktion schlägt fehl. Prüfe außerdem, ob die criteria des Entries erfüllt sind.

Ein Button bewirkt nichts. Befehls-Buttons mit leerem command schließen nur den Dialog. Andernfalls wird der Befehl als Spieler ausgeführt: Fehlt dem Spieler die Berechtigung dafür, schlägt er für ihn stillschweigend fehl, und ein Fehler wird als Dialog command '…' failed protokolliert. Teste den Befehl zuerst im Chat.

$(key) erscheint im Befehl oder wird durch nichts ersetzt. Der key der Eingabe und das Makro müssen exakt übereinstimmen. Ein Makro, das zu keiner Eingabe passt, wird durch einen leeren Text ersetzt. Bei Schaltern liefert das Makro den Wert onTrue oder onFalse, nicht true oder false.

Die Buttons funktionieren nach dem ersten Klick nicht mehr. Jeder Button ist pro geöffnetem Dialog einmalig verwendbar. Mit afterAction auf NONE oder WAIT_FOR_RESPONSE kann das Fenster auf dem Bildschirm bleiben, aber seine Buttons reagieren nicht mehr. Löse die Aktion erneut aus, um einen frischen Dialog zu öffnen.

%typewriter_inmenudialog% bleibt auf 1. Der Spieler hat den Dialog mit Escape geschlossen, was den Zustand nicht zurücksetzt. Er wird beim nächsten Button-Klick, beim Verlassen des Spielers oder beim Neuladen zurückgesetzt.

Verwandte Erweiterungen​

  • Companion — öffne einen Dialog, wenn der Spieler auf seinen Begleiter klickt.