Links
Tags
Creators
Details
Licensed MIT
Published 3 weeks ago
Updated last week
All versions
1.1.0
Release
AnarchySpawn 1.1.0last week 68
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
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
Platforms
Bukkit
Folia
Paper
Purpur
Spigot
Changes
[1.1.0] - 2026-10-15
Added
- Full Compatibility for Minecraft 26.3+ (1.21.x):
- Extended
PaperCompatibilityreflection layer to dynamically resolve 26.3 / 1.21.x Bukkit & Paper API features, sound effects (BLOCK_TRIAL_SPAWNER_SPAWN_MOB,ITEM_WIND_CHARGE_WIND_BURST,BLOCK_CREAKING_HEART_SPAWN), and particle effects (PALE_OAK_LEAVES,CREAKING_CRUMB,TRIAL_SPAWNER_DETECTION,WIND_CHARGE). - Added full safety inspection rules in
SafetyValidatorfor 26.3 blocks (CREAKING_HEART,EYE_BLOSSOM,PALE_HANGING_MOSS,HEAVY_CORE,RESIN_BLOCK,RESIN_CLUMP) and biome support (PALE_GARDEN) with automatic fallback to safe alternatives on older servers (1.12.2 - 1.20.x). - Updated metadata, documentation, and version matrix to reflect full
1.12.2 - 26.3+runtime support across Paper, Purpur, Folia, and Spigot.
- Extended
- Full Backward Compatibility Down to Minecraft 1.12.2:
- Implemented dual-track persistence in
PDCUtils: dynamically leverages nativePersistentDataContainer(PDC) on 1.14+ while seamlessly degrading to thread-safe local file storage (data/players.yml) on 1.12.2 - 1.13.2. - Added legacy material support (
STATIONARY_LAVA,STATIONARY_WATER,BURNING_FURNACE,BED_BLOCK, etc.) and insulated 1.13+ class references (BlockData,Waterlogged,Tag) to preventNoClassDefFoundErroron legacy runtimes. - Guarded against
Material.isBlock()andMaterial.isAir()API absence on pre-1.13/pre-1.14 servers.
- Implemented dual-track persistence in
- Surface Direct Penetration & HighestBlockY Optimization:
- Integrated
world.getHighestBlockYAt(x, z)direct heightmap penetration inSafeLocationFinderfor Overworld dimensions, reducing column block inspections from ~250 down to 1~3 iterations (a 98%+ speedup in safe spawn searches). - Implemented narrow search window (surface +6 down to -12) around surface terrain for immediate candidate evaluation, with graceful fallback scanning for caves and Nether bedrock ceilings.
- Integrated
- Introduced
DeathHotspotManagerandPlayerDeathListenerfor dynamic death/combat hotspot tracking and avoidance. - Added
death-hotspotsconfiguration block inconfig.ymlwith customizable toggles (enabled), avoidance radius (radius), expiration duration (ttl-seconds), and max hotspots stored per world (max-hotspots-per-world). - Implemented two-phase search in
SafeLocationFinder: primary phase filters candidate spawn points using death hotspot blacklists, while secondary fallback phase automatically ignores hotspot restrictions if primary search fails to find a valid location, ensuring players always spawn normally in the wilderness. - Added
PlayerQuitListenerandTeleportService.cancelPlayerProtection()to reset invulnerability and cancel protection tasks on player disconnect, eliminating combat-logging permanent god-mode exploits.
Fixed
- Folia Chunk Region Confinement Overload (Critical): Added
runForRegion(plugin, world, chunkX, chunkZ, task)overload inFoliaScheduler. FixedSafeLocationFinderandPaperCompatibility.getChunkAtAsyncdispatching to default chunk(0, 0)instead of the target chunk coordinates(targetX >> 4, targetZ >> 4), which would trigger Folia cross-region thread confinement violations when reading/loading blocks outside chunk (0,0). - Fallback Respawn Interim Damage Protection: Granted 60-tick damage immunity (
noDamageTicks) inPlayerRespawnListenerwhen falling back to the world spawn while background async search resolves, preventing instant deaths at hostile fallback points. - PlaceholderAPI Hotspots Placeholder & Null Guards: Added
%anarchyspawn_hotspots_<world>%placeholder for active hotspot monitoring, and added null-safety checks inPlaceholderAPIHookto guard against disabled cache/hotspot services. - PlayerDeathListener Lifecycle Guard: Added defensive null checks for entity and
DeathHotspotManagerinPlayerDeathListenerto ensure zero errors during reload or shutdown. - Cache In-Flight Permit Leak Guard: Wrapped column evaluation inside
FoliaScheduler.runForRegionintry-catch(Throwable), guaranteeing async CompletableFutures always resolve and never freeze cache pool refills. - Folia scheduler reflection signature fix (critical): Corrected erroneous probe of non-existent
Bukkit.getRegionizedScheduler()andscheduler.player(); now correctly resolvesBukkit.getRegionScheduler(),Bukkit.getGlobalRegionScheduler(),Bukkit.getAsyncScheduler(), and dynamically retrievesplayer.getScheduler()(EntityScheduler) per entity on Folia. - Cache Pool Hotspot Bypass: Fixed
LocationCachePool.poll()failing to check whether pre-cached coordinates became active death hotspots after being cached. - Respawn Effects Timing: Switched
PlayerRespawnListenerto schedule post-respawn effects with a 1-tick delay (runForPlayerLater(..., 1L)), preventing potion effects, sounds, titles, and invulnerability from being skipped while the entity is still completing respawn. - Empty Biome Blacklist Guard: Guarded against blank or empty strings in
safety-filter.biome-blacklistmatching all biomes viacontains(""). - Annular Radius Math Safety: Enforced
Math.min/Math.maxbounds inSafeLocationFinderto preventMath.sqrtof negative numbers (NaN) when radius configs are inverted. - Hotspot Cache Reset on Reload: Added
deathHotspotManager.clearAllHotspots()to/as reload. - Dynamic Author in PlaceholderAPI: Dynamically resolved plugin author from
plugin.ymlinPlaceholderAPIHook. - Fire Coral & Mud Brick False Positives: Fixed
DANGEROUS_SURROUNDING_MATERIALSaccidentally classifying safeFIRE_CORALblocks as lethal fire, and refinedMUDfloor checking so that building blocks likeMUD_BRICKSandPACKED_MUDare not falsely treated as unstable. - Cross-World Join Race Condition: Added world-consistency validation in
PlayerJoinListenerafter the initial join delay to prevent cross-world conflicts with lobby/auth plugins. - TeleportService Protection Task Field & Session Safety: Resolved missing
activeProtectionTaskscompilation variable; introduced session-token tracking (activeProtectionSessions) ensuring safe protection cancellation and preventing stale callbacks on Folia. - Folia Cross-Region Command Messaging: Fixed
/as tpand/as testviolating Folia thread confinement by dispatching command feedback to the sender's own region thread instead of the target's thread. - Folia Repeating Task Cancellation & Lifecycle Guard: Added
runTimerGlobalTaskand reflectivecancelTasktoFoliaScheduleralong withisRunninglifecycle checks inLocationCachePool, preventing recurring refill tasks from leaking on Folia during/as reload. - Hotspot Fallback Attempt Optimization: Short-circuited the secondary 35-attempt fallback pass if
getActiveHotspotsCount(world) == 0, preventing redundant chunk operations when search failures are unrelated to hotspots. - Clean Shutdown Memory Pruning: Added
deathHotspotManager.clearAllHotspots()toonDisable()to prevent lingering world references. - Tab Completer World Name Casing: Preserved configured world name casing in
/astab completions.
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:JF6wPJrE:2xtFguoZ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:JF6wPJrE:2xtFguoZ"
}

