Skip to content

v1.1.0-beta | First Release

Pre-release
Pre-release

Choose a tag to compare

@LunaHD24 LunaHD24 released this 28 Aug 11:26
· 47 commits to master since this release
2a846da

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