Releases: sarhatabaot/ChunkSpawnerLimiter
v5.0.1
- Fixed #104
Full Changelog: v5.0.0...v5.0.1
v5.0.0
v5.0.0 is a complete rewrite of ChunkSpawnerLimiter, focused on performance.
Requirements
- Java 21+
- Minecraft 1.8.8 → 1.21.10
Core Rewrite & Architecture
- Complete internal rewrite of CSL
- Major performance improvements across all systems
- Automatic Minecraft version detection for proper CraftBukkit/NMS handling
- Automatic world size detection — no manual configuration required
- Cached world lists in config (O(n) → O(1) access)
- Significant performance improvements in
PluginConfig
Configuration Changes
-
New unified configuration system
config.ymlandblocks.ymlmerged- Removed obsolete options and added new ones
- Stronger, more sensible defaults
Default config:
https://github.com/sarhatabaot/ChunkSpawnerLimiter/blob/5.0.0/src/main/resources/config.yml
-
Optional entity group overrides via config
-
Improved world enable/disable logic (exclude vs excluded handling fixed)
-
Configurable periodic chunk inspection (default: every 60 seconds)
Entity Handling & Enforcement
- New
modesystem replacingkill-instead-of-remove
Available Modes
-
enforce(default, recommended) – prevent spawn + remove excess -
enforce-kill– prevent spawn + kill excess -
prevent– prevent spawn if limit is reached (CreatureSpawnEvent) -
kill– kill excess entities -
remove– remove excess entities -
Automatic player killing when limits are exceeded (configurable)
-
Spawn eggs are returned to players if consumed while a limit is already reached
-
Improved entity/block removal logic
-
Player notification system for chunk limit violations
Testing & Quality Assurance
- Major test suite expansion
- Separate test suites for:
- Legacy versions (1.8–1.12)
- Modern versions (1.17+)
- Unit tests
- Improved concurrent testing stability
- Fixed race conditions and resource leaks
- Resolved missing dependencies and classpath issues
Technical Improvements
- Complete NMS Block Scanner rewrite
- Improved version compatibility and reliability
- Enhanced debug logging for NMS initialization
- Major performance fix for chunk unload handling
Bug Fixes
- Fixed CraftBukkit package detection (
v1_20_R1, etc.) - Fixed world filtering logic (
isWorldDisabled) - Fixed bad performance on chunk unload
- Fixed concurrent test race conditions
- Fixed test compilation and dependency issues
Build & Dependencies
- Added Adventure API, bStats, and correct API versions for tests
- Streamlined Gradle build configuration
- Improved shadow JAR relocation for better library compatibility
Upcoming (Post-5.0.0)
- Optional third-party region support (non-chunk based), low priority (5.1.0)
- Advanced per-entity preservation logic
v5.0.0 RC2
- Improved performance by caching chunks -> chunk coords
- Blocks places by players over the limit now get added back to their inventory. Instead of being consume but not place.
Full Changelog: v5.0.0-RC1...v5.0.0-RC2
v5.0.0-RC1
5.0.0 - RC1
5.0.0 is a complete re-write of CSL.
- Java 21+ Required
- New config (Merged config.yml + blocks.yml)
- Removed some options & added new ones
- More powerful defaults. See it here: https://github.com/sarhatabaot/ChunkSpawnerLimiter/blob/5.0.0/src/main/resources/config.yml
- 1.8.8 -> 1.21.10 Support
- Automatic world size detection, no need to set in config.
- Overriding entity groups in config (optional).
- Better performance (finally)
- Automatically kill players if a limit has been reached.
- Replaced kill-instead-of-remove with a new "mode" setting:
- Options: enforce (default - recommended), enforce-kill, prevent, kill, remove
kill -> "kill-instead-of-remove"
prevent -> don't spawn the mob if the limit is reached (using CreatureSpawnEvent)
enforce -> prevent+remove
enforce-kill -> prevent+kill
- Options: enforce (default - recommended), enforce-kill, prevent, kill, remove
Upcoming Features
- Possible third party region support instead of chunks (later, low priority, 5.1.0)
- Advanced per entity preservation
Full Changelog: v4.4.4...v5.0.0-RC1
v4.4.4
v4.4.3
Fixes
- Fixes #89
- Code cleanup & optimizations.
What's Changed
👒 Dependencies
Full Changelog: v4.4.2...v4.4.3
v4.4.3-BETA
- Fixes an NPE.
- Also moved all calls to use a scheduler like in WorldListener
Full Changelog: v4.4.2...v4.4.3-BETA
v4.4.2
What's Changed
- Update dependency de.tr7zw:item-nbt-api to v2.15.0 by @renovate in #83
- Fixes an issue where an illegal state is triggered. by @sarhatabaot in #86
- Update dependency org.jetbrains:annotations to v26.0.2 by @renovate in #76
- Update dependency gradle to v8.13 by @renovate in #77
- Update gradle/actions action to v4.3.1 by @renovate in #78
Full Changelog: v4.4.1...v4.4.2