UltimateAdvancementAPI [1.15-1.21.4] icon

UltimateAdvancementAPI [1.15-1.21.4] -----

A powerful API to create custom advancements for your minecraft server.




Release 2.4.3:
  • Added support for Minecraft 1.21.4
  • Updated CommandAPI to 9.7.0
  • Fixed hex color codes not working in 1.20.3-1.20.6
  • Added constructors taking a BaseComponent to AdvancementDisplayWrapper (by @CrazyDev05)
----------, Dec 13, 2024

Release 2.4.2:
  • Added support for Minecraft 1.21.3
  • Updated CommandAPI to 9.6.1
  • Updated HikariCP to 5.1.0
  • Minor fixes and improvements
----------, Nov 2, 2024

Release 2.4.1:
  • Added support for Minecraft 1.21.1
  • Updated CommandAPI to 9.5.3
----------, Aug 18, 2024

Release 2.4.0:
  • Added support for Minecraft 1.21
  • Updated CommandAPI to 9.5.1
  • Added support for hex color codes in titles and descriptions (for example using BungeeCord's ChatColor.of(new Color(0, 0, 0)))
  • Commands now use the ultimateadvancementapi namespace (only for 1.17+)
----------, Jun 20, 2024

Release 2.3.1:
  • Fixed a SQLite related bug
----------, May 15, 2024

Release 2.3.0:
  • Added support for Minecraft 1.20.6
  • Added support for Mojang mapped servers (see installation). If you're shading, just add <classifier>mojang-mapped</classifier> to the UltimateAdvancementAPI dependency. For more information, see the wiki
  • Refactored the Maven structure of the project to support Mojang mapped jars
  • Added load: STARTUP to the plugin.yml of the plugin version
  • Updated CommandAPI to 9.5.0-SNAPSHOT
  • Updated Libby to 1.3.0
  • Minor improvements and fixes
----------, May 15, 2024

Release 2.2.8:
  • Added support for 1.20.3 and 1.20.4
  • Updated CommandAPI to 9.3.0
----------, Dec 18, 2023

Release 2.2.7:
  • Fix NullPointerException on player join on 1.20.2
  • Now PlayerLoadingCompletedEvent and PlayerLoadingFailedEvent are always called after PlayerJoinEvent
----------, Oct 27, 2023

Release 2.2.6:
  • Added support for 1.20.2
  • Updated CommandAPI to 9.2.0
  • Fixed a bug where, when loading on an unsupported server version, an error was printed to the console instead of the nicer message that was supposed to be printed
----------, Sep 27, 2023

Release 2.2.5:
  • Added support for 1.20.1
  • Updated CommandAPI to 9.0.3 (by dandan2611)
  • The plugin version of the API now doesn't crash anymore when it fails to load or enable commands
----------, Jun 20, 2023

Release 2.2.4:
  • Added support for 1.20
  • Updated CommandAPI to 9.0.2
  • Fix SQLException: Generated keys not requested when using movePlayerInNewTeam(...) on MySQL
----------, Jun 12, 2023

Release 2.2.3:
  • Added support for 1.19.4
  • Updated CommandAPI to 8.8.0
----------, Mar 17, 2023

Release 2.2.2:
  • Added support for 1.19.3
  • Updated CommandAPI to 8.7.1
  • Fixed AdvancementKey#VALID_ADVANCEMENT_KEY and AdvancementKey#VALID_KEY patterns. Now they recognize keys correctly
----------, Dec 26, 2022

Release 2.2.1:
  • Added support for 1.19.2
  • Updated CommandAPI to 8.5.1
----------, Sep 19, 2022

Release 2.2.0:
  • Added support for 1.19
  • Advancements updates are now sent maximum one time per tick to avoid sending useless packets
  • The method AdvancementTab#updateEveryAdvancement has been deprecated, use AdvancementTab#updateAdvancementsToTeam instead
  • The following utility methods has been added to the AdvancementTab class:
    • automaticallyShowToPlayers, which automatically shows this tab to every player just after they have been loaded
    • automaticallyGrantRootAdvancement, which automatically grants the root advancement of the tab to every player after they have been loaded
    • registerEvent, which registers an event into the EventManager of the tab
  • Added the following events:
    • AsyncTeamLoadEvent
    • AsyncTeamUnloadEvent
    • AsyncTeamUpdateEvent
    • AsyncPlayerUnregisteredEvent
  • Deprecated for removal (in the next versions) the following events:
    • TeamLoadEvent (use AsyncTeamLoadEvent instead)
    • TeamUnloadEvent (use AsyncTeamUnloadEvent instead)
    • TeamUpdateEvent (use AsyncTeamUpdateEvent instead)
  • Updated CommandAPI to 8.3.1
  • The CHANGELOG file has been added on GitHub
  • Jenkins workspace is now cleaned after every successful build
  • The NOTICE file has been updated since UltimateAdvancementAPI is licensed under LGPL but it was containing GPL instead
----------, Jun 17, 2022

Release 2.1.3:
  • Fixed IllegalArgumentException thrown when AdvancementTab#hideTab(Player) is called with a player who hasn't the tab shown
----------, May 1, 2022

Release 2.1.2:
  • Added support for 1.18.2
  • Updated CommandAPI to 6.5.4
----------, Mar 10, 2022

Release 2.1.1:
  • The Javadoc of CoordAdapter has been improved
  • Tests has been improved, so now more things can be tested
----------, Feb 17, 2022

Release 2.1.0:
  • Added builders for AdvancementDisplay and FancyAdvancementDisplay (by @SoSeDiK)
  • Added CoordAdapter class, which adds support to negative coordinates for AdvancementDisplays
  • Added some missing @Override annotations
  • Added some testing utilities which makes writing tests easier
  • Released UltimateAdvancementGenerator, the official generator for UltimateAdvancementAPI:
    • Create advancement tabs using a graphical tool
    • Generate the classes for your advancements
    • The tool is still in BETA, please report bugs on GitHub
----------, Jan 30, 2022

Release 2.0.5:
  • Fixed a bug that causes advancements not showing up on Paper
  • Updated Libby to 1.1.5
----------, Dec 16, 2021

  • Added support for 1.18.1
  • Updated CommandAPI to 6.5.3
----------, Dec 11, 2021

  • Improved failing during API enabling:
    • Now the AdvancementMain#disable() method can be called multiple times without throwing any error
  • Added a bStats chart about whether vanilla advancement feature is enabled or not
  • Added a bStats chart about used database type
  • Added AsyncExecutionException
  • Apache Commons' Validate class has been replaced with Guava's Preconditions
  • Updated Libby to 1.1.4
----------, Dec 9, 2021

  • Added support for 1.18
  • Added in-memory database:
    • No connection to any database is made since the data is kept in RAM
    • The in-memory database is reset at every server restart/reload (reload usage is discouraged though)
    • It can be used for minigames which don't need to save the advancement progressions after games
  • Advancement announce messages are now not sent if announceAdvancements gamerule is set to true
  • Added a message error when an error occurs during command execution
  • Fixed vanilla advancement disabling issue
----------, Dec 6, 2021

  • Added the final method Advancement#isVisible(Advancement, TeamProgression), which should help avoiding compilation errors when implementing multiple IVisibility subinterfaces. It always throws an IllegalOperationException, since it should not be called
  • Fixed a bug where the default method of an IVisibility subinterface was not called correctly
----------, Nov 29, 2021

BREAKING CHANGES:
For developers :
A lot of effort has been put in making UltimateAdvancementAPI multi-version, so we took the opportunity to update the code to Java 16 and to make some changes.
Lombok has been removed from the project, and 'criteria' has been replaced with 'progression' in classes, fields, and methods names in order to make the API more intuitive to use.
Also, ENABLE_ARBITRARY_SET_PROGRESSION and DISABLE_EXCEPTION_ON_ARBITRARY_SET_PROGRESSION are now protected to improve code security.

For server admins: How to update
The column 'Criteria' of the 'Advancements' table in the database has been renamed to 'Progression', so it's necessary to run a manual command in order to update old databases. This doesn't apply if you install UltimateAdvancementAPI for the first time or delete the old database and create a new one.
If you're using MySQL you can run the following commands:
Code (Text):
USE `put-here-UltimateAdvancementAPI-database-name`;
ALTER TABLE `Advancements` CHANGE `Criteria` `Progression` INT;
If you're using SQLite you can run the following command after having loaded the database.db file (which is located by default into the plugin directory) into a SQLite editor:
Code (Text):
ALTER TABLE `Advancements` RENAME COLUMN `Criteria` TO `Progression`;

Changelog:
  • Updated to Java 16
  • Added multi-version support: 1.15.x to 1.7.1
  • Maven project has been restructured
  • Commands now works with @a and @s selectors
  • '/ultimateadvancementapi criteria ...' command has been renamed to '/ultimateadvancementapi progression ...'
  • 'ultimateadvancementapi.criteria.*' permissions have been renamed to 'ultimateadvancementapi.progression.*'
  • Lombok has been removed
  • 'criteria' has been replaced with 'progression' in classes, fields, and methods names
  • The column 'Criteria' into the 'Advancements' table in the database has been renamed to 'Progression'
  • Added VALID_ADVANCEMENT_KEY, VALID_NAMESPACE, and VALID_KEY patterns to AdvancementKey
  • MultiTasksAdvancement#ENABLE_ARBITRARY_SET_PROGRESSION and MultiTasksAdvancement#DISABLE_EXCEPTION_ON_ARBITRARY_SET_PROGRESSION are now protected
  • Updated Libby to 1.1.3
  • Minor fixes and improvements
----------, Nov 20, 2021

  • Added Javadoc for almost every class.
  • Now the plugin version checks for updates at startup.
  • Added validation for TeamProgressions: now DatabaseManager accepts only TeamProgressions that exists in cache. Old TeamProgressions are no longer accepted.
  • Added IllegalOperationException.
  • Default pool-size config value is now 10.
  • Minor fixes.
----------, Oct 6, 2021

Added bStats.
Added Versions utility class to handle versions.
----------, Aug 27, 2021

Resource Information
Author:
----------
Total Downloads: 6,419
First Release: Aug 23, 2021
Last Update: Dec 13, 2024
Category: ---------------
All-Time Rating:
14 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings