v4.0.0
4.0.0 (2025-09-04)
- feat!: remove unused getEntity methods with consumer (9c499ab)
- refactor(api)!: overhaul ProfitCalculatorRegistry and calculator selection (f01d446)
Bug Fixes
- api: add UP and DOWN block faces to cached faces set (59a2fcd)
- Change upgrades return type to UnmodifiableObjectMap (95c996e)
- correct booster total initialization and time calculation (046aa74)
- update container validation to use storage-specific checks (c44f453)
- upgrade: Fix upgrades not working due to UnmodifiableObjectMap call (e3e67dd)
Code Refactoring
- api: restructure economy and storage APIs, remove custom events, and improve container handling (eece0c2)
Features
- 4.0.0 API for VoidChest 6.0.0 (e46541a)
- Add "none" as animation type (df52158)
- Add block coordinate methods and refactor void chest lookup (6aecac6)
- add ITimedTask#isRunning and update isCancelled javadoc (3cd3e30)
- add silent booster methods and refactor event handling (86444b8)
- api: add async constructor to PlayerEvent (ab11bb8)
- api: add constructor overloads to ObservableObjectMap (dd2bc73)
- api: add custom name support and void chest type config (0c560b2)
- api: Add disabled worlds management to IVoidChest (f33b527)
- api: add FilterMode.fromString method with synonym support (eb967e6)
- api: add null checks in Utils.placeHolder method to prevent NPEs (0b2fa68)
- booster: replace old booster system with new provider-based system (c28a87f)
- enhance cache concurrency and null safety in VoidChestCacheController (00497aa)
- EntityManager: add create methods with consumer parameter (8484896)
- implement create method in InvalidEntityManager (ca63fcf)
- maps: refactor constructors and add conversion methods (4150b76)
- Remove tests (b999df7)
- Replace nullable returns with Optional in storage APIs (35b2236)
- update Minecraft version ranges and add new versions (91ceeae)
- update to Minecraft 1.21.7 and switch to Paper API (849b255)
- utilities: add VoidChunk class and refactor SerializableLocation (f2280b1)
Performance Improvements
- cache hash code and optimize equals in location/chunk (fc8b2b7)
BREAKING CHANGES
- Existing ProfitCalculator implementations must now
include getWeight() and getPlugin() methods. Registry API methods have
significantly changed - plugins using the registry require updates. - Removed getEntity methods with consumer parameter
from EntityManager interface and InvalidEntityManager class. Any
existing implementations must remove references to these methods. - api: This commit involves widespread refactors, file deletions, class migrations, and internal API restructuring. Be sure to review the full diff and adapt plugin implementations accordingly before upgrading.
-
Economy system refactored:
- All player-related economy classes moved to
com.georgev22.voidchest.api.economy.player- Includes
AEconomy,IEconomyManager,EconomyMode, andInvalidEconomy
- Includes
- Profit calculation logic moved to
com.georgev22.voidchest.api.economy.profit.ProfitCalculator - All imports and references updated accordingly
- All player-related economy classes moved to
-
Removed the entire custom event system:
- Deleted:
- Core classes:
Event,HandlerList,EventManager,EventPriority - Interfaces:
Cancellable,EventListener,EventExecutor - Annotations and wrappers:
EventHandler,ListenerWrapper - ASM-based event executor generator
- All inventory-related custom events:
VoidInventoryOpenEvent,Slot,VoidInventorySlotChangeEvent, etc.
- Core classes:
- All events refactored to extend
VoidChestBaseEvent, which now inherits from Bukkit’sEvent PlayerEventupdated to be Bukkit-cancellable and moved toapi.events
- Deleted:
-
Introduced
DataContainerWrappersystem:- New version-compatible abstraction over Bukkit's
PersistentDataContainer - Supports modern, legacy, and NBT-based containers
- Includes helper factories and wrappers to safely read/write data across versions
- New version-compatible abstraction over Bukkit's
-
Introduced
ContainerWrapper:- Cross-version abstraction over Bukkit container blocks and inventories
- Used in serialization and inventory manipulation logic
- Improved compatibility with older Minecraft server versions
-
API changes to
VoidChestAPI:- Removed fields:
SellHandler,SellTaskHandler,VoidInventoryUtils,EventManager - Added:
ITimedTaskManagerfor task control - Introduced
isFoliadetection logic (static flag and accessor methods)
- Removed fields:
-
Serialization and upgrades:
- Added
UpgradeLevelandUpgradeSerializerfor structured upgrade level control - Used for item upgrades and enhancement tracking
- Added
-
Code modernization and cleanup:
- Removed obsolete packages and improved file organization
- Improved
BoundingBox#cloneimplementation to eliminateCloneNotSupportedException - Marked internal APIs with
@ApiStatus.Internalwhere applicable