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
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
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
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
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.