Saltar al contenido principal

Dialog Menu

Pantallas de diálogo nativas de Minecraft controladas por TypeWriter: botones, entradas, confirmaciones.

Gratuitasv0.7Menús y visuales
RequiereTypeWriter0.9Paper1.21.6+Basic extensionPlaceholderAPIopcional

Descripción general​

Dialog Menu abre las pantallas de diálogo nativas de Minecraft 1.21.6 y posteriores, a través de la API de diálogos de Paper. Un diálogo es una ventana en el centro de la pantalla con un título, un cuerpo de texto, un objeto opcional, botones y campos de entrada. No necesita resource pack ni inventario personalizado.

Construyes todo el diálogo en una única entrada de acción, Paper Dialog. Cada botón ejecuta un comando como el jugador o dispara otras entradas de TypeWriter. Los campos de entrada (texto, interruptor, opción, deslizador) se leen cuando el jugador confirma, y sus valores se insertan en el comando con $(key).

Características​

  • Diálogos nativos: la ventana de diálogo vanilla, abierta con la API de diálogos de Paper.
  • Tres layouts: una cuadrícula de botones, una confirmación sí/no o un aviso de un solo botón.
  • Botones de acción: ejecutan un comando como el jugador, opcionalmente como OP.
  • Botones de disparador: activan entradas de TypeWriter directamente, sin comando.
  • Entradas: campo de texto (incluso multilínea), interruptor, opción múltiple y deslizador numérico.
  • Valores de entrada en los comandos: usa $(key) en un comando para insertar lo que el jugador ha escrito o elegido.
  • Texto dinámico: los títulos, mensajes y etiquetas aceptan MiniMessage y placeholders de PlaceholderAPI.
  • Objeto en el cuerpo: muestra un objeto en el cuerpo del diálogo.
  • Comportamiento tras la acción: cierra el diálogo, lo mantiene abierto o espera una respuesta del servidor.
  • Placeholder: comprueba si un jugador tiene un diálogo abierto en este momento.

Instalación​

  1. Usa Paper (o un fork como Folia) 1.21.6 o posterior: las versiones anteriores no tienen la API de diálogos.
  2. Asegúrate de que la extensión Basic de TypeWriter está instalada (consulta la documentación de TypeWriter).
  3. Opcional: instala PlaceholderAPI para usar placeholders en los textos.
  4. Coloca el JAR de Dialog Menu en plugins/Typewriter/extensions/ y reinicia el servidor.

Primeros pasos​

Muestra una ventana de confirmación antes de teletransportar a un jugador:

  1. En el panel web de TypeWriter, abre una página de secuencia y añade una entrada Paper Dialog.
  2. Establece displayName en <gold>Travel to the spawn? y message en el texto del cuerpo del diálogo.
  3. Establece dialogType en CONFIRMATION.
  4. En buttons, añade un botón de acción. Establece su label en Yes y su command en spawn.
  5. En exitButton, establece label en No. Deja command vacío: el botón entonces solo cierra el diálogo.
  6. Enlaza la entrada con lo que deba abrirla: una interacción con un NPC, un comando o una opción de diálogo.
  7. Publica y activa la entrada en el juego.

Para recoger un valor, añade una entrada de texto a buttons: establece key en name, buttonLabel en Send y command en rename $(name). Cuando el jugador hace clic en el botón, el texto se inserta en lugar de $(name).

aviso

asOp ejecuta el comando con derechos temporales de operador. Úsalo solo con comandos que controles por completo, y no insertes nunca texto libre de un jugador en un comando de ese tipo.

Cómo funciona​

Cuando se ejecuta la acción, el diálogo se construye a partir de la entrada y se muestra al jugador que la ha activado. Cada botón es de un solo uso: tras un clic, su acción se ejecuta una vez para ese diálogo. El diálogo se cierra o se mantiene abierto según afterAction.

