
Shopkeepers Addon
Navigation & Economy » No more searching the shopkeepers marketplace to buy your favorite items.
53.4K
42
Daily Limit Update:
- Modularized Daily Limit Messages: Updated
config.yml(v1.6) and the Java logic to support a more flexible messaging system. %remaining%Placeholder: Players can now see exactly how much more they can earn today directly in the limit alert message.- Universal Trade Locking:
- Replaced "Inventory Close" with a visual red 'X' lock.
- This applies to all "impossible trade" scenarios: Not enough money (player), Not enough money (owner), or Daily Limit reached.
- The GUI now stays open for a better user experience.
- Config Maintenance: Removed hardcoded versions from the Java code; the plugin now automatically reads and updates based on the
config.ymlin your resources.
- Modularized Daily Limit Messages: Updated
Changelog 2.25.0-260212
🚀 Vault Economy Migration
- Native Vault Integration: Replaced the entire command-based economy system with direct Vault API calls.
- Soft Dependency: Vault is now a soft dependency. If missing, economy features are gracefully disabled.
- Performance: Removed the overhead of parsing console commands for every balance check.
🛡️ Enhanced Trade Handling
- Post-Trade Balance Check: Implemented logic to re-evaluate affordability immediately after a shift-click trade.
- Slot Invalidation: If a player (or shop owner) runs out of funds during a bulk trade, the trade slot is automatically cleared or not replenished to prevent invalid transactions.
🧹 Configuration Cleanup
- Simplified Config: Removed
economy.commands,economy.balance-placeholder,buy-settings, andsell-settings. - Enforced Defaults: Balance checks and costs/payouts are now always enabled by default in the code.
- Config Version 1.3: Bumped
config-versionto 1.3 to ensure proper migration.
Changelog 2.25.0-260211
🚀 Universal Economy Integration
- Command-Based Economy: Implemented a universal economy system that works with any economy plugin (Essentials, CMI, Vault, etc.) by executing console commands and parsing output.
- Zero Dependencies: Removed hard dependency on Vault API.
- Console Capture: Created a custom
ConsoleCapturesystem to intercept command output for balance checking. - Configuration: Added comprehensive
economysection toconfig.ymlfor defining commands, regex patterns, and transaction settings.
🛡️ Strict Balance Checks
- Trade Selection: Validates player balance (buying) and shop owner balance (selling) immediately when a trade is selected.
- Pre-Trade Verification: Re-checks balance right before transaction execution to prevent race conditions.
- Post-Trade UI Update: Automatically refreshes the trade UI to remove items if the player/owner can no longer afford the trade.
- Owner Insolvency Protection: Prevents selling to player shops if the owner lacks funds (unless configured otherwise).
🐛 Critical Bug Fixes
- Recursion Guard: Fixed
Recursive call to appendererrors inConsoleCaptureby implementing aThreadLocalguard. - ANSI Parsing Fix: Fixed incorrect balance parsing (e.g.,
336.0) by stripping ANSI color codes from console output before parsing. - Heuristic Parser: Improved auto-detection logic to scan log lines in reverse, prioritizing the most recent output.
📦 Maintenance
- API Update: Updated
ShopkeepersAPI dependency tov2.25.0. - Version Bump: Project version updated to
2.25.0-260211.
Changelog
Bug Fixes
Config Backup Behavior
- Fixed: Configuration was being backed up on every restart/reload
- Change: Backup now only occurs when there are actual changes to the configuration (e.g., new additions)
Chat Message Formatting
- Fixed: Messages in chat were not following custom price formatting rules
- Change: Chat messages now correctly display custom price formatting as configured
ShopkeepersAddon Update
🔧 Optimizations
- Reduced code duplication
- Optimized error handling
- Improved simulate click for Shop Edit Task
- Async file operations
- Added null safety checks
- Better logging
- Separated config loading
- Added cleanup on plugin disable
🚀 Added Features
- Added
/shopkeepersaddon reloadcommand - Added economy price formatting in config:
economy: # Price formatting options price-format: # Format pattern using DecimalFormat syntax: # 0 = prints digit if provided, 0 otherwise # # = prints digit if provided, nothing otherwise # . = decimal separator position # , = thousands grouping separator position pattern: '#,##0.00' # Swap decimal and grouping separators for European format # true: 1.000.000,00 (European) | false: 1,000,000.00 (Western) european-format: false # Custom separators (optional - overrides european-format if both are set) # decimal-separator: '.' # grouping-separator: ',' # Currency symbol and position currency-symbol: '$' symbol-before: true # true: $100 | false: 100$- Added purchase feedback messages:
messages: buySuccess: "§aYou have bought %item% for %price%." sellSuccess: "§aYou have sold %item% for %price%."- Optimized bulk item purchase system
- Added automatic config migration on version update
- Fixed! Stack selling bug. Even on selling less than 1 stack, plugin gave full stack money when shift click trading.
- Fixed! New items not appearing in admin trades.
- Fixed! Blacklisting items was not working.
- Fixed! Error on new item in shopkeeper.
- NEW! Blacklist items in player shops!
- Fixed! Error on empty trade selection.
Add the following to your config.yml:
playerShops: # Blacklist items that cannot be sold in player shops itemBlacklist: - BEDROCKmessages: blacklistedItem: "§cThis item is blacklisted and cannot be sold in player shops."- Fixed! Bug with Stack selling.
- Fixed! Issue with money not deducting/depositing from offline players.
- Added! Recipies will show not tradable for economy items if player doesnt have enough items in inventory.
- Fixed trading multiplier money bug!
- Fixed error on skin loading for Steve skinned players.
- Fixed spamming errors on trading!
- Added a catch for an unidentified error.
FIXED!
- Null pointer exception on creating/trading shops.
NEW!
- Added Custom Model Data. If you are upgrading, add in config:
economy: # Enable economy support enabled: true # Set the price limit for trades selling-price-limit: 100000000.00 # Currency Item: sell-item: # Name format. Use %price% for the price. name: "Price: §f$%price%" material: GOLD_NUGGET glow: true lore: - "§bClick to edit" custom-model-data: 0 # Set to 0 to disable custom model data for the sell item # Currency Item: buy-item: # Name format. Use %price% for the price. name: "You get: §f$%price%" material: GOLD_NUGGET glow: true lore: - "§bClick to edit" custom-model-data: 0 # Set to 0 to disable custom model data for the buy item- Fixed Shift click trading
- Fixed Double click bug on trade
- Added comptabibility with old trades
Complete Rewrite:
- Compatible with Shopkeepers 2.23.8
- Custom Model Data in config for buy and sell item.
- Added Shift click to sell and buy money items.
- Fixed bug for money item.
- Now Requires Protocolib
Updated API for:
- Shopkeepers PLugin v2.23.3
- Spigot 1.21.4
Совместимость
Авторы
Сведения
Лицензия:
Опубликован:1 год назад
Обновлён:2 месяца назад
ID проекта:

