4.0.1.4latestzAuctionHouse 4.0.1.46 days ago Read this before updating a network. This release closes a long list of item and money duplication paths. Two setups that used to start are now refused, and operations that used to silently overwrite the database now fail with a message. That is intended, but your players and your staff will see it on day one.
Before you update
- SQLite + the Redis addon is now refused at startup. Each server kept its own SQLite file, so nothing was ever synchronised while every node claimed to be clustered. Switchstorage-typetoMYSQLorMARIADBfirst - A server that loses Redis now blocks sales, purchases and removals instead of quietly running on its own and duplicating items. If you run a single server with the addon installed "just in case", uninstall it - Operations that lose a race now fail instead of overwriting. Two servers, or two clicks on the same listing, can no longer both succeed. Players will start seeing an "item no longer available" message they had never seen - Item tax rules now apply on purchase for every economy type. APURCHASEorCAPITALISMrule declared on atype: SELLeconomy used to do nothing at purchase time. Reviewtax.item-rulesineconomies.ymlbefore updating, or your buyers will suddenly pay more - Four database indexes are created on the first start. On a MySQL database that already holds hundreds of thousands of rows this can block startup for several minutes, and every node of a network will try at once. Plan a maintenance window, or create them by hand beforehand - Expired listings are now swept automatically, every 60 seconds by default. If you have a large backlog of listings nobody ever collected, hundreds of them will move to the expired tab right after the restart and their sellers will get a flood of items to claim. Setmaintenance.expiration-sweep-interval-secondsto0to disable it - Keep `write-itemstack-format-marker` at `false` until every server of the network runs this version. Items written with the marker cannot be read back by an older jar, so until you flip it you can still roll back - The update also adds a few nullable columns and one table. Downgrading the jar simply ignores them, the schema is not a one-way doorMoney
- Fixed A purchase could take more money than the amount that had been checked, because item tax rules were ignored by the check but applied by the payment - Fixed ACAPITALISMitem tax rule on aPURCHASEorBOTHeconomy paid the seller more than the buyer spent, creating money out of nothing on every sale - Fixed A payment refused by the economy plugin was never checked: the buyer still received the item, or the seller's money silently disappeared - Fixed Sellers paid inLEVEL,EXPERIENCE,ITEMorZMENUITEMSlost their money when they were offline. Those payments are now claimable, andmust-be-onlineis forced on for those economies with a warning in console - Fixed The sell tax could be reported as paid without ever being taken - Fixed An error while writing the purchase history cancelled the purchase after the buyer had paid and the seller had been credited - Fixed Pending money could be marked as claimed without ever being paid — a missing economy, a failed deposit or an offline player each destroyed the money - Fixed The same pending payment could be claimed twice by racing/ah claim, the claim button and the auto-claim on join - Changed For a listing holding several stacks, the purchase tax now uses the highest matching item rule, like the selling side already didItem duplication
- Fixed Taking back a listed, selling, expired or purchased item could duplicate it on a network. The item is now re-checked against the database while the server holds the cluster lock, exactly like a purchase already did - Fixed A purchase handed the item over before the database confirmed it: if the write failed, the buyer kept the item and the listing stayed on sale. This one needed no cluster at all - Fixed Buttons still armed in an already-open interface could act on an item that had been sold or removed in the meantime - Fixed/ah adminremoval ignored a lock held by another server, announced the removal before saving it — other servers then put the item back on sale — and never released its lock on failure - Fixed Taking back a listing withgive-item: trueand a nearly full inventory could store it as expired on one server and deleted on the others, making it impossible to claim anywhere - Fixed "Retrieve everything" abandoned the rest of the batch on the first error without a word. It now finishes and tells the player how many items were actually processed - Changed Withgive-item: true, an inventory that fills up between the click and the execution now drops the overflow on the ground instead of silently sending the item to the expired tab - Changed An admin removing an expired or purchased item is now final across the whole network, other servers no longer put the row backSelling
- Fixed A crash during a sale could destroy the items: the stacks left the seller's inventory before the listing was saved. The listing is now written first, and any failure refunds both the items and the sell tax - Added A startup check that cleans up listings left half-created by a crash. Either the seller never lost their items and the orphan row is deleted, or they did and the listing becomes claimable in their expired tab. Both cases are logged - Fixed The sell selection is limited to what the interface can actually display and give back, instead of silently swallowing the surplus - Fixed A listing whose content can no longer be read — a Minecraft downgrade, a removed custom-item plugin — is now hidden and logged instead of showing up as an empty orBARRIERitem that could still be bought. The database row is left untouched, so an older server can never destroy items that are perfectly valid for the othersItems stuck in a confirmation
- Added An item left locked in a confirmation screen is now released automatically aftermaintenance.confirmation-timeout-seconds(60 by default). Quitting or dying releases it immediately. A player who disconnected with a confirmation open used to leave the item unbuyable on every server - Fixed Confirming and cancelling went through different code paths, and one of them could leave the item locked - Fixed/ah admin cache clearreleased items that were legitimately locked inside a confirmationStability and performance
- Fixed Database writes that had already been decided could be dropped silently. They are now queued on a dedicated pool, drained on shutdown, and a refused write is logged loudly instead of vanishing - Fixed The per-player cache was not safe under concurrent access and could come back after the player had disconnected - Fixed The inventory refresh stopped at the first skipped player, so only a fraction of the connected players saw the auction house update after a sale or a removal - Fixed Category counters returned0for any category whose name incategories.ymlcontained uppercase letters - Fixed Search, sorting and category counters no longer copy the whole item list on every evaluation - Fixed Loading the auction house no longer half-loads on a database error, and reloading the items is a real reset instead of an additive load that resurrected ghosts - Fixed Admin logs handled multi-stack items and counted their deletions incorrectly - Added Aserver-shutting-downmessage, shown when a purchase or a sale is attempted while the server is stopping, instead of letting it start and be cut in halfMigration and admin commands
- Fixed/ah admin migrateannounced a full success on a migration that had destroyed money: on MySQL, every seller's pending balance from V3 was refused by the database and the error was4.0.1.3zAuctionHouse 4.0.1.3Aug 24, 2026 - Added FastStats metrics integration alongside the existing bStats reporting. The FastStats client is bundled and relocated in the final JAR, starts after plugin initialization, and shuts down cleanly with the plugin - Fixed The final plugin JAR containing three duplicateMETA-INF/faststats.propertiesentries. FastStats is now scoped to the root plugin module, and Shadow keeps a single copy of its identical version metadata - Added Indonesian (id) locale with translated configuration, messages, rules, categories, Discord settings, inventories, and patterns. Automatic language detection now selects Indonesian for servers located in Indonesia - Fixed Admin expired, purchased, and selling item inventories not displaying their YAML-configured empty-state item when the selected player had no matching items4.0.1.1zAuctionHouse 4.0.1.1Aug 16, 2026 - Addedallow-decimal-pricesoption inconfig.yml(defaulttrue) - when set tofalse, players can no longer list items for a price containing decimals (e.g.10.5); only whole-number prices are accepted. Enforced on every sell path (the/ah sellcommand and the sell-inventory confirm button) viaSellService, and shows the newprice-decimal-not-allowedmessage. Option and message synced across all language files (en/fr/es/it/th) - Added CrazyAuction migration.4.0.1.0zAuctionHouse 4.0.1.0Jul 31, 2026 - Fixed Critical cross-server duplication where a sold item reappeared in the seller's items (multi-server / Redis). Whenpurchased-item.give-item: true, a purchase set the database row toDELETEDbefore broadcasting theItemBoughtevent; on every other server theItemBoughtListenerre-fetched the item viaselectItem(which filters outDELETEDrows), gotnull, and bailed out before removing the listing from its in-memory store. The ghost listing therefore survived on all non-buyer servers and the seller still saw it in/ah selling. The listener now removes the listing from in-memory storage unconditionally (mirroringItemRemovedListener), independently of the database lookup.ItemBoughtMessagewas enriched with the seller UUID/name, item display, price and buyer name so the real-time seller notification (including%buyer%, which was already broken on remote servers) works without a database round-trip - Fixed Purchased items not appearing on other servers withpurchased-item.give-item: false(multi-server / Redis). TheItemBoughtListenerremoved the item fromLISTEDon remote servers but never added it to their in-memoryPURCHASEDstore, so a buyer switching servers could not see their purchase until a restart. Remote servers now re-add the item toPURCHASED(the buyer-server purchase already did this locally; the buyer-server ignores its own message). Forgive-item: truethe message flagsgivenToBuyerso remote servers skip the (always-null) database lookup entirely - Fixed A crashed/timed-out purchase could leave an item permanently un-buyable in multi-server (Redis) setups. The lock keyauction:lock:<id>expires via TTL but the item hash fieldstate=LOCKEDpersisted (up to the item TTL, ~30 days), socheckAvailabilityreported the item as locked forever. Lock state now keys on the lock key's existence: aLOCKEDstate with no live lock key is treated as a stale lock and recovered. To prevent this recovery from ever enabling a double-purchase,PurchaseServicenow re-validates authoritative database state under the lock before charging — a row that is alreadyDELETEDor has a buyer aborts the purchase with nothing withdrawn - Fixed Expiration is now cluster-aware in multi-server (Redis) setups. PreviouslyExpireServicemoved itemsLISTED -> EXPIREDpurely locally with no cluster coordination, so a lingering ghost of an item sold on another server could be resurrected as anEXPIREDitem for the seller (and claimed back = duplication). In distributed setups theLISTED -> EXPIREDtransition now locks the item, re-reads authoritative database state (skipping items sold elsewhere), performs the move, and broadcasts it so all nodes converge. Single-server setups keep the original fast path - FixedItemRepositorycould overwrite a sold/removed item when expiring. TheLISTED -> EXPIREDupdate is now guarded withWHERE storage_type = 'LISTED', so an expirationUPDATEcan never clobber a row another server already set toDELETED/PURCHASED- Added DonutAuction migration - migrate data from the DonutAuction plugin (by EliVB) to zAuctionHouse V4 using/ah admin migrate donutauction confirm(aliasesdonut,donutsmp,da). Readsplugins/DonutAuction/ah.datadirectly, so no database configuration is needed; active auctions are imported as listed items and past-expiry auctions as reclaimable expired items, while unclaimed pending payments (money, not items) are skipped. Legacy Base64 itemstacks are deserialized through a hardened class allowlist to guard against malicious data files - Fixed Cross-server purchases could fail withIllegalArgumentException: name cannot be null(multi-server / Redis). When a buyer bought an item whose seller had never logged into that specific backend node,getSellerName()returnednulland was passed straight to the economy provider'swithdraw()call (and to the%seller%placeholder in the purchase notifications), aborting the purchase. The seller name is now resolved from the shared database before the economy call, falling back to the seller's UUID string (with a console warning to verify all servers share the same MySQL database) when even that lookup fails, so anullname can never reach downstream code - Fixed Purchases failing or charging incorrectly under CAPITALISM (VAT-style) tax - the balance check before buying only verified the buyer could afford the listed price, not the price plus the CAPITALISM tax added on top, so a player holding exactly the listed amount passed the check and the tax-inclusive withdrawal could then fail.PurchaseServiceand theZAUCTIONHOUSE_LISTED_ITEMSbutton now check the tax-inclusive required balance when CAPITALISM tax is enabled - Fixed Items getting stuck in the "being purchased" state after a purchase failed for insufficient funds - the item was markedIS_BEING_PURCHASEDbefore the funds check but only unlocked (not status-restored) on failure, so in multi-server (Redis) setups it stayed stuck and could no longer be bought. The status is now restored and broadcast to the cluster before unlocking - Fixed Money loss on economy errors during a purchase or claim - buyer withdraw, seller deposit and claim deposits are now wrapped in error handling: if the buyer is charged but the seller deposit throws, the buyer is automatically refunded; failed claim deposits are logged and skipped instead of silently losing the money - Fixed Expired listings could still be displayed and counted in the auction house. Because expiration is processed lazily, an item could remainAVAILABLEpast its expiry (especially while a cache was stale) and keep showing in the main list, in the per-category counts, and in the%zauctionhouse_listed_items%placeholder. A singleItem.isActivelyListed()predicate (available and not expired) is now applied at every display chokepoint, and interacting with a listing that has already expired now moves it to the player's expired items instead of opening a confirm inventory or re-showing it - Fixed The selling, expired, purchased, listed and combined item-list buttons ignored their inventory'splayer-inventorysetting - paginated items and the empty-slot placeholder were always rendered into the chest GUI even when the inventory was configured as a player inventory. These buttons now render items into the player's own inventory area when configured (PR #25) - Fixed Auction search button always showed a hardcoded EnglishNonein%search_query%when no search was active, ignoring the server language. TheZAUCTIONHOUSE_SEARCHbutton now reads a configurablenone-valueoption on the search button ininventories/auction.yml, with a localized default per language (None/Aucune/Ninguna/Nessuna/ไม่มี), so the empty-search text is translatable and customizable - Added Configurable%search_active%value on the auction search button - theZAUCTIONHOUSE_SEARCHbutton now readsactive-value(defaulttrue) andinactive-value(defaultfalse) options ininventories/auction.yml, so the value returned by%search_active%when a search is / isn't active can be customized (e.g.Enabled/Disabled,Yes/No) instead of the hardcodedtrue/false- Changed Updated the required zMenu API to1.1.1.6- make sure your server runs zMenu1.1.1.6or newer4.0.0.9zAuctionHouse 4.0.0.9Jul 17, 2026 - Fixed Sales history spammingItem not found for log IDwarnings in console - logs migrated from V3 are created withitem_id = 0(no direct mapping to V4 items), causing the history service to log a warning for every V3 entry. The history now filters out logs with invalid item references at the SQL level - Added History configuration inconfig.yml-history.max-entrieslimits the number of history entries displayed per player (default: 500, 0 = unlimited),history.expire-after-dayshides entries older than the specified number of days (default: 0 = never expire). Useful for servers with large transaction volumes to reduce database load and improve history loading times - Added Admin log management commands -/ah admin logs purge <days>deletes all logs older than the specified number of days,/ah admin logs player <player>deletes all logs for a specific player,/ah admin logs clear-migrateddeletes all V3 migrated logs (entries withitem_id = 0). All operations run asynchronously and report the number of deleted entries - Fixed Ghost items in/ah sellingon multi-server (Redis) setups - when a player removed a selling item on server #1 and switched to server #2, the item could still appear with "being purchased" lore and could not be removed, blocking selling slots. Three fixes applied: (1)ItemRemovedListenernow removes the item from in-memory storage immediately on message receipt instead of waiting for an async DB query, (2)RemoveServiceno longer restores the item status via Redis when the local removal already completed (preventing ghost items from reappearing as AVAILABLE on other servers after a cluster notification timeout), (3)getPlayerSellingItemsnow filters out items withDELETEDstatus as defense-in-depth - Changed Discord webhook%expires_at%placeholder now outputs a Discord [dynamic timestamp](https://discord.com/developers/docs/reference#message-for… (<t:unix_seconds:f>) instead of a pre-formatted date string. Discord renders it in each viewer's own local timezone (e.g.12 June 2026 18:55), making it easier to read and timezone-agnostic. Items with no expiration still fall back to the formatted date - Added Per-item custom images for Discord webhooks - a newcustom-imagessection indiscord.ymllets you override the%item_image_url%for specific items. Each entry pairs arule(same format ascategories.yml/rules.yml:material,name,lore,custom-model-data,oraxen,itemsadder,nexo,mmoitems, etc.) with an image URL. The first matching rule wins; items matching no rule fall back to the material-baseditem-image-urlpattern. Ideal for custom items whose generic material does not represent the real item. Dominant color extraction caches the color per image URL so custom items sharing a material no longer collide4.0.0.8zAuctionHouse 4.0.0.8Jun 17, 2026 - Fixed Critical item duplication in multi-server (Redis) setups - when a player removed a selling item via the selling inventory, the item was correctly given to the player and marked asDELETEDin the database, but other servers received a genericLISTEDremoval message and incorrectly recreated the item in theirEXPIREDcache, allowing it to be claimed a second time on another server - FixedItemRepository.select(int id)not filteringDELETEDitems - single-item database queries returned items already marked asDELETED, while the bulkselect()method correctly excluded them. This allowed the RedisItemRemovedListenerto reload deleted items and re-add them to cache - AddeddestinationStorageTypeto cluster bridgeremoveItemmethod - theItemRemovedMessagenow includes the exact destination storage type (DELETEDorEXPIRED) so other servers know exactly what happened instead of guessing. Backward compatible via adefaultmethod onAuctionClusterBridge- FixedItemRemovedListener(Redis addon) rewritten with defense-in-depth - uses the explicit destination from the message first, falls back to database state verification, and never blindly assumes an item should go toEXPIRED- FixedCreateOptionsMigrationfailing on MySQL witherrno: 150 "Foreign key constraint is incorrectly formed"- theplayer_unique_idcolumn useduuid()type which could produce a different collation than the existingplayerstable (especially on MySQL 8.0+ with changed default collation). Changed tostring(36)to match all other foreign key columns referencingplayers.unique_id4.0.0.6zAuctionHouse 4.0.0.6May 23, 2026 - AddedZAUCTIONHOUSE_COMBINED_ITEMSbutton - combines selling, expired, and purchased items into a single paginated view. Each source is individually togglable viainclude-selling,include-expired, andinclude-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 fromconfig.yml- Fixed Item duplication exploit in multi-server (Redis) setups - removing a listing on one server and claiming the expired item could leave a ghost entry on the original server, allowing the item to be claimed again after natural expiration - FixedItemRemovedListener(Redis addon) - removed fragile DB state validation that rejected removal messages due to race conditions, added safety-net cleanup across all storage types - FixedItemStatusListener(Redis addon) - status change propagation now searches across all storage types (LISTED, EXPIRED, PURCHASED) instead of only LISTED - FixedExpireService- added guard against re-expiring items already deleted/claimed on another server - Added Redis Sentinel support (Redis addon) - enables high-availability Redis setups with automatic master discovery and failover. Configuremode: "sentinel"inconfig.ymlwith sentinel nodes. Fully backward compatible, existing standalone configurations work without changes - FixedNullPointerExceptionwhen default economy is not configured -/ah selland 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 fromeconomies.yml- Fixed Incorrect economy type names ineconomies.ymlcomments -COINS_ENGINEandPLAYER_POINTSdid not match the actual CurrenciesAPI enum values (COINSENGINE,PLAYERPOINTS), causing these economy types to silently fail to load when users followed the documented names - Added All permissions are now programmatically registered in Spigot on startup and reload. Includes static permissions (use, sell, admin, etc.), and dynamic permissions from configuration (listing limits, expiration tiers, tax bypass/reductions, economy access, inventory commands, cooldown bypass). All permissions are grouped under thezauctionhouse.*wildcard - Fixed Items dropping on the ground when claiming expired, purchased, or selling items with a full inventory - items now stay in their storage when the player's inventory is full. Addedplayer-inventory-must-have-free-spaceconfig option underremove-expired-itemandselling-itemsections (enabled by default) - AddedZAUCTIONHOUSE_REMOVE_ALL_EXPIRED,ZAUCTIONHOUSE_REMOVE_ALL_SELLING,ZAUCTIONHOUSE_REMOVE_ALL_PURCHASEDbuttons - 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 (ifplayer-inventory-must-have-free-spaceis enabled) - AddedItemContentProviderAPI - extensible system for displaying the contents of container items (shulker boxes, custom containers from plugins). External plugins can register their own providers viaAuctionPlugin.getItemContentManager().registerProvider()- Added AxShulkers hook - displays the contents of shulker boxes managed by the AxShulkers plugin in the item content viewer. AxShulkers stores shulker contents externally instead of in vanilla NBT, so this hook is required to view their contents - Fixed Seller not receiving money in multi-server (Redis) setups when the buyer is on a different server - the plugin tried to deposit money locally on the buyer's server where the seller's economy account may not exist. Money is now deferred toPENDINGstatus in distributed environments and claimed by the seller on their own server via/ah claimor auto-claim on join - AddedAuctionClusterBridge.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)4.0.0.5zAuctionHouse 4.0.0.5May 6, 2026 - AddedZAUCTIONHOUSE_CLAIMbutton - displays pending money per economy with dynamic placeholders and allows players to claim directly from the auction GUI - Added Configurableloading-itemfor the claim button, shown while pending money data is being fetched - AddedPRICE_WITHOUT_DECIMALprice format - displays prices without decimal places (e.g.,10000.50->10000) - Added%price-price-without-decimal%placeholder - displays the price without decimals in item lore - Added/ah admin forceopencan now be executed from the console - Addedtimezoneconfiguration 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 toauto(server timezone) - Fixed/ah admin openand/ah admin historytab completion no longer loads all offline players, preventing lag on servers with many players - FixedupdateListedItemscrash on Folia/Canvas - inventory holder access was running on an async thread instead of the main tick thread - Fixed economy name argument configuration for the sell command - when the economy argument index was not configured, the default value was ignored causing a null economy name4.0.0.4zAuctionHouse 4.0.0.4Apr 22, 2026 - Added ZelAuction migration - migrate data from ZelAuction plugin to zAuctionHouse V4 using/ah admin migrate zelauction confirm- Added Search system - players can search items by name, material, lore, or seller directly from the auction house GUI or via/ah search <query>- AddedZAUCTIONHOUSE_SEARCHbutton - opens a chat-based search input with support for advanced filter operators - AddedZAUCTIONHOUSE_CLEAR_SEARCHbutton - clears the active search filter, only visible when a search is active - Added/ah search <query>command - search items directly from chat without opening the GUI first - Added Advanced search filters with operators:~(contains),=(exact),~=(contains, ignore case),==(exact, ignore case) - Added Searchable fields:name,material,lore,seller(e.g.,seller = Notch,name ~ Diamond) - Added/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 1 - Addedreset-search-on-openconfig option - When enabled (default:true), the search filter is cleared every time a player opens the auction house, matching the existingreset-category-on-openbehaviorSearch system
Players can search for items in the auction house using the search button or the/ah searchcommand. The default search checks item name, material, lore, and seller name (case-insensitive substring). Advanced filters:
| Operator | Description | |----------|-------------| |field operator value~| 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 ~ Sharpness4.0.0.3zAuctionHouse 4.0.0.3Mar 31, 2026 - AddedZAUCTIONHOUSE_SELL_LIMITbutton - displays remaining sell slots visually using a list of inventory slots, configurable per item type (auction, bid, rent) - Added%zauctionhouse_max_items_<type>%placeholder - returns the maximum number of items a player can list for a specific type (auction, bid, rent) - Optimized item lore placeholder resolution, placeholders are now pre-detected at config load and only resolved when referenced, significantly reducing CPU and memory usage per item render - Fixed/ah historystuck on "Loading..." whenaction.purchased-item.give-item: trueis enabled - Fixed default config values - Fixed default table prefix tozauctionhousev4(fixes compatibility with zAuctionHouse V3)ZAUCTIONHOUSE_SELL_LIMITbuttonsell-limit: type: ZAUCTIONHOUSE_SELL_LIMIT types: - auction slots: - 0-9 item: material: LIME_STAINED_GLASS_PANE name: '&aAvailable slot'
Returns the maximum number of items a player can list based on their permissions for the given type. -%zauctionhouse_max_items_<type>%placeholder%zauctionhouse_max_items_auction%-%zauctionhouse_max_items_bid%-%zauctionhouse_max_items_rent%4.0.0.2zAuctionHouse 4.0.0.2Mar 22, 2026 - Addedzauctionhouse_categorypermissible for zMenu - allows conditional button visibility based on the player's currently selected category (defaults tomain) - AddedZAUCTIONHOUSE_CATEGORY_SWITCHERbutton - combines category cycling (left/right click) with dynamic lore showing enable/disable state per category - Added%zauctionhouse_category_id%placeholder - returns the player's currently selected category ID - AddedZAUCTIONHOUSE_HISTORY_INVENTORYbutton - opens the sales history inventory directly from any UI - Addedforce-amount-oneoption inconfig.yml(item-loresection) - forces displayed item amount to 1 in the auction inventory while preserving the real amount internally - ChangedAuctionEconomyAPI - economy methods (get,has,deposit,withdraw) now acceptUUIDinstead ofOfflinePlayerfor better compatibility - Updated CurrenciesAPI dependency from 1.0.12 to 1.0.13 - Fixed category display name fallback - now uses the configured "all" category name instead of a hardcoded"All"string - Fixed empty slot crash - list buttons (ListedItems,ExpiredItems,PurchasedItems,SellingItems) no longer crash whenemptySlotis-1and the list is empty - Fixed history loading slot -HistoryItemsButtonnow properly handlesloadingSlotset to-1without throwing an error - FixedLoadingSlotLoader- added validation for invalid slot values with a clear error messagezauctionhouse_categorypermissiblerequirements: - type: zauctionhouse_category category: "weapons"ZAUCTIONHOUSE_CATEGORY_SWITCHERbuttoncategory-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-oneoptionitem-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: false4.0.0.1zAuctionHouse 4.0.0.1Mar 17, 2026 - Added Thai as a supported language - Fixed support for Minecraft 1.20.4 - Fixed the/zauctionhousecommand — it is no longer the default main command (this can be changed inconfig.yml) - Fixed message system errors that could appear without reason - Added thereset-category-on-openoption, allowing categories to reset when reopening the inventory - AddedEXCELLENTEECONOMYeconomy support4.0.0.0zAuctionHouse 4.0.0.0Mar 3, 2026 First version
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta