Releases: PyvesB/advanced-achievements
Database migration resiliency
Enhancements:
- When migrating the database to an updated structure, errors could cause it to enter an inconsistent state which would require manual edits to your database file. This should now be significantly less likely.
- Various dependency updates.
Minecraft 1.17 support and various other fixes and improvements
New features:
- The new achievement.config.receiver.chat.messages and achievement.config.title.screen permissions can be used to override the config values of TitleScreen and ReceiverChatMessages for each player.
Bug fixes:
-
Using /aach book in Minecraft 1.16 or Minecraft 1.17 no longer displays an error message.
-
Using LanguageFileName with an outdated language file no longer results in errors, the new configuration values are appended to the end of the file as expected.
-
Teleporting inside a vehicle should no longer allow players to abuse Distance categories.
-
Players can no longer abuse the Fireworks category with glow item frames in Minecraft 1.17.
-
Hoverable and clickable chat messages are functional again in Minecraft 1.17.
Translations:
- Portuguese translation update, thanks to @C0ffeL0Ve for their contribution!
Breaking change:
- The achievement_count is no longer supported in BungeeTabListPlus. Don't panic, BungeeTabListPlus does support PlaceholderAPI, so you can simply use the aach_achievements placeholder from PlaceholderAPI instead.
Fertilising category fix
Bix fixes:
- The Fertilising achievement category would sometimes throw errors. This has now been fixed.
JobsReborn improvements
Enhancements:
- The default level for the JobsReborn achievement category will now be displayed as 1.
- The default configuration for the JobsReborn achievement category has been clarified to prevent confusion as to how to add new job achievements.
- Various code clean up and improvements.
Additional performance improvements
Enhancements:
- Further reduced the performance hit when a player joins a Minecraft 1.12+ server on which /aach generate was run.
- Small other performance improvements. This will mostly be noticeable for the Places, Kills, TargetsShot, Breaks, Crafts, Breeding, PlayerCommands and JobsReborn achievement categories, in particular when many sub-categories are configured.
Performance improvements
Enhancements:
- Significantly reduced the performance hit when a player joins the server, changes worlds or switches game modes.
- Minor other performance improvements.
Custom item names and PlayedTime GUI fixes
Bug fixes:
-
Fixed custom names for Item rewards, which stopped working in version 7.0.0 of the plugin.
-
Fixed the progress bar for the PlayedTime achievement category, which was confusingly displaying values such as "2.0/2" even if the threshold had not yet been reached.
Connections category improvement and various other enhancements
Enhancements:
-
The /aach add command now works with the Connections category as well.
-
config.yml will automatically handle some user mistakes when trying to disable a category. Thanks to @HgeX for his contribution!
-
The performance of the getPlayerTotalAchievements, hasPlayerReceivedAchievement, getStatisticForNormalCategory and getStatisticForMultipleCategory API methods has been improved, which should speed up third-party plugin integrations. As a reminder, the API documentation can be found here.
-
Connections statistics are now cached, which should speed up the repeated rendering of /aach list for that category.
Bug fixes:
- When changing the threshold of a Connections achievement or creating new Connections achievements, if a player is already above the threshold, they will now be awarded the achievement as expected.
Firework colors, performance improvements, GUI and cooldown fixes
Enhancements:
-
Fireworks launched at achievement reception now use the Color parameter specified in config.yml rather than defaulting to purple.
-
Performance has again noticeably been improved.
Bug fixes:
- Fix NumberedItemsInList parameter which was broken in version 7.0.0 and was causing achievement to not display properly.
- The book and achievement cooldowns are no longer randomly reset when players quit and rejoin the server. These problems were only reported recently but have been present since 2015, making them the oldest bugs in the plugin!
- Prevent /aach reload from duplicating scheduled tasks for statistic handling, which was significantly degrading performance.
Translations:
- Updated Chinese translation, thanks to @BillZhucn for his contribution!
Major release with GUI, API, performance and many other improvements!
New features:
- OverrideBackButtonBehaviour optionally runs a command when pressing the GUI back button instead of returning to the main /aach list page.
- BackButtonIsCategoryItem displays the category item instead of the BackButton item specified in gui.yml.
- TableMaxSizeOfGroupedSubcategories allows increasing the maximum size of sub-category keys grouped with '|'.
GUI enhancements:
- When paginating, previous and next buttons only appear when there are previous and next pages available.
- Navigation items are now part of a separate row, which makes them easier to use as they no longer jump around horizontally.
- The first placeholder category item has been removed and can instead be used as the back button, making things more aesthetic.
- Display performance has slightly improved.
Other enhancements:
-
Configuration file handling is more robust. If you're a long-time plugin user, you may have noticed that comments are occasionally messed up and whitespaces added in random places. This should no longer happen.
-
config.yml is now more forgiving when faced with some common user mistakes.
-
Huge parts of the code have been rewritten or reorganised to make contributions and ongoing maintenance easier.
-
Performance and memory usage have been improved significantly in many places.
-
Documentation for the default configuration files as well as the Wiki have been polished.
-
The JAR has been decreased in size and remapped to reduce risk of conflicts with other plugins.
-
All plugin dependencies have been updated.
Breaking changes:
- list-potions has been renamed to list-consumedpotions in lang.yml.
- Achievement descriptions are no longer persisted to the database, decreasing its size noticeably. Please make sure you keep a copy of your database: if ever you want to go back to the previous version of the plugin, you'll also need to restore a backup performed before launching the new version.
- The old MYSQL configuration section is no longer supported. Make sure you use the DatabaseAddress, DatabaseUser and DatabasePassword parameters that were introduced back in 2018.
- The old StatisticCooldown style where a unique value was specified for all categories is no longer supported. Make sure you use the following format that was introduced back in 2017:
StatisticCooldown:
LavaBuckets: 10
WaterBuckets: 10
Milk: 10
Beds: 30
Brewing: 5
MusicDiscs: 30
-
The Execute and a Display parameters introduced in 2017 for command rewards are now mandatory. The command-reward and list-reward-command parameters can be deleted from lang.yml. See the documentation for more information.
-
The JobsReborn category now counts the maximum level reached in a job rather than the number of level ups.
Bug fixes:
- The Brewing category no longer leaks memory.
- Statistics for the Trades category increase by one per villager trade rather than any random number based on the total number of items traded.
- Texts in books are now properly updated when you change an achievement's configuration.
Translations:
- New Danish translation, thanks to @Tobi-Jakka for his contribution!
- Updated Spanish translation, thanks to @arciniegasdiaz for his contribution!
API:
- New getAllAchievements and getPlayerAchievements API methods. These return a rich listing of achievements with information about categories, names, thresholds, types, rewards, etc.
- Some deprecated API methods have been deleted.