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

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.sell can 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 cancel removes the entry and refunds the deposit; a cancel button also appears in the GUI while the player has a queued entry. Admins with ezauction.auction.live.admin can force-cancel any active auction with /liveauction cancel <id>.
  • /bid command (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 in live-preferences.yml (or a MySQL table).
  • EzCountdown integration (optional soft-dependency) – Display live auction countdowns via ACTION_BAR, BOSS_BAR, TITLE, SCOREBOARD, or CHAT.
  • 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 eventsLiveAuctionStartedEvent (cancellable), LiveAuctionBidPlacedEvent (cancellable), LiveAuctionEndedEvent, LiveAuctionPlayerJoinedEvent, LiveAuctionPlayerLeftEvent.
  • Live Auctions shortcut in Auction House – A quick-access beacon button (slot 47) in the main /auction browser opens the Live Auction picker directly, without having to type /liveauction.

Live Auction Queue GUI: browse, join, and manage live auctions

Clickable bid messages in chat with auto-fill bid link

Shulker box contents shown on hover in live auction chat

Fixes & Other Additions

  • Claim GUI/auction claim and 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-days in auction.yml (default 7) 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 /bid response automatically places the minimum bid.

Why Use EzAuction?

Auction House browser: paginated, searchable listings with price overlays

  • 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.

Buy orders GUI

Listing editor with price and quantity controls

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

Team Auction GUI

  • 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 claim recovery.
  • Rank-aware limits – Plug in a custom AuctionListingLimitResolver service 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.

EzShops price overlay in listing 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, or minecraft:looting to 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.

Shulker box contents preview in the auction browser

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
  1. Open the target Discord channel → Edit ChannelIntegrationsWebhooksNew WebhookCopy Webhook URL.
  2. In-game or via console, run:
    /auctiondiscord webhook set url https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN
    
  3. 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

  1. Upload EzAuction.jar, restart your Paper or Purpur server, and confirm Vault plus an economy plugin are active.
  2. Edit plugins/EzAuction/auction.yml for pricing rules, durations, and GUI slots, adjust auction-storage.yml for YAML/MySQL persistence, and update auction-values.yml or messages/menu-interactions_*.yml as needed.
  3. Choose between YAML or MySQL storage, then grant players ezauction.auction (and optional sell/order/history nodes) so they can browse and trade.
  4. Encourage /auction history so buyers and sellers can audit their latest activity right from chat.

Live Auctions

Live Auction Queue GUI: browse, join, or queue your own item

  • Queue the spotlight listings – Flip live-auctions.enabled on (and queue-enabled if 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.admin can stop an active auction immediately via /liveauction cancel <auction-id>. All bids are refunded and the item is returned to the seller.
  • /bid command – Bidders place bids with /bid <amount> or by clicking the clickable suggestion in chat. /bid notify and /bid notify display manage per-player countdown preferences.
  • Hype them in chat – Keep display-in-chat enabled to broadcast live listings every announcement-interval-ticks ticks with clickable bid links and hover previews on the item name.

Live auction chat messages with clickable bid links

Item hover preview showing enchantments and shulker contents

  • 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.type between yaml and mysql; MySQL connections support SSL flags and pool tuning.
  • Menusmenu.browser and menu.confirm control 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_*.yml per locale.
  • Live auctions – Manage live-auctions.enabled, queue-enabled, display-in-chat, and announcement-interval-ticks to 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 AuctionListingLimitResolver service 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)

  1. Switch storage.type to mysql and point each Paper/Purpur backend to the same credentials so listings, buy orders, and returns are stored centrally. The bundled MySQL driver implements DistributedAuctionListingStorage so inserts and claims remain atomic across servers.
  2. Drop the same EzAuction.jar on 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.
  3. 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.
  4. If a lobby should not show auctions, leave EzAuction off that node or point it at a different table-prefix so it maintains a separate pool.
  5. 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_*.yml and menu-interactions_*.yml bundles 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


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:
    • /bid command (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, or CHAT. 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 in live-preferences.yml or the MySQL table {prefix}live_player_preferences).
    • Live auction picker GUI/liveauction opens 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 on to suppress non-auction chat while in an active session.
    • Bidding configurationminimum-bid-increment-percent and minimum-bid-increment-fixed in auction.yml control 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 chat messages

Live auction shulker contents

/liveauction queue gui

  • 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-queued message 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).

Fixed

  • JaCoCo Java 25 compatibility — upgraded jacoco-maven-plugin from 0.8.12 to 0.8.13 to resolve Unsupported class file major version 69 during 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 claim and 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-days key in auction.yml (default 7). 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 compatibilityItemStack data is now stored as a Base64-encoded byte stream (item-data key) via BukkitObjectOutputStream instead of YAML-native serialization. This eliminates the [ERROR] Material cannot be null log 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 old item key is still read as a fallback during the transition.
  • Smoke test coverage – Added YamlAuctionStorageSmokeTest (8 tests) and a dedicated spigot-smoke.yml GitHub 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 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.enabled toggle in auction.yml (default false).
    • TeamsIntegration facade - null-safe soft-dependency wrapper around TeamsAPI 1.4.0.
    • AuctionListing.teamId field persisted to both YAML and MySQL backends.
    • AuctionListingService team scope and AuctionQueryService team query, both guarded by the config flag.
    • AuctionManager.createTeamListing() and listActiveTeamListings().
    • Team browse tab in the auction browser GUI; tab button hidden when team auctions are disabled or TeamsAPI is not installed.
    • TeamsAPI added to softdepend in plugin.yml.
    • Full message keys added across all four language files (en, es, nl, zh).
    • New permissions: ezauction.auction.team, ezauction.auction.team.sell.

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 / quantityDisplay layout 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 use formatCurrency() consistently with the rest of the sell menu.
  • Chinese (zh) translation files: gui-messages_zh.yml had a duplicate activity preamble block and incorrect 4-space indentation; messages_zh.yml had broadcast and team-auctions merged onto one line and was missing a trailing newline; orders-only.yml had 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

image

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: true in discord.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: true in discord.yml and 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 throw IllegalArgumentException on bad input. Error messages are correctly shown to the player when an unrecognisable price or amount is entered via command.
  • Tab completion for /auction and /liveauction is 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.yml fallback removed. If your server was relying on a root-level messages.yml file (deprecated since v2.0), it will no longer be loaded. All messages must be in the language-specific files under messages/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.yml configuration 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 reload subcommand to properly reload configuration without requiring a full server restart.

Added

  • Added new /order command to open the menu for placing an order.
  • Added new /orders command 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.yml configuration file with orders-only-mode: false option. When set to true, it enables only the Orders feature and /orders command, 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.java for 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

Комментарии

Загружаем…