Aller au contenu principal

Dialog Menu

Écrans de dialogue Minecraft natifs pilotés par TypeWriter : boutons, champs de saisie, confirmations.

Gratuitesv0.7Menus et visuels
NécessiteTypeWriter0.9Paper1.21.6+Basic extensionPlaceholderAPIfacultatif

Présentation​

Dialog Menu ouvre les écrans de dialogue natifs de Minecraft 1.21.6 et versions ultérieures, via l'API de dialogues de Paper. Un dialogue est une fenêtre au centre de l'écran avec un titre, un corps de texte, un objet facultatif, des boutons et des champs de saisie. Il ne nécessite ni resource pack ni inventaire personnalisé.

Vous construisez l'ensemble du dialogue dans une seule entrée d'action, Paper Dialog. Chaque bouton exécute soit une commande en tant que joueur, soit déclenche d'autres entrées TypeWriter. Les champs de saisie (texte, interrupteur, choix, curseur) sont lus lorsque le joueur valide, et leurs valeurs sont insérées dans la commande avec $(key).

Fonctionnalités​

  • Dialogues natifs — la fenêtre de dialogue vanilla, ouverte avec l'API de dialogues de Paper.
  • Trois dispositions — une grille de boutons, une confirmation oui/non, ou un avis à un seul bouton.
  • Boutons d'action — exécutent une commande en tant que joueur, éventuellement en tant qu'OP.
  • Boutons de trigger — déclenchent directement des entrées TypeWriter, sans commande.
  • Saisies — champ de texte (y compris multiligne), interrupteur, choix multiple et curseur numérique.
  • Valeurs de saisie dans les commandes — utilisez $(key) dans une commande pour insérer ce que le joueur a saisi ou choisi.
  • Texte dynamique — les titres, messages et libellés acceptent MiniMessage et les placeholders PlaceholderAPI.
  • Objet dans le corps — affichez un objet dans le corps du dialogue.
  • Comportement après action — fermer le dialogue, le garder ouvert, ou attendre une réponse du serveur.
  • Placeholder — vérifiez si un joueur a actuellement un dialogue ouvert.

Installation​

  1. Utilisez Paper (ou un fork comme Folia) en version 1.21.6 ou ultérieure : les versions plus anciennes n'ont pas l'API de dialogues.
  2. Vérifiez que l'extension Basic de TypeWriter est installée (voir la documentation de TypeWriter).
  3. Facultatif : installez PlaceholderAPI pour utiliser des placeholders dans les textes.
  4. Placez le JAR de Dialog Menu dans plugins/Typewriter/extensions/ et redémarrez le serveur.

Premiers pas​

Affichez une fenêtre de confirmation avant de téléporter un joueur :

  1. Dans le panneau web de TypeWriter, ouvrez une page de séquence et ajoutez une entrée Paper Dialog.
  2. Définissez displayName sur <gold>Travel to the spawn? et message sur le texte du corps du dialogue.
  3. Définissez dialogType sur CONFIRMATION.
  4. Dans buttons, ajoutez un bouton d'action. Définissez son label sur Yes et sa command sur spawn.
  5. Dans exitButton, définissez label sur No. Laissez command vide : le bouton ne fait alors que fermer le dialogue.
  6. Reliez l'entrée à ce qui doit l'ouvrir : une interaction avec un PNJ, une commande ou une option de dialogue.
  7. Publiez et déclenchez l'entrée en jeu.

Pour recueillir une valeur, ajoutez une saisie de texte à buttons : définissez key sur name, buttonLabel sur Send et command sur rename $(name). Lorsque le joueur clique sur le bouton, le texte est inséré à la place de $(name).

attention

asOp exécute la commande avec des droits d'opérateur temporaires. Ne l'utilisez que pour des commandes que vous maîtrisez entièrement, et n'insérez jamais de texte libre d'un joueur dans une telle commande.

Fonctionnement​

Lorsque l'action s'exécute, le dialogue est construit à partir de l'entrée et affiché au joueur à l'origine du déclenchement. Un bouton est à usage unique : après un clic, son action s'exécute une seule fois pour ce dialogue. Le dialogue est fermé ou conservé ouvert selon afterAction.

