Перейти к содержимому
Mineforgian

Donut Auction

a Donut Auction House plugin for Paper/Folia servers inspired by DonutSMP.

Загрузки
30K
Подписчики
19
Обновлён
19 августа 2026 г.
Лицензия
Apache-2.0

Опубликован 7 марта 2026 г.

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.

Discord 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

Ченджлог

1.4.0Релиз26.1.1, 26.1.2, 26.2 · 19 августа 2026 г.
  • 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.21.8, 26.1, 26.2 · 10 августа 2026 г.

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Релиз26.1.1, 26.1.2, 26.2 · 29 июля 2026 г.

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
1.2.2Релиз26.1.1, 26.1.2, 26.2 · 28 июля 2026 г.

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
1.2.1Релиз26.1.1, 26.1.2, 26.2 · 10 июля 2026 г.

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
1.2.0Релиз26.1, 26.1.1, 26.1.2 · 8 июня 2026 г.

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:

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:

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:

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:

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:

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:

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:

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.
1.1.0Релиз26.1, 26.1.1, 26.1.2 · 28 апреля 2026 г.

Minimum Auction Price

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

New config options

auction:
  min-price: 10

messages:
  price-below-min: '&cMinimum auction price is &6%min_price%&c.'
1.0.3Релиз1.21.11, 26.1, 26.1.1 · 4 апреля 2026 г.
  • Greatly reduced file size.

Комментарии

Загружаем…