This update focuses on /wctrade improvements, GUI/category fixes, safer random handling, and stronger database/trader cleanup logic.
Added
- Added VirtualTradeSessionManager to track /wctrade merchant sessions.
- Added support for removing traded items from the database when using /wctrade.
- Added getVirtualTradeSessionManager() to WanderingCollector.
- Added getStorageKey(ItemStack item) to ItemDatabase for unified category detection.
- Added custom category icon support in DatabaseGUI for ItemsAdder/Oraxen entries.
- Added safer command registration with null checks for wc and wctrade.
- Added one-use trade recipes for spawned traders and /wctrade virtual merchant offers.
- Added randomBetween(min, max) safety helper to prevent crashes from reversed config ranges.
- Added trader cleanup support and wired cleanup on trader death/removal.
- Added improved database persistence safety with atomic save/backup logic and shutdown flush behavior.
- Added migration cleanup for legacy owner/gui marker PDC data and accidentally persisted last-owner lore.
Changed
- Updated /wctrade to use database entries instead of plain random item stacks.
- Updated GUI category filtering to use itemDatabase.getStorageKey(item) instead of only vanilla material names.
- Updated category GUI click handling so unnamed items can still be taken by admins.
- Updated random price generation to use ThreadLocalRandom via randomBetween(...).
- Updated random database selection helpers to shuffle copies instead of mutating the original list.
- Updated startup flow so core listeners are registered immediately instead of after an unnecessary async load.
- Updated trader cleanup to use EntityRemoveFromWorldEvent instead of the deprecated EntityRemoveEvent.
- Changed database removal to remove only a single matching item instead of all similar items.
- Kept GUI-only last-owner lore stripping/restoration flow for traded items.
- Preserved last-owner tracking through despawn, drop, spawn, and merge flows.
- Updated the Spigot update checker URL to the correct endpoint format.
- Hardened latestVersion handling for safer async/main-thread access.
Fixed
Please consider leaving a good review for the plugin.
- Fixed /wctrade not removing purchased items from the database.
- Fixed /wc gui so console use no longer causes a ClassCastException.
- Fixed category GUI not showing custom whitelist categories properly.
- Fixed category GUI not opening/clicking correctly for items without custom display names.
- Fixed empty-category pagination showing Page 1/0.
- Fixed possible side effects from shuffling input lists directly in ItemDatabase.
- Fixed incorrect Spigot update-check request path.
- Hardened GUI click handling against null, AIR, and missing display name cases.
Discord Support
- Fixes and better implementation of the last owner feature, the info of the last owner should appear on the trade menu only, the item returns to its original state on trade.
Please consider leaving a good review for the plugin.
Discord Support
- 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.
Please consider leaving a good review for the plugin.
Discord Support
- New feature added that shows the last owner of each item, the lore will only appear in the trader window and it will be automatically be removed on trade so that it won't "ruin" the items.
View attachment 910276
- The new feaure is configurable in the config.yml
config.yml additions
YAML:trade_settings: # ------------------------------------------------------------------- # last_owner: It will mark all trades offered by the traders # with the name of the last owner the item had in its lore. # It will ONLY appear in the trader window, # the final item will not be effected! # ------------------------------------------------------------------- last_owner: enable: true message: "&7Last Owner: &d<PLAYER>"
- Added the command /wctrade that will open a random trade window without the need to actually summon a trader entity.
Please consider leaving a good review for the plugin.
Discord Support
- 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
Please consider leaving a good review for the plugin.
Discord Support
- Added tier list for items so you can customize the min and max price of trades based on their tiers.
REGENERATE YOUR CONFIGS OR APPLY THE CHANGES
New Config.yml
Please consider leaving a good review for the plugin.
Discord Support
- Hotfix from the previous version causing the plugin to interfere with other inventories. (Check the update bellow.)
Please consider leaving a good review for the plugin.
Discord Support
