
EzAuction
Menu-first marketplace with listings, buy orders, and async safety nets
- Загрузки
- 2K
- Подписчики
- 3
- Обновлён
- 26 мая 2026 г.
- Лицензия
- MIT
Опубликован 22 декабря 2025 г.
EzAuction is a complete, GUI-driven auction house plugin for Paper, Spigot, Purpur, and Bukkit Minecraft servers. Players list items for timed sale, create reserve-balance buy orders, and compete in real-time live broadcast auctions – all through smooth, paginated menus backed by Vault economy, MySQL or YAML persistence, PlaceholderAPI support, and optional Discord webhook notifications.
Whether you run survival, skyblock, SMP, or factions, EzAuction handles your server economy: timed listings, offline-safe item returns, enchantment-aware search, live auction sessions with one-click bidding, and team-scoped auctions via TeamsAPI.
| Platforms | Paper, Spigot, Purpur, Bukkit 1.13 – 26.1.* |
| Java | 21+ |
| Storage | YAML (built-in) · MySQL |
| Languages | English · Dutch · Spanish · Chinese |
| Dependencies | Vault + any economy plugin |
Requires Vault and a compatible economy plugin such as EzEconomy to process currency.
What's New – v2.3.0
Live Auction Overhaul
- Live auction seller management – Players with
ezauction.auction.live.sellcan now queue items directly from the Live Auction browser (sell button in the GUI) or via/liveauction sell. On enqueue, a chat message confirms the queue position./liveauction cancelremoves the entry and refunds the deposit; a cancel button also appears in the GUI while the player has a queued entry. Admins withezauction.auction.live.admincan force-cancel any active auction with/liveauction cancel <id>. /bidcommand (alias/livebid) – Dedicated command for live auction interactions: place bids (/bid <amount>), view session status, and manage per-player countdown preferences. Bids can also be placed by clicking the suggestion in the live auction chat message.- Per-player notification preferences – Toggle countdowns with
/bid notify [on|off]and select display type with/bid notify display <types…>. Preferences persist across restarts inlive-preferences.yml(or a MySQL table). - EzCountdown integration (optional soft-dependency) – Display live auction countdowns via
ACTION_BAR,BOSS_BAR,TITLE,SCOREBOARD, orCHAT. - Clickable bid messages & item hover previews – The bid announcement in chat links directly to
/bid <next-minimum>; hovering the item name shows enchantments, potion effects, and shulker box contents on hover. - Five new Bukkit events –
LiveAuctionStartedEvent(cancellable),LiveAuctionBidPlacedEvent(cancellable),LiveAuctionEndedEvent,LiveAuctionPlayerJoinedEvent,LiveAuctionPlayerLeftEvent. - Live Auctions shortcut in Auction House – A quick-access beacon button (slot 47) in the main
/auctionbrowser opens the Live Auction picker directly, without having to type/liveauction.



Fixes & Other Additions
- Claim GUI –
/auction claimand the Claims button in the browser now open a 54-slot GUI showing each pending return item with its expiry date displayed in the item lore. A single Claim All button collects everything at once; a Back button returns to the auction browser. - Configurable claim expiry – Set
claim.expiry-daysinauction.yml(default7) to control how many days pending return items are held before expiry is shown in the Claim GUI. - First-bid minimum fix – The opening bid on a live auction now only requires the starting price; the increment is applied to subsequent bids only. Sending an empty
/bidresponse automatically places the minimum bid.
Why Use EzAuction?

- Menu-first trading – Paginated browsers, sell/order editors, and confirmation popups keep every transaction guided and click-friendly.
- Listings + buy orders – Run timed sales, reserve balance for buy requests, and fulfill either side straight from the GUI or command flow.


- Team auctions – TeamsAPI integration lets team members co-list and co-claim auctions, perfect for faction and skyblock economies.

- Async persistence & fallbacks – Listings and history write through dedicated executors, automatically falling back to YAML storage if MySQL is unreachable.
- Offline-safe returns – Expired or undeliverable items go to a claimable stash with login reminders and
/auction claimrecovery. - Rank-aware limits – Plug in a custom
AuctionListingLimitResolverservice to scale slot caps with ranks, islands, or progression data. - Smart value overlays – Surface configured price hints or pipe in EzShops buy/sell estimates directly into menu lore.

