Skip to content
Saltar al contenido
Volver al Blog
Adventure: Mensajes Enriquecidos para Servidores Minecraft

Adventure: Mensajes Enriquecidos para Servidores Minecraft

Alexandru Maftei
Alexandru Maftei
@ice
Actualizado
22 vistas
TL;DR:Adventure es una biblioteca Java que simplifica la creación de mensajes de texto enriquecido y componentes de interfaz para servidores Minecraft. En lugar de batallar contra JSON y códigos de color, los desarrolladores usan una API clara para crear texto formateado con colores, eventos de pasar el ratón e interacciones clicables.
GitHub - Proyecto de la comunidad Minecraft

adventure (PaperMC/adventure)

Una biblioteca de interfaz de usuario para Minecraft: Java Edition

Dar estrella en GitHub ↗
⭐ 869 estrellas💻 Java📄 MIT

Si alguna vez has intentado que un mensaje del servidor Minecraft se vea bien, probablemente hayas desperdiciado tiempo buscando códigos de color, probando opciones de formato y esperando que el cliente de chat renderice lo que pretendías. Adventure es la biblioteca que lo arregla. Es una biblioteca Java que te permite construir mensajes ricos e interactivos con estructura real en lugar de juntar strings y secuencias de escape.

Qué hace Adventure

Adventure es una biblioteca de interfaz del lado del servidor para Minecraft Java Edition. En su núcleo, maneja componentes de texto - los bloques de construcción de cada mensaje que los jugadores ven en tu servidor. En lugar de escribir texto formateado en bruto como lo harías en comandos vanilla Minecraft, construyes mensajes programáticamente con una API clara y encadenable.

Piénsalo así: el chat vanilla Minecraft requiere que sepas una sintaxis JSON específica y códigos de color. Adventure envuelve esa complejidad en código Java legible. Defines un mensaje una sola vez, lo reutilizas en todas partes, y funciona consistentemente en todos los clientes. Sin necesidad de adivinar si tu tooltip se mostrará realmente. Sin errores raros de renderizado por JSON malformado.

La biblioteca es mantenida por el equipo de PaperMC y es el estándar de la industria para desarrolladores de servidores que trabajan con Paper, Spigot e implementaciones de servidores compatibles. Tiene 869 estrellas en GitHub, documentación sólida y mantenimiento activo. Está construida en Java y requiere JDK 21 como mínimo, aunque eso apenas es una limitación hoy en día.


Por qué lo usarías

La mayoría de los desarrolladores de servidores nunca tocarán Adventure directamente. Usan plugins construidos sobre él. Pero si estás escribiendo plugins, construyendo una implementación de servidor personalizada, o simplemente cansado de batallar contra componentes de chat JSON, Adventure te proporciona control.

Ml10kh182cf31 en Minecraft
Ml10kh182cf31 en Minecraft

Las razones prácticas son sencillas:

  • Puedes crear mensajes con eventos de clic (ejecutar comandos, abrir URLs) y tooltips sin recordar la estructura JSON anidada.
  • Los colores, decoraciones y formato especial se convierten en código legible en lugar de secuencias de escape crípticas.
  • La biblioteca maneja automáticamente las diferencias de versión entre versiones de Minecraft.
  • Puedes serializar mensajes a diferentes formatos (JSON para chat, texto plano para registros, etc.) desde el mismo objeto.

Si estás ejecutando un servidor con plugins personalizados que muestren marcadores, progreso de misiones, mensajes de advertencia, o cualquier cosa orientada al jugador, Adventure probablemente ya esté en la cadena de dependencias. Simplemente podrías no saberlo.


Cómo funciona la biblioteca

Adventure gira en torno al concepto de componentes. Un componente es una pieza de texto con estilo e interacciones opcionales. Construyes mensajes complejos combinando componentes simples.

Launcher 1.0.5 en Minecraft
Launcher 1.0.5 en Minecraft

El patrón básico se ve así: creas un componente, aplicas estilo (colores, negrita, cursiva), opcionalmente añades interacciones (hacer clic para ejecutar un comando, pasar el ratón para ver texto), y lo envías a los jugadores. La biblioteca maneja toda la serialización JSON detrás de escenas.

Aquí hay un ejemplo simple de cómo se ve en código:

java
Component message = Component.text("¡Haz clic en mí!").color(NamedTextColor.BLUE).decorate(TextDecoration.BOLD).clickEvent(ClickEvent.openUrl("https://minecraft.how/tools/text-generator")).hoverEvent(HoverEvent.showText(Component.text("Abre el generador de texto")));

Eso crea un texto azul y en negrita "¡Haz clic en mí!" que abre una URL cuando se hace clic y muestra un tooltip de desplazamiento. Simple y legible. Si intentaras construir ese JSON a mano, te dolería la cabeza en treinta segundos.

La biblioteca también maneja escenarios más complejos: construir mensajes dinámicos con variables, componentes de texto traducibles para diferentes configuraciones regionales, e incluso estructuras de datos NBT para casos de uso avanzados. Si estás haciendo cualquier cosa más allá de mensajes de chat básicos, Adventure probablemente tiene un constructor para ello.


Agregándolo a tu proyecto

Adventure se publica en Maven Central, por lo que si estás usando Gradle o Maven, está a solo una declaración de dependencia.

Para Gradle (en tu build.gradle.kts):

gradle
dependencies {
 implementation("net.kyori:adventure-api:5.0.1")
}

Para Maven (en tu pom.xml):

