AuctionzOptymalizedСкачать
ВЕРСИИ (1)
beta
AuctionzOptymalized
1.01 авг. 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`.