This update focuses on making configuration reloads safer, reducing database work on the main server thread, and improving reliability under concurrent activity.
### Reload & Configuration Improvements
* **Reloads now properly preserve and re-register the advancement listener.**
* **Configuration-dependent scheduled tasks are fully cancelled and recreated** during reloads.
* **Added transactional configuration reloads.** Configuration is now parsed and validated in temporary state before being applied.
* If validation fails, the previous working configuration remains active.
* Failed reloads can no longer leave the plugin partially configured.
* Added additional validation for:
* Database types
* Colors
* Intervals and thresholds
* Database table prefixes
* Malformed configuration sections
* Duplicate display names
* Advancement-key collisions
### Performance Improvements
* **GUI, book, and ranking database reads now run asynchronously**, reducing unnecessary work on the main server thread.
* **Category GUI completion dates now use bulk database queries** instead of querying achievements individually.
* **Subcategory statistics now use bulk queries**, significantly reducing database requests when loading larger menus.
* Improved concurrent cache initialization to prevent statistic updates from being lost during simultaneous operations.
### Reliability & Testing
* Added regression tests covering:
* Configuration rollback after failed reloads
* Bundled configuration parsing
* Advancement listener registration
* Scheduled task recreation
* Concurrent caching behavior
* Bulk database operations
Overall, this release makes reloads considerably safer while reducing database overhead and improving stability on active servers.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }