COWMODSКаталог модов

AuctionzOptymalized

Fast player auction house with search, category tabs and fully configurable menus

Автор: M4rtwy400обновлён 1 авг. 2026 г.
ЭкономикаМеханики игры

Описание

AuctionzOptymalized

A player-to-player auction house for Paper servers. Players list items from a GUI, everyone else browses, searches and buys them with server money. Built to stay fast on a busy market: every view the players see is cached and only rebuilt when the market actually changes.

  • Version: 1.0 BETA
  • Server: Paper 26.x (api-version: 26.1.2)
  • Requires: a Vault economy (EssentialsX, CMI, ...) - the plugin will not start without one
  • Author: M4rtwy

Features

  • Auction GUI - paged market view, left click buys, right click cancels your own listing.
  • Sell menu - drop an item in, set the price with +/- buttons, confirm. Or list straight from your hand with /ah sell <price>.
  • Search - /ah diamond sword from chat, or the sign button in the menu, which opens a typing board you fill in without leaving the GUI. Matches item names, and optionally lore, enchantments and the seller's name.
  • Category tabs - Everything / Building blocks / Items / PvP gear / Tools / Food / Redstone along the top row. Tabs are defined in the config, so you can add your own.
  • Expiry and payouts - listings run out after a set time and go to /ah expired, where the seller collects them. Sale money is paid out the same way.
  • Tax, price limits, listing limits, item blacklist - all in the config.
  • Languages - lang/en.yml, pl.yml, de.yml. Drop in your own lang/xx.yml and it shows up in the picker. Missing keys fall back to English.
  • Styles - styles/default.yml, donutsmp.yml, minimal.yml hold every icon, slot and layout. Your own file in styles/ shows up in the picker too.

Texts and looks are kept apart on purpose: lang/ has the words, styles/ has the icons and slots, and styles pull words in with <lang:some.key> tokens. Changing the language never breaks a layout, and changing the style never loses a translation.

Commands

CommandWhat it doesPermission
/ahOpens the auction houseauctionzoptymalized.use
/ah <text>Searches the market, e.g. /ah diamond swordauctionzoptymalized.search
/ah searchOpens the typing boardauctionzoptymalized.search
/ah sellOpens the sell menuauctionzoptymalized.sell
/ah sell <price>Lists the item in your hand right awayauctionzoptymalized.sell
/ah expiredCollects your expired listings and payoutsauctionzoptymalized.use
/ah helpShows the help-

Aliases: /auction, /rynek.

Admin, all under /ap (aliases /auctionzoptymalized, /auctionzoptimalized):

CommandWhat it does
/ap reloadReloads config, languages and styles
/ap versionShows the plugin version
/ap gui [menu]Opens any menu from the active style
/ap style [name]Style picker / switches the look
/ap lang [code]Language picker / switches the language
/ap auction saveWrites listings.yml right now
/ap auction clearReturns every listing to its seller

Permissions

NodeDefaultGrants
auctionzoptymalized.useeveryoneOpening the auction house
auctionzoptymalized.selleveryoneListing items for sale
auctionzoptymalized.searcheveryoneSearching the market
auctionzoptymalized.limit.bypassopIgnores the listing limit
auctionzoptymalized.adminopThe /ap commands, and all of the above

Files

plugins/AuctionzOptymalized/
  config.yml      behaviour: duration, tax, limits, blacklist, categories, search
  listings.yml    the market data - do not edit while the server runs
  lang/           en.yml, pl.yml, de.yml - every message and every word in the menus
  styles/         default.yml, donutsmp.yml, minimal.yml - icons, slots, layout

Config highlights

auction:
  listing-duration: "48h"        # s / m / h / d
  max-listings-per-player: 5     # 0 = unlimited
  min-price: 1.0
  max-price: 10000000.0
  tax-percent: 5.0               # taken from the seller's payout
  allow-buying-own: false
  broadcast-new-listings: false
  blacklist: [BEDROCK, BARRIER, COMMAND_BLOCK, STRUCTURE_BLOCK]
  search:
    enabled: true
    max-length: 48
    match-lore: true             # also search lore and enchantments
    match-seller: true           # /ah Notch finds their listings

Categories are written as rules, not as material lists:

    pvp:
      match: ["*_SWORD", "*_AXE", "*_HELMET", "BOW", "SHIELD", "TRIDENT", "*POTION"]

match and exclude take an exact material, a wildcard with one *, or a tag: #block, #item, #edible, #record, #fuel, #solid. An empty match means "everything" - that is the all tab. Adding a tab means an entry here, an icon and a slot in styles/, and a name in lang/ under gui.categories.<id>.

How it stays fast

  • The listing list is sorted once and cached; a version counter on the auction manager is bumped on every change, and every derived cache checks that counter instead of rebuilding.
  • Search haystacks (name, lore, seller) are built once per listing and reused.
  • Category rules are resolved into material sets when the plugin starts, so filtering a full market is one set lookup per listing, done before any text matching.
  • Search results are cached per player, so paging through them is not a second scan.
  • Tab completion, category counts and the sorted view all sit on the same counter.

Галерея

Ceo screenMessagesBannersearch screen

Последние версии

Все версии →
beta

AuctionzOptymalized

