Interactions et navigation
Une interaction relie un clic sur un emplacement à un comportement. Elle se configure sur l'objet, dans interactionList.
Ajouter une interaction
Sur un objet d'un layout, ajoutez une entrée à interactionList :
| Champ | Rôle |
|---|---|
type | Le clic : 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 | Commandes exécutées depuis la console. %player% est remplacé par le nom du joueur et les placeholders PlaceholderAPI sont résolus. |
triggers | Entrées TypeWriter à déclencher pour le joueur. |
closeMenu | Ferme le menu après l'action. |
executeReturn | Rouvre le menu précédent après l'action. |
L'objet lui-même possède aussi des triggers et des modifiers. Ils se déclenchent sur un clic gauche ou droit, ou dès qu'une interaction précise de l'objet correspond. Les modifiers modifient des facts, exactement comme les modificateurs d'une action.
Le son de clic défini dans audio.onClick est joué une fois par clic ayant produit un effet.
Commandes internes
Une commande qui commence par gui: est gérée par GUI :
| Commande | Effet |
|---|---|
gui:close | Ferme le menu. |
gui:back | Rouvre le menu précédent. |
gui:open <entry_id>, gui:action <entry_id> | Déclenche une autre entrée, généralement un autre Open GUI. |
gui:view <view_id> | Change de vue sans fermer la fenêtre. |
gui:page <delta> [layout_id] | Change de page d'un layout paginé. |
gui:scroll <dx> <dy> [layout_id] | Fait défiler un layout scrollable. |
gui:refresh | Redessine le menu. |
gui:sound <sound_key> | Joue une clé de son telle que minecraft:ui.button.click. |
Vous aurez rarement besoin de saisir gui:close et gui:back vous-même : cochez closeMenu ou executeReturn.
Boîte de saisie
Définir input sur un objet ouvre une boîte de dialogue textuelle au clic sur l'emplacement. La boîte remplace les interactions de ce clic. Renseignez title, placeholder, onInputCommands et onInputTriggers. Dans onInputCommands, {input} est remplacé par le texte saisi et %player% par le nom du joueur. Le menu est redessiné après la validation de la boîte.
L'aide du champ mentionne %value%, mais le code remplace {input}. Validez ce que les joueurs saisissent avant que cela n'atteigne une commande, un montant ou une permission.
Permissions
viewPermissionmasque l'emplacement.clickPermissiongarde l'emplacement visible et supprime ses interactions, sa saisie et ses triggers.criteriaajoute une condition TypeWriter.
Utilisez clickPermission pour afficher un bouton verrouillé avec un lore explicatif, et viewPermission pour le masquer. Une valeur vide ne restreint rien.
Boutons fournis par d'autres extensions
Un objet doté d'un buttonType devient un bouton étiqueté. Shops et Quest Codex placent de tels marqueurs ; l'autre extension remplace alors les interactions par les siennes. L'étiquette est buttonPrefix suivi de buttonType (par exemple shop_button: et SHOP_ITEM). Si aucune extension ne revendique l'étiquette, l'objet conserve les interactions que vous avez configurées.
Cooldowns et menus dynamiques
cooldownTicks bloque le même emplacement pendant ce nombre de ticks après un clic. autoRefreshTicks sur l'Open GUI redessine les noms et les lores avec leurs placeholders actuels tous les N ticks ; gardez-le à 20 ou plus pour les menus qui n'ont pas besoin de bouger.
Quand un clic ne fait rien
Vérifiez dans cet ordre : clickPermission, cooldownTicks, criteria, un input qui prend le contrôle du clic, puis le préfixe de buttonType. Une commande qui exige un joueur comme émetteur ne fonctionnera pas, car les commandes sont exécutées depuis la console.