Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated 2 months ago
All versions
1.0.18
Release
AmplProtections 1.0.183 months ago 20
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
Platforms
Paper
Purpur
Spigot
Changes
[1.0.18] - 2026-08-03
🔧 Database & Connection Pool
- MySQL: Plugin now auto-creates the database if it doesn't exist (
CREATE DATABASE IF NOT EXISTS). No need to manually create it anymore. - MySQL: Enabled TCP keepalive (120s) to prevent the connection pool from becoming unresponsive on unstable networks.
- MySQL: Increased
connectionTimeoutfrom 5s to 15s to handle server load spikes. - SQLite: Reduced
maximumPoolSizefrom 5 to 1 — SQLite is an embedded database and does not benefit from multiple connections, which could causeSQLITE_BUSYerrors. - SQLite: Enabled TCP keepalive (120s) for the same reason as MySQL.
- SQLite: Increased
connectionTimeoutfrom 5s to 10s. - Both: Added graceful shutdown for
ExecutorServicewithawaitTermination(5s)to ensure pending database operations complete before the server shuts down.
🛡️ Plugin Lifecycle
- Wrapped
onDisable()in atry-catch-finallyblock so thatdatabaseConnection.disconnect()is always called, even if an error occurs during shutdown (e.g., saving regions).
🐛 Bug Fixes
- Fixed duplicate YAML key warnings: The
ConfigUpdaterwas inserting keys that already existed in the user's config files, causing repeatedduplicate keys foundwarnings from the YAML parser. Added a pre-insertion check to skip keys that already exist. - Fixed invalid YAML generation: List values containing special YAML characters (like
|,:,{, etc.) are now properly quoted when inserted by theConfigUpdater, preventingmapping values are not allowed hereparse errors. - Silent corrupted file recovery: When a user's config/menu file is corrupted, the plugin now detects it silently (no errors in console), backs it up, and regenerates it automatically from the JAR. Previously this would flood the server console with YAML parse errors.
- Synced version in
plugin.ymlwithpom.xml(was out of sync).
✨ Improvements
- Clickable update notification: The download link shown to admins on player join is now clickable (opens browser to Modrinth page).
- Dynamic plugin name: The update notification now displays the project name fetched from the Modrinth API instead of a hardcoded string.
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:sL5AiZpx:XrkmXeIC"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:sL5AiZpx:XrkmXeIC"
}

