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:

Daily Quests (Karma) V1

Daily Quests (Karma) V1

#Desarrollo#Hytale#IA

== Orbis Karma: Mission Expansion == Este proyecto es un mod de misiones creado con ayuda de IA, diseñado como un comple...

Carlosdgd criature

Carlosdgd criature

#Bob#Carlosdgd criature#criatura

Actualmente solo hay un mob, pero estoy actualizando gradualmente para agregar más mobs a este mod, y también me gustarí...

Iwalyn

Iwalyn

#Desarrollo#exploración#Hytale

En este momento, el mod añade +15 cubos personalizados y una apariencia personalizada, usa el comando /model set LipunkN...

Hytaria – Terraria 3D

Hytaria – Terraria 3D

#3D#biomas#Desarrollo

¿Alguna vez quisiste Terraria en 3D?Aquí está. Hytaria trae el mundo de Terraria a Hytale – reimaginado en 3D completo m...

AmigoNPC

AmigoNPC

#AmigoNPC#compañero#Desarrollo

# AmigoNPC (Trabajo en Progreso) AmigoNPC es un **mod de NPC compañero del lado del servidor** para Hytale, actualmente ...

Siren’s Commands

Siren’s Commands

#comandos#Comandos de la Sirena#Desarrollo

Este es más un plugin personal con comandos que utilizo para simplificar mi experiencia usando Hytale. Siren&#8217;s Com...