This update introduces a new Potion Effect feature, fixes several long-standing issues (including hologram duplication and memory leaks), and improves performance across multiple systems.
Potion Effect Feature
A new Effect feature allows PowerBlocks to continuously grant any potion effect to nearby players.
Features:
- Supports any potion effect (e.g. HASTE, SPEED, STRENGTH, etc.)
- Configurable:
- Radius
- Potion effect
- Amplifier
- ignorePermission
- Actions
- Effects are refreshed every second while players remain inside the radius.
- Effects are automatically removed when:
- the player leaves the radius
- the player disconnects
- Supports both legacy and modern potion effect names (e.g. FAST_DIGGING ↔ HASTE).
Hologram memory leak
- Fixed a memory leak where every reload, editor save, or /epb on created duplicate hologram templates inside HologramService.
- Previous hologram templates are now properly unregistered before new ones are created.
Incorrect block material after chunk load
- Fixed PowerBlocks always placing the ACTIVE material after a chunk loaded.
- Blocks now correctly use the material matching their current state (ACTIVE, COOLDOWN, INACTIVE, etc.).
/epb nearby
- Fixed a crash when PowerBlocks existed in different worlds (distance() cross-world exception).
- Fixed an NPE for blocks without a loaded location.
/epb on
- Fixed YAML fallback loading.
- The command incorrectly attempted .yml twice instead of trying .yaml.
- Added the same fallback support to enablePowerBlock.
PlaceholderAPI
- Fixed %cooldown_formatted% occasionally returning negative values.
- Placement placeholders no longer mutate the internal leaderboard cache.
Update Checker
- Replaced numeric string comparison with proper semantic version comparison.
- Versions such as 1.10.0 are now correctly recognized as newer than 1.9.9.
CMI Holograms
- Fixed holograms not being removed from the CMI HologramManager during unload.
- Prevented holograms from being saved into CMI's holograms.yml, eliminating duplicate holograms after server restarts.
Duplicate holograms after editor save
- Fixed an issue where editor clones unintentionally registered themselves with HologramService.
- Saving a block no longer leaves orphaned holograms behind.
- Editor clones are now pure data containers without side effects.
FancyHolograms
- Fixed holograms being created as persistent objects.
- PowerBlock holograms are now temporary (persistent=false), preventing duplicates after server restarts or /fh reload.
Editor
- Fixed an NPE when saving a PowerBlock that was currently disabled or not registered.
Performance Improvements
- Eliminated an unnecessary configuration load/save cycle in enablePowerBlock.
- Right-click PowerBlock lookup now uses O(1) registry access instead of iterating through every block.
- Optimized /epb nearby:
- Uses distanceSquared()
- Eliminates repeated active-player calculations
- Complexity reduced from O(n²) to O( n).
- On Folia, ParticleMechanic no longer schedules tasks every tick for blocks without particle effects.
- Simplified getActiveMiningPlayersMap() from a two-pass stream pipeline to a single-pass implementation.
Changes
- Fixed an issue where some PowerBlocks could respawn in an incorrect state after cooldown, causing them to not restore their intended health properly.
- Improved state transition handling after cooldown to ensure blocks consistently reset and behave as expected.
- Added extra safeguards for edge-case timing scenarios to prevent inconsistent block status/health values.
Inactive System Improvements
- Reworked the inactive detection system to be more precise
- Fixed multiple edge cases where inactivity could be detected incorrectly
- Overall behavior is now more stable and predictable
- Added new option to the inactive section:
When enabled:YAML:reset-player-stats: true
The mined block count of all players will be reset once a PowerBlock becomes inactive.
Registry Improvements
- Minor adjustments to the PowerBlock Registry system introduced in 1.2.0
- Improved internal consistency and reliability
Other Changes
- Various internal code improvements
- Small stability tweaks
Placeholders fixed
Status system reworked
- Location placeholders are now clamped so they can’t return negative values anymore.
Folia support fixed
- Status handling has been redesigned
- Should fix all remaining issues related to block update/status refreshing
- Resolved an issue where Folia support could throw errors in certain situations
Recommended update (especially if you use placeholders or Folia).
Changes:
- New placeholders added %epb_<powerblock>location_x% %epb<powerblock>location_y% %epb<powerblock>location_z% %epb<powerblock>location_world% and %epb<powerblock>_location% → returns x y z
- Fixed an issue where PowerBlocks could not be created via the menu
- Particle system now strictly validates invalid particle definitions Prevents errors and misconfigured particles from causing issues
This is the largest technical overhaul in the plugin’s history. I focused almost exclusively on performance, stability, and maintainability. Core systems were rewritten, major bottlenecks removed, and aggressive caching & spatial lookup strategies introduced. Expect dramatically reduced CPU usage on busy servers.
This changelog is a bit for nerds.
Interaction Complexity Reduction (O(N) → O(1))
(N = Number of PowerBlocks)
Leaderboard & Statistics Engine (Reduction O(N*Log(N)) → amortized O(1))
- Rewrote how Block Breaking, Explosions and Redstone interactions are handled.
- Instead of iterating over every PowerBlock on the server, we now use an O(1) registry + spatial lookups. That means near-zero lag regardless of total PowerBlock count.
- The same constant-time approach applies to entity interactions.
(N = Number of players who ever mined PowerBlock)
Feature Mechanics:
- Replaced legacy system with a centralized StatisticsManager.
- Removed per-event sorting and stream allocation.
- Implemented in-place leaderboard updates (Bubble-Up / TimSort style), drastically cutting allocations and GC pressure.
- Effect: leaderboard updates from O(N*log(N)) to amortized O(1) and no longer dominate CPU time during heavy activity.
Particle System Refactor:
- ForceField & MiningVisibility: Now use Spatial Queries (checking nearby entities via chunks) instead of iterating through all players on the server.
- Velocity: Optimized math calculations and physics application.
Smart Block Physics:
- Implemented a strict caching system for particle settings.
- Removed heavy String parsing from the main tick loop.
- Added direct property lookups, saving thousands of calculations per second.
- Rotatable Blocks: Blocks now rotate without triggering physics updates (lighting/redstone checks), saving unnecessary processing. (It should be 3-5x more faster)
- Smart Set: The plugin now checks if a block type/material is already correct before attempting to change it and checking if physics needs to apply, preventing unnecessary chunk updates and lighting calculations. (It should be much faster (5+)x)
- Fixed bug that caused all rotatable blocks to rotate in the normal world.
Codebase & Architecture
Stability, Debug & Safety Improvements
- Monolith Decomposition: The massive ABlock "God Class" (1200+ lines) has been dismantled and split into smaller, modular, and maintainable classes/sections.
- New Registry System: Implemented a robust PowerBlockRegistry that powers the new O(1) lookup system.
- YAML Structure: Improved the internal structure of saved powerblocks files. (If you update the block via the editor menu, the structure of the YAML file will be slightly different.)
Folia & Compatibility
- Improved debug output for configuration issues to help admins locate misconfigured blocks quickly.
- Spam prevention and safer error handling when invalid materials/entities are configured.
- Cron system rewritten with robust time calculation and safety checks to avoid infinite loops or freeze conditions.
Dependencies
- Better task scheduling and stability on Folia servers.
- Threading and concurrency improvements to reduce race conditions on alternative server implementations.
Bug Fixes
- FancyNPCs API updated: 2.3.0 → 2.9.0 (compatibility with latest FancyNPCs versions).
- Various internal libraries bumped to newer, more stable releases.
Upgrade Notes & Migration Tips
- Multiple small stability fixes discovered during the refactor.
- Backup your config and saved data before upgrading — YAML structure changed for improved clarity. (Nothing should break, the plugin reads data in a similar way, but you never know.)
- If you rely on FancyNPCs, update to a compatible FancyNPCs 2.9.0+ build.
Due to the massive scale of code refactoring and optimizations in this version, it is unrealistic to test every possible edge case. I would greatly appreciate your help in reporting any issues you encounter. I am committed to fixing any reported problems within 24 hours.
I also want to sincerely apologize for the lack of support recently, as I had very limited time leading up to this update. I will do my best to make it up to you with improved stability and active support moving forward. Thank you for your patience!
Changes:
- Rewards: Fixed critical issues where Offline Rewards were not being distributed to players correctly.
- Logic: Added validation to prevent claiming offline rewards if the specific Reward or PowerBlock has been disabled.
- Fixes: Fixed a bug where Permissions were not correctly checked for offline rewards.
- Optimization: Optimized the reward processing loop for better performance.
- Data: Improved saving frequency to ensure offline reward data is preserved even during server crashes.
Changes:
- Editor & Menu: Completely reworked the in-game editor (/epb editor). The menu is now organized into specific sections (Actions, Cooldowns, Particles, Sounds, Rewards, etc.) for detailed block configuration. Note: The editor is currently a work in progress.
- Commands: Added new commands for advanced hologram management (/epb hologram info/addline/removeline/setline) and block information display.
- Particles: Complete refactor of all particle effects (Burst, Circle, Explosion, etc.) to a new, optimized system. It now supports many more particle effects.
- Sounds: Added a new Sounds mechanic, which is much better than defining sounds inside Actions.
- Holograms: Fixed support for external providers (Decent, Fancy, HD) and added the ability to edit lines dynamically in-game.
- Core: Major internal updates and optimization for better stability.
- Fixes:
- Fixed unformatted message texts.
- Fixed bugs related to PowerBlock statuses.
- Fixed Permission check issues.
- And much more.
