Hey everyone,
I'm excited to drop a massive update for
InfiniteVillagerTrades (Optimizator)! This version focuses heavily on backend performance, fixing GUI vulnerabilities, and expanding configuration flexibility.
Here is the full changelog for this update:
️ Bug Fixes & Exploits Patched GUI Security Fix: Completely refactored the internal menu system. Created a dedicated GuiClickListener that completely blocks players from stealing, shift-clicking, hotbar-swapping, or dragging items (like player heads) out of the plugin's interface.
⚙️ Performance & Data Optimization Asynchronous Data Storage: Isolated player statistics and core configuration. Created a separate data.yml to handle whitelists, leaving config.yml clean for settings only.
Zero Server Lag (Anti-TPS Drops): Implemented a new PlayerQuitListener and hooked trade statistics to save asynchronously (saveStatsAsync). This drastically minimizes disk I/O on the main server thread.
Thread Safety: Upgraded all internal storage maps to ConcurrentHashMap to ensure absolute stability and prevent any ConcurrentModificationException errors during high server traffic.
✨ New Features & Customization Wandering Trader Support: Extended the optimization logic to cover AbstractVillager. If enabled via config, Wandering Traders now benefit from the exact same features as regular villagers!
Global Trade Toggle: Added global-infinite-trades in config.yml. You can now choose whether everyone on the server gets infinite trades, or strictly stick to the whitelisted players.
Dynamic Price Modification System: Introduced 3 customizable price levels via the new price-mode setting:
INCREASE: Raises trade prices for economy balance.
NORMAL: Applies a balanced, subtle emerald discount (Default).
CHEAP: Drops all trade costs down to exactly 1 emerald for ultimate flexibility.
Make sure to regenerate your config.yml or add the new keys manually to support the updated features! Any feedback is highly appreciated.