Add Built-in Dynamic Pricing System
Dynamic Pricing:
- Added built-in supply/demand pricing system that works out of the box
- Prices increase when items are bought (supply decreases)
- Prices decrease when items are sold (supply increases)
- Prices gradually normalize back to base values over time
- External plugins can still override via DynamicPriceProvider API
Configuration:
- Created dynamicpricing.yml for all dynamic pricing settings
- Simplified config.yml to just dynamic-pricing: true/false
- Added per-item dynamic: false config key to exempt specific items
Admin Commands:
- /gs market status - View dynamic pricing system status
- /gs market info <item> - Check an item's current market status
- /gs market reset <item> - Reset an item to base price
- /gs market resetall - Reset all items to base prices
- Added tab completion for all market commands
Help and Tab Completion:
- Added eco and market commands to /gs help output
- Added tab completion for /gs market subcommands
- Added material name suggestions for /gs market info/reset
Documentation:
- Created wiki/Dynamic-Pricing.md with full documentation
- Updated wiki/Commands-and-Permissions.md with market commands
- Updated wiki/API-Documentation.md with Dynamic Pricing API
- Updated spigot.bbcode, modrinth.md, and dev-bukkit.html
Technical:
- Added DynamicPricingManager class with SQLite persistence
- Added shouldUseDynamicPricing() convenience method on Item
- Data stored in plugins/GUIShop/Data/dynamic_pricing.db
- Added dynamicpricing.yml to pom.xml resources
ADDED:
- New shops folder with each shop broken into its own YML. Supports auto converting old shops.yml
- Unified Transaction GUI, replaces old Quantity Menu
- Fully configurable player_balance item type
- Fully configurable pagination and back buttons
- Creating new pages using gs edit
- Tab completion for gs commands
- Better Default configs
- /gs edit transaction command to edit transaction UI
FIXES:
- Better handling of pagination in editor mode
- Not able to configure balance or pagination buttons
- Cursor reset when entering a shop
- Enhanced the global Item Action Handler
- Adding item with a missing target-shop creates the new target shop config
- Enhanced Item Editor UI
FIXED:
- Alt Sell menu not working correctly
- Items not being able to stack on top of each other once purchased
Massive thanks to @JakeWalter for these fixes!
ADDED:
- Folia Support
- GuiShopAPI and StatisticsManager to retrieve sold and bought items, most sold and bought item types
- /togglepay Command - Toggle payment notifications
- Internal Economy option, added economy.yml with various economy settings
- Cursor rules to help jumpstart newer developers
- Support for ASCII/Unicode chars in inventory title of worth lore blacklist
Fixed:
- Alt Sell Menu (thanks to Jake Walter)
- Artifact output folder
- WorthDisplay not removing armor lore
ADDED:
- Brand new GUI Based Editor for menu & shops.
- Worth Lore Blacklist options
- Packet based inventory refreshing
- Creative Mode worth lore support
- GuiShop ItemInfo Command: /gs iteminfo
FIXED:
- Worth lore not working on all armor indices in the packet
- Cursor resetting when going back to previous inventory
- Desynced items spawned by Creative GUI
- Creator mode showing lore lines in regular shop mode
ADDED:
- Worth Item Lore Display Fix
- Armor Slot worth blacklist
- Inventory title worth blacklist
- Item title worth blacklist
- Wiki Pages
- Better Paper Support
FIXED:
- Not intercepting the packet correctly
- Stack splitting not updating prices correctly
- Removed Lang3 from plugin
- Cleaned up build POM
- Reloading Command
