All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Donut Auction

Donut Auction

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

About

DonutAuctionHouse Auction Browser

Support Nightbeam Studio

DonutAuctionHouse is a standalone auction house plugin for Paper and Folia servers running Minecraft 1.20+. It provides a clean, intuitive GUI-powered marketplace where players can list, browse, search, and purchase items using any Vault-compatible economy. Optional DonutCore integration can also resolve player display names and improve the browsing experience across larger server networks.

YouTube GitHub CurseForge Modrinth

Features

Feature Description
GUI Auction Browser 54-slot inventory browser with pagination, sorting, category filters, refresh controls, search, and personal listings
Player Auction Management Players can view, cancel, collect, and manage their own active, sold, and expired listings
Vault Economy Support Compatible with Vault-backed economy plugins such as EssentialsX and other supported providers
SQLite & MySQL Storage Uses SQLite by default with optional MySQL support for larger server networks
HikariCP Pooling High-performance database connection pooling for MySQL-backed installations
DonutCore Integration Optional hook for resolving network display names without making DonutCore a hard dependency
Async Database Operations Storage operations run away from the main server thread to maintain responsiveness
Paper & Folia Support Designed for modern Paper and Folia server environments
Modular Codebase Java 17 and Maven-based architecture organized into services, storage, GUI, and hook layers
Customizable Experience Configurable pricing, listing duration, messages, titles, button names, and visual presentation

Upgrade to Premium

Auction Browser

DonutAuctionHouse provides an inventory-based marketplace designed to be simple for players to understand and fast to navigate.

The auction browser includes:

  • 54-slot inventory interface
  • Pagination for large auction inventories
  • Price sorting
  • Category filtering
  • Text search
  • Manual refresh controls
  • Personal listing access
  • Clear auction status information

Players do not need to memorize complicated command syntax to browse and purchase items.

Player Auction Management

Players can manage their own listings directly through the plugin.

Supported listing states include:

  • Active auctions
  • Sold auctions
  • Expired auctions

Players can:

  • View their current listings
  • Cancel active auctions
  • Collect items from expired listings
  • Track sold listings
  • Recover cancelled items immediately

Cancellation logic is designed to return items safely while preventing duplication exploits.

Economy

DonutAuctionHouse integrates with Vault, allowing it to work with Vault-compatible economy plugins.

Features include:

  • Instant payment handling during purchases
  • Economy-backed listing transactions
  • Configurable maximum listing price
  • Configurable listing duration
  • Compatibility with common Vault economy providers such as EssentialsX

A compatible Vault economy provider is required for monetary transactions.

Storage

DonutAuctionHouse supports multiple storage options depending on the size of the server.

SQLite

SQLite is the default storage option and is ideal for:

  • Small servers
  • Simple installations
  • Servers that do not require an external database

It works out of the box without requiring separate database infrastructure.

MySQL

MySQL can be used for larger installations and server networks.

MySQL support includes:

  • External database storage
  • HikariCP connection pooling
  • Better suitability for larger networks
  • High-performance connection management

DonutCore Integration

DonutCore support is completely optional.

When DonutCore is installed:

  • Player names in auction listings can use the network's display-name system
  • Listings can better match the identity system used across the network

When DonutCore is not installed, DonutAuctionHouse continues working normally without errors or hard dependencies.

Performance & Safety

DonutAuctionHouse is designed to keep database work away from the main server thread.

The plugin includes:

  • Asynchronous database operations
  • Executor-based task handling
  • Server-responsive storage access
  • Safe cancellation behavior
  • Protection against common duplication scenarios
  • Architecture designed with modern Paper threading practices in mind

Development

DonutAuctionHouse uses a modern Java plugin architecture.

Technical details include:

  • Java 17
  • Maven build system
  • Modular service architecture
  • Dedicated storage layer
  • GUI abstraction
  • Optional hook system
  • Shaded dependencies
  • Namespaced dependencies to reduce plugin conflicts
  • Codebase designed to be extended or forked for custom behavior

Configuration

DonutAuctionHouse is designed to be configurable for different server economies and marketplace styles.

Depending on the version, configurable options may include:

  • Maximum auction price
  • Listing duration
  • Database type
  • MySQL connection information
  • Inventory titles
  • Button names
  • Messages
  • Marketplace appearance

The interface uses neutral white text with gold headers for improved clarity.

