All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Shopkeepers Addon

Shopkeepers Addon

by _w41k3r • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

ShopkeepersAddon - Economy & GUI Navigation Shopkeepers

banner

🚀 Transform Your Server's Economy!

Credits: Major Credits go to blablubbabc for making the amazing Shopkeepers plugin.

Disclaimer: This plugin is NOT a full shopkeepers plugin, this ONLY adds additional features to the parent plugin. If you are using Shopkeepers then this plugin shall add sorting and easier navigation to the shopkeepers.

ShopkeepersAddon supercharges the popular Shopkeepers plugin with advanced economy features, beautiful GUI navigation, and powerful player shop management!


✨ Features Overview

Feature Description Status
💰 Advanced Economy Vault integration with custom price formatting ✅
🎯 Smart GUI Intuitive menus for shop browsing ✅
👥 Player Shops Complete player shop management system ✅
⚡ Bulk Trading Optimized performance for mass trades ✅
🌍 Multi-Currency Custom symbols and international formats ✅

📚 Documentation & Guides

🔧 Setup & Configuration

🎮 User Guides

👥 Shop Management


🎯 Quick Links

📥 Download

💬 Community & Support

🔧 Developer Resources


🚀 Get Started Now!

Prerequisites

Installation

  1. Download the latest JAR from Releases
  2. Place in your plugins folder
  3. Restart your server
  4. Configure via config.yml
  5. Use /shops to open the menu!

🏆 Why Choose ShopkeepersAddon?

Aspect Benefit
Performance Async processing & bulk trade optimization
Customization Complete control over economy formatting
User Experience Beautiful, intuitive GUI interfaces
Reliability Regular updates & active support
Compatibility Works with all Vault economy plugins

📊 Plugin Statistics

  • ✅ 100% Shopkeepers Compatible
  • ⚡ Handles 1000+ Shops Efficiently
  • 🌍 Supports International Number Formats
  • 🔧 Highly Configurable & Modular

🤝 Support the Project

Love ShopkeepersAddon? Here's how you can help:

  • ⭐ Star the GitHub Repository
  • 📝 Leave a Review on SpigotMC/Modrinth
  • 🔄 Share with other server owners
  • 💖 Donate to support development

📞 Contact & Links


All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2 26.1.x 1.21.x +1
Bukkit Paper Purpur Spigot
1d ago 1
26.2 26.1.x 1.21.x +1
Paper Purpur Spigot
1d ago 1
26.2 26.1.x 1.21.x
Paper Purpur Spigot
1d ago 1
1.21.x 1.20.6
Bukkit Paper Purpur Spigot
1d ago 1
1.21.x 1.20.6
Bukkit Paper Purpur Spigot
1d ago 1
1.21.x 1.20.6
Bukkit Paper Purpur Spigot
1d ago 1
1.21.x 1.20.6
Paper Purpur Spigot
1d ago 1
1.21.x
Paper Purpur Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x
Spigot
1d ago 1
1.21.x 1.20.x 1.19.x +3
Spigot
1d ago 1
1.21.x 1.20.x 1.19.x +3
Spigot
1d ago 1
# 🏪 Packetevents, new shop browser and more!

## ✨ New

  • 🗺️ Shop Browser — /shopbrowser**
Browse every player shop on the server. A grid of player heads, one per
shop owner; click a head to see all of that player's shopkeepers with
their type, world and coordinates; click a shop to teleport straight to
it. Paged, so it handles hundreds of shops fine.
Aliases: /shopowners, /browseshops

  • 🎯 Teleports actually land somewhere sensible**
No more arriving inside a slab or halfway through a wall. You now land
  • in front of** the shop, facing it, on ground you can actually stand on.
Lava, fire, cactus, magma, powder snow, cobwebs and portals are all
avoided, and if there is genuinely nowhere safe it tells you *before*
the countdown instead of after.

New config: playerShops.teleport.distance and
adminShops.teleport.distance (default 2, range 1 to 8) set how
many blocks away you arrive.

  • 🔌 PacketEvents support**
ProtocolLib still works and is still the default, so nothing changes if
you already run it. If you would rather use PacketEvents, the plugin now
detects it automatically. It also runs with **neither** installed now,
instead of refusing to load.

## 🛠️ Fixed

  • 📦 Items could be put into the plugin's menus, and were lost forever**
Shift-clicking, dragging or clicking outside a menu could drop your items
into it, where nothing ever gave them back. All of those routes are
closed. Every empty-slot click was also throwing an error into console;
that is gone too.

  • ⚙️ Two settings that did nothing**
playerShops.teleport.enabled and adminShops.teleport.enabled were
never actually read. Turning them off did not disable teleports. They
work now.

## 📋 Notes
  • Your config updates itself on first start. Existing settings are kept.
  • New messages are configurable as usual.
@everyone

### 🛡️ Update: Shopkeepers Addon v2.27.0-260804

  • A critical duplication exploit is fixed in this build — please update as soon as you can.**

  • 🔴 Security Fix — Infinite Money Exploit**

Players could **rename any item** (emeralds, logs, anything) and sell it to a shop over and over: the money was paid out but the item was never taken. The cause was that trades paid *before* removing the item, and the removal check compared item **names** — so a renamed item never matched the trade's item and was silently kept.

