Skip to content

v1.16.0

Choose a tag to compare

@theEvilReaper theEvilReaper released this 24 Jul 07:50
03a7892

Changelog

Version 1.16.0 includes significant internal modernization of the inventory system, new utility methods for the map builder and dependency updates

Warning

This release contains breaking changes. Please review the migration notes below

Targets Minecraft version 26.2


📦 Inventory System Modernization (#66)

Breaking Changes

The InventoryLayout and InventoryLayoutImpl classes have been moved to the new package net.theevilreaper.aves.inventory.layout. All existing imports must be updated accordingly

The deprecated constant CANCELLABLE_EVENT has been removed from InventoryConstants.
This constant was already deprecated and is no longer needed due to changes introduced in version 1.9.0

Improvements

  • The click handling logic in InventoryBuilder has been simplified. Null slots and EmptySlot instances are now handled in a single guard check instead of two separate conditions
  • Several internal logging calls in the inventory system have been changed from info to debug to reduce log noise during normal operation
  • The updateInventory method has been refactored to exit early when applyLayout is false, improving readability and reducing nesting
  • A new dataLayoutPending flag was added to the InventoryBuilder to better track asynchronous data layout state. The existing boolean fields inventoryLayoutValid and dataLayoutValid are now marked as volatile for thread safety
  • Various @NotNull annotations have been removed from InventoryLayout method signatures, as the sealed type system already enforces non-null contracts
  • package-info.java files have been added for the click, exception, holder, layout, and util packages

🗺️ Map Builder Improvements

BaseMapBuilder

  • The DEFAULT_NAME constant has been changed from private to public, allowing external code to reference the default map name
  • A new isDefaultName() method has been added to check whether a custom name has been set
  • A new clearBuilders() method allows resetting all previously added builders
  • The builder(String) method now performs duplicate checking — adding a builder that already exists is silently skipped
  • The getBuilders() method now returns an unmodifiable list view (Collections.unmodifiableList) and is annotated with @UnmodifiableView

AbstractMapProvider

  • The registerInstance method now accepts an optional RegistryKey<DimensionType> parameter. This allows registering map instances with a specific dimension type (e.g. THE_NETHER, THE_END) instead of always defaulting to OVERWORLD
  • A convenience overload without the dimension key parameter still defaults to DimensionType.OVERWORLD
  • The loadMapEntries method has been simplified by removing an unnecessary emptiness check before clear()

Full Changelog: 1.15.1...1.16.0