CodecLib

CodecLib

Por Emibergo02 27 de enero de 2026
#Biblioteca#Codec#CodecLib#Configuración#Hytale#Java

CodecLib es una biblioteca de configuración de Hytale ligera que automatiza la creación de BuilderCodec utilizando reflexión. Te permite crear archivos de configuración complejos y estructuras de datos utilizando simples POJOs (Plain Old Java Objects), sin necesidad de definir manualmente cada campo y codec.

🚀 Uso

1. Configuración Básica

Crea una clase con los campos que deseas serializar. Puedes inicializarlos para establecer valores predeterminados.

/**
 * REGLAS:
 * 1. Los campos NO DEBEN ser finales, estáticos o transitorios.
 * 2. Los campos DEBEN comenzar con una letra mayúscula (convención de configuración de Hytale).
 * 3. Asegúrate de que la clase personalizada que uses esté anotada con @Configuration también.
 */
@Configuration
public class MyConfig {

    private String ExampleField = "defaultValue";

    @FieldName("DifferentName") //Dentro de config.json este campo se llamará "DifferentName"
    private String exampleFieldButWithDifferentName = "defaultValue2";

    @SkipConfigField //Esto omitirá el campo para la serialización
    private String thisFieldWillNotExist = "defaultValue3";

    private int ExampleIntField = 42;
}

2. Generando el Codec

Usa el CodecFactory para generar el codec y cargar tu configuración.

// ... dentro de tu plugin ...

public CodecLibPlugin(@Nonnull JavaPluginInit init) {
    super(init);
    instance = this;
    //Opcionalmente, puedes registrar tus propios codecs para tus tipos
    CodecFactory.registerCustomCodec(Path.class, Codec.PATH);
    //Simplemente usa CodecFactory.createClassCodec(YourClass.class) como Codec
    CONFIG = withConfig("yourcustomconfig", CodecFactory.createClassCodec(ExampleConfig.class));
}

@Override
protected void setup() {
    CONFIG.save();//Puedes guardar normalmente así
    assert Objects.equals(CONFIG.get().getExampleField(), "defaultValue");
    assert Objects.equals(CONFIG.get().getExampleIntField(), 42);
    assert Objects.equals(CONFIG.get().getExampleFieldButWithDifferentName(), "defaultValue2");
}

3. Objetos Anidados

Puedes poner objetos dentro de otros objetos. CodecLib generará codecs recursivamente para ellos.

@Configuration
public class DatabaseConfig {
    public String Host = "localhost";
    public int Port = 3306;
}
@Configuration
public class MainConfig {
    public String PluginName = "MyPlugin";

    // ¡Esto se manejará automáticamente!
    public DatabaseConfig Database = new DatabaseConfig();
}

📦 Instalación

Reemplaza con tus instrucciones reales de JitPack/Maven si está alojado, de lo contrario, incluye o copia la biblioteca.

Gradle (Groovy)

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'com.github.Emibergo02:CodecLib:main-SNAPSHOT'
}
//Se sugiere reubicar el paquete en tu proyecto
shadowJar {
    relocate 'dev.unnm3d.codeclib', 'your.package.name.codeclib'
}

✅ Tipos Soportados

La biblioteca resuelve automáticamente codecs para los siguientes tipos:

  • String, Boolean, Integer, Double, Long, Float, Byte, Short
  • UUID, Instant
  • String[], int[], double[], long[], float[]
  • Cualquier otra Clase (a través de recursión)
  • Más vendrán, mantente atento

📋 Requisitos

  • Java 25+
  • API del Servidor de Hytale (para BuilderCodec, Codec, etc.)

Relacionados:

PlayerData Core

PlayerData Core

#Biblioteca#Hytale#PlayerData

Una biblioteca ligera para almacenar y recuperar datos de jugadores en los plugins del servidor Hytale. Características ...

SummonLib

SummonLib

#Biblioteca#Hytale#invocaciones

SummonLib es una biblioteca de minions/summons impulsada por activos para mods de servidor de Hytale.Te permite definir ...

Daniel’s Interactions Library

Daniel’s Interactions Library

#Biblioteca#Biblioteca de Interacciones de Daniel#Hytale

Colección de Interacciones de Hytale útiles para hacer una variedad de cosas. BlockRadiusInteraction Radius -> Basado...

Lemon Core

Lemon Core

#Biblioteca#Fabricación#Hytale

Lemon Core es un mod de biblioteca compartida con código común para todos los mods de Hytale de LemonadeSergeants.Contie...

BetterCore

BetterCore

#BetterCore#Biblioteca#Contador de Muertes

Este mod está destinado a convertirse en una biblioteca central y base para muchos mods futuros diferentes. ✨ Caracterís...

KuksoHyLib

KuksoHyLib

#Biblioteca#Coloración de Chat#Hytale

“kukso-hy-lib” es una biblioteca central para el ecosistema de Mods de Kukso Hytale. Proporciona utilidades ...