Why Choose DonutAuctionHouse?

  1. Easy Setup — Drop the plugin jar into your plugins folder, configure a few values, and use the default SQLite storage immediately.
  2. Low Overhead — Lightweight architecture with shaded and namespaced dependencies helps avoid unnecessary plugin conflicts.
  3. Player-Friendly UI — Inventory-based controls make listing, browsing, searching, and purchasing straightforward.
  4. Robust & Safe — Built with duplication prevention, race-condition awareness, and asynchronous server performance in mind.
  5. Flexible Integration — Suitable for both smaller servers and larger networks using Vault, MySQL, and optional DonutCore integration.
  6. Extensible Foundation — Modular architecture makes it easier for developers and server owners to customize or expand the plugin.

Compatibility

  • Paper
  • Folia
  • Minecraft 1.20+
  • Vault-compatible economies
  • SQLite
  • MySQL
  • Small standalone servers
  • Larger server networks

Requirements

DonutAuctionHouse requires a supported Paper or Folia server.

For economy functionality, install:

  • Vault
  • A Vault-compatible economy plugin

DonutCore is optional and is only used for enhanced player display-name integration.

Community & Support

If you encounter a bug or have a feature request, please join the Discord community or report it through the appropriate project page.

License

Donut Auction is licensed under the Apache License 2.0.

You are free to use, modify, and redistribute Donut Auction in accordance with the terms of the Apache License 2.0.

Feel free to include Donut Auction in modpacks

Join the Nightbeam Community

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.3 26.2 26.1.x +2
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.3 26.2 26.1.x +2
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.3 26.2 26.1.x +2
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.2 26.1.x 1.21.x +1
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.2 26.1.x 1.21.x +1
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.2 26.1 1.21.x +1
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.2 26.1.x 1.21.x +1
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.2 26.1.x 1.21.x +1
Folia
22h ago 1
26.2 26.1.x 1.21.x +1
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.1.x 1.21.x 1.20.x
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.1.x 1.21.x 1.20.x
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.1.x 1.21.x 1.20.x
Bukkit Folia Paper Purpur Spigot
22h ago 1
26.1.x 1.21.x 1.20.x
Bukkit Folia Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x
Bukkit Folia Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x
Bukkit Folia Paper Purpur Spigot
22h ago 1
[1.6.0] 1.6.0 by NAIZO on Oct 12, 2026
Download
# DonutAuctionHouse v1.6.0

## Features

  • Optional compact k/M browse and Your Items prices. Disabled by default; existing economy formatting and config values are preserved. Configure suffixes, 0-6 fractional digits, locale, and currency template. Display rounding never changes stored prices or payments.
  • Buy/sell confirmations show the provider's formatted price and every decimal digit of the amount.
  • A book in the auction browser opens private, read-only Bought/Sold history. Includes previous/next pages, Refresh, Back, item, precise price, date/time zone, and seller/buyer. Unknown names fall back to UUIDs; unavailable item metadata uses a placeholder.
  • History queries enforce viewer ownership in the service/database path and run asynchronously. Stale results cannot reopen a menu after navigation or disconnect.

## Fixes

  • Reject non-finite prices such as NaN, and reject out-of-range sell command prices before removing the held item. Invalid prices are no longer silently clamped into a different listing price.
  • Database index initialization uses portable metadata checks rather than MySQL-unsupported CREATE INDEX IF NOT EXISTS syntax. Migration errors are reported instead of being hidden.

  • A price-provider or confirmation-formatting failure after payment and item delivery now returns a safe success message. Completed purchase claims cannot be reopened by a late release attempt.

## Upgrade and data

  • Replace the jar and restart. Keep existing config, messages and database files; back up the database before upgrades. New settings/default messages are added without resetting custom values.
  • History reuses the existing auctions table and adds one purchase_completed flag. Legacy SOLD records remain visible; new pre-payment claims and failed purchases are excluded. No parallel ledger or payment mechanism is introduced.
  • Completion bookkeeping runs after existing payment/item delivery and cannot undo settlement. If the database fails at that point, a record may be absent; the server logs its auction ID. Legacy versions cannot distinguish old crash-interrupted SOLD claims from completed sales.

## Verification and compatibility

  • Java 17 bytecode and Paper 1.20.1 API target retained; JDK 21 builds supported.
  • Store support matrix retained: Paper, Folia, Purpur, Spigot and Bukkit, Minecraft 1.20.1 through 26.3.
  • Unit, registered Bukkit command/GUI event, native SQLite, history privacy/pagination/migration, and settlement regressions are included. CI also checks Java 17/21 and native MySQL.
  • Isolated headless Paper 1.20.1 and 26.3 probes passed startup, item serialization, formatting and database history. Real-client visual checks, every intermediate server/version, and multi-server Folia/Vault tests have not been run. Folia's official download API did not provide a 26.3 build during verification.
  • The customer's /ah sell <price> browser-opening report has no proven customer-specific cause. A foreign /ah alias collision reproduces the symptom; the namespaced /donutauctionhouse:ah sell <price> routes correctly in tests. This release does not claim that unresolved report is fixed. Please provide plugin/server versions, exact command, held item, namespaced comparison and logs.

