Repository navigation
v1.1.0-beta | First Release
Pre-release
Pre-release
Compatiblity: 26.2 - Java 25
This is the first release of the MoonBreak API, following the internal versions v1.0.x and now finally the first public one v1.1.0 with a whole lot of bug fixes and core changes.
Key Features
- Full Vanilla Breaking Simulation
- Custom Blocks
- Custom Tools (Full Pickaxe Support)
- Massive Performance Improvements
Full Changelog
Changes
- Massively improved Performance
- Finished JavaDocs
- Increased saving interval
- Excluded players in creative/spectator from breaking speed calculations
- Encapsuled non-thread-safe methods in CustomBlockLoader#loadChunk and simplified to using in-built methods
- Deduplicated checks for executing the PRE_BLOCK_BREAK hook
- Made CustomTool#repair and CustomTool#damage affected by the tools unbreakable state
- Made IO operations run asynchronously
- Made speed be a mandatory argument for a CustomToolType if the underlying material does not offer a default mining speed value
- Made api and plugin version the same
- Made CustomBlockManager#place (non-virtual) not update the physical block if the material at the location is already correct
- Added CustomTool Event Hook Integration
- Added Builder for event hook integration
- Added a way to virtually place blocks
- Added a way to remove CustomBlocks and more by exposing the CustomBlockManager
- Added a way to get a CustomTool by player
- Added a way to disable vanilla mineables being overwritten, if set
- Added a move method to CustomBlockManager to allow for easier moving of blocks, both physically and virtually
- Added fallback for reading the chunk index file
- Added tool durability load fallback to the default maxDurability
- Added bool ItemProperty factory
- Removed BlockFromToEvent listener to massively increase performance and banned the dragon egg as a custom block material, being the only material requiring it
- Removed unneccesarry chunk loads
- Removed CustomBlock.java in favor of the CustomBlockManager to prevent state desynchronizations and provide a single source of truth
- Now also resetting to initial values upon being excluded from breaking speed calculations
- Now saving all blocks onDisable
- Now cancelling events before logging
Bug Fixes
- Fixed tools having a maxDurability of 0
- Fixed mining level 0 being invalid
- Fixed lore and correctToolFor being unmutable upon using CustomToolType.Builder#copyFrom
- Fixed durability possibly exceeding its bounds
- Fixed error messages for incorrect materials and updated javadocs accordingly
- Fixed POST_BLOCK_BREAK hook not firing if the tool is unbreakable or broke as the result of the block breaking
- Fixed durability not being displayed as the item was set to unbreakable
- Fixed incorrect JavaDocs
- Fixed breaking speeds not being updated upon some state changes and compressed it down into a LastState class
- Fixed tool items meta being reset on data change and added a ItemMeta injection accordingly
- Fixed piston traversal being moved in the wrong order
- Fixed blocks not being removed on unloading a non-save chunk
- Fixed INTERACT_AT_ENTITY event hook firing for both hands
- Fixed overwriteVanillaMineables not being included in CustomToolType.Builder#copyFrom
- Fixed unbreakable property being lost upon recreating the itemstack
- Fixed lastLookedAt and lastHeldItem in BreakingService.LastState not being cloned on setting them
- Changed listener priorities to be correct