Explicación
Rtag está hecho de múltiples classes para funcionar entre sí y manejar NBT.
Estructura
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