[1.5.2] 1.5.2 by NAIZO on Oct 12, 2026
Download
# DonutAuctionHouse v1.5.2

### Fixes
  • Browse GUI previous-page control restored (slot 46). Sell held item stays at slot 45; next page stays at slot 53.
  • After leaving page 1, players can go back without disconnecting.
  • Page arrows show page/totalPages and the total listing count.
  • Changing sort, filter, or search returns the browse session to page 1.
  • Browse pagination clamps the page to at least 1.

### Compatibility
  • Paper and Folia, Minecraft 1.20.1 through 26.3, Java 17.

### Upgrade Notes
1. Replace the jar. Keep existing plugins/DonutAuctionHouse/ data.
2. Restart the server (or /ah reload after replacing the jar if you only need new messages.yml keys; a restart is still recommended).

[1.5.1] 1.5.1 by NAIZO on Oct 12, 2026
Download
# DonutAuctionHouse v1.5.1

### Improvements
  • Store tags extended to Minecraft **26.3**.

### Compatibility
  • Paper and Folia, Minecraft 1.20.1 through 26.3, Java 17.
  • Legacy support for 1.20.1–26.2 is unchanged.

### Upgrade Notes
1. Replace the jar. Keep existing plugins/DonutAuctionHouse/ data.
2. Restart the server.

[1.5.0] 1.5.0 by NAIZO on Oct 12, 2026
Download
# DonutAuctionHouse v1.5.0

### New Features
  • Optional Redis listing notifications for multi-server networks (sync.redis in config.yml, off by default).
  • MySQL poll fallback so sold listings disappear on other nodes even without Redis.

### Improvements
  • Purchase, cancel, and expire now claim the database row before changing local cache.
  • Vault withdraw/deposit for a claimed purchase runs on the buyer’s Folia entity thread.

### Bug Fixes
  • Buying an auction on one Folia server while MySQL is shared no longer leaves the listing buyable on another server.

### Configuration
  • sync.poll-interval-seconds (default 3, MySQL only; 0 disables).
  • sync.redis.enabled, host, port, password, channel.

### Compatibility
  • Paper and Folia, Minecraft 1.20.1 through 26.2, Java 17.
  • SQLite single-server behavior is unchanged when Redis is disabled.

### Upgrade Notes
1. Replace the jar. Keep existing plugins/DonutAuctionHouse/ data.
2. For a network: set storage.type: MYSQL on every node to the same database.
3. Optional: set sync.redis.enabled: true on every node with the same channel.
4. Restart each node. Confirm a buy on server B removes the listing from /ah on server A and a second buy is refused.

[1.4.0] 1.4.0 by NAIZO on Oct 12, 2026
Download
  • bStats metrics (plugin ID 33523), disable with metrics.enabled: false
  • Store tags: Paper, Folia, Purpur, Spigot, and Bukkit for Minecraft 1.20.1–26.2
  • Modrinth update check always reports on load (console + online admins): up to date or update available
  • Admins with donutauction.update.notify still see update notices on join when a newer release exists
  • Chat search uses Bukkit AsyncPlayerChatEvent; scheduler falls back when region schedulers are absent
[1.3.1] 1.3.1 by NAIZO on Oct 12, 2026
Download
# DonutAuctionHouse v1.3.1

### New Features
  • None

### Improvements
  • Full messages.yml translation support for GUI titles, button labels, lore, chat messages, command text, and status labels
  • /ah reload now reloads messages.yml alongside config.yml
  • Prefix and minimum-price messages can live in messages.yml (legacy config.yml keys still work)

### Bug Fixes
  • None

### Configuration
  • New messages.yml — edit and /ah reload to translate the plugin without recompiling
  • Existing config.yml messages.prefix and messages.price-below-min remain supported as fallbacks

### Compatibility
  • Drop-in update from 1.3.0
  • Folia-supported unchanged
  • No database migration required
  • No command or permission changes

### Upgrade Notes
1. Replace the jar with DonutAuctionHouse-1.3.1.jar
2. Restart the server (or /ah reload after first start to generate messages.yml)
3. Edit plugins/DonutAuctionHouse/messages.yml to translate player-facing text

[1.3.0] 1.3.0 by NAIZO on Oct 12, 2026
Download
# DonutAuctionHouse v1.3.0