Todos los campos de texto admiten MiniMessage y placeholders. displayName recurre al nombre de la entrada cuando está vacío.

Menús​

El layout del diálogo depende de dialogType:

TipoLayout
MULTI_ACTIONUna cuadrícula de botones con columns columnas, más el botón de salida cuando showExitButton está activado.
CONFIRMATIONLa ventana vanilla sí/no: el primer botón confirma y el botón de salida rechaza. En este modo el botón de salida se construye siempre.
NOTICEUna ventana de un solo botón que usa el primer botón, o el botón de salida si no hay ninguno.

Los tipos de botón que puedes añadir a buttons:

TipoCamposMacro de comando
Botón de acciónlabel, command, asOpninguna
Botón de disparadorlabel, triggersninguna
Entrada de textolabel, key (por defecto input), buttonLabel, command, asOp, width, labelVisible, initial, maxLength, maxLines, height$(input)
Interruptor booleanolabel, key (por defecto boolean), initial, onTrue, onFalse, buttonLabel, command, asOp$(boolean), sustituido por onTrue o onFalse
Opción múltiplelabel, key (por defecto choice), options, buttonLabel, command, asOp$(choice)
Rango numéricolabel, key (por defecto value), start, end, initial, step, buttonLabel, command, asOp$(value), redondeado a un número entero

Los campos de entrada se muestran sobre los botones. Cada botón de entrada añade también su propio botón de confirmación, con buttonLabel como texto; un comando puede usar el $(key) de cualquier entrada del mismo diálogo. El botón de salida se configura por separado en exitButton.

Para una opción múltiple, escribe options como una lista separada por comas y añade * tras la opción que deba estar seleccionada al principio, por ejemplo Easy,Normal*,Hard.

Placeholders​

Placeholders de PlaceholderAPI, servidos por la expansión typewriter.

PlaceholderDevuelve
%typewriter_inmenudialog%1 si el jugador tiene abierto un diálogo de esta extensión, 0 en caso contrario.
%typewriter_inmenudialog_<name>%1 si el diálogo abierto es la entrada Paper Dialog con este nombre de entrada. %typewriter_inmenudialog:<name>% también funciona.

El estado se borra cuando se hace clic en un botón, cuando el jugador se desconecta y cuando TypeWriter se recarga. No se borra cuando el jugador cierra el diálogo con la tecla Escape.

Entradas​

1 entradas, generadas a partir del código fuente de la extensión.

Acciones1

Resolución de problemas​

No se muestra nada cuando se ejecuta la acción. Los diálogos necesitan Paper 1.21.6 o posterior. En un servidor más antiguo la API de diálogos no existe y la acción falla. Comprueba también que los criteria de la entrada se cumplen.

Un botón no hace nada. Los botones de comando con un command vacío solo cierran el diálogo. En los demás casos el comando se ejecuta como el jugador: si el jugador no tiene el permiso necesario, falla en silencio para él, y el fallo se registra como Dialog command '…' failed. Prueba antes el comando en el chat.

$(key) aparece en el comando o se sustituye por nada. La key de la entrada y la macro deben coincidir exactamente. Una macro que no coincide con ninguna entrada se sustituye por un texto vacío. En los interruptores, la macro da el valor onTrue o onFalse, no true ni false.

Los botones dejan de funcionar tras el primer clic. Cada botón es de un solo uso por diálogo abierto. Con afterAction establecido en NONE o WAIT_FOR_RESPONSE, la ventana puede permanecer en pantalla, pero sus botones ya no reaccionan. Vuelve a activar la acción para abrir un diálogo nuevo.

%typewriter_inmenudialog% se queda en 1. El jugador cerró el diálogo con Escape, que no restablece el estado. Se restablece con el siguiente clic en un botón, cuando el jugador se va o al recargar.

Extensiones relacionadas​

  • Companion: abre un diálogo cuando el jugador hace clic en su compañero.