3.12.0
- cf8286d - release
- 92c2bcf - correct the value of the default action
- 6d489cb - update core and variable usage
- 6bb15d5 - rename Polymart to voxel.shop
- a2200ee - add publish action
- 3230c21 - Bump net.milkbowl.vault:VaultUnlockedAPI from 2.16 to 2.19 (#24)
- 95d4aff - exclude some unnecessary dependencies of faststats
- 9bec4e4 - extend VaultHook for VaultUnlocked
- 9ed4c7f - use VaultUnlocked dependency
- f22f57d - add faststats for testing and remove unnecessary extra metrics
- e5f54f8 - clean up imports
- 9f6dd07 - add custom commands to DecorateItems
- 2cab9c9 - make CompatItemUtil and add ItemModel settings
- 5b911ba - Bump craftux.version from 1.6.2 to 1.6.3 (#19)
- a22eddd - Bump org.black_ixx:playerpoints from 3.2.6 to 3.3.3 (#23)
- 8818d50 - Bump com.bgsoftware:WildStackerAPI from 2025.2 to 2026.1 (#22)
- fcff988 - Bump org.apache.maven.plugins:maven-compiler-plugin from 3.14.1 to 3.15.0 (#21)
- d3f6892 - Bump me.clip:placeholderapi from 2.11.5 to 2.12.2 (#20)
- f53a6ce - Bump com.github.Gypopo:EconomyShopGUI-API from 1.7.0 to 1.9.0 (#18)
- bbd34c0 - Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.1 to 3.6.2 (#17)
- f521b01 - Bump craftitem.version from 1.4.1 to 1.5.0 (#16)
- 949921f - Bump actions/setup-java from 4 to 5 (#15)
- 01556b7 - Bump actions/checkout from 4 to 6 (#14)
- c25d17d - Configure Dependabot for Maven and GitHub Actions
- af909d7 - add Maven Central repository to project configuration
- 873e401 - Update Maven workflow to use JDK 25
Update for Eco items
- Update UniItem to fix an issue with eco plugins
- Make some non-breaking changes
New GUI system
- Migrate the GUI to CraftUX
This is my GUI library that contains some common GUI logic and performance improvements. It eliminates the manual guess-work of finding where in the old GUI code to add features.
The new library allows me to finally wrap all the common code and focus on the specific details of each interfaces, making it more intuitive to add new features like Custom Commands in Decorate Items (available in the next update).
Although I tested it in my test server, this is considered as a breaking change. Make sure to test it before updating on your production server.
Normalize the Item Type with Status
- Normalize the type of Custom Items
This small function is added to make sure you can specify the item with both its main type and aliases (Like ItemsAdder with its "IA" alias). This is important for cases where you use the built-in sell feature. - Add placeholder for the status of the storage
%exstorage_status% will show the current status of the storage.
Fix for Empty Skull Texture
- Fix a rare issue when the Storage GUI is bugged for any player that doesn't have a texture value for any reason
Optimize Item System
- Load items lazily
This update also updated UniItem to use its new Item Wrapper. The items will now only be loaded when it's necessary. - Load database on plugin enabling
Since the items are now loaded lazily, the database doesn't have to be checked against the items for validation, so it can be loaded directly on server start, which ensures data integrity. This also removed the login check that would kick the player when the database is not fully loaded. - Put some cache to Item Fetcher
Typical Fixes
- Replace the old Item Builder to CraftItem
This replaces the internal method to construct items in GUI to use one from CraftItem. Nothing was changed in the config. - Add missing checks for invalid items in Filter and Sell GUI
- Add a check to turn off the pickup feature if WildStacker is detected
The behavior of WildStacker is confusing, and there is no known way to handle stacked items when players pick them up, causing the items to be duped in the storage. Therefore, the pickup feature will now be disabled if WildStacker is detected.
Fix on NaN spaces
- Properly assign Max Space for new players
The update should now cause the plugin to assign Max Space when new players join the server.
The plugin should now ignore any invalid users from the database, meaning if a user had 0 space and 0 items in their storage, their record in the database would be reset.
As always, make a backup before updating the plugin. I may not have covered all use cases so make sure to report issues if you have.
Option to Limit
- Add an option in the config called LimitWhitelist
This option allows servers to limit the allowed items in the storage to be only in the Whitelist, meaning any item that is not in the Whitelist would not be allowed. - Expand the Blacklist check to the Item and Pickup Listener
The Blacklist check is now applied to more scenarios like picking up an item, adding item to the storage and mining a block. This allows servers to better manage items to player storage.
Check for null items
- Add some checks to avoid errors with null items
This should, in theory, solve all exceptions with invalid items in the storage. However, if your custom item is somehow flagged as invalid, enable Debug in the config and check for the lines in the server logs. You can also provide your server logs with the debug lines in the Discord server if you don't know where to check.
Small fix for MySQL
- Update Topper to fix an issue with data types when creating MySQL tables for the first time
Sound
- Expand support for custom sound in Pickup Sound and UI Click
That also means you can silent the sound by just leaving the value empty
Folia & stuff
- Add Folia support
A few events here and there, and we now have Folia support. This is an easy patch, but make sure to test everything before using this in your production Folia servers - Make a few non-breaking changes
Database Refactor
DATABASE LOGIC CHANGED. MAKE SURE TO TEST BEFORE UPDATING TO PRODUCTION SERVER.
- Migrate the database logic to Topper
This change is a preparation for an upcoming update that add proper support for cross-server storage.
For now, the plugin would "lazily" update the database, meaning the database is only updated when there are changes in player storage. This would improve the overall performance (hopefully). - Use PlayerDB to fetch texture
- Increase the support range for storage spaces
Pickup Permission & Clean-up
- Add a permission to allow player to send pickup items to their storage
exstorage.storage.pickup - Add a patch to clean up all invalid items and empty string in database
- Update UniItem to fix a problem with eco plugins
- Add a permission section in the wiki
Open source & A new beginning
With this update, ExtraStorage is now open source.
If you are a developer, you can now access to the source code and make changes and contributions.
If you are a new user and want to test the plugin, you can now access to the source code and build the plugin yourself for free.
However, the support server is only for those who bought the plugin.
There will be more major updates since I'm planning to replace the current codebase to one that uses my library.
- Open source
https://github.com/HSGamer/ExtraStorage - Change package name to me.hsgamer.extrastorage
Those who make integrations should update the plugin - Support Java 8 and newer
- Cleanup useless things
- Revamp the plugin page
Custom Item Support... from more item plugins
THIS IS NOT THOROUGHLY TESTED, TEST BEFORE UPDATING YOUR PRODUCTION SERVER
Stack size on Withdraw Command
- Withdraw Command should now respect the maximum amount in an item stack
- Clear some unused files
Correctly add to storage
- Fix an issue that the wrong item is added to the storage