Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for lunahd24

Lightweight, high-performance and easy-to-use Custom Block and Tool API

Report MoonBreak?

B

1.2.1-beta

Compatibility: 26.x - Java 25

Version 1.2.1-beta comes with a lot of stability improvements, a persistence overhaul and a whole lot of other bug fixes.

Warning

Registration of any kind must now always happen during STARTUP. Attempting to register entries later could lead to data loss and unexpected behaviour!

Key Features

  • Overall Stability Improvements
  • Overhaul of Block Persistence
  • Increased Storage Efficiency

Full Changelog

Changes

  • Completely refactored CustomBlockLoader to increase performance and eliminate block saving issues
  • Redesigned the chunk index to ChunkIndexStorage
  • Made remaining data wiping actively load chunks at a rate scaled to server performance
  • Switched PDC storage format from String to byte[] list
  • Refactored CustomBlockManagerImpl to support the new CustomBlockLoader requirements and made placedBlocks world-dependent
  • Added WorldChunkKey and ChunkBlockKey for world-dependent storage and optimized lookups
  • Added ChunkBlockEntryDataType for easier binary block data read/write operations on chunks
  • Added ResourceRegistry#isRegistered method
  • Switched inactivity checks to Unix timestamps instead of tick increments and increased the delay to 120 seconds
  • Split pre- and post-block break hooks into two separate event listeners (NORMAL & MONITOR priorities)
  • Added new /breakspeed command (with permissions) to set or reset break speeds
  • Display a block save overview and correctly clear remaining data upon plugin disable
  • Updated JavaDocs to clarify that event modifications in post-break hooks are forbidden

Bug Fixes

  • Fixed overwrite issues when registering entries with duplicate keys in ResourceRegistry
  • Fixed unregistered blocks being placeable
  • Fixed chunk data not being wiped correctly
  • Fixed data loss on plugin disable by adding synchronous chunk index saving
  • Fixed charset mismatches and non-thread-safe fields
  • Fixed block saving for blocks located in unloaded worlds
  • Fixed block data loading/saving breaking on invalid values (now skips invalid entries gracefully)
  • Fixed broken activity checks and deduplicated overlapping activity methods
  • Fixed break speed attribute calculation order, simplified formulas, and made calculations independent of base speed to avoid nullifying other modifiers/effects
  • Fixed break speed modifiers not being removed on plugin disable by switching to transient modifiers
  • Fixed Aqua Affinity checks applying underwater debuffs incorrectly
  • Fixed PlayerBreakBlockListener ignoring the cancelled event state
  • Fixed display name and lore being overwritten when passing baseMeta or recreating ItemStacks
  • Fixed a reverse chunk coordinate bit extraction in ThrottledWipeTask
  • Fixed the chunk index potentially clearing upon plugin enable at STARTUP

Refactoring & Cleanup

  • Moved CustomBlockLoader to dev.lunaa.moonbreak.block.storage
  • Reduced saving overhead for block data and chunk index entries
  • Removed CustomBlockManagerImpl#stripLocation (replaced by WorldChunkKey and ChunkBlockKey)
  • Removed PlayerJoinListener as it is no longer required for break speed modifiers
  • Improved overall logging quality

Information

Published
September 9, 2026
Author
2Downloads

Platforms

Paper
Paper
26.1–26.2
Velocity
Velocity
4.0.0–4.1.1