
AnarchySpawn
A high-performance random wilderness spawn and safe respawn engine designed for Anarchy and SMP Minecraft servers.
Оцените первым
120
1
Список изменений
[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 from250 down to 13 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.
Файлы
AnarchySpawn-1.1.0.jar(103.67 KiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.1.0
Загрузчики
BukkitFoliaPaperPurpurSpigot
Версии игры
1.12–26.3
Загрузок
70
Дата публикации
16.10.2026
