Skip to content

Releases: OneLiteFeatherNET/Aves

v1.13.1

07 Apr 08:00
54dc689

Choose a tag to compare

Changelog

The release of version 1.13.1 is a small fix update that addresses the following issues:

  • Fixed an issue in the InventoryBuilder where the close and open functions were not registered correctly when used in an implementation (#67)
  • The getTimeString method now uses Java’s LocalTime format, 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

24 Dec 11:16
6531f34

Choose a tag to compare

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

23 Oct 18:52
ded7ceb

Choose a tag to compare

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

12 Oct 12:58
1a194c1

Choose a tag to compare

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-bom to v1.4.3 by @renovate[bot] in #39
  • Overhaul annotation usage in the map builder by @theEvilReaper in #40
  • Update actions/setup-java action to v5 by @renovate[bot] in #41
  • Update Gradle to v9.1.0 by @renovate[bot] in #42
  • Update dependency net.onelitefeather:mycelium-bom to v1.4.4 by @renovate[bot] in #43
  • Update gradle/actions action to v5 by @renovate[bot] in #44
  • Remove publishdata plugin usage by @theEvilReaper in #45

Full Changelog: https://github.com/OneLiteFeatherNET/Aves/commits/1.11.2

v1.11.1

10 Aug 09:44
1ca68c6

Choose a tag to compare

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

20 Jul 13:34
3eaf249

Choose a tag to compare

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 a ClickHolder reference through accept(..) 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

15 Jul 20:36
4a95309

Choose a tag to compare

Changelog

The release of version 1.10.1 includes the following additions:

  • The BaseMapBuilder now provides getters for the fields spawn, name, and authors.

v1.10.0

13 Jul 08:19
3aaa382

Choose a tag to compare

Changelog

The 1.10.0 release adds support for Minecraft 1.21.7, but does not include any other changes.
Please check the previous release for more information.

v1.9.0

08 Jul 08:15
4373eaa

Choose a tag to compare

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 ModernFileHandler has been introduced. It should be used in cases where you serialize or write TypeToken references using Gson
  • BaseMap now 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 BaseMap builder is extendable and can be inherited to create more contextual builder variants

⚠️ General Breaking Changes

  • The refresh method in the MapEntry class has been removed. Its behavior has been integrated into the createFile method (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 its ClickType
  • CancelClick: For blocking the click
  • NOPClick: 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();
});

v1.8.0

04 May 16:03
28a9e70

Choose a tag to compare

Changelog

The release of version 1.8.0 contains the following changes:

  • Deprecate refresh method in the MapEntry class and add a new createFile method
  • Add AbstractMapProvider for handling maps in different cases