### New Features
  • Sell from auction GUI** — emerald "Sell Held Item" button on the main auction house (slot 45) lists the item in your main hand
  • Adjustable sell price** — use +/- buttons in the sell GUI before confirming a listing

### Improvements
  • Sell GUI enlarged to 45 slots with confirm/cancel on the bottom row (slots 40 and 44)
  • Confirm purchase GUI enlarged to 45 slots with a gray border, centered item preview, and buyer balance display
  • Sell flow logic shared between /ah sell and the auction GUI button
  • Maven publish workflow supports target/ jars with Paper/Folia/Bukkit loader tags

### Bug Fixes
  • Fixed sell GUI confirm/cancel buttons overlapping duration and category controls
  • Fixed item duplication when closing and reopening the sell menu during duration/category/price changes
  • Pending sale is no longer cancelled when the sell GUI refreshes itself

### Configuration
  • None

### Compatibility
  • Drop-in update from 1.2.2
  • Requires Vault **or** VaultUnlocked plus an economy plugin
  • Folia-supported remains enabled
  • No database migration required
  • No permission changes

### Upgrade Notes
1. Install DonutAuctionHouse-1.3.0.jar (replace 1.2.2)
2. Restart the server
3. Open /ah and use the emerald button or /ah sell <price> to list items from your hand

### Improvements
  • Economy bridge detection now supports **VaultUnlocked** in addition to classic **Vault**
  • Clearer startup logs when a Vault-compatible Economy service is linked or missing
  • Soft-disables cleanly when no Economy provider is registered instead of throwing on enable

### Bug Fixes
  • Fixed Folia / VaultUnlocked servers failing to load DonutAuctionHouse with “Vault isn’t on the server”
  • Removed hard depend: Vault so the plugin can enable when only VaultUnlocked is installed
### Improvements
  • Sell confirmation now uses atomic pending-sale transactions with unique IDs so an item is owned by only one state at a time (inventory, pending sale, or active auction)
  • Confirm, cancel, inventory close, disconnect, and shutdown recovery are idempotent against double-clicks, lag, and repeated callbacks
  • Cancel and collect actions on existing auctions use operation locks to prevent double item returns
  • Failed listing validation now safely restores the item (with ground drop if the inventory is full)
  • Added sampled debug logging for invalid/repeated pending-sale claims (debug.pending-sales)

### Bug Fixes
  • Fixed item duplication when cancelling /ah sell confirmation (Cancel, GUI close, duration/category re-open, double-click, or disconnect could return the item more than once)
  • Pending sell items are now returned correctly on player quit and server shutdown

### Configuration
  • debug.pending-sales (default: false) — when true, logs every invalid/repeated pending-sale claim; when false, samples only
## Quality of Life & Marketplace Expansion Update

### Feature 1 — Permission-Based Auction Limits

Configurable permission-based auction limits with highest-permission-wins resolution.

  • New permissions:**
  • donutauction.limit.5 (default: true)
  • donutauction.limit.10
  • donutauction.limit.25
  • donutauction.limit.50
  • donutauction.limit.100
  • donutauction.limit.unlimited (-1)

  • New command:** /ah limit — displays your current limit, active listings, and remaining slots.

  • Config:**