1.0
1 авг. 2026 г.40Minecraft: 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
# AuctionzOptymalized A player-to-player auction house for Paper servers. Players list items from a GUI, everyone else browses, searches and buys them with server money. Built to stay fast on a busy market: every view the players see is cached and only rebuilt when the market actually changes. - **Version:** 1.0 BETA - **Server:** Paper 26.x (`api-version: 26.1.2`) - **Requires:** a Vault economy (EssentialsX, CMI, ...) - the plugin will not start without one - **Author:** _M4rtwy_ ## Features - **Auction GUI** - paged market view, left click buys, right click cancels your own listing. - **Sell menu** - drop an item in, set the price with +/- buttons, confirm. Or list straight from your hand with `/ah sell <price>`. - **Search** - `/ah diamond sword` from chat, or the sign button in the menu, which opens a typing board you fill in without leaving the GUI. Matches item names, and optionally lore, enchantments and the seller's name. - **Category tabs** - Everything / Building blocks / Items / PvP gear / Tools / Food / Redstone along the top row. Tabs are defined in the config, so you can add your own. - **Expiry and payouts** - listings run out after a set time and go to `/ah expired`, where the seller collects them. Sale money is paid out the same way. - **Tax, price limits, listing limits, item blacklist** - all in the config. - **Languages** - `lang/en.yml`, `pl.yml`, `de.yml`. Drop in your own `lang/xx.yml` and it shows up in the picker. Missing keys fall back to English. - **Styles** - `styles/default.yml`, `donutsmp.yml`, `minimal.yml` hold every icon, slot and layout. Your own file in `styles/` shows up in the picker too. Texts and looks are kept apart on purpose: `lang/` has the words, `styles/` has the icons and slots, and styles pull words in with `<lang:some.key>` tokens. Changing the language never breaks a layout, and changing the style never loses a translation. ## Commands | Command | What it does | Permission | | --- | --- | --- | | `/ah` | Opens the auction house | `auctionzoptymalized.use` | | `/ah <text>` | Searches the market, e.g. `/ah diamond sword` | `auctionzoptymalized.search` | | `/ah search` | Opens the typing board | `auctionzoptymalized.search` | | `/ah sell` | Opens the sell menu | `auctionzoptymalized.sell` | | `/ah sell <price>` | Lists the item in your hand right away | `auctionzoptymalized.sell` | | `/ah expired` | Collects your expired listings and payouts | `auctionzoptymalized.use` | | `/ah help` | Shows the help | - | Aliases: `/auction`, `/rynek`. Admin, all under `/ap` (aliases `/auctionzoptymalized`, `/auctionzoptimalized`): | Command | What it does | | --- | --- | | `/ap reload` | Reloads config, languages and styles | | `/ap version` | Shows the plugin version | | `/ap gui [menu]` | Opens any menu from the active style | | `/ap style [name]` | Style picker / switches the look | | `/ap lang [code]` | Language picker / switches the language | | `/ap auction save` | Writes `listings.yml` right now | | `/ap auction clear` | Returns every listing to its seller | ## Permissions | Node | Default | Grants | | --- | --- | --- | | `auctionzoptymalized.use` | everyone | Opening the auction house | | `auctionzoptymalized.sell` | everyone | Listing items for sale | | `auctionzoptymalized.search` | everyone | Searching the market | | `auctionzoptymalized.limit.bypass` | op | Ignores the listing limit | | `auctionzoptymalized.admin` | op | The `/ap` commands, and all of the above | ## Files ``` plugins/AuctionzOptymalized/ config.yml behaviour: duration, tax, limits, blacklist, categories, search listings.yml the market data - do not edit while the server runs lang/ en.yml, pl.yml, de.yml - every message and every word in the menus styles/ default.yml, donutsmp.yml, minimal.yml - icons, slots, layout ``` ## Config highlights ```yaml auction: listing-duration: "48h" # s / m / h / d max-listings-per-player: 5 # 0 = unlimited min-price: 1.0 max-price: 10000000.0 tax-percent: 5.0 # taken from the seller's payout allow-buying-own: false broadcast-new-listings: false blacklist: [BEDROCK, BARRIER, COMMAND_BLOCK, STRUCTURE_BLOCK] search: enabled: true max-length: 48 match-lore: true # also search lore and enchantments match-seller: true # /ah Notch finds their listings ``` Categories are written as rules, not as material lists: ```yaml pvp: match: ["*_SWORD", "*_AXE", "*_HELMET", "BOW", "SHIELD", "TRIDENT", "*POTION"] ``` `match` and `exclude` take an exact material, a wildcard with one `*`, or a tag: `#block`, `#item`, `#edible`, `#record`, `#fuel`, `#solid`. An empty `match` means "everything" - that is the `all` tab. Adding a tab means an entry here, an icon and a slot in `styles/`, and a name in `lang/` under `gui.categories.<id>`. ## How it stays fast - The listing list is sorted once and cached; a version counter on the auction manager is bumped on every change, and every derived cache checks that counter instead of rebuilding. - Search haystacks (name, lore, seller) are built once per listing and reused. - Category rules are resolved into material sets when the plugin starts, so filtering a full market is one set lookup per listing, done before any text matching. - Search results are cached per player, so paging through them is not a second scan. - Tab completion, category counts and the sorted view all sit on the same counter. ## Building Needs JDK 25+ and Maven. ``` mvn clean package ``` The finished jar lands in `target/AuctionzOptymalized-<version>.jar`.