- 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
- 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
- Improved the Advancement Visibility System:
- 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
- Added the final method
- Updated to Java 16
- Added multi-version support: 1.15.x to 1.7.1
- Maven project has been restructured:
- Added the NMS module with the per-version code
- Commands have been moved to the Commands module
- Added the
com.frengor:ultimateadvancementapi-commands
artifact, which can be used alongside the shadeable version to add commands to the plugin
- Commands now works with @a and @s selectors
/ultimateadvancementapi criteria ...
command has been renamed to/ultimateadvancementapi progression ...
ultimateadvancementapi.criteria.*
permissions have been renamed toultimateadvancementapi.progression.*
- Lombok has been removed
criteria
has been replaced withprogression
in classes, fields, and methods names:- AdvancementCriteriaUpdateEvent has been renamed to AdvancementProgressionUpdateEvent
- CriteriaUpdateEvent has been renamed to ProgressionUpdateEvent
- ArbitraryMultiTaskCriteriaUpdateException has been renamed to ArbitraryMultiTaskProgressionUpdateException
- Advancement#maxCriteria has been renamed to maxProgression
- Advancement#getMaxCriteria has been renamed to getMaxProgression
- Advancement#getTeamCriteria has been renamed to getProgression
- Advancement#incrementTeamCriteria has been renamed to incrementProgression
- Advancement#setCriteriaTeamProgression has been renamed to setProgression
- TeamProgression#getCriteria has been renamed to getProgression
- DatabaseManager#getProgression and UltimateAdvancementAPI#getProgression have been renamed to getTeamProgression
- DatabaseManager#updateCriteria has been renamed to updateProgression
- DatabaseManager#updateCriteriaWithCompletable has been renamed to updateProgressionWithCompletable
- AdvancementUtils#validateCriteria has been renamed to validateProgressionValue
- AdvancementUtils#validateCriteriaStrict has been renamed to validateProgressionValueStrict
- MultiTasksAdvancement#ENABLE_ARBITRARY_SET_TEAM_CRITERIA has been renamed to ENABLE_ARBITRARY_SET_PROGRESSION
- MultiTasksAdvancement#DISABLE_EXCEPTION_ON_ARBITRARY_SET_TEAM_CRITERIA has been renamed to DISABLE_EXCEPTION_ON_ARBITRARY_SET_PROGRESSION
- 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
- 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