JPAuction
Configurable auction house plugin for Paper servers.
Downloads open soon.
Features
- Auction house menu with categories, search and sorting
- List items with
/ah sell, buy with one click, collect unsold items and money later - Listing limits per permission, sales tax, blacklisted items
- Admin tools and maintenance mode
- Imports listings from other auction plugins
- Uses any Vault economy
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
JPAuction-<version>.jarin your server'spluginsfolder. - Restart the server.
plugins/JPAuction/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 |
|---|---|---|
/ah [sell|search|category|claims|mine|history|reload|admin]Aliases: /auctionhouse | Open the auction house or use admin and trade subcommands. | jpauction.use |
Permissions
| Permission | Default | Description |
|---|---|---|
jpauction.use | everyone | Use the auction house. |
jpauction.sell | everyone | Create auction listings. |
jpauction.claim | everyone | Claim stored items and earnings. |
jpauction.manage.own | everyone | View and cancel your own auction listings. |
jpauction.admin | operators | Reload the auction house configuration. |
jpauction.limit.vip | nobody | Example larger listing limit permission. |
jpauction.limit.mvp | nobody | Example highest listing limit permission. |
Placeholders
Needs PlaceholderAPI.
| Placeholder | Shows |
|---|---|
%jpauction_active_listings% | listings in the auction house right now |
%jpauction_own_active% | the player's own active listings |
%jpauction_listing_limit% | how many listings the player may have |
%jpauction_pending_claims% | sold or expired items waiting to be collected |
%jpauction_pending_money% | money waiting to be collected |
%jpauction_category_<category>% | listings in a category |
Configuration
All files are in plugins/JPAuction/. Files: config.yml, messages.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: 1
# ╔══════════════════════════════════════════════════════════════════╗
# ║ JPAuction · config.yml ║
# ╚══════════════════════════════════════════════════════════════════╝
# Auction house: /ah to browse, /ah sell <price> [hours] to list the item in your hand.
# Texts live in messages.yml. Apply changes with /ah reload.
#
# Colours (everywhere): &a codes, &#RRGGBB hex and MiniMessage (<gradient:#a:#b>...).
# Needs Vault and an economy plugin.
# 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
storage:
# SQLITE = a local file (no setup). MYSQL = a database server (needed to share
# the auction house between several servers).
type: SQLITE
# Prefix for the table names, handy when several plugins share one database.
table-prefix: jpauction_
# Only used when type is MYSQL.
mysql:
host: localhost
port: 3306
database: jpauction
username: root
password: change-me
parameters: useSSL=false&characterEncoding=utf8&serverTimezone=UTC
# Database connection pool. The defaults are fine for almost every server.
pool:
maximum-pool-size: 10
minimum-idle: 2
maximum-lifetime-ms: 1800000
connection-timeout-ms: 10000
auction:
# How long a listing stays up when the player does not type a duration.
default-duration-hours: 24
# Longest duration a player can choose with /ah sell <price> <hours>.
max-duration-hours: 72
# How often expired listings are moved to the seller's claims.
expiration-check-interval-seconds: 60
# How many listings a player may have at once.
listing-limit-default: 4
# Higher limits by permission. The highest one the player has is used.
# Give them to ranks in LuckPerms, e.g. /lp group vip permission set jpauction.limit.vip
listing-limit-permissions:
jpauction.limit.vip: 8
jpauction.limit.mvp: 12
# Sales tax, taken from what the seller receives (the buyer pays the listed price).
# tax = price × percentage / 100 + flat-fee, but never less than minimum.
tax:
enabled: true
percentage: 5.0
flat-fee: 0.0
minimum: 0.0
# Items that can never be listed.
blacklisted-materials:
- BEDROCK
- BARRIER
- COMMAND_BLOCK
- CHAIN_COMMAND_BLOCK
- REPEATING_COMMAND_BLOCK
# Listings per page. Limited by gui.listing-slots (21 by default).
browse-page-size: 21
# Allowed price range for listings. Prices accept 1500, 1.5k, 2m, 1b.
min-price: 1.0
max-price: 1000000000.0
gui:
title: '&8ᴀᴜᴄᴛɪᴏɴ ʜᴏᴜꜱᴇ'
# Ask for confirmation before buying a listing.
confirm-purchases: true
confirm-title: '&8ᴄᴏɴꜰɪʀᴍ ᴘᴜʀᴄʜᴀꜱᴇ'
# Menu height, 3 to 6 rows (9 slots per row). 5 rows = 45 slots.
rows: 5
# Glass used for the menu frame.
filler-material: BLACK_STAINED_GLASS_PANE
# Slot numbers start at 0 (top-left) and go left to right; the bottom row of
# a 5-row menu is 36-44. Where the listings go (the rest is filled with glass):
listing-slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34]
# Category tabs sit in the top row:
category-slots:
all: 0
weapons: 1
armor: 2
tools: 3
blocks: 4
food: 5
materials: 6
misc: 7
search: 8
# Buttons in the bottom row.
control-slots:
previous: 36
my-listings: 38
info: 40
refresh: 41
claims: 42
next: 44
sounds:
# false = no auction 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'
purchase: 'ENTITY_PLAYER_LEVELUP:0.6:1.6'
claim: 'ENTITY_PLAYER_LEVELUP:0.6:1.4'
features:
# Register the %jpauction_...% placeholders when PlaceholderAPI is installed.
placeholderapi: true
# Tell players on join that they have money or items waiting in /ah claims.
notify-pending-claims-on-join: true
# /ah sell
sell-command: true
# Search button and /ah search
search: true
# /ah history
history: true
# Message the seller (if online) when an item sells.
notify-seller-on-sale: true
# Message the seller (if online) when a listing expires unsold.
notify-seller-on-expire: true
maintenance:
# Expired listings handled per check (keeps big servers from lagging).
expiration-batch-size: 100
# Delete sold/expired/claimed records older than this many days. 0 = keep forever.
history-retention-days: 14
format:
# How money is shown (Java DecimalFormat). Examples: '$#,##0.00', '#,##0 coins'.
currency-pattern: '$#,##0.00'
# How dates are shown in history (Java date pattern), e.g. 'dd/MM/yyyy HH:mm'.
date-pattern: yyyy-MM-dd HH:mmSupport
Guides and the docs of every JP plugin are on the JP Plugins website. Questions, bugs or ideas? Join the JP Plugins Discord.
License
JPAuction 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.