Releases: OneLiteFeatherNET/Aves
v1.13.1
Changelog
The release of version 1.13.1 is a small fix update that addresses the following issues:
- Fixed an issue in the
InventoryBuilderwhere the close and open functions were not registered correctly when used in an implementation (#67) - The
getTimeStringmethod now uses Java’sLocalTimeformat, making it more resource-friendly (#59)
When using a custom format for the getTimeString method, it is not possible to display times beyond 24 hours due to the use of LocalTime.
Happy coding
v1.13.0
Changelog
Version 1.13.0 of Aves is the first release targeting Minecraft 1.21.11 and does not require any migration steps.
This release includes an overhaul of the NotNull annotation usage to improve compatibility with Java module descriptors. This change has no impact on the public API or normal usage.
v1.12.0
Changelog
The release of version 1.12.0 is the first to target Minecraft 1.21.10 and Java 25. To use this version, you must update your environment to Java 25. There are no other changes in this release
v1.11.2
Changelog
The 1.11.2 release includes updated dependencies and an overhauled usage of some annotations in the map builder. These changes do not require any kind of migration.
What's Changed
- Update dependency
net.onelitefeather:mycelium-bomto v1.4.3 by @renovate[bot] in #39 - Overhaul annotation usage in the map builder by @theEvilReaper in #40
- Update
actions/setup-javaaction to v5 by @renovate[bot] in #41 - Update Gradle to v9.1.0 by @renovate[bot] in #42
- Update dependency
net.onelitefeather:mycelium-bomto v1.4.4 by @renovate[bot] in #43 - Update
gradle/actionsaction to v5 by @renovate[bot] in #44 - Remove
publishdataplugin usage by @theEvilReaper in #45
Full Changelog: https://github.com/OneLiteFeatherNET/Aves/commits/1.11.2
v1.11.1
Changelog
Version 1.11.1 introduces an important fix to the inventory system and publishes the documentation.
📦 Inventory Fix
In version 1.11.0, the logic flow for processing clicks was overhauled. Due to the lack of tests, we introduced an issue where the basic InventoryLayout did not check whether a click was intended for that specific layout. As a result, any inventory using the static layout did not work correctly. This is now fixed.
📚 Documentation
The project contains in-code documentation to explain each class and its methods.
Unfortunately, the documentation was not being published. This has been corrected in this release.
v1.11.0
Changelog
Version 1.11.0 introduces support for Minecraft 1.21.8. The internal mycelium-bom version has been updated accordingly to reflect this change.
📦 Inventory System Breaking Changes
In version 1.9.0, the click handling logic in the inventory system was changed.
That update introduced a potential issue where the click logic was executed after the event was triggered.
This ordering was not ideal and has now been corrected in this release.
Starting with version 1.11.0, the event logic is processed before deciding whether the event should be cancelled or not.
This adjustment helps avoid issues during click handling.
The InventoryClick function now accepts two additional parameters:
- The clicked
ItemStack, which helps reduce redundant inventory access - A
Consumer<@NotNull ClickHolder>, which receives aClickHolderreference throughaccept(..)to perform the appropriate click action
The provided ClickHolder instance is the same as introduced in version 1.9.0.
Below is an example of how to use it:
GlobalInventoryBuilder globalInventoryBuilder = new GlobalInventoryBuilder(Component.text(""), InventoryType.BEACON);
InventoryLayout layout = InventoryLayout.fromType(globalInventoryBuilder.getType());
layout.setItem(0, ItemStack.builder(Material.GRAY_STAINED_GLASS_PANE), (player, slot, click, stack, result) -> {
result.accept(ClickHolder.cancelClick());
});
layout.setItem(2, ItemStack.builder(Material.GRAY_STAINED_GLASS_PANE), (player, slot, click, stack, result) -> {
result.accept(ClickHolder.noClick());
});v1.10.1
Changelog
The release of version 1.10.1 includes the following additions:
- The
BaseMapBuildernow provides getters for the fieldsspawn,name, andauthors.
v1.10.0
v1.9.0
Changelog
Version 1.9.0 introduces support for Minecraft 1.21.5. The internal mycelium-bom version has been updated accordingly to reflect this change.
This release includes several additions, removals, and breaking changes. Let’s start with the additions and improvements that do not require any migration efforts:
✨ Additions & Improvements
- A new
ModernFileHandlerhas been introduced. It should be used in cases where you serialize or writeTypeTokenreferences using Gson BaseMapnow includes a builder for creating instances. As a result, the static factory methods have been deprecated and will be removed in a future release (see #20)- The
BaseMapbuilder is extendable and can be inherited to create more contextual builder variants
⚠️ General Breaking Changes
- The
refreshmethod in theMapEntryclass has been removed. Its behavior has been integrated into thecreateFilemethod (see #21)
📦 Inventory System Breaking Changes
This library contains a subsystem for creating inventories based on layouts. Since the underlying Minestom implementation was refactored in version 1.21.5, the way clicks are handled has changed.
Previously, clicks were returned as part of a InventoryConditionResult. This class has been removed and replaced by more explicit click holder implementations. Consequently, your click handling logic now needs to return one of the following ClickHolder variants:
MinestomClick: For forwarding the click to the server with itsClickTypeCancelClick: For blocking the clickNOPClick: For indicating no action should be taken
Here’s an updated example of how to work with the new click system:
GlobalInventoryBuilder globalInventoryBuilder = new GlobalInventoryBuilder(Component.text(""), InventoryType.BEACON);
InventoryLayout layout = InventoryLayout.fromType(globalInventoryBuilder.getType());
layout.setItem(0, ItemStack.builder(Material.GRAY_STAINED_GLASS_PANE), (player, slot, clickType) -> {
// Forward the click to the server
return ClickHolder.of(clickType);
});
layout.setItem(1, ItemStack.builder(Material.GRAY_STAINED_GLASS_PANE), (player, slot, clickType) -> {
// Cancel the click
return ClickHolder.cancelClick();
});
layout.setItem(2, ItemStack.builder(Material.GRAY_STAINED_GLASS_PANE), (player, slot, clickType) -> {
// Do nothing on click
return ClickHolder.noClick();
});