/
ZAUCTIONHOUSE_COMBINED_ITEMS button - combines selling, expired, and purchased items into a single paginated view. Each source is individually togglable via include-selling, include-expired, and include-purchased. Click actions automatically adapt to the item's storage type (cancel listing, claim expired, claim purchased). Each item type uses its own lore configuration from config.ymlItemRemovedListener (Redis addon) - removed fragile DB state validation that rejected removal messages due to race conditions, added safety-net cleanup across all storage typesItemStatusListener (Redis addon) - status change propagation now searches across all storage types (LISTED, EXPIRED, PURCHASED) instead of only LISTEDExpireService - added guard against re-expiring items already deleted/claimed on another servermode: "sentinel" in config.yml with sentinel nodes. Fully backward compatible, existing standalone configurations work without changesNullPointerException when default economy is not configured - /ah sell and all sell-related buttons now display an error message instead of crashing. Added startup validation with prominent warnings in console when a default economy is missing from economies.ymleconomies.yml comments - COINS_ENGINE and PLAYER_POINTS did not match the actual CurrenciesAPI enum values (COINSENGINE, PLAYERPOINTS), causing these economy types to silently fail to load when users followed the documented nameszauctionhouse.* wildcardplayer-inventory-must-have-free-space config option under remove-expired-item and selling-item sections (enabled by default)ZAUCTIONHOUSE_REMOVE_ALL_EXPIRED, ZAUCTIONHOUSE_REMOVE_ALL_SELLING, ZAUCTIONHOUSE_REMOVE_ALL_PURCHASED buttons - allows players to retrieve all items at once from expired, selling, and purchased inventories. Items are given one by one and stops when inventory is full (if player-inventory-must-have-free-space is enabled)ItemContentProvider API - extensible system for displaying the contents of container items (shulker boxes, custom containers from plugins). External plugins can register their own providers via AuctionPlugin.getItemContentManager().registerProvider()PENDING status in distributed environments and claimed by the seller on their own server via /ah claim or auto-claim on joinAuctionClusterBridge.isDistributed() - allows cluster bridge implementations to signal a multi-server environment so the plugin can adapt its behavior (e.g., defer deposits instead of executing them locally)ZAUCTIONHOUSE_CLAIM button - displays pending money per economy with dynamic placeholders and allows players to claim directly from the auction GUIloading-item for the claim button, shown while pending money data is being fetchedPRICE_WITHOUT_DECIMAL price format - displays prices without decimal places (e.g., 10000.50 -> 10000)%price-price-without-decimal% placeholder - displays the price without decimals in item lore/ah admin forceopen can now be executed from the consoletimezone configuration option - allows changing the timezone used for all date placeholders (%date%, %formatted-expire-date%, %expires_at%). Supports all Java TimeZone IDs (e.g., Europe/Paris, America/New_York, UTC). Defaults to auto (server timezone)/ah admin open and /ah admin history tab completion no longer loads all offline players, preventing lag on servers with many playersupdateListedItems crash on Folia/Canvas - inventory holder access was running on an async thread instead of the main tick thread/ah admin migrate zelauction confirm/ah search <query>ZAUCTIONHOUSE_SEARCH button - opens a chat-based search input with support for advanced filter operatorsZAUCTIONHOUSE_CLEAR_SEARCH button - clears the active search filter, only visible when a search is active/ah search <query> command - search items directly from chat without opening the GUI first~ (contains), = (exact), ~= (contains, ignore case), == (exact, ignore case)name, material, lore, seller (e.g., seller = Notch, name ~ Diamond)/ah admin forceopen <player> <inventory> [page] - Open any inventory for a player at a specific page. Supports all inventory names (e.g., auction, admin-selling-items, history, admin-logs, etc.) with tab completion. Page defaults to 1reset-search-on-open config option - When enabled (default: true), the search filter is cleared every time a player opens the auction house, matching the existing reset-category-on-open behaviorPlayers can search for items in the auction house using the search button or the /ah search command. The default search checks item name, material, lore, and seller name (case-insensitive substring).
Advanced filters:
field operator value
| Operator | Description |
|---|---|
~ | Contains (case-sensitive) |
= | Exact match (case-sensitive) |
~= | Contains (ignore case) |
== | Exact match (ignore case) |
| Field | Description |
|---|---|
name | Item display name |
material | Item material type |
lore | Item lore text |
seller | Seller player name |
Examples:
seller = Notch
name ~ Diamond
material ~= sword
lore ~ Sharpness
ZAUCTIONHOUSE_SELL_LIMIT button - displays remaining sell slots visually using a list of inventory slots, configurable per item type (auction, bid, rent)%zauctionhouse_max_items_<type>% placeholder - returns the maximum number of items a player can list for a specific type (auction, bid, rent)/ah history stuck on "Loading..." when action.purchased-item.give-item: true is enabledzauctionhousev4 (fixes compatibility with zAuctionHouse V3)ZAUCTIONHOUSE_SELL_LIMIT buttonsell-limit:
type: ZAUCTIONHOUSE_SELL_LIMIT
types:
- auction
slots:
- 0-9
item:
material: LIME_STAINED_GLASS_PANE
name: '&aAvailable slot'
%zauctionhouse_max_items_<type>% placeholderReturns the maximum number of items a player can list based on their permissions for the given type.
%zauctionhouse_max_items_auction%%zauctionhouse_max_items_bid%%zauctionhouse_max_items_rent%zauctionhouse_category permissible for zMenu - allows conditional button visibility based on the player's currently selected category (defaults to main)ZAUCTIONHOUSE_CATEGORY_SWITCHER button - combines category cycling (left/right click) with dynamic lore showing enable/disable state per category%zauctionhouse_category_id% placeholder - returns the player's currently selected category IDZAUCTIONHOUSE_HISTORY_INVENTORY button - opens the sales history inventory directly from any UIforce-amount-one option in config.yml (item-lore section) - forces displayed item amount to 1 in the auction inventory while preserving the real amount internallyAuctionEconomy API - economy methods (get, has, deposit, withdraw) now accept UUID instead of OfflinePlayer for better compatibility"All" stringListedItems, ExpiredItems, PurchasedItems, SellingItems) no longer crash when emptySlot is -1 and the list is emptyHistoryItemsButton now properly handles loadingSlot set to -1 without throwing an errorLoadingSlotLoader - added validation for invalid slot values with a clear error messagezauctionhouse_category permissiblerequirements:
- type: zauctionhouse_category
category: "weapons"
ZAUCTIONHOUSE_CATEGORY_SWITCHER buttoncategory-switcher:
type: ZAUCTIONHOUSE_CATEGORY_SWITCHER
slot: 49
enable-text: "&a● %category%"
disable-text: "&7○ %category%"
categories:
- "main"
- "weapons"
- "armor"
- "tools"
- "blocks"
- "consumables"
- "resources"
- "enchanted-books"
- "misc"
item:
material: COMPASS
name: "&6Categories &7(&f%category%&7)"
lore:
- ""
- "%main%"
- "%weapons%"
- "%armor%"
- "%tools%"
- "%blocks%"
- "%consumables%"
- "%resources%"
- "%enchanted-books%"
- "%misc%"
- ""
- "&7Left-click &8» &fNext"
- "&7Right-click &8» &fPrevious"
force-amount-one optionitem-lore:
# Forces the displayed item amount to 1 in the auction inventory.
# The real amount is preserved internally and given to the buyer on purchase.
# Useful to keep a clean, uniform display.
force-amount-one: false