Tags
Creators
Details
Licensed MIT
Published 2 years ago
Updated 3 weeks ago
All versions
12.1
Release
stability, diagnostics, database safetylast month 297
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
1.20.x
Platforms
Paper
Purpur
Changes
Update Highlights
This release focuses on stability, diagnostics, database safety, and advancement generation reliability.
Added
- New read-only
/aach doctor [page]diagnostics covering:- YAML/configuration
- Java & server platform
- Integrations
- Database health
- Queue state
- Added missing permissions and improved player-only command feedback.
- Added additional regression and descriptor tests.
- Added Maven Wrapper and Java 21 / 25 CI coverage.
Fixed
- Reworked
/aach generateforced regeneration. - Forced generation now performs:
- Batched deletion
- A single
Bukkit.reloadData() - Batched recreation
- Already-deleted advancement files are handled safely.
- Generation failures now stop immediately, log once, suppress false success messages, and correctly release the generation lock.
- Moved
/aach inspectBukkit interactions back to the main thread. - Fixed cached-statistic database write confirmation and retry behavior.
- Serialized JDBC access to improve database consistency and thread safety.
Changed
- Minimum supported environment is now:
- Paper / Purpur 1.21+
- Java 21+
- New installations now default to SQLite.
- Existing H2 databases remain fully supported with no migration required.
- Updated PostgreSQL JDBC to 42.7.13.
- Preserved relocated JDBC service providers.
- Startup advancement generation remains additive and does not trigger a server data reload.
- Root and plugin modules now use Maven
${revision}versioning. - Improved plugin descriptor/version validation.
Maintenance
- Expanded automated test coverage.
- Refreshed changelog and project documentation.
- General build, database, and reliability improvements.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:KADKsqnh:gx9oLrOO"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:KADKsqnh:gx9oLrOO"
}

