Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated 2 months ago
All versions
1.0.17
Release
AmplProtections 1.0.173 months ago 16
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
Platforms
Paper
Purpur
Spigot
Changes
Changelog
[1.0.17] - 2026-08-02
Performance
- Spatial index for
getRegionAt()andcheckCollision()— O(1) amortized lookups instead of O(n) linear scan - Optimized
loadAllRegionsSync()— 3 queries with batch loading instead of 2N+1 individual queries - Fixed race condition on
idMap— changed fromHashMaptoConcurrentHashMap - SQLite
PRAGMA foreign_keysmoved to HikariCPconnectionInitSql— no longer executes on everygetConnection()
Architecture
- Extracted
SchemaManagerclass — eliminates ~200 lines of duplicated table creation logic between MySQL and SQLite - Consolidated
sendAccessDenied/sendAccessDeniedCooldowninto single method inProtectionListener - Unified
saveMemberSync/saveMemberAsynclogic into sharedexecuteSaveMemberinProtectionDao - Added Builder pattern to
ProtectionRegion(existing constructors preserved for compatibility)
Changed
ProtectionManagernow usesMessageUtils.parse()singleton instead of inlineMiniMessage.miniMessage().deserialize()getAdjacentRegions()andmergeRegions()now use spatial index instead of scanning all world regions- Removed
@Deprecated isAllowed()method fromProtectionRegion - Removed
@SuppressWarnings("unused")fromAdminProtectionCommand - Removed redundant null checks in
ProtectionListenerevent handlers - Hardcoded Spanish fallback strings replaced with English in
AdminProtectionCommand
Fixed
- Fixed SQLite syntax error with
AUTOINCREMENTkeyword order inSchemaManager
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:LDiYVOeo"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:sL5AiZpx:LDiYVOeo"
}