``yaml
auction-limits:
enabled: true
default-limit: 5
permissions:
donutauction.limit.10: 10
donutauction.limit.25: 25
donutauction.limit.50: 50
donutauction.limit.100: 100
donutauction.limit.unlimited: -1
`

### Feature 2 — Preserve Original Item Lore

New configurable lore system that preserves original item lore from custom item plugins.

  • Lore modes:**
  • APPEND — Adds auction info below existing lore (default)
  • REPLACE — Replaces lore entirely (legacy behavior)
  • DISABLED — Does not modify lore at all

  • Config:**
`yaml
auction-lore:
mode: APPEND
separator: true
`

  • Compatible with:** MMOItems, Oraxen, ItemsAdder, EcoItems, ExecutableItems, MythicMobs, and any custom item plugin using ItemMeta/NBT.

### Feature 3 — Fast Buy System

Instant purchase mode that skips the confirmation GUI.

  • New permission:** donutauction.fastbuy

  • New command:** /ah fastbuy — toggles fast buy mode.

  • Config:**
`yaml
fast-buy:
enabled: true
default-state: false
require-permission: true
`

  • Behavior:**
  • Normal: Click item → Confirm Purchase → Purchase Complete
  • Fast Buy: Click item → Purchase Complete
  • Setting persists across reconnects and server restarts.

### Feature 4 — Fast Sell System

Instant listing mode that uses stored settings.

  • New permission:** donutauction.fastsell

  • New command:** /ah fastsell — toggles fast sell mode.

  • Config:**
`yaml
fast-sell:
enabled: true
default-state: false
require-permission: true
`

  • Behavior:**
  • Normal: /ah sell <price> → Sell GUI for duration/category selection
  • Fast Sell: /ah sell <price> → Listed immediately using last settings
  • Automatically remembers last duration, category, and price.

### Feature 5 — Shulker Box Support

Full shulker box support with content preview.

  • Config:**
`yaml
shulker-support:
enabled: true
preview-contents: true
`

  • Features:**
  • Preserves all contents, NBT, names, lore, enchantments, colors, and custom metadata.
  • Right-click any shulker box in the auction to preview its contents.
  • Read-only preview GUI prevents extraction while listed.
  • No duplication exploits.

### Feature 6 — Modrinth Update Checker

Modern update checker using the Modrinth API.

  • Config:**
`yaml
update-checker:
enabled: true
notify-console: true
notify-admins: true
check-interval-hours: 12
`

  • New permission:** donutauction.update.notify

  • Behavior:**
  • Checks asynchronously, never blocks startup.
  • Caches results, handles rate limits and API downtime.
  • Notifies console on enable if update available.
  • Notifies admins on join if update available.

### Feature 7 — Auction Slot Expansion

Additional monetization-friendly slot permissions.

  • New permissions:**
  • donutauction.slots.10
  • donutauction.slots.25
  • donutauction.slots.50
  • donutauction.slots.100

  • Config:**
`yaml
auction-slots:
enabled: true
permissions:
donutauction.slots.10: 10
donutauction.slots.25: 25
donutauction.slots.50: 50
donutauction.slots.100: 100
`

### Performance Improvements

  • All database operations now use the plugin's named async executor instead of the default ForkJoinPool.
  • Operation lock cleanup prevents memory leaks from accumulated auction locks.
  • Fire-and-forget DB updates now include exception logging.
  • Search performance optimized with cached plain-text names.

### Security & Stability Fixes

  • CRITICAL:** Fixed item duplication exploit where server crash during purchase could duplicate items.
  • CRITICAL:** Fixed item duplication exploit where server crash during cancellation could duplicate items.
  • CRITICAL:** Fixed item duplication exploit where server crash during item collection could duplicate items.
  • All inventory/economy actions now happen **after** database persistence succeeds.
  • Failed purchases now refund money automatically.
  • Failed cancellations now restore auction state automatically.
  • Failed collections now restore auction state automatically.

### New Permissions Summary

| Permission | Description |
|---|---|
|
donutauction.use | Access to the auction house |
|
donutauction.sell | Allows selling items |
|
donutauction.admin | Administrative controls |
|
donutauction.fastbuy | Toggle fast buy mode |
|
donutauction.fastsell | Toggle fast sell mode |
|
donutauction.update.notify | Update notifications |
|
donutauction.limit.5 | 5 listing limit |
|
donutauction.limit.10 | 10 listing limit |
|
donutauction.limit.25 | 25 listing limit |
|
donutauction.limit.50 | 50 listing limit |
|
donutauction.limit.100 | 100 listing limit |
|
donutauction.limit.unlimited | Unlimited listings |
|
donutauction.slots.10 | 10 slot expansion |
|
donutauction.slots.25 | 25 slot expansion |
|
donutauction.slots.50 | 50 slot expansion |
|
donutauction.slots.100 | 100 slot expansion |

### New Commands Summary

| Command | Description |
|---|---|
|
/ah limit | View your auction limit and remaining slots |
|
/ah fastbuy | Toggle fast buy mode |
|
/ah fastsell | Toggle fast sell mode |

### Migration Notes from 1.1.0 → 1.2.0

  • Existing configs are safely updated with new defaults on startup.
  • A new player_preferences table is created automatically for fast buy/sell settings.
  • Existing donutcore.* permissions continue to work alongside new donutauction.* permissions.
  • Existing auction data is fully compatible — no data migration required.
  • The lore system defaults to APPEND mode. Set to REPLACE` to preserve 1.1.0 behavior.

## Minimum Auction Price

A new configurable minimum listing price has been added to reduce auction spam.

### New config options

``yml
auction:
min-price: 10

messages:
price-below-min: '&cMinimum auction price is &6%min_price%&c.'
``
  • Greatly reduced file size.
  • Resolved an issue where clicking Next Page on /ah always returned to page 1.
  • fixed a bug that caused the filter not to refresh on close.
  • First Release
Donut Auction Icon
Download Donut Auction
Select game version
Select platform