DonutAuction v1.0.0
A full-featured auction house plugin for Paper 1.21.x servers.Features
- GUI-based auction house — browse, buy, and list items in a clean 54-slot interface
- Category filtering — filter by Blocks, Tools, Food, Combat, Potions, Books, Ingredients, or Utilities
- Sort options — sort by Highest Price, Lowest Price, or Recently Listed
- Anvil search — search listings by item name or seller name
- Shulker box preview — left-click any shulker box listing to preview its contents before buying
- Buy confirmation GUI — review price before committing to a purchase
- Sell confirmation GUI — set price and confirm before listing
- My Listings GUI — view and cancel your active listings
- Transaction history — per-player purchase and sale history
- Multi-economy support — Vault (any Vault-compatible economy) or PlayerPoints
- Listing fees & sell tax — configurable fees on listing and on sale
- Per-permission max listings — control how many items players can list simultaneously
- Discord webhooks — optional notifications for listings, purchases, and expirations
- Physical AH signs — right-click a [AuctionHouse] sign to open the GUI
- Sound effects — configurable sounds for open, click, buy, sell, and cancel actions
- Item blacklist — block specific materials from being listed
- Admin commands — reload, reload-economy, purge, block/unblock players, force-expire listings
- YAML persistence — listings, history, and blocked players survive restarts
Requirements
| Dependency | Version | Required |
|---|---|---|
| Paper | 1.21.x | Yes |
| Vault | Any | Yes (default economy) |
| PlayerPoints | Any | No (optional economy) |
Installation
- Drop DonutAuction-1.0.0.jar into your server's plugins/ folder.
- Install Vault and a Vault-compatible economy plugin (e.g. EssentialsX, CMI).
- Restart your server.
- Configure plugins/DonutAuction/config.yml and messages.yml as needed.
- Reload with /ah reload.
Commands
| Command | Description | Permission |
|---|---|---|
| /ah | Open the auction house | donutauction.use |
| /ah sell <price> | List the item in your hand | donutauction.sell |
| /ah history | View your transaction history | donutauction.use |
| /ah reload | Reload config and messages | donutauction.admin |
| /ah reload-economy | Re-hook the economy provider | donutauction.admin |
| /ah purge | Remove all expired/invalid listings | donutauction.admin |
| /ah block <player> | Block a player from using the AH | donutauction.admin |
| /ah unblock <player> | Unblock a player | donutauction.admin |
| /ah expire <id> | Force-expire a listing by UUID | donutauction.admin |
| /ah info | Show plugin version and stats | donutauction.admin |
Permissions
| Permission | Description | Default |
|---|---|---|
| donutauction.use | Open the auction house and buy items | true |
| donutauction.sell | List items for sale | true |
| donutauction.sell.bypass | Skip listing fees | op |
| donutauction.sell.unlimited | Ignore max-listings limit | op |
| donutauction.buy.bypass | Purchase without paying | op |
| donutauction.fastbuy | Buy directly without confirmation GUI | op |
| donutauction.admin | Access all admin commands | op |
| donutauction.emergency.bypass | Use AH even when blocked | op |
| donutauction.maxlistings.10 | Allow up to 10 active listings | — |
| donutauction.maxlistings.25 | Allow up to 25 active listings | — |
| donutauction.maxlistings.50 | Allow up to 50 active listings | — |
Configuration — config.yml
prefix: "&8[&bDonutAuction&8] &r"gui:
main-title: "&8AUCTION SITE"
search-title: "Search"
filler-material: GRAY_STAINED_GLASS_PANE
item-display:
date-format: "dd/MM/yyyy HH:mm"
lore:
- "&7Seller: &f{seller}"
- "&7Price: &a{currency}{price}"
- "&7Listed: &f{date}"
- "&7Amount: &f{amount}"
- "{shulker_hint}"
auction:
listing-duration-hours: 48
blacklisted-items:
- BEDROCK
- BARRIER
allow-shulker-boxes: true
broadcast-purchases: true
broadcast-listings: false
max-listings-default: 5
economy:
provider: vault # vault | playerpoints
currency-symbol: "$"
min-price: 1.0
max-price: 1000000000.0
listing-fee: 0.0
sell-tax: 5.0 # percentage taken on sale
sounds:
enabled: true
gui-open:
sound: BLOCK_ANVIL_LAND
volume: 0.5
pitch: 1.8
gui-click:
sound: UI_BUTTON_CLICK
volume: 0.6
pitch: 1.0
purchase:
sound: ENTITY_EXPERIENCE_ORB_PICKUP
volume: 0.8
pitch: 1.0
sell:
sound: BLOCK_NOTE_BLOCK_PLING
volume: 0.8
pitch: 1.2
cancel:
sound: BLOCK_NOTE_BLOCK_BASS
volume: 0.6
pitch: 0.8
signs:
enabled: true
sign-trigger: "[AuctionHouse]"
sign-line2: "&6Auction"
sign-line3: "&eHouse"
sign-line4: ""
discord:
enabled: false
webhook-url: ""
events:
listing: true
purchase: true
expiry: false
GUI Navigation Bar
The bottom row of the main GUI (left to right):| Slot | Icon | Function |
|---|---|---|
| 45 | Arrow | Previous page |
| 47 | Cauldron | Cycle sort order (Highest / Lowest / Recent) |
| 48 | Hopper | Cycle category filter |
| 49 | Anvil | Refresh current page |
| 50 | Oak Sign | Open search |
| 51 | Chest | Your listings |
| 53 | Arrow | Next page |
Category Filters
| Category | Matches |
|---|---|
| All | Every item |
| Blocks | Building blocks, ores, stone, glass, etc. |
| Tools | Pickaxes, axes, shovels, hoes, shears, fishing rods |
| Food | All edible items |
| Combat | Swords, bows, crossbows, armour, shields, tridents |
| Potions | Potions, splash potions, lingering potions, tipped arrows |
| Books | Books, enchanted books, written books |
| Ingredients | Brewing and crafting ingredients |
| Utilities | Everything else (redstone, maps, transport, etc.) |
AH Signs
Place a sign with [AuctionHouse] on the first line (requires donutauction.admin). The sign auto-formats and players can right-click it to open the auction house.Data Files
| File | Contents |
|---|---|
| plugins/DonutAuction/config.yml | All plugin settings |
| plugins/DonutAuction/messages.yml | All player-facing messages |
| plugins/DonutAuction/listings.yml | Active auction listings |
| plugins/DonutAuction/history.yml | Per-player transaction history |
| plugins/DonutAuction/blocked.yml | Blocked player UUIDs |
