config.yml - Added two new settings under holograms:
- aim-mode: false - toggle between proximity and aim mode
- aim-hide-delay: 3 - ticks before hiding when you look away
This is for the animation when you walk up to a chest, and it opens with the hologram and everything.
Bug Fixes
- Fixed MySQL: Connection charset error
- Fixed MySQL: Shops not saving after switch from SQLite
- Fixed a bunch of price limit bypasses on shop creation and shop management
- Fixed renaming items bypass
- Fixed bypass with Bundles and shulker boxes
- Fixed a hardcoded message sent when attempting to sell to a shop with insufficient funds
Per-item tax rate not applying
- When an item had separate entries in price-limits.yml for its price limit and its tax rate (because the admin configured them from slightly different item instances, producing different serialized keys), getItemLimit() returned the first matching entry, which could be the price-only entry with no tax rate, causing the tax to silently fall back to the global rate.
- getItemLimit() now iterates all matching entries and merges them: most restrictive price bounds and highest tax rate win.
- The three setters (setItemMin, setItemMax, setItemTax) now call resolveKey() before writing, which finds any existing matching entry and reuses its key, so future updates always merge into one entry rather than creating a parallel one.
---
New Features
Hologram scale config
- Added holograms.scale setting to config.yml (default 1.0). Uniformly scales all hologram elements, the text display, and the floating item. Setting 0.5 halves the size; 2.0 doubles it. The item display uses 0.6 × scale as its base size to maintain relative proportions.
- Fixed an issue where sometimes the plugin would load before the economy plugin, making this plugin not detect it and disabling itself
Developer API
- Added ShopCreateEvent - fired (cancellable) before a shop is saved; lets other plugins block or react to shop creation
- Added ShopDeleteEvent - fired (cancellable) before a shop is removed; deleter is null for system-triggered deletions
- Added ShopTransactionEvent - fired (cancellable) before any buy or sell executes; exposes shop, player, transaction type, item count, lots, total price, and tax amount
- Added ShopStockChangeEvent - fired (informational) after stock changes from a transaction
- Added FluxShopsAPI static utility class for other plugins to query shop data (get shop at location, shops by owner, revenue/sales totals, recent transactions, currency formatting, and more)
- Other plugins can hook in by adding depend: [FluxShops] to their plugin.yml
Linked Chests
- Shift+left-clicking an empty chest while holding an item now shows a "Link to Existing Shop" button in the creation GUI (only visible when you already own a shop)
- Clicking it opens a paginated shop selector; selecting a shop links the new chest to it
- Linked chests behave identically to the primary chest — players can buy/sell, owners can restock and manage from either location
- Each linked chest gets its own hologram
- Deleting a shop removes it and all linked chest locations
- Added "Unlink This Chest" button in the Manage GUI; only shown for the chest you actually right-clicked
- Unlinking the primary chest promotes the first linked chest to primary automatically
Performance / Build
- Removed bundled SQLite JDBC and MySQL Connector/J from the jar - both are now resolved at runtime (SQLite via Paper's built-in classpath; MySQL via Paper's libraries: auto-download)
- JAR size reduced from ~18 MB to... much less