Feature Highlights
- Configurable menus & translations – Override browser/confirm layouts, filler glass, and button text across the bundled English, Dutch, Spanish, and Chinese menu files.
- Flexible storage – Start on lightweight YAML or flip to production-ready MySQL with connection pooling, SSL flags, and table prefixes.
- Asynchronous history – Background save queues batch player history writes to keep gameplay responsive, even during heavy auction traffic.
- Player protections – Deposit refunds, balance checks, expiry sweeps, and inventory-aware delivery prevent dupes and lost currency.
- PlaceholderAPI support – Drop
%ezauction_*%placeholders into scoreboards, holograms, or chat to surface active listings, orders, limits, and pending returns. - Integration-ready API – Register Bukkit services to override listing caps or provide custom value providers without forking the plugin.
- Enchant-aware search – Search
sharpness v,fortune 3, orminecraft:lootingto find listings and buy orders carrying exact enchantment stacks - supports roman numerals, numeric levels, namespaced keys, and underscore/space variants. - Shulker box previews – Buyers can inspect shulker contents directly from the auction browser before purchasing.

Discord Integration
- Standalone webhook – Post colour-coded embed notifications to any Discord channel by pasting a webhook URL into
discord.yml. No DiscordSRV or bot setup required. - DiscordSRV support – Optionally route notifications through an existing DiscordSRV installation with optional account-linking and role-gating per event.
- Four event types – Receive a message whenever an auction is listed, sold, bid on, or cancelled, each styled with its own accent colour (green / blue / yellow / red).
- Live admin commands – Configure, enable, disable, and test the webhook in-game with
/auctiondiscord webhook- changes take effect instantly without a restart. - Async & non-blocking – All HTTP calls run on a background thread; a failed delivery is logged at WARNING level and never interrupts gameplay.
Discord Webhook Quick Setup
- Open the target Discord channel → Edit Channel → Integrations → Webhooks → New Webhook → Copy Webhook URL.
- In-game or via console, run:
/auctiondiscord webhook set url https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN - Verify with
/auctiondiscord webhook test- a test embed will appear in your channel immediately.
# discord.yml - webhook section
webhook:
enabled: true
url: "https://discord.com/api/webhooks/123456789/YOURTOKEN"
username: "EzAuction"
use-embeds: true
events:
auction_start: true
auction_end: true
auction_bid: true
auction_cancel: true
For the full DiscordSRV integration guide and all options, see the Discord integration docs.
Hologram Features
- Auction holograms – Place interactive holograms in the world to display live auction stats, top listings, or buy order summaries. Supports click/touch interaction for quick info and future actions.
- Performance optimized – Configurable max hologram count and batch update options ensure smooth gameplay even with many holograms active.
- Permission and proximity controls – Optionally restrict hologram visibility and interaction by permission node or player proximity (distance).
- Configurable types – Choose which auction stats or listings to display via hologram type selection.
Hologram Configuration
holograms:
enabled: true
update-interval-ticks: 100
search-radius: 2.5
height-offset: 1.75
max-holograms: 100
batch-update: true
require-permission: false # Set true to require a permission node
view-permission: ezauction.hologram.view # Permission node for viewing/interacting
proximity-limit: false # Set true to restrict by distance
proximity-distance: 32.0 # Max distance for interaction
Quick Start
- Upload
EzAuction.jar, restart your Paper or Purpur server, and confirm Vault plus an economy plugin are active. - Edit
plugins/EzAuction/auction.ymlfor pricing rules, durations, and GUI slots, adjustauction-storage.ymlfor YAML/MySQL persistence, and updateauction-values.ymlormessages/menu-interactions_*.ymlas needed. - Choose between YAML or MySQL storage, then grant players
ezauction.auction(and optional sell/order/history nodes) so they can browse and trade. - Encourage
/auction historyso buyers and sellers can audit their latest activity right from chat.
Live Auctions

