Complejas

Tipos de acciones complejas

1. Tellraw

  • El tellraw es un mensaje en el chat, al pasar el mouse por encima puede mostrar información y ejecutar ciertas cosas al darle click.

  • Tellraw es parecido a la acción tell, la diferencia es que a algunas partes del texto le puedes añadir opciones adicionales.

  • Desde la versión 2.01 de TrMenu el texto se puede escribir en formato JSON.

  • TrMenu trae integrado su propio formato donde puedes añadir opciones al texto como: hover: Texto que se mostrará al pasar el mouse por encima del texto, se pueden añadir varias líneas separadas por \n. suggest: Texto que será sugerido al jugador al darle click al texto. command: Comando que será ejecutado por el jugador al darle click al texto. url: Link que será abierto por el jugador al darle click al texto.

  • Para añadir el formato de TrMenu a una línea de texto se debe escribir el texto dentro de <>. Texto: <texto que puede tener opciones>. Texto con opción: <Texto@hover=&fInformación sobre el texto>.

  • Formas de escribirlo:

    • Normal: tellraw

    • RegEx: (tell(raw)?|json)s?

Formato de TrMenu

# Las opciones que añadas al texto deben iniciar con @
# Por ejemplo "@command=spawn@hover=&fTexto blanco"
- 'tellraw: &eHola %player_name%! Dale <&fclick aquí@url=trmenu.minelatino.com@hover=Al darle click se\nabrirá el link> &epara ir a la wiki de TrMenu.'

2. Catcher

  • La acción de catcher permite al jugador escribir una o varias cosas para luego ser procesadas por TrMenu.

  • Cada cosa escrita es tratada como input.

  • Desde la versión 2.01 de TrMenu se permite más de 1 tipo de input en el mismo catcher, esto quiere decir, que el jugador puede escribir algo más de una vez para completar la acción de TrMenu.

  • El catcher puede ser cancelado si el jugador escribe "cancel" u otra palabra definida en la configuración de TrMenu.

  • Cada Input permite la opción de volver a ser escrito mediante la acción de volver a escribir.

  • Formas de escribirlo:

    • Normal: catcher

    • RegEx: (input)?-?catchers?

2.1 Tipos de Input

Tipo

Descripción

CHAT

Escribir algo en el chat.

SIGN

Escribir algo en un letrero.

ANVIL

Escribir algo en un yunque.

(Disponible desde TrMenu 2.01)

BOOK

Escribir algo en un libro.

(Disponible desde TrMenu 3.0)

2.2 Elementos del Input

  • type: Es el tipo de Input donde se escribirá.

  • before / start: Son las acciones que se ejecutarán al empezar el Input.

  • cancel: Son las acciones que se ejecutarán al cancelar el Input.

  • content: Es el contenido que tendrá escrito al abrir el letrero o libro.

  • display / name / title: Es el título que tendrá el inventario del yunque.

  • item-left: Es el ítem en formato JSON que estará a la izquierda en el yunque.

  • item-right: Es el ítem en formato JSON que estará a la derecha en el yunque.

2.3 Procesamiento del Input

  • TrMenu v1: Solamente permite 1 input por Catcher.

    • require: Es la condición del input.

    • valid: Son las acciones que se ejecutarán al cumplir la condición.

    • invalid: Son las acciones que se ejecutarán al no cumplir la condición.

  • TrMenu v2:

    • reactions: Son las acciones que ejecutará el input luego de recibir el texto del jugador.

  • TrMenu v3:

    • after / end: Son las acciones que ejecutará el input luego de recibir el texto del jugador.

2.4 Identificación del input

  • Los que escriba el jugador es el texto del input.

  • El texto del input puede ser utilizado en las acciones del input.

  • Para obtener el texto del input se utilizan variables como los scripts integrados.

  • TrMenu v1: Se obtiene con $input.

  • TrMenu v2: Se utiliza el formato ${input_ID}, donde el ID es el nombre el Input.

  • TrMenu v3: Se obtiene con el valor de meta {meta:input-ID}, donde el ID es el nombre del Input.

2.5 Ejemplos del Catcher

  • En TrMenu v1 los elementos son escritos entre <>.

  • Desde la versión 2.01 de TrMenu el Catcher se escribe como un objeto complejo en la lista de acciones.

# Empieza con "-" porque es un elemento de una lista.
- catcher:
    # El nombre del input en este caso es "jugador"
    jugador:
      type: CHAT
      before: 'tell: &eEscribe el nombre de un jugador:'
      cancel: 'tell: &cCancelaste el Catcher.'
      after:
        - condition: 'js: utils.isPlayerOnline("{meta:input-jugador}")'
          deny:
            - 'tell: &cEl jugador {meta:input-jugador} no está conectado'
            - 'return'
    dinero:
      type: CHAT
      before: 'tell: &eEscribe la cantidad de dinero'
      cancel: 'tell: &cCancelaste el Catcher.'
      after:
        - condition: 'js: utils.isNumber("{meta:input-dinero}")'
          actions:
            - 'command: pay {meta:input-jugador} {meta:input-dinero}'
          deny:
            - 'tell: &c{meta:input-dinero} no es una cantidad valida.'
            - 'retype'

3. Javascript

  • Ejecutar un script con el lenguaje Javascript.

  • En TrMenu v2 puedes añadir la opción <async> para ejecutar el script de manera no sincrónica al hilo principal del servidor.

  • Formas de escribirlo:

    • Normal: js

    • RegEx: ((java)?-?script|js)s?

# Ejecutar un Javascript en 1 sola línea
- 'js: player.sendMessage("&eHola, buenos días");'

# Ejecutar un Javascript de varias líneas
- |-
  js:
    if (player.hasPermission("permiso.123")) {
        player.sendMessage("&aSi tienes el permiso");
    } else {
        player.sendMessage("&cNo tienes el permiso");
    }

4. Kether

Disponible desde la versión 3.0 de TrMenu

  • Ejecutar un script con el lenguaje Kether.

  • Formas de escribirlo:

    • Normal: kether

    • RegEx: ke(ther)?s?

# Ejecutar un Kether de 1 sola línea
- 'kether: tell color *"&eHola, buenos días"'

# Ejecutar un Kether de varias líneas
- |-
  kether:
    if perm *permiso.123 then {
      tell color *"&aSi tienes el permiso"
    } else {
      tell color *"&cNo tienes el permiso"
    }

5. Jexl

Disponible desde la versión 3.3.2 de TrMenu

  • Ejecutar un script con el lenguaje Jexl.

  • Formas de escribirlo:

    • Normal: jexl

    • RegEx: jexl

# Ejecutar un Jexl en 1 sola línea
- 'js: player.sendMessage("&eHola, buenos días");'

# Ejecutar un Jexl de varias líneas
- |-
  js:
    if (player.hasPermission("permiso.123")) {
        player.sendMessage("&aSi tienes el permiso");
    } else {
        player.sendMessage("&cNo tienes el permiso");
    }

Última actualización

¿Te fue útil?