Skip to content

Releases: saicone/rtag

Rtag 1.5.6

03 Sep 17:42
18a0e41
Compare
Choose a tag to compare

Additions

  • Blazingly fast item edits!, now any RtagItem usage is practically invisible for server performance.
  • ItemObject#newCraftItem() to create CraftItemStack using ItemStack.
  • ItemObject#loadHandle() to explicitly load handle into ItemStack using a CraftItemStack mirror.
  • ItemObject#getCraftStack() to get delegated CraftItemStack from ItemStack object (Only for Paper +1.21).
  • ItemObject#getUncheckedHandle() to get handle from CraftItemStack unsafely.
  • ItemObject#asCraftMirror() to convert ItemStack to it's CraftItemStack form.
  • ItemData class dedicated to item data handling.
  • ItemData#getItemVersion() to get the nearest minecraft version from item by reading item data.
  • RtagItem#getLiteralTag() to get current item tag or null.
  • RtagItem#loadInto() to load changes into provided minecraft ItemStack.
  • Proper conversion for new component changes.

Changes

  • Now item changes are applied directly to items.
  • Avoid rtag plugin code remap on newer paper servers.
  • Now ItemObject#setHandle() replaces CraftItemStack handle directly or create a bukkit copy of provided handle to apply changes into item.
  • Most of deprecated methods are marked to deletion on 1.6.0 update.
  • Now ItemTagStream uses ItemData to detect item version from compound.
  • RtagItem now doesn't clone or create any tag unless you're trying to edit it.
  • RtagItem now allows to clear item tag.

Bug Fixes

  • Recursive reflection on EasyLookup doesn't detect some legacy fork patches.
  • Component mirror doesn't change enchantment sweeping into sweeping_edge (and vicerverse).

Deprecations

  • ItemObject#getComponentPath() and ItemObject#getTagPath(), use ItemData methods instead.

Rtag 1.5.5

08 Jul 18:08
2971994
Compare
Choose a tag to compare

Additions

  • Support for Minecraft 1.21.1.
  • OptionalType#asEnum() to get the current value as enum type.
  • Compatibility with Map values on IterableType.
  • More precise error messages when trying to create an invalid component type.

Bug Fixes

  • Fix component type not being parsed or encoded.
  • Fix IterableType iteration hover arrays and single objects.

Rtag 1.5.4

13 Jun 17:24
9fd2399
Compare
Choose a tag to compare

Additions

  • Support for Minecraft 1.21.

Bug Fixes

  • Fix skull texture usage on servers with newer versions of authlib.

Rtag 1.5.3

30 Apr 15:00
adf09b1
Compare
Choose a tag to compare

Additions:

  • More precise ServerInstance#DATA_VERSION for newer server versions.

Bug Fixes

  • #7 (rtag-item): fix ItemObject#getCustomDataTag() on 1.20.6 servers.
  • Fix enchantment tag initialization.

Rtag 1.5.2

30 Apr 04:02
15f359b
Compare
Choose a tag to compare

Additions

  • Support for Minecraft 1.20.6 (same has 1.20.5).
  • Item count conversion.
  • Profile component transformation.
  • Profile/SkullOwner sub-paths conversion.

Changes

  • Now component conversion doesn't replace components object.

Bug Fixes

  • Fix component paths not being downgraded.
  • Fix enchantment level upgrade to component format.
  • Fix potion convertion.
  • Fix item effects conversion.
  • Fix firework component transformation.

Rtag 1.5.1

28 Apr 04:02
c7ec78e
Compare
Choose a tag to compare

Additions

  • Experimental enchantments on EnchantmentTag from Minecraft 1.21.

Changes

  • Now EnchantmentTag use enchantment registry to get bukkit enchantments on newer Minecraft versions.

Bug Fixes

  • Several reflected methods on +1.20.5 Mojang mapped servers.

Rtag 1.5.0

24 Apr 21:54
51908ab
Compare
Choose a tag to compare

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) 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.

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.

Rtag 1.4.4

06 Dec 01:54
e59987f
Compare
Choose a tag to compare

Additions

  • Support for Minecraft 1.20.3 and 1.20.4.
  • Backwards list index using negative numbers, for example -1 to get the lastest value.

Bug Fixes

  • Fix skull meta profile setter.

Rtag 1.4.3

30 Oct 02:42
fd7a7fe
Compare
Choose a tag to compare

Additions

  • Support for servers without CraftBukkit relocation (see PaperMC announce).
  • Support for null tag on items.

Removed

  • Some unused checks in ItemObject.

Rtag 1.4.2

24 Sep 18:10
67ed86b
Compare
Choose a tag to compare

Additions

  • Old methods from EasyLookup class to avoid API breaks.

Bug Fixes

  • Fix chat component conversion between empty (json) strings.