- Queue the spotlight listings – Flip
live-auctions.enabledon (andqueue-enabledif you want a rolling lineup) so fresh sales are staged for broadcast and visible through/liveauction. - Sell from the GUI – The Live Auction browser shows a sell button for players with
ezauction.auction.live.sell. One click opens the sell menu pre-configured for the live queue – no command needed. - Queue position feedback – After queuing an item, the seller receives a chat confirmation with their position number. If the queue is disabled, the auction starts immediately and a different confirmation is shown.
- Cancel anytime – A cancel button appears in the GUI while the player has a queued entry; clicking it (or running
/liveauction cancel) dequeues the item and refunds the deposit. - Admin force-cancel – OPs and players with
ezauction.auction.live.admincan stop an active auction immediately via/liveauction cancel <auction-id>. All bids are refunded and the item is returned to the seller. /bidcommand – Bidders place bids with/bid <amount>or by clicking the clickable suggestion in chat./bid notifyand/bid notify displaymanage per-player countdown preferences.- Hype them in chat – Keep
display-in-chatenabled to broadcast live listings everyannouncement-interval-ticksticks with clickable bid links and hover previews on the item name.


- Curate from the live menu – The Live Auctions GUI shows queue position, seller names, price summaries, and highlights your own entry with a badge and enchant glow.
Commands & Permissions
| Command | Description | Permission |
|---|---|---|
/auction |
Open the auction browser, claim items, and cancel listings. | ezauction.auction |
/auction sell <price> [duration] |
List the held item instantly or open the sell GUI. | ezauction.auction.sell |
/auction order <price> <amount> [duration] |
Create a buy order with reserved funds. | ezauction.auction.order |
/auction cancel [id] |
Review and cancel active listings or buy orders. | ezauction.auction |
/auction history [buy/sell] |
Show the latest transactions for each category. | ezauction.auction.history |
/auction live |
Preview upcoming live auction broadcasts and refresh the queue. | ezauction.auction.live |
/liveauction |
Open the live auction viewer. | ezauction.live |
/liveauction sell |
Queue the held item for the live auction. | ezauction.auction.live.sell |
/liveauction cancel |
Cancel your own queued live auction entry and receive a deposit refund. | ezauction.auction.live.sell |
/liveauction cancel <id> |
Force-cancel an active live auction by ID. Refunds all bidders and returns the item. (Admin) | ezauction.auction.live.admin |
/bid [amount] |
Place a bid or view session status in an active live auction. | ezauction.bid |
/auction claim |
Withdraw stored return items. | ezauction.auction |
/auction search <query> |
Open the auction browser filtered by item name, enchantment, or keyword. | ezauction.auction.search |
/auctionhologram <create/remove/list> [args] |
Manage auction holograms: create, remove, or list in-world auction displays. | ezauction.hologram.manage |
Setup Guide
Installation & Configuration
Need more details? See the full documentation for all YAML, MySQL, menu, and advanced settings options.
Requirements
| Requirement | Notes |
|---|---|
| Java 21+ | Matches the Paper 1.21+ API target used by EzAuction. |
| Paper / Spigot / Purpur 1.21+ | The plugin relies on Paper-compatible server APIs. |
| Vault | Provides the economy bridge for deposits, buy orders, and payouts. |
| Economy plugin (recommended: EzEconomy) | A Vault-compatible provider is required. EzEconomy is recommended for best compatibility and modern features. |
| Optional: EzShops | Unlock live value overlays via values.mode = ezshops-buy or ezshops-sell. |
| Optional: Custom limit resolver | Expose AuctionListingLimitResolver as a Bukkit service to scale listing caps. |
| Optional: Menu localisation overrides | Duplicate the bundled _nl, _es, or _zh menu files to keep translations in sync with your branding. |
Configuration Overview
- Storage selection – Toggle
storage.typebetweenyamlandmysql; MySQL connections support SSL flags and pool tuning. - Menus –
menu.browserandmenu.confirmcontrol inventory sizes, filler panes, and navigation slots across all language variants. - Sell & order editors – Configure default price suggestions and click adjustments for both listing and buy-order editors.
- Listing rules – Clamp durations, enforce minimum pricing, schedule custom duration options, and reserve refundable deposits, with automatic executor-based expiry sweeps.
- Menu interactions – Tweak click increments, confirmation buttons, and chat prompts through
messages/menu-interactions_*.ymlper locale. - Live auctions – Manage
live-auctions.enabled,queue-enabled,display-in-chat, andannouncement-interval-ticksto stage listings for announcements or GUI previews. - Value display – Display configured material prices or EzShops-sourced estimates, templated through
values.format.
Optional Integrations
- Expose a custom
AuctionListingLimitResolverservice to scale listing caps with ranks, islands, or other progression data. - Install EzShops so the auction browser can display buy or sell prices directly in listing lore when configured.
- Install PlaceholderAPI to unlock
%ezauction_*%placeholders for leaderboards, scoreboards, or Discord relays.
Network Setup (Bungee/Velocity)
- Switch
storage.typetomysqland point each Paper/Purpur backend to the same credentials so listings, buy orders, and returns are stored centrally. The bundled MySQL driver implementsDistributedAuctionListingStorageso inserts and claims remain atomic across servers. - Drop the same
EzAuction.jaron every gameplay server behind your proxy, then copy a single set of tuned configs (auction.yml,auction-storage.yml,messages/*.yml) to keep menus, limits, and language consistent network-wide. - Restart each backend (avoid /reload) after editing the configs so every instance warms its cache from MySQL before players join. The manager only serves listings once storage is marked ready.
- If a lobby should not show auctions, leave EzAuction off that node or point it at a different
table-prefixso it maintains a separate pool. - Confirm every server shares the same Vault economy provider or synchronised balance backend. Currency withdrawals happen locally, so mismatched economy data across nodes can desync deposits and reserved funds.
Bundled menu translations
- EzAuction ships with
menu-layout_*.ymlandmenu-interactions_*.ymlbundles for English, Dutch, Spanish, and Chinese (_en,_nl,_es,_zh). - Copy any bundle to another locale tag (for example
_de) to introduce custom language support without touching code. - Keep button text consistent across languages so navigation slots and confirmation buttons remain aligned with the GUI configuration.
Custom listing limit resolver example
package com.example.auctionlimits;
import com.skyblockexp.ezauction.api.AuctionListingLimitResolver;
import org.bukkit.Bukkit;
import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.java.JavaPlugin;
public final class AuctionLimitPlugin extends JavaPlugin {
@Override
public void onEnable() {
saveDefaultConfig();
AuctionListingLimitResolver resolver = (sellerId, baseLimit) -> {
int bonus = getConfig().getInt("extra-slots." + sellerId.toString(), 0);
return Math.max(0, baseLimit + bonus);
};
Bukkit.getServicesManager().register(
AuctionListingLimitResolver.class,
resolver,
this,
ServicePriority.Normal
);
}
@Override
public void onDisable() {
Bukkit.getServicesManager().unregisterAll(this);
}
}
name: AuctionLimitPlugin
version: 1.0.0
main: com.example.auctionlimits.AuctionLimitPlugin
loadbefore: [EzAuction]
# plugins/AuctionLimitPlugin/config.yml
extra-slots:
123e4567-e89b-12d3-a456-426614174000: 2
2a2f4982-0c7a-4f13-86a1-4f85c4a94cf7: 4
This companion plugin registers before EzAuction enables and adds any configured bonus slots per player UUID on top of EzAuction's base limit. Update the UUID keys or compute the bonus however you like to reflect your network's progression rules.
Configuration at a Glance
auction.yml
storage:
type: yaml # or mysql
mysql:
host: localhost
port: 3306
database: skyblock
username: root
password: secret
use-ssl: true
table-prefix: ezauction_
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout-millis: 10000
idle-timeout-millis: 600000
max-lifetime-millis: 1800000
menu:
browser:
title: "&2Auction House &7({page}/{total_pages})"
size: 54
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: "&8 "
navigation:
previous-slot: 45
close-slot: 49
next-slot: 53
empty-listing-slot: 22
confirm:
title: "&2Confirm Purchase"
size: 27
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: "&8 "
confirm-slot: 11
listing-slot: 13
cancel-slot: 15
listings:
default-duration-hours: 24
max-duration-hours: 72
minimum-price: 10.0
listing-deposit-percent: 5.0
max-listings-per-player: 3
live-auctions:
enabled: false
queue-enabled: true
display-in-chat: true
announcement-interval-ticks: 200
values:
enabled: false
format: "&7Value: &6{value}"
materials:
diamond: 2500.0
auction-storage.yml
type: yaml # or mysql
mysql:
host: localhost
port: 3306
database: skyblock
username: root
password: secret
use-ssl: true
table-prefix: ezauction_
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout-millis: 10000
idle-timeout-millis: 600000
max-lifetime-millis: 1800000
auction-values.yml
enabled: false
mode: configured # or ezshops-buy / ezshops-sell
format: "&7Value: &6{value}"
materials:
diamond: 2500.0
Support & Links
- Discord: Join the EzPlugins server for help, bug reports, and release announcements.
- Documentation: ez-plugins.github.io/ezauction
- EzEconomy - Modern Vault economy plugin, recommended for best compatibility.
- EzShops - Dynamic player shops and GUI, integrates with EzAuction value overlays.
Ready to add an auction house to your Minecraft server?
Deploy EzAuction today - a polished, GUI-driven auction house plugin for Paper, Spigot, Purpur, and Bukkit. Download, drop in the jar, configure Vault, and your players are trading in minutes.
Ченджлог
2.3.1Релиз26.1, 26.1.1, 26.1.2 · 26 мая 2026 г.
Fixed
- Live auction escrow safety - fixed a critical payout edge case in live auction resolution. If the economy plugin fails to credit the seller when an auction ends, the winner's escrowed bid is now refunded immediately and the item is returned to the seller, preventing silent money loss.
- Live auction regression coverage - added dedicated end-auction tests for seller-credit failure and success paths to prevent escrow-loss regressions.
2.3.0Релиз26.1, 26.1.1, 26.1.2 · 25 мая 2026 г.
Added
- Live auction overhaul — complete rewrite of the live auction engine with new interactive features:
/bidcommand (alias/livebid) — dedicated command for all live auction interactions: place bids, join/leave sessions, and manage preferences. Bids can also be placed by clicking the suggestion in chat.- Clickable bid messages — the bid announcement in chat includes a clickable link that auto-fills
/bid <next-minimum>for one-click bidding. - Item hover previews — the item name in chat announcements shows enchantments, potion effects, and shulker box contents on hover.
- EzCountdown integration (optional soft-dependency) — configurable countdown display per-player via
ACTION_BAR,BOSS_BAR,TITLE,SCOREBOARD, orCHAT. Defaults to chat-only reminders when EzCountdown is absent or disabled. - Per-player notification preferences — players toggle notifications with
/bid notify [on|off]and choose display types with/bid notify display <types…>. Preferences persist across sessions (stored inlive-preferences.ymlor the MySQL table{prefix}live_player_preferences). - Live auction picker GUI —
/liveauctionopens a 54-slot inventory when multiple auctions are running, letting players select which one to join. - Opt-in chat filter — when
chat-filter-feature-enabled: true, players can run/bid mutechat onto suppress non-auction chat while in an active session. - Bidding configuration —
minimum-bid-increment-percentandminimum-bid-increment-fixedinauction.ymlcontrol the minimum raise required per bid. - Five new Bukkit events:
LiveAuctionStartedEvent(cancellable),LiveAuctionBidPlacedEvent(cancellable),LiveAuctionEndedEvent,LiveAuctionPlayerJoinedEvent,LiveAuctionPlayerLeftEvent. - New permissions:
ezauction.bid(default: true),ezauction.auction.live.notify(default: true).



- Live auction seller management — sellers can enter and manage the live queue directly from the GUI or commands:
- Sell button in the Live Auction GUI — a lit sell button (slot 44) appears in the live browser for players with
ezauction.auction.live.sell; clicking it opens the sell menu pre-configured for the live queue. A grey button is shown to players without the permission. /liveauction sell— command shortcut to open the live sell menu without navigating to the GUI first.- Queue position feedback — on enqueue, the seller receives a chat confirmation with their position (e.g. "Your Diamond Sword has been added to the live queue at position #2"). If the queue is disabled the auction starts immediately and a separate instant-start message is shown instead.
- Cancel button in the Live Auction GUI — a cancel button (slot 37) appears only while the viewer has a queued entry; clicking it dequeues the item and refunds the deposit.
/liveauction cancel— removes the sender's own item from the live queue and refunds the deposit./liveauction cancel <id>(admin) — force-cancels an active live auction by ID, refunds all bidders, and returns the item to the seller.- Duplicate-entry guard — players who already have an item queued receive an
already-queuedmessage and cannot enqueue a second entry until the first is sold or cancelled. - New permissions:
ezauction.auction.live.sell(default: true),ezauction.auction.live.admin(default: op).
- Sell button in the Live Auction GUI — a lit sell button (slot 44) appears in the live browser for players with
Fixed
- JaCoCo Java 25 compatibility — upgraded
jacoco-maven-pluginfrom0.8.12to0.8.13to resolveUnsupported class file major version 69during test instrumentation on JDK 25. - Live auction first-bid minimum — the first bid on a live auction now only requires meeting the starting price. Previously, the minimum bid increment (percent and fixed) was incorrectly applied before any bid existed, making the starting price unreachable.
- Empty chat input bids the minimum — during the custom-bid chat prompt, pressing Enter with no input now automatically places a bid at the minimum amount instead of cancelling or erroring.
- Claim GUI —
/auction claimand the Claims button in the browser now open a dedicated 54-slot inventory instead of a bare command response. The GUI shows each pending return item with its expiry date in the lore, a Claim All button (slot 49), and a Back button (slot 45) that returns to the auction browser. - Configurable claim expiry — pending return items now carry an expiry timestamp. New
claim.expiry-dayskey inauction.yml(default7). The expiry is shown in the item lore inside the Claim GUI and resets whenever a new item is stored for the player. - Live Auctions shortcut in the browser — a Live Auctions beacon button (slot 47) has been added to the main auction browser GUI. Clicking it opens the live auction picker directly, without needing to type
/liveauction.
2.2.1Релиз26.1, 26.1.1, 26.1.2 · 17 мая 2026 г.
Fixed
- Spigot compatibility –
ItemStackdata is now stored as a Base64-encoded byte stream (item-datakey) viaBukkitObjectOutputStreaminstead of YAML-native serialization. This eliminates the[ERROR] Material cannot be nulllog entries that appeared during startup when loading YAML files written by a Paper 1.21+ server on a Spigot server. Existing files are migrated to the new format automatically on the next save cycle; the olditemkey is still read as a fallback during the transition. - Smoke test coverage – Added
YamlAuctionStorageSmokeTest(8 tests) and a dedicatedspigot-smoke.ymlGitHub Actions workflow to guard this code path in CI.
2.2.0Релиз26.1, 26.1.1, 26.1.2 · 11 мая 2026 г.
Added

- Team Auctions: team-scoped listings visible and purchasable only by members of the seller's team.
- New command:
/auction team- browse team listings (hidden when disabled or TeamsAPI absent). - New command:
/auction team sell- list held item as a team auction. team-auctions.enabledtoggle inauction.yml(defaultfalse).TeamsIntegrationfacade - null-safe soft-dependency wrapper around TeamsAPI 1.4.0.AuctionListing.teamIdfield persisted to both YAML and MySQL backends.AuctionListingServiceteam scope andAuctionQueryServiceteam query, both guarded by the config flag.AuctionManager.createTeamListing()andlistActiveTeamListings().- Team browse tab in the auction browser GUI; tab button hidden when team auctions are disabled or TeamsAPI is not installed.
TeamsAPIadded tosoftdependinplugin.yml.- Full message keys added across all four language files (
en,es,nl,zh). - New permissions:
ezauction.auction.team,ezauction.auction.team.sell.
- New command:
Added (sell menu)
- Price-adjustment buttons replaced with coloured glass panes (lime = increase, red = decrease).
- Second row of quantity-adjustment buttons (same glass style) to select how many of a stack to list.
SellMenuState.quantity()- tracks the chosen listing amount, clamped to[1, item stack size].SellMenuInteractionConfiguration.quantityAdjustments- configurable quantity-step list (default:±1, ±8, ±16, ±64).SellMenuLayoutConfiguration.quantityAdjustmentSlots/quantityDisplaylayout fields; inventory expanded from 27 to 36 slots to accommodate the extra row.
Fixed
- Price-adjustment button labels displayed "coins" instead of the configured currency symbol (
$by default). Labels now useformatCurrency()consistently with the rest of the sell menu. - Chinese (
zh) translation files:gui-messages_zh.ymlhad a duplicateactivitypreamble block and incorrect 4-space indentation;messages_zh.ymlhadbroadcastandteam-auctionsmerged onto one line and was missing a trailing newline;orders-only.ymlhad Windows CRLF line endings. All three files now pass YAML validation.
2.1.0Релиз26.1, 26.1.1, 26.1.2 · 14 апреля 2026 г.
New Features
Discord Notifications
EzAuction can now send auction event notifications to Discord via two independent methods — use one or both at the same time.
- Direct webhook (no extra plugins required): set
webhook.enabled: trueindiscord.yml, paste your Discord webhook URL, and choose which events trigger a message (auction_start,auction_end,auction_bid,auction_cancel). Supports rich embeds and custom bot name/avatar. - DiscordSRV channel forwarding: if you run DiscordSRV, set
enabled: trueindiscord.ymland supply the target channel ID. Optionally restrict notifications to players that have a linked Discord account with a required role (role-required,required-role-id).
A new admin command /auctiondiscord test [message] lets you verify Discord is wired up correctly without needing to create a real listing. Requires the ezauction.discord permission.
Improved Sell GUI (in-GUI price and duration selection)
The sell menu now handles price and duration entirely inside the GUI:
- Dedicated price adjustment buttons (set, increase, decrease) keep players inside the inventory screen.
- Duration picker lets players choose from the configured duration options without typing a command.
- A custom input button is still available for players who prefer typing an exact value in chat.
- In-GUI confirm/cancel dialogs for both listings and buy orders replace the previous chat prompts. Players no longer need to respond in chat to confirm a purchase.
Configurable GUI Action Buttons
GUI action buttons (confirm, cancel, adjust price, pick duration, etc.) are now fully driven by the message/layout YAML files. Each button's item, name, lore, and slot can be customised without modifying any code. Language translations apply to these buttons as they do to all other GUI text.
Changes
- Number input shortcuts (
1k,2.5m, etc.) now throwIllegalArgumentExceptionon bad input. Error messages are correctly shown to the player when an unrecognisable price or amount is entered via command. - Tab completion for
/auctionand/liveauctionis now handled per-subcommand, giving context-aware suggestions at each argument position. - Internal storage layer has been refactored to use Repository interfaces. No configuration changes are required, but the refactor lays the groundwork for future storage backends and improves reliability.
Breaking / Migration Notes
- Legacy
messages.ymlfallback removed. If your server was relying on a root-levelmessages.ymlfile (deprecated since v2.0), it will no longer be loaded. All messages must be in the language-specific files undermessages/messages_<lang>.yml,messages/gui-messages_<lang>.yml, etc. The defaults ship correctly — this only affects servers that manually edited the old file. - New
discord.ymlconfiguration file. This file is automatically created on first run with all features disabled (enabled: false,webhook.enabled: false). No action is required unless you want to enable Discord notifications.
2.0.1Релиз1.21.9, 1.21.10, 1.21.11 · 19 января 2026 г.
Fixed
- Fixed
/auction reloadsubcommand to properly reload configuration without requiring a full server restart.
Added
- Added new
/ordercommand to open the menu for placing an order. - Added new
/orderscommand to open the orders GUI directly. - Added new standalone order GUIs for better user interaction.
- Improved debug mode for order features, providing more detailed logging and diagnostics.
- Added new
orders-only.ymlconfiguration file withorders-only-mode: falseoption. When set totrue, it enables only the Orders feature and/orderscommand, disabling most other auction features. Changes take effect after a reload.
Changed
- Refactored plugin loading structure for better modularity and maintainability, including updates to
PluginRegistry.javafor staged initialization and component-based setup.
2.0.0Релиз1.21.9, 1.21.10, 1.21.11 · 17 января 2026 г.
- EzShops 2.0.0+ integration support
- Added enhanced navigation with back buttons and search tips
- Added quick access to pending returns via Claims button
- Added low-price warnings in confirmation dialogs
- Added a new gathered "My Activity" menu
1.2.0Релиз1.21.9, 1.21.10, 1.21.11 · 13 января 2026 г.
- Added subcommand /auction history [player]
- Added command /auctionhistory
- Added GUI for the auction history
- Added optional (through new permission) feature to see the history of all players
- Fixed
PluginRegistry- Imported all non-imported used classes
- Fixed code styling
- Fixed pending returns init
- Restored
src/main/java/com/skyblockexp/ezauction/live/LiveAuctionCommand.java - Restored
src/main/java/com/skyblockexp/ezauction/gui/AuctionReturnListener.java
Комментарии
Загружаем…