Saltar al contenido principal

Interacciones y navegación

Una interacción conecta un clic en una ranura con un comportamiento. Se configura en el objeto, dentro de interactionList.

Añadir una interacción​

En un objeto de un layout, añade un elemento a interactionList:

CampoFunción
typeEl clic: LEFT_CLICK, RIGHT_CLICK, SHIFT_LEFT_CLICK, SHIFT_RIGHT_CLICK, MIDDLE_CLICK, DOUBLE_CLICK, NUMBER_KEY_1 a NUMBER_KEY_9, DROP, DROP_ALL, SWAP_OFFHAND.
commandsComandos ejecutados desde la consola. %player% se sustituye por el nombre del jugador y se resuelven los placeholders de PlaceholderAPI.
triggersEntradas de TypeWriter que se disparan para el jugador.
closeMenuCierra el menú tras la acción.
executeReturnVuelve a abrir el menú anterior tras la acción.

El propio objeto también tiene triggers y modifiers. Se disparan con un clic izquierdo o derecho, o cuando coincide una interacción concreta del objeto. Los modifiers cambian hechos, exactamente igual que los modificadores de una acción.

El sonido de clic definido en audio.onClick se reproduce una vez por cada clic que haya hecho algo.

Comandos internos​

Un comando que empieza por gui: lo gestiona GUI:

ComandoEfecto
gui:closeCierra el menú.
gui:backVuelve a abrir el menú anterior.
gui:open <entry_id>, gui:action <entry_id>Dispara otra entrada, normalmente otra entrada Open GUI.
gui:view <view_id>Cambia de vista sin cerrar la ventana.
gui:page <delta> [layout_id]Cambia de página en un layout paginado.
gui:scroll <dx> <dy> [layout_id]Desplaza un layout desplazable.
gui:refreshVuelve a dibujar el menú.
gui:sound <sound_key>Reproduce una clave de sonido como minecraft:ui.button.click.

Rara vez necesitarás escribir gui:close y gui:back tú mismo: marca closeMenu o executeReturn.

Diálogo de entrada​

Si defines input en un objeto, se abre un diálogo de texto al hacer clic en la ranura. El diálogo sustituye a las interacciones de ese clic. Rellena title, placeholder, onInputCommands y onInputTriggers. En onInputCommands, {input} se sustituye por el texto escrito y %player% por el nombre del jugador. El menú se vuelve a dibujar cuando se confirma el diálogo.

aviso

La ayuda del campo menciona %value%, pero el código sustituye {input}. Valida lo que escriben los jugadores antes de que llegue a un comando, a una cantidad o a un permiso.

Permisos​

  • viewPermission oculta la ranura.
  • clickPermission mantiene la ranura visible y elimina sus interacciones, su entrada y sus disparadores.
  • criteria añade una condición de TypeWriter.

Usa clickPermission para mostrar un botón bloqueado con un lore explicativo, y viewPermission para ocultarlo. Un valor en blanco no restringe nada.

Botones proporcionados por otras extensiones​

Un objeto con buttonType se convierte en un botón etiquetado. Shops y Quest Codex colocan esos marcadores; la otra extensión sustituye entonces las interacciones por las suyas. La etiqueta es buttonPrefix seguido de buttonType (por ejemplo shop_button: y SHOP_ITEM). Si ninguna extensión reclama la etiqueta, el objeto conserva las interacciones que hayas configurado.

Cooldowns y menús en vivo​

cooldownTicks bloquea la misma ranura durante ese número de ticks tras un clic. autoRefreshTicks en la entrada Open GUI vuelve a dibujar nombres y lore con sus placeholders actuales cada N ticks; mantenlo en 20 o más en los menús que no necesiten animarse.

Cuando un clic no hace nada​

Comprueba por este orden: clickPermission, cooldownTicks, criteria, un input que se apodere del clic y, por último, el prefijo de buttonType. Un comando que necesite un jugador como emisor no funcionará, ya que los comandos se ejecutan desde la consola.