Tous les champs de texte prennent en charge MiniMessage et les placeholders. displayName retombe sur le nom de l'entrée lorsqu'il est vide.

La disposition du dialogue dépend de dialogType :

TypeDisposition
MULTI_ACTIONUne grille de boutons sur columns colonnes, plus le bouton de sortie lorsque showExitButton est activé.
CONFIRMATIONLa fenêtre oui/non vanilla : le premier bouton confirme, le bouton de sortie refuse. Le bouton de sortie est toujours créé dans ce mode.
NOTICEUne fenêtre à un seul bouton utilisant le premier bouton, ou le bouton de sortie s'il n'y en a pas.

Les types de boutons que vous pouvez ajouter à buttons :

TypeChampsMacro de commande
Bouton d'actionlabel, command, asOpaucune
Bouton de triggerlabel, triggersaucune
Saisie de textelabel, key (par défaut input), buttonLabel, command, asOp, width, labelVisible, initial, maxLength, maxLines, height$(input)
Interrupteur booléenlabel, key (par défaut boolean), initial, onTrue, onFalse, buttonLabel, command, asOp$(boolean), remplacé par onTrue ou onFalse
Choix multiplelabel, key (par défaut choice), options, buttonLabel, command, asOp$(choice)
Intervalle numériquelabel, key (par défaut value), start, end, initial, step, buttonLabel, command, asOp$(value), arrondi à un nombre entier

Les champs de saisie sont affichés au-dessus des boutons. Chaque bouton de saisie ajoute aussi son propre bouton de validation, avec buttonLabel comme texte ; une commande peut utiliser le $(key) de n'importe quelle saisie du même dialogue. Le bouton de sortie se configure séparément dans exitButton.

Pour un choix multiple, écrivez options sous forme de liste séparée par des virgules, et ajoutez * après l'option qui doit être sélectionnée au départ, par exemple Easy,Normal*,Hard.

Placeholders​

Placeholders PlaceholderAPI, fournis par l'expansion typewriter.

PlaceholderRenvoie
%typewriter_inmenudialog%1 si le joueur a un dialogue de cette extension ouvert, sinon 0.
%typewriter_inmenudialog_<name>%1 si le dialogue ouvert est l'entrée Paper Dialog portant ce nom d'entrée. %typewriter_inmenudialog:<name>% fonctionne aussi.

L'état est effacé lorsqu'un bouton est cliqué, lorsque le joueur quitte et lorsque TypeWriter est rechargé. Il n'est pas effacé lorsque le joueur ferme le dialogue avec la touche Échap.

Entrées​

1 entrées, générées depuis la source de l'extension.

Actions1

Dépannage​

Rien ne s'affiche lorsque l'action s'exécute. Les dialogues nécessitent Paper 1.21.6 ou ultérieur. Sur un serveur plus ancien, l'API de dialogues n'existe pas et l'action échoue. Vérifiez aussi que les criteria de l'entrée sont satisfaits.

Un bouton ne fait rien. Les boutons de commande dont la command est vide ne font que fermer le dialogue. Sinon, la commande est exécutée en tant que joueur : si le joueur n'en a pas la permission, elle échoue silencieusement pour lui, et l'échec est consigné sous la forme Dialog command '…' failed. Testez d'abord la commande dans le chat.

$(key) apparaît dans la commande ou est remplacé par rien. La key de la saisie et la macro doivent correspondre exactement. Une macro qui ne correspond à aucune saisie est remplacée par un texte vide. Pour les interrupteurs, la macro donne la valeur onTrue ou onFalse, pas true ou false.

Les boutons cessent de fonctionner après le premier clic. Chaque bouton est à usage unique par dialogue ouvert. Avec afterAction défini sur NONE ou WAIT_FOR_RESPONSE, la fenêtre peut rester à l'écran, mais ses boutons ne réagissent plus. Redéclenchez l'action pour ouvrir un nouveau dialogue.

%typewriter_inmenudialog% reste à 1. Le joueur a fermé le dialogue avec Échap, ce qui ne réinitialise pas l'état. Il se réinitialise au prochain clic sur un bouton, lorsque le joueur quitte le serveur ou lors d'un rechargement.

Extensions associées​

  • Companion — ouvrez un dialogue lorsque le joueur clique sur son compagnon.