JPShop
Configurable server shop plugin for Paper servers.
Downloads open soon.
Features
- Shop menu with categories (
shops.yml) - Buy and sell prices,
/sell handand/sell all - Sell chest (
/sellgui) - Uses any Vault economy
- Search the whole shop from the menu or with
/shop search
Requirements
- Paper 26.1 or newer (Java 25)
- Optional:
- Vault: money (any Vault economy)
- PlaceholderAPI: placeholders in texts, and this plugin's own placeholders
Installation
- Put
JPShop-<version>.jarin your server'spluginsfolder. - Restart the server.
plugins/JPShop/is created with the config and messages. - Change what you want in the files, then reload or restart.
Type /jp as an operator to see every JP plugin you have installed, its version and which optional plugins it found.
Commands
| Command | Description | Permission |
|---|---|---|
/shop [category|search|admin|checkconfig|reload]Aliases: /serverstore | Open the shop or use shop admin commands. | jpshop.use |
/sell [all]Aliases: /sellall, /sellhand | Sell your held item or all sellable items. | jpshop.sell |
/sellguiAliases: /sellmenu, /sellchest | Open a chest that sells everything you put in it. | jpshop.sell |
Permissions
| Permission | Default | Description |
|---|---|---|
jpshop.use | everyone | Use the server shop. |
jpshop.sell | everyone | Sell items through commands or the GUI. |
jpshop.admin | operators | Access shop admin tools and admin-only categories. |
Placeholders
Needs PlaceholderAPI.
| Placeholder | Shows |
|---|---|
%jpshop_categories% | number of shop categories |
%jpshop_entries% | number of items in the shop |
%jpshop_sell_enabled% | true when selling is on |
%jpshop_buy_enabled% | true when buying is on |
%jpshop_hand_sell_price% | sell price of the item in the player's hand |
%jpshop_hand_buy_price% | buy price of the item in the player's hand |
%jpshop_can_sell_hand% | true when the item in hand can be sold |
Configuration
All files are in plugins/JPShop/. Files: config.yml, messages.yml, shops.yml.
When you update the plugin, new options are added to your config.yml by themselves, with their comments. Your own settings stay as they are, and the old file is kept as config.old-v<number>.yml.
Languages: English, Spanish, Portuguese, French and German. Set language: in config.yml (en, es, pt, fr or de).
Default config.yml
# Used to add new options to this file after an update. Don't change it.
config-version: 2
# ╔══════════════════════════════════════════════════════════════════╗
# ║ JPShop · config.yml ║
# ╚══════════════════════════════════════════════════════════════════╝
# Server shop with categories, a sell chest and /sell.
# Shop items and prices live in shops.yml, texts in messages.yml.
# Apply changes with /shop reload. Check prices with /shop checkconfig.
#
# Edit the shop in game: /shop editor (jpshop.admin). Add items by clicking "Add item"
# with an item from your inventory, click an item to change its prices, and move or
# remove items and categories - everything is saved to shops.yml at once.
# The shop comes with 18 ready categories and 500+ items you can keep, change or remove.
#
# Colours (everywhere): &a codes, &#RRGGBB hex and MiniMessage
# (<gradient:#F7B733:#FC4A1A>text</gradient>, <bold>, ...).
# Materials and sounds use the Bukkit names, e.g. STONE, UI_BUTTON_CLICK.
# Language of the messages: en (messages.yml), es, pt, fr or de (lang/<code>.yml).
# Your own language: copy a file in the lang folder to lang/<code>.yml, translate it
# and set its code here (for example it for lang/it.yml).
language: en
# Replace messages.yml with the new design when the plugin is updated.
# Your old file is kept as messages.old-vX.yml. false = never touch it.
auto-update-style: true
shop:
# false = nobody can buy from the shop (selling still works).
buy-enabled: true
# false = nobody can sell to the shop (buying still works).
sell-enabled: true
# Items that can never be sold, whatever shops.yml says.
item-blacklist:
- BEDROCK
- BARRIER
- COMMAND_BLOCK
sell:
# Allow "/sell all" and the sell-all button (sells every sellable item in the inventory).
allow-sell-all: true
# Never sell renamed items.
ignore-renamed-items: false
# Never sell enchanted items, items with lore or filled shulker boxes/chests.
skip-custom-items: true
# Never sell damaged tools, weapons and armour.
skip-damaged-items: true
# Prices in shops.yml are per package: "amount: 32, sell-price: 8" pays 8 for 32 items.
features:
# Register the %jpshop_...% placeholders when PlaceholderAPI is installed.
placeholderapi: true
# /sell and /sell all
sell-command: true
# /sellgui chest
sell-gui: true
# /shop <category>
category-command: true
# Search button in the main menu, and /shop search <text>.
search: true
# Player head with the current balance in the main menu.
balance-display: true
gui:
# Menu titles. {category}, {page} and {pages} work in the category title.
main-title: '&8ꜱᴇʀᴠᴇʀ ꜱʜᴏᴘ'
category-title-format: '&8ꜱʜᴏᴘ &7» {category} &8({page}/{pages})'
sell-title: '&8ꜱᴇʟʟ ᴄʜᴇꜱᴛ &7(close to sell)'
# Menu height, 3 to 6 rows (9 slots per row). 5 rows = 45 slots.
rows: 5
# Frame colour and corner colour.
filler-material: BLACK_STAINED_GLASS_PANE
accent-material: ORANGE_STAINED_GLASS_PANE
# true = fill every empty slot, false = only draw a border.
fill-empty-slots: false
# Slot numbers start at 0 (top-left) and go left to right: row 2 starts at 9, row 3 at 18...
# Where category icons go in the main menu, in order.
category-slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34]
# Where items go on a category page. More items than slots = more pages.
item-slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34]
# Button positions, in the bottom row. Keep them inside the menu (5 rows = slots 0-44).
# The main menu uses sell-menu, help and refresh; a category page uses back,
# previous, sell-all and next, so they can share slots.
control-slots:
search: 36
back: 36
previous: 38
sell-menu: 38
help: 40
sell-all: 40
refresh: 42
next: 42
sounds:
# false = no shop sounds at all.
enabled: true
# Format: SOUND or SOUND:volume:pitch (volume 0-1, pitch 0.5-2).
success: ENTITY_EXPERIENCE_ORB_PICKUP
failure: ENTITY_VILLAGER_NO
click: 'UI_BUTTON_CLICK:0.5:1'
format:
# How money is shown (Java DecimalFormat). Examples: '$#,##0.00', '#,##0 coins'.
currency-pattern: '$#,##0.00'Support
Guides and the docs of every JP plugin are on the JP Plugins website. Questions, bugs or ideas? Join the JP Plugins Discord.
License
JPShop is free to use on any server, including servers that make money, but it is not open source. Don't reupload, sell or share modified copies of it. The full terms are in LICENSE.txt, which is also inside the jar.