Skip to content

5.0.0#103

Merged
sarhatabaot merged 70 commits intomasterfrom
5.0.0
Feb 4, 2026
Merged

5.0.0#103
sarhatabaot merged 70 commits intomasterfrom
5.0.0

Conversation

@sarhatabaot
Copy link
Owner

ChunkSpawnerLimiter 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


Entity Handling & Enforcement

  • New mode system replacing kill-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

@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 4, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots
5.5% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@sarhatabaot sarhatabaot merged commit 9a600d8 into master Feb 4, 2026
1 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant