v1.16.0
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
InventoryBuilderhas been simplified. Null slots andEmptySlotinstances 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
infotodebugto reduce log noise during normal operation - The
updateInventorymethod has been refactored to exit early whenapplyLayoutis false, improving readability and reducing nesting - A new
dataLayoutPendingflag was added to theInventoryBuilderto better track asynchronous data layout state. The existing boolean fieldsinventoryLayoutValidanddataLayoutValidare now marked asvolatilefor thread safety - Various
@NotNullannotations have been removed fromInventoryLayoutmethod signatures, as the sealed type system already enforces non-null contracts package-info.javafiles have been added for theclick,exception,holder,layout, andutilpackages
🗺️ Map Builder Improvements
BaseMapBuilder
- The
DEFAULT_NAMEconstant has been changed fromprivatetopublic, 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
registerInstancemethod now accepts an optionalRegistryKey<DimensionType>parameter. This allows registering map instances with a specific dimension type (e.g.THE_NETHER,THE_END) instead of always defaulting toOVERWORLD - A convenience overload without the dimension key parameter still defaults to
DimensionType.OVERWORLD - The
loadMapEntriesmethod has been simplified by removing an unnecessary emptiness check beforeclear()
Full Changelog: 1.15.1...1.16.0