Links
Tags
Creators
Details
Licensed CC-BY-NC-SA-4.0
Published 8 months ago
Updated 5 months ago
All versions
1.2-rls
Release
Fixes...8 months ago 98
Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
Platforms
Bukkit
Folia
Paper
Purpur
Spigot
Changes
Added
- Added
MAX_CACHE_SIZE(1000) limit to prevent memory overflow when loading usercache.json - Added automatic cleanup task to remove stale player locks and access records every hour
- Added performance monitoring with loading time statistics in debug logs
- Added detailed debug logging for file operations, lock acquisition, and error conditions
- Added disk space check before backup operations
Changed
- Refactored data loading: Merged
loadUserCache()andloadNameToUUIDs()into singleloadPlayerData()method for better performance - Improved lock management: Locks now track last access time and are automatically cleaned up
- Enhanced error handling: All exceptions now include detailed debug messages instead of being ignored
- Optimized file copying: Implemented atomic temp file operations with proper cleanup
- Restructured command handling: Unified
transferandtransferuuidlogic into single method - Improved backup system: Added proper file existence checks and atomic operations
- Enhanced tab completion: Added offline player name suggestions with limits
- Better executor shutdown: Added timeout handling and forced termination if needed
Fixed
- Critical: Fixed recursive scheduling in
startCleanupTask()that could cause stack overflow - Critical: Removed dangerous offline UUID fallback that could match wrong players (
UUID.nameUUIDFromBytes) - Fixed scheduler parameter bug where
nullcould be passed instead of plugin instance - Fixed potential memory leak by properly removing locks on player quit
- Fixed file copy failure when parent directories don't exist
- Fixed race condition in task tracking set during concurrent operations
- Fixed incorrect stats file extension for older server versions (<1.13)
- Fixed potential deadlock by implementing consistent lock ordering
- Fixed missing message placeholders in several command responses
Removed
- Removed dangerous offline UUID generation (
UUID.nameUUIDFromBytes) - Removed redundant
asyncparameter from Bukkit scheduler calls - Removed duplicate data loading methods in favor of unified approach
- Removed empty catch blocks that silently ignored exceptions
- Removed unnecessary thread pool for simple operations
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:MIMbZFQ8:BzDFmcgs"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:MIMbZFQ8:BzDFmcgs"
}

