Saltar al contenido principal

Explicación

Rtag está hecho de múltiples classes para funcionar entre sí y manejar NBT.

Estructura

Rtag Instances

Objetos de tag

Rtag contiene varias classes para ejecutar métodos de los objetos NBT manteniendo la compatibilidad entre versiones, incluyendo la conversión del respectivo NBT a un objeto normal de Java y viceversa.

Para más información sobre objetos de tag:

📄️ Objetos de Tag

Información sobre Rtag manejando NBT

Espejo de tags

Es la instancia principal de Rtag para convertir cualquier objeto normal de Java (String, Integer, List, Map) en NBT y viceversa de manera simple sin necesidad de acceder a las classes de objetos de tag.

// Crear un espejo
RtagMirror mirror = new RtagMirror();
// Usar la instancia pública
RtagMirror mirror = RtagMirror.INSTANCE;

// Crear un objeto
String myObject = "Hello";

// Convertirlo a NBT
Object nbtTag = mirror.newTag(myObject);
// Copiar un NBT
Object nbtTagCopy = mirror.copy(nbtTag);

// Obtener el valor equivalente a un objeto de java desde un NBT
String sameObject = (String) mirror.getTagValue(nbtTag);

Instancia principal de Rtag

Es el propio Rtag, con esta instancia puedes editar cualquier NBTTagCompound y NBTTagList de una manera simple, puedes agregar y remover objetos utilizando una estructura de datos de árbol para las rutas.

Incluyendo compatibilidad con objetos custom al registrar un (de)serializador.

// Crear un Rtag
Rtag rtag = new Rtag();
// Usar la instancia pública
Rtag rtag = Rtag.INSTANCE;

// Un objeto NBTTagCompound
Object compound = ...;

String str = "My String";
// Establecer en la ruta "my -> saved -> object"
rtag.set(compound, str, "my", "saved", "object");

// Obtener desde "my <- save <- object"
String sameStr = rtag.get(compound, "my", "saved", "object");

// Eliminar desde la ruta
rtag.remove(compound, "my", "saved", "object");

Para más información sobre objetos custom:

📄️ Objectos custom

Como guardar y obtener objetos custom con Rtag

Objetos de Minecraft

Varios tipos de classes útiles para interactuar sobre objetos de CraftBukkit y objetos de Minecraft utilizando métodos con reflection.

📄️ Objetos de Minecraft

Information sobre objetos de minecraft en Rtag

Codecs de Mojang

Para implementar una conversión de la data vieja, Mojang creó la librería DataFixerUpper como una forma flexible para decodificar y codificar data.

📄️ Codecs de Mojang

Información sobre como utilizar codecs y respectiva serialización

Data Components

Desde la versión 1.20.5 de Minecraft, el formato de los items cambió y Mojang introdujo los componentes de datos para manejar los tags vanilla de una forma más optimizada.

📄️ Componente de Datos

Información sobre los objetos de componente de datos