HyUI

HyUI

Por EllieAU 18 de enero de 2026
#Desarrollo#gaming#Hytale#HyUI#Interfaz de Usuario#Java#programación

HyUI es una potente biblioteca de Java, amigable para desarrolladores, diseñada para simplificar la creación y gestión de interfaces de usuario personalizadas para servidores de Hytale. Ahora con HYUIML, una sintaxis declarativa similar a HTML/CSS que te permite construir interfaces con un marcado familiar similar al de la web. HyUI permite a los desarrolladores construir UIs complejas, interactivas y de alto rendimiento sin la carga de manejar protocolos en bruto, aprovechando tanto este nuevo marcado como una API fluida basada en constructores.

Ya sea que estés creando un panel de administración simple o un sistema de menú RPG a gran escala, HyUI proporciona las “salidas de escape” y las abstracciones de alto nivel necesarias para realizar el trabajo de manera eficiente.

Características

  • API de Constructor Fluido: Construye jerarquías de UI anidadas (Grupos, Botones, Etiquetas, etc.) utilizando una cadena de métodos limpia y legible.
  • Inyección Dinámica de Elementos: Carga archivos base .ui e inyecta elementos dinámicos en selectores específicos en tiempo de ejecución utilizando el sistema inside("#Selector").
  • Manejo de Eventos Simplificado: Vincula la lógica del lado del servidor directamente a eventos de UI (como Activating o ValueChanged) utilizando expresiones lambda simples.
  • Constructores Especializados: Incluye constructores listos para usar para:
    • Botones: Botones de texto estandarizados con temática de juego.
    • Campos de Entrada: Constructores especializados para Texto, Números y Selectores de Color.
    • Contenedores: Constructores de Grupo flexibles con varios modos de diseño.
  • Anclaje y Estilo: Soporte robusto para HyUIAnchor para posicionamiento preciso y HyUIStyle para una profunda personalización visual (colores, fuentes, renderizado en negrita y estados deshabilitados).
  • Tooltips Ricos: Adjunta fácilmente tooltips basados en Message a cualquier elemento de UI.
  • HYUIML (HTML/CSS): Construye interfaces utilizando una sintaxis declarativa similar a HTML con estilo CSS.
  • Lógica Avanzada (Salidas de Escape): Accede a la instancia en bruto de UICommandBuilder en cualquier punto del proceso de construcción a través de editElement para propiedades que no están cubiertas nativamente por la API.

Guía Rápida

1. Instalación (Gradle)

Agrega HyUI a tu proyecto a través de Cursemaven:

repositories {
    maven { url "https://www.cursemaven.com" }
}

dependencies {
    implementation "curse.maven:hyui-<project-id>:<file-id>"
}

2. Creando una Página Simple

Instancia un PageBuilder para abrir una interfaz personalizada para un jugador:

new PageBuilder(playerRef)
    .fromFile("Pages/MyMenu.ui")
    .addElement(new GroupBuilder()
        .withId("MainContainer")
        .inside("#Content")
        .addChild(ButtonBuilder.textButton()
            .withText("¡Haz clic en mí!")
            .addEventListener(CustomUIEventBindingType.Activating, (ctx) -> {
                playerRef.sendMessage(Message.raw("¡Has hecho clic en el botón!"));
            }))
    )
    .open(store);

3. Usando HYUIML (HTML)

Para un enfoque más declarativo, utiliza el método fromHtml:

String html = """
    <div class="page-overlay">
        <div class="container" data-hyui-title="Configuraciones">
            <p>¡Bienvenido al menú!</p>
            <button id="myBtn">¡Haz clic en mí!</button>
        </div>
    </div>
    """;

PageBuilder.detachedPage()
    .fromHtml(html)
    .addEventListener("myBtn", CustomUIEventBindingType.Activating, (ctx) -> {
        playerRef.sendMessage(Message.raw("¡Clicado!"));
    })
    .open(playerRef, store);

Componentes

Builder
Propósito

PageBuilder
El punto de entrada para la creación de UI; gestiona la carga y apertura de archivos para los jugadores.

GroupBuilder
Un contenedor utilizado para organizar y distribuir elementos secundarios.

ButtonBuilder
Para botones interactivos; soporta textButton() para la estética estándar de Hytale.

LabelBuilder
Para mostrar texto dinámico con soporte de estilo y anclaje.

TextFieldBuilder
Captura la entrada de texto del jugador.

ColorPickerBuilder
Proporciona una interfaz de selección de color en formato Hex.

SliderBuilder
Proporciona soporte para deslizadores numéricos.

Documentación y Ejemplos

Un ejemplo completo de implementación, que incluye una clase de comando completa utilizando AbstractAsyncCommand, se puede encontrar dentro de la carpeta de documentos del repositorio del proyecto.

¡Haz clic en el botón de Fuente en esta página para ir allí!

Requisitos:

  • Servidor de Hytale añadido como dependencia
  • Java 25 (o la versión actual compatible con Hytale)
  • jsoup es una dependencia e incluido en el JAR bajo licencia MIT.

Relacionados:

Laugh Tale

Laugh Tale

#Desarrollo#Hytale#Mod

¡Un mod de Hytale en desarrollo que busca llevar el mundo de One Piece a Hytale! ¿Qué hay en el mod?: Yoru Griphon Murak...

Synapse

Synapse

#API#Desarrollo#Hytale

Synapse v1.3.0 — API moderna de marcadores de posición (¡Ahora con soporte para Hytale!) Synapse es un poderoso y modern...

Mining Drills

Mining Drills

#Desarrollo#Hytale#Minería

⛏️ Mod de Taladros Este mod introduce un conjunto de taladros de minería diseñados para mejorar enormemente la experienc...

Lalyan Cosmetic Core

Lalyan Cosmetic Core

#Cosméticos#Desarrollo#gaming

Lalyan Cosmetic Core Una API para registrar y personalizar cosméticos sin utilizar los espacios de armadura. :warning: A...

AntiWorkbenchDetectChest

AntiWorkbenchDetectChest

#AntiWorkbenchDetectChest#Desarrollo#gaming

Plugin temprano que desactiva los bancos de trabajo para que no tomen materiales de cofres cercanos. ¡Útil al usar plugi...