Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for saicone

The "readable tag" library, an easy way to handle block, entity, item NBT and data components

Report Rtag?

Release
1.5.1

Rubenicos released Rtag version 1.5.1 on April 28, 2024

Minecraft 1.20.5 change ItemStack format, in order to keep Rtag in continuous development, the next updates will have multiple experimental features It's not suggested to use any experimental change/addition unless you are shading the library in your project

Additions

  • Support for Minecraft 1.20.5.
  • Multiple removal notices in deprecated methods.
  • ItemObject#hasCustomData() to check if item has custom data (or tag for <1.20.5).
  • ItemObject#apply() to apply data updates into item (or load compound for <1.20.5).
  • ItemObject#copy() to copy the provided item.
  • ItemObject#getCustomDataTag() and ItemObject#setCustomDataTag() to get tag from custom data component inside item.
  • ItemObject#getComponentPath() to convert any old tag path into new component path.
  • ItemObject#getTagPath() to convert any new component path into any old tag path.
  • ItemTagStream#ofVersion() to create an ItemTagStream instance with a provided version range.
  • IContainerMirror instance to convert any item inside container on it's item form.
  • TagCompound#newUncheckedTag() and TagList#newUncheckedTag() to create a new tag without check provided object.
  • Experimental enchantments on EnchantmentTag from Minecraft 1.21.
  • (experimental) Rtag#UNIT constant to get a Minecraft unit object.
  • (experimental) Rtag#getMinecraftRegistry method to get a custom registry provided by Bukkit.
  • (experimental) RtagItem#getComponents() method to get component map from MC item (only for +1.20.5).
  • (experimental) IComponentMirror instance to convert item tags into components and viceversa to mantain cross-version support on ItemTagStream.
  • (experimental) DataComponent utility class to manage any data Holder, Map and Patch instances.
  • (experimental) ComponentType utility class to get, parse, encode and handle any data component type and object.
  • (experimental) Multiple methods to get/edit/set data components using RtagItem instance.

Changes

  • ServerInstance utility class has been fully recoded.
  • TagCompound.DATA usage will be moved to TStream.COMPOUND.
  • Any #edit() method from RtagEditor instances has been moved into RtagEditor directly.
  • Any Enchantment usage from RtagItem on +1.20.5 servers will be redirected to Bukkit API (since items now cannot hold invalid enchantments).
  • RtagItem#fixSerialization() will make no change on +1.20.5 since items now use different serialization.
  • ItemMirror instance now use item components has main conversion concept (on versions before 1.20.5 the components object will be item tag).
  • ItemTagStream now make a fully usage of instance version to handle tags and also use item components on newer versions.
  • EasyLookup#field() is now a public method.
  • Now EnchantmentTag use enchantment registry to get bukkit enchantments on newer Minecraft versions.

Deprecations

  • Any HideFlag usage from RtagItem since items cannot have flags on +1.20.5.
  • ItemObject#load() since items now cannot implement direct updates from compound (and also is really messy to mantain on newer versions).
  • ItemObject#getTag() and ItemObject#setTag() since items now use custom data component.
  • IShulkerMirror instance since IContainerMirror now is used to convert containers.

Bug Fixes

  • Several reflected methods on +1.20.5 Mojang mapped servers.

Information

Published onApril 28, 2024
Downloads1

Platforms

Paper Paper (1.8-1.20.5)