xml

 net.kyori
 adventure-api
 5.0.1

La versión estable más reciente es 5.0.1, aunque las compilaciones snapshot están disponibles si deseas cambios de última generación. Una vez que esté en tu classpath, simplemente importa las clases y comienza a construir componentes.

Si estás escribiendo un plugin de Paper específicamente, Paper ya incluye Adventure como una dependencia, por lo que no necesitas agregarlo tú mismo. Solo importa y úsalo.


Características clave que importan

Adventure tiene mucho sucediendo bajo el capó. Estas son las características que realmente cambian cómo escribes código de servidor:

Estilos de texto y colores. Los colores nombrados (BLUE, RED, GOLD), los colores RGB y las decoraciones de texto (negrita, cursiva, subrayado) son ciudadanos de primera clase. No estás decodificando códigos de color ni adivinando valores hex - encadenas métodos y obtienes resultados legibles. ¿Quieres un efecto degradado en todo el texto? Adventure también maneja eso, aunque requiere más configuración.

Eventos de clic y desplazamiento del ratón. Los jugadores pueden interactuar con tus mensajes. Ejecutar comandos, abrir URLs, sugerir comandos al jugador (sin ejecutarlos), y mostrar tooltips de desplazamiento con componentes anidados. Así es como funcionan realmente las interfaces de servidor elegantes.

Componentes traducibles. Escribe tu mensaje una sola vez con una clave de traducción, y el cliente lo renderiza en el propio idioma del jugador automáticamente. Esto está integrado en el cliente de Minecraft, y Adventure facilita su uso. Si estás ejecutando un servidor multilingüe, esto ahorra enormes cantidades de esfuerzo.

Serialización. Puedes convertir componentes a diferentes formatos: JSON para chat de Minecraft, texto plano para registros, códigos de color legados si estás limitado a un cliente antiguo. Mismo objeto, múltiples salidas. Una vez que tengas un componente enriquecido, puedes enviarlo a cualquier lugar.

API de Audience. La interfaz Audience de Adventure te permite enviar mensajes a jugadores, difundir a todos, o escribir controladores de mensajes personalizados. Abstrae los detalles de qué implementación de Minecraft estás ejecutando. Una base de código, múltiples tipos de servidor.


Cosas que confunden a la gente

Nada es perfecto, y Adventure tiene algunas peculiaridades que vale la pena conocer:

Si estás trabajando con versiones antiguas de Minecraft, verifica dos veces qué versión de Adventure las admite. La biblioteca dejó de admitir versiones antiguas con el tiempo, por lo que los servidores antiguos podrían no ser compatibles. Los lanzamientos más recientes se dirigen a versiones recientes de Minecraft.

La salida JSON puede parecer loca si la inspeccionas directamente. No está destinada a la lectura humana - está optimizada para el cliente. No intentes editar a mano la salida JSON.

Los componentes traducibles requieren que la clave de traducción exista en el lado del cliente (es así para cadenas estándar de Minecraft, pero las cadenas personalizadas no funcionarán). Esto atrapa a muchas personas intentando usar claves de traducción personalizadas. Si tu traducción no aparece, probablemente estés utilizando una clave que no existe en los archivos de idioma de Minecraft.

Y de verdad, una cosa más: si estás construyendo componentes anidados complejos con mucho estilo, el código se vuelve verboso rápidamente. Sigue siendo legible, pero no es compacto. Ese es el compromiso a cambio de claridad.


Herramientas y bibliotecas relacionadas

Adventure no es la única forma de manejar el texto de Minecraft. MiniMessage es una biblioteca complementaria de PaperMC que te permite escribir texto elegante usando un formato de cadena más simple en lugar de construir componentes en código. Si quieres menos boilerplate y no te importa el análisis de cadenas, MiniMessage podría encajar mejor. Las dos bibliotecas trabajan juntas.

El servidor de Minecraft mismo tiene soporte de componentes de chat integrado (eso es lo que Adventure envuelve), pero eso requiere que trabajes con JSON sin procesar. El valor de Adventure es hacer que eso sea menos doloroso.

Para tus propias necesidades de interfaz del servidor, las herramientas Minecraft Text Generator y Minecraft MOTD Creator de minecraft.how te permiten crear texto formateado visualmente sin escribir código en absoluto, aunque están separadas de la biblioteca Adventure. Si solo estás diseñando un mensaje único, esas herramientas son más rápidas. Si estás construyendo un plugin que genera cientos de mensajes dinámicamente, Adventure es tu respuesta.


Por qué importa esto

La existencia de Adventure significa que los desarrolladores de servidores pasan menos tiempo lidiando con el formato de chat de Minecraft y más tiempo construyendo características reales. No es vistoso, pero es el tipo de biblioteca que hace posibles otras cosas. Cada plugin que muestra progreso de misiones, menús de tienda o efectos cosméticos probablemente usa Adventure en algún lugar.

El hecho de que sea mantenido por PaperMC y haya sido estable durante años significa que no desaparecerá. Es el estándar. Si eres serio sobre el desarrollo de servidores, saber cómo trabajar con componentes y constructores ahorra tiempo y previene bugs. Y si estás escribiendo plugins, tarde o temprano lo encontrarás de todos modos.

Sobre el autor
Alexandru Maftei
Alexandru MafteiRedactor principal

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

¡Compártelo con tus amigos!

Comentarios

Aún no hay comentarios. ¡Sé el primero en compartir tu opinión!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy