Added
Improved
- Added a versioned database schema with automatic migration from legacy data.
- Added UUID-based database records.
- Added automatic database backups and corruption recovery.
- Added exact one-time trade claims that persist across restarts and prevent duplicate purchases.
- Added /wc database prune with a safe two-step preview → confirm workflow.
- A backup is now created automatically before pruning.
- Added a searchable and sortable database GUI.
- Added shift-click retrieval and inventory drag protection.
Fixed
- Database saves are now atomic for improved data safety.
- Config validation is now safer and reloads are non-destructive.
- Improved database performance with indexed counts.
- Trade selection now uses reservoir sampling for better performance on larger datasets.
- Improved restoration of stored item lore and metadata.
Technical
- Improved protection against duplicate trade claims under concurrent requests.
- Improved database recovery behavior when corrupted data is detected.
- Improved GUI safety around item movement and retrieval.
- Updated project dependencies.
- Added stricter Maven and Java version enforcement.
- Updated documentation and changelog.
- Added GitHub Actions CI.
- Expanded automated testing for:
- Database migration
- Corruption recovery
- Database pruning
- GUI safety
- Lore restoration
- Concurrent trade claims
Several internal systems were also cleaned up and modernized to make future updates easier and more reliable.
- Updated to Java 21 and Paper 1.21.11.
- Updated ItemsAdder and Oraxen integrations.
- Modernized messages and GUI handling using Adventure components.
- Reorganized and cleaned up compatibility, GUI, trade, update, and utility code.
- Consolidated wandering trader and virtual trade systems.
- Improved database saving, recovery, and persistence safety.
- Fixed one-time trades not respecting their configuration.
- Fixed temporary owner lore not being restored correctly.
- Fixed cancelled-event handling and GUI item retrieval.
- Improved trade session cleanup when inventories close or players disconnect.
- Added safer price handling and validation.
- Improved update checker reliability.
- Added Maven Wrapper, documentation, and automated regression tests.
- Category GUI now uses actual database entries, not the whitelist.
- Empty item categories are skipped.
- Category icons are based on a real sample item from that category.
- Category hover now shows:
stack count
total item amount
owner-tagged stacks
unknown-owner stacks
- Item hover now shows Database Owner: <player> or Unknown.
- GUI-only owner lore is stripped before giving/removing items, so the actual stored item is not polluted.
- Navigation is now slot-based, so stored items named Back, Next Page, etc. won’t accidentally trigger navigation.
- Important fix, made sure items drop don't get any extra NBT tags unless they actually enter the database.
- Made sure the database is never corrupted in case of hard crashes or out of disk space errors.
- Improved database performances, latest libraries, better organization.
- You can now select in which worlds you want despawned items to go to the database.
Add this to your configs
YAML:########################################################### # WORLD WHITELIST # # Only items despawned in these worlds will be processed # # and saved to the database. Set whitelist_enabled to true # # if you want to enable this check. # ########################################################### worlds: whitelist_enabled: false whitelist: - world - world_nether - world_the_end