TreeChopper 1.6
TreeChopper 1.6
This release focuses on stability, durability handling, and Folia safety.
Bug Fixes
1. Fixed double durability loss on the first block
Previously, the first block could consume durability twice because the plugin applied manual damage and breakNaturally(tool) also reduced durability.
Now the initial block is handled by vanilla mechanics, and the plugin only applies extra durability loss for chained blocks.
2. Fixed a bug that caused indestructible tools to lose durability
Axes marked with the ItemMeta#isUnbreakable() attribute no longer lose durability.
3. Fixed Folia cross-region access in foliage breaking
FoliageBreakService was reworked to avoid unsafe cross-region block access on Folia.
Key changes:
- per-chunk task dispatch
- coordinate-only data transfer between tasks
- chunk-bounded scans for leaves and nearby decorations
This prevents region access issues and keeps foliage clearing Folia-safe.
4. Fixed concurrency issues in PlayerToggleService
Player toggle state is now managed with thread-safe access:
- atomic updates in
toggle() - atomic state swap in
load() - snapshot-based persistence in
save()
This removes race conditions and prevents ConcurrentModificationException during serialization.
5. Fixed service reference visibility after /treechopper reload
Reloaded services in TreeChopper.java are now properly visible across threads using volatile references.
This ensures region threads always see the latest service instances after reload.
6. Fixed incomplete foliage cleanup for 2×2 mega trees
After the Folia-safe chunk dispatch rewrite, leaves extending into neighboring chunks without logs could remain uncleared.
The fix now schedules foliage tasks for every chunk inside the full leaf search area, ensuring complete canopy cleanup for jungle and dark oak mega trees.
7. Fixed compatibility for the first broken block
Previously, the original BlockBreakEvent for the first block was cancelled, which could hide the break from logging and gameplay plugins.
Now the first block is broken through the normal vanilla flow, improving compatibility with plugins such as CoreProtect, McMMO, and other listeners relying on standard break events.
Tests
Added regression coverage for:
- concurrent player toggles
- atomic reload state swap
- foliage clearing across chunk boundaries for mega trees
All tests are passing.
Compatibility
Fully backward compatible.
No config changes were required.