Trades now take the goods **first**, match on the item type instead of its name, and only pay out once the items are actually collected. Verified fixed on a live test server.

While fixing this, two more ways to lose items were closed: selling into a **full shop chest**, and selling to a shop whose **owner couldn't be found** — both used to take your goods and give nothing back.

  • 🏪 Selling Shops Now Show Their Items**

A long-standing bug: only *trading* shops were being scanned, so **selling and buying shops** — by far the most common types — never had their items listed in the Player Items menu, and couldn't be found by search. Every shop type is now included.

  • ✨ Shops List Themselves — No More /setshop**

Place a shopkeeper and it appears in the shops menu **instantly**. No command needed. Deleting your last shop cleans up the entry automatically, and shops that already exist get listed on your next restart. Custom names set with /setshop are always kept. Toggle it under playerShops.autoRegister.

  • 🔍 New: Search — /shopsearch <anything>**

Find shops, players and items instantly. Aliases: /ssearch, /findshop.
  • Search by **player name**, **shop name**, or **item** (/shopsearch diamond)
  • Partial and case-insensitive — shopown finds ShopOwner's Shop
  • Paged results** — browse hundreds of matches with the usual next/back buttons
  • Click a result to teleport, or click an item to see every shop selling it
  • Built to be light: it searches data already in memory and never touches the disk

  • ⚡ Faster, Fresher Menus**

  • The refresh-rate option **now actually works** — it was documented but never running, so shops only ever updated when someone happened to edit one.
  • Menu updates are no longer **thrown away** when several happen at once, which is what left the GUI showing stale shops.
  • Menus are no longer briefly **empty** while refreshing in the background.

  • Note for Server Owners:** Your config auto-updates to **1.8** on next boot (a backup is saved first). New options: playerShops.autoRegister, plus messages.search (its title supports %page%).

  • ⚠️ Requirements:** This build needs **Shopkeepers 2.27.0** on Minecraft **26.x**, and **ProtocolLib 5.4.0+** on 1.21.5 (26.x needs the ProtocolLib 5.5.0 dev-build). It still runs fine on Shopkeepers 2.26.0.

  • Download Now:**
📦 **Spigot:** [Click Here](https://www.spigotmc.org/resources/shopkeepers-addon-1-20-6-1-21-x-%C2%BB-navigation-economy.98400/)
📦 **Modrinth:** [Click Here](https://modrinth.com/plugin/shopkeepers-addon)
  • Bug Fixes & Improvements:**

  • 💸 No More Lost Money on Full Inventories:** The big one. Buying an item with a full inventory (or selling into a player shop whose chest is full) used to **take your money and give you nothing**. Trades now check for space **before** charging — if there's no room, the trade is cancelled cleanly and your balance is left untouched. Comes with new customizable **inventoryFull** and **shopStorageFull** messages.

  • 🔒 Bulk Trading Toggle:** Tired of players crouch-clicking to snap up entire stacks at once? Set **disable-bulk-trading: true** in your config.yml to limit shift-clicks to a single trade. Staff and VIPs can be exempted with the new **shopkeepersaddon.bulktrade.bypass** permission.

  • 🔑 Permissions That Actually Work:** Fixed a mismatch where **/shops** and **/setshop** silently required OP. They now respect the intended shopkeepersaddon.command.shops / shopkeepersaddon.command.setshop nodes (default: **on**), so normal players can use them without being granted every permission.

  • 🚀 Teleport Bypass Fixed:** The teleport warmup-bypass permissions were pointing at old, non-existent nodes. They now correctly use **shopkeepersaddon.admin.warmup.bypass** and **shopkeepersaddon.player.warmup.bypass**.

  • Note for Server Owners:** Your configuration file will automatically update to **config-version: 1.7** on the next reboot (a backup is saved first). Be sure to check out the new disable-bulk-trading option and the new inventoryFull / shopStorageFull messages!
# **Daily Limit Update:**
1. **Modularized Daily Limit Messages**: Updated config.yml (v1.6) and the Java logic to support a more flexible messaging system.
2. **%remaining% Placeholder**: Players can now see exactly how much more they can earn today directly in the limit alert message.
3. **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.
4. **Config Maintenance**: Removed hardcoded versions from the Java code; the plugin now automatically reads and updates based on the config.yml in your resources.

# 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, and sell-settings.
  • Enforced Defaults**: Balance checks and costs/payouts are now always enabled by default in the code.
  • Config Version 1.3**: Bumped config-version to 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 ConsoleCapture system to intercept command output for balance checking.
  • Configuration**: Added comprehensive economy section to config.yml for 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 appender errors in ConsoleCapture by implementing a ThreadLocal guard.
  • 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 Shopkeepers API dependency to v2.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 reload command
  • Added economy price formatting in config:
``yaml
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:
`yaml
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:

``yaml
playerShops:
# Blacklist items that cannot be sold in player shops
itemBlacklist:
  • BEDROCK
`



`yaml
messages:
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:
``yaml
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**
[2.23.3.1] 1.21.4 Update by _w41k3r on Oct 12, 2026
Download
Updated API for:
  • Shopkeepers PLugin v2.23.3
  • Spigot 1.21.4
Shopkeepers Addon Icon
Download Shopkeepers Addon
Select game version
Select platform