Auction House Plugin - Аукционный дом на сервер
Плагин Auction House Plugin добавляет на сервер Майнкрафт полноценный аукцион по команде /ah. Продажа предметов, ставки, налоги, поиск по лотам и настраиваемый GUI для серверной экономики.
Если вы играли на Hypixel SkyBlock, то наверняка помните этот вайб: выставил редкий предмет на аукцион, ушёл копать ресурсы, вернулся - а монеты уже лежат на счету. Auction House Plugin приносит ровно эту механику на любой сервер Minecraft. Игрок пишет /ah, и перед ним открывается удобный GUI-аукцион: чужие лоты, поиск, фильтры, свои продажи. Без табличек на спавне и торговли через чат.
Для сервера с экономикой это, по факту, must-have. Плагин решает главную проблему выживания с донатом и валютой - даёт игрокам легальный и удобный рынок, где цены формируются сами собой. Админу от этого тоже плюс: налоги с продаж выводят лишнюю валюту из оборота и сдерживают инфляцию. Плагин бесплатный, с открытым кодом (GPL-3.0), изначально его писали под сервер SpireMC, а сейчас это один из самых живых аукционов в экосистеме. Работает на Bukkit, Spigot, Paper, Purpur и даже Folia, актуальные версии Minecraft 1.21.x поддерживаются.
Что нужно для установки
Зависимостей немного, но без них плагин не заведётся:
- Vault (или VaultUnlocked, если у вас Folia)
- Любой экономический плагин - например, EssentialsX или BetterEconomy
Vault здесь выступает мостом между аукционом и вашей экономикой, так что сначала настройте балансы игроков, а уже потом ставьте сам Auction House Plugin. Дополнительно поддерживаются PlaceholderAPI, RoseStacker, ClickVillagers и Locale-API, если они у вас стоят.
Как пользоваться аукционом
Для игрока всё сводится к паре команд:
/ah- открыть аукционный дом/ah sell <цена>- выставить предмет из руки на продажу по фиксированной цене (BIN, Buy It Now)/ah bid <цена>- создать настоящий аукцион со ставками (BID)/ah announce- включить или выключить объявления о новых лотах в чате
Двойная система продаж - это главная фишка. BIN-лоты покупаются мгновенно, как в магазине. А BID-аукционы устраивают настоящие торги: игроки перебивают ставки, и тут в конфиге спрятана приятная деталь - опция last-bid-extra-time. Если кто-то делает ставку в последние секунды, таймер продлевается. Классическая защита от снайперов, как на eBay. Шаг ставки тоже регулируется: по умолчанию каждая следующая должна быть минимум на 25% выше.
Ещё из полезного для игроков: поиск по лотам через наковальню-GUI, просмотр содержимого шалкеров и бандлов перед покупкой (никакого кота в мешке), история транзакций и частичная покупка - можно купить не весь стак, а только нужное количество. Кстати, в свежих версиях (ветка 1.5.5) добавили суффикс b для цен в миллиардах, звук при создании лота и починили планировщик под Folia. А критический баг с дюпом при частичной продаже разработчик закрыл ещё раньше, так что за экономику можно не переживать.
Команды для админов и модераторов
Админам доступны инструменты модерации рынка:
/ah admin- открывает аукцион в режиме модератора: клик по предмету удаляет его из продажи/ah ban- запретить конкретному игроку пользоваться/ah/ah summon <entity>- заспавнить Auction Master Villager (жителя-аукциониста) или отображаемые лоты, сущность дополняется через таб
Описание каждой команды выводится прямо в игре. Если вы не хотите раздавать опку, выдайте право auctionhouse.moderator - оно открывает доступ ко всем модераторским командам.
Чтобы убрать NPC или висящие предметы-витрины, просто ударьте их в креативе с правами оператора. Важный нюанс: команда /kill @e тоже их снести, а /teleport @e - перенесёт. Так что аккуратнее с глобальными командами по сущностям.
Настройка config.yml
Основной конфиг покрывает всё: налоги, лимиты, длительность лотов. Вот что есть что:
config.yml
tax: 0.01 # налог 1% с продажи
auction-setup-time: 30 # время на выставление предмета
sold-message: true # сообщать игроку, когда его лот купили
auto-collect: false # автоматически выдавать деньги за проданный лот и убирать его
default-max-auctions: 10
partial-selling: false # разрешить покупку части стака из лота
admin-permission: "auctionhouse.moderator"
display-update: 20 # 20 тиков = 1 секунда, частота обновления витрин; поставьте 1 для мгновенного
auction-announcements: true # объявлять в чат новые лоты (игроки переключают через /ah announce)
bin-auctions: true # BIN = Buy It Now [/ah sell <цена>]
bin-auction-duration: 172800 # длительность лота в секундах (60*60*48 = 172800)
min-bin: 1 # минимальная цена продажи
bid-auctions: true # включить торги через [/ah bid <цена>]
bid-auction-duration: 7200 # длительность аукциона со ставками в секундах (60*60*2 = 7200)
min-bid: 1 # минимальная ставка
last-bid-extra-time: 60 # если до конца аукциона осталось меньше этого времени, таймер сбрасывается на него
bid-increase-percent: 25 # минимальный шаг повышения ставки в процентах
Совет из практики: не выключайте налог полностью. Даже 1-3% с каждой продажи потихоньку выводят валюту из экономики, и через пару месяцев цены на сервере не улетят в космос. А вот display-update на больших серверах лучше оставить на 20 тиков - мгновенное обновление витрин красиво, но лишняя нагрузка вам ни к чему.
Слоты и длительность по правам
Отдельный permissions.yml позволяет раздавать расширенные лимиты за пермишены. И это прямой путь к монетизации: продавайте дополнительные слоты аукциона и долгие сроки лотов в составе вип-статусов.
Пример permissions.yml
# стандартное количество слотов и длительность меняются в config.yml
# по умолчанию тут пусто. Чтобы добавить ранги/права, пропишите их так:
auction-slots:
vip: 12
mvp: 15
custom.example.permission: 50
auction-duration:
vip: 259200 # 60*60*24*3 = 3 дня
mvp: 345600 # 60*60*24*4 = 4 дня
custom.example.permission: 432000 # 5 дней
Цветовые коды для messages.yml
Все тексты плагина переводятся и раскрашиваются через messages.yml. Ниже шпаргалка по кодам форматирования - пригодится, чтобы сделать русскую локализацию в цветах вашего сервера.
Цветовые коды, используемые в messages.yml
# §k обфусцированный (мельтешащий)
# §l жирный
# §m зачёркнутый
# §n подчёркнутый
# §o курсив
# §r сброс форматирования
# &n новая строка
# §0: Чёрный
# §1: Тёмно-синий
# §2: Тёмно-зелёный
# §3: Тёмно-бирюзовый
# §4: Тёмно-красный
# §5: Тёмно-фиолетовый
# §6: Золотой
# §7: Серый
# §8: Тёмно-серый
# §9: Синий
# §a: Зелёный
# §b: Бирюзовый
# §c: Красный
# §d: Светло-фиолетовый
# §e: Жёлтый
# §f: Белый
Кастомизация интерфейса через layout.yml
GUI аукциона собирается буквально из символов: каждая буква в схеме - это кнопка или слот, и вы можете переставлять их местами, менять предметы-иконки или вообще удалять строки. Пробелы между символами добавлены просто для наглядности.
layout.yml
# Любой символ можно заменить другим или вообще убрать строку, чтобы изменить раскладку. Пробелы между символами - только для читаемости. Сами символы определяются ниже.
ah-layout:
- '# # # # # # # # #'
- '# . . . . . . . #'
- '# . . . . . . . #'
- '# . . . . . . . #'
- '# # # # # # # # #'
- 's o # p r n # f m'
my-ah-layout:
- '# # # # # # # # #'
- '# . . . . . . . #'
- '# . . . . . . . #'
- '# . . . . . . . #'
- '# # # # # # # # #'
- 'b o # p r n # d i'
'#':
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:black_stained_glass_pane
count: 1
components:
minecraft:tooltip_display: '{hide_tooltip:1b}'
schema_version: 1
s:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:oak_sign
count: 1
schema_version: 1
active-search:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:spruce_sign
count: 1
schema_version: 1
o:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:hopper
count: 1
schema_version: 1
p:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:arrow
count: 1
schema_version: 1
r:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:nether_star
count: 1
schema_version: 1
n:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:arrow
count: 1
schema_version: 1
m:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:ender_chest
count: 1
schema_version: 1
b:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:arrow
count: 1
schema_version: 1
i:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:paper
count: 1
schema_version: 1
f:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:powered_rail
count: 1
schema_version: 1
d:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:golden_carrot
count: 1
schema_version: 1
bin-filter-bin:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:gold_ingot
count: 1
schema_version: 1
bin-filter-auctions:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:gold_block
count: 1
schema_version: 1
locked-slot:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:barrier
count: 1
schema_version: 1
back-to-my-auctions:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:arrow
count: 1
schema_version: 1
anvil-search-paper:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:paper
count: 1
schema_version: 1
cancel:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:red_banner
count: 1
schema_version: 1
collect-expired-item:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:red_dye
count: 1
schema_version: 1
cancel-auction:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:red_concrete
count: 1
schema_version: 1
command-block-info:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:structure_block
count: 1
schema_version: 1
admin-cancel-auction:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:red_concrete
count: 1
schema_version: 1
admin-expire-auction:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:red_dye
count: 1
schema_version: 1
confirm:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:green_banner
count: 1
schema_version: 1
choose-item-buy-amount:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:oak_hanging_sign
count: 1
schema_version: 1
dirt:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:dirt
count: 1
schema_version: 1
turtle-scute-confirm:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:turtle_scute
count: 1
schema_version: 1
cannot-afford:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:armadillo_scute
count: 1
schema_version: 1
collect-sold-item:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:diamond
count: 1
schema_version: 1
bid-history:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:filled_map
count: 1
schema_version: 1
bid-explanation:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:gold_ingot
count: 1
schema_version: 1
submit-bid:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:gold_nugget
count: 1
schema_version: 1
cannot-afford-bid:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:armadillo_scute
count: 1
schema_version: 1
top-bid:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:gold_block
count: 1
schema_version: 1
collect-auction:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:gold_block
count: 1
schema_version: 1
collect-coins:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:gold_nugget
count: 1
schema_version: 1
own-bid:
==: org.bukkit.inventory.ItemStack
DataVersion: 4325
id: minecraft:poisonous_potato
count: 1
schema_version: 1
sounds:
click: "UI_STONECUTTER_SELECT_RECIPE"
open-enderchest: "BLOCK_ENDER_CHEST_OPEN"
close-enderchest: "BLOCK_ENDER_CHEST_CLOSE"
break-wood: "BLOCK_WOOD_BREAK"
experience: "ENTITY_EXPERIENCE_ORB_PICKUP"
villager-deny: "ENTITY_VILLAGER_NO"
open-shulker: "BLOCK_SHULKER_BOX_OPEN"
close-shulker: "BLOCK_SHULKER_BOX_CLOSE"
Обратите внимание на секцию sounds в конце - каждому действию в меню можно назначить свой звук. Мелочь, а интерфейс ощущается совсем иначе.
Частые вопросы
Можно ли перевести сообщения и тексты GUI на русский? Да, всё редактируется в файле messages.yml в папке плагина. Валюту из "coins" тоже можно переименовать во что угодно - ищите секцию "placeholders" в том же файле.
Как обновить конфиг, когда выходят новые опции? Руками ничего переносить не нужно. Плагин сам дописывает недостающие параметры при обновлении и не трогает ваши настройки.
Как заспавнить жителя-аукциониста и витрины с предметами, и как их потом убрать?
С правами оператора введите /ah summon <entity> - название сущности подскажет таб. Удаляются они ударом рукой в креативном режиме.
NPC и витрины пропадают через время, в чём дело?
Если вы или другой админ делали /kill @e - вот и причина, их задело вместе со всеми сущностями. А /teleport @e их не удалит, но перенесёт в новое место.
Кому ставить и что в итоге
Если собираете сервер выживания, гриферку или анархию с экономикой - Аукцион Хаус ставится одним из первых, сразу после EssentialsX и Vault. Он даёт игрокам рынок без лишней возни, а вам - рычаги управления валютой и донатные плюшки через слоты лотов. Чёрный список предметов в конфиге, кстати, тоже есть - запретите продажу бедрока и командных блоков сразу, потом спасибо скажете.
Плагин отлично заходит на любом хостинге Майнкрафт, но если только думаете, где запустить сервер Майнкрафт с друзьями или под полноценный проект - на BungeeHost (https://bungee.host) Auction House Plugin установится буквально в один клик, а Paper и Purpur там работают из коробки. Арендовать сервер Майнкрафт с готовым менеджером плагинов заметно проще, чем поднимать всё на коленке дома.
Скачать Auction House Plugin стоит всем, кто строит серверную экономику в Minecraft 1.21 - это один из тех плагинов, после которого торговля через чат кажется каменным веком.
Скриншоты Auction House Plugin - Аукционный дом на сервер
Часто задаваемые вопросы
Версии плагина Auction House Plugin - Аукционный дом на сервер
Доступно 24 версий. Сначала показаны самые популярные и самые свежие.