Releases: OneLiteFeatherNET/Aves
v1.15.1
v1.15.0
Changelog
This release targets Minecraft 26.1. It does not introduce new features or breaking changes at the api level. Internal components have been updated to ensure compatibility with the new version.
v1.14.1
Changelog
The 1.14.1 release includes the following changes:
Map related changes
With the merge of #69, the structure of BaseMap has been slightly revamped.
Previously, the builders of each map were stored in an array. While this provided a fixed size, it also made the API more cumbersome to work with. In addition, handling null values in arrays could be awkward in certain situations. The builders are now stored in a list instead, making them easier to manage and use.
Additional changes have been made to the default implementation of AbstractMapProvider. Null handling has been improved and the interface now provides a parameterless teleportToSpawn method. If you choose to use this method, be aware that it does not automatically teleport the player to the instance.
[!NOTE]
This is the last planned release targeting Minecraft
1.21.11!
What's Changed
- Update Gradle to v9.5.1 by @renovate[bot] in #74
- refactor(map)!: migrate BaseMap to record and improve map loading by @theEvilReaper in #69
- Update dependency net.onelitefeather:mycelium-bom to v1.6.7 by @renovate[bot] in #73
Full Changelog: 1.14.0...1.14.1
v1.14.0
Changelog
The 1.14.0 release includes the following changes:
MapProvider
The MapProvider class now provides a teleportToSpawn method that no longer requires a boolean parameter to indicate whether the instance should be changed. This improvement makes it easier to use method references in certain scenarios.
See: #72
Note
This method only teleports the player and does not change the instance.
If your use case requires an instance change, use the overload with the boolean parameter set to true.
HotBarLayout
The library now includes a HotBarLayout class that helps organize item layouts within a player's hotbar. It behaves similarly to the existing InventoryLayout but is limited to a size of 9 and provides a smaller feature set.
Example:
HotBarLayout selectionLayout = new HotBarLayout();
selectionLayout.set(FOURTH_INDEX, ItemStack.builder(Material.CHEST)
.customName(Component.text("Map selection", NamedTextColor.GREEN))
.build()
);Additional details can be found in the pull request: #71
Full Changelog: 1.13.1...1.14.0
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());
});