- Поддерживаемые версии
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
pnMarket
Удобный аукцион для Minecraft-серверов на Paper 1.17–1.21.x
GUI рынка, частичная покупка, поиск, собственные категории и SQLite по умолчанию.
Paper 1.16.5 поддерживается в экспериментальном режиме.
Скачать pnMarket 1.0.1 | Все версии
Удобный аукцион для Minecraft-серверов на Paper 1.17–1.21.x
GUI рынка, частичная покупка, поиск, собственные категории и SQLite по умолчанию.
Paper 1.16.5 поддерживается в экспериментальном режиме.
Скачать pnMarket 1.0.1 | Все версии
Возможности
Графический аукцион
Открывается командой /ah. Поддерживает страницы, сортировку и категории.
Продажа предметов
Команда /ah sell <цена> выставляет весь стак из основной руки. Цена указывается за весь лот.
Частичная покупка
Покупатель может выбрать количество предметов в лоте. Цена пересчитывается автоматически.
Мгновенное обновление GUI
Новый лот, покупка, возврат и забор предмета обновляют все открытые меню в следующем тике сервера.
Поиск и товары продавца
Есть поиск по названию и Material ID, а также просмотр всех активных лотов игрока.
Собственные категории
Можно создать любое количество категорий с правилами по Material ID, части ID, названию предмета и съедобности.
Защита лотов
Игрок не может купить свой лот. Операции покупки резервируют предметы в базе данных, поэтому один предмет не продаётся дважды.
Возврат и срок лота
Лоты истекают через 24 часа. Свои активные лоты можно снять, а истёкшие забрать в разделе «Мои товары».
Лимиты и цены
Лимиты лотов зависят от основной Vault-группы. Минимальная и максимальная цена настраиваются.
Три хранилища
Поддерживаются SQLite, MySQL и MongoDB.
Обновления
Проверка GitHub Releases запускается автоматически раз в шесть часов.
Как работает рынок
1. Продавец держит предмет в основной руке и выполняет команду /ah sell 250.
2. Плагин сохраняет предмет и цену в выбранную базу данных.
3. Предмет забирается из руки продавца и сразу появляется в открытых меню аукциона.
4. Покупатель открывает лот, выбирает количество и подтверждает покупку.
5. Деньги списываются через Vault, продавец получает оплату, а предмет отправляется покупателю.
6. Если инвентарь покупателя заполнен, предмет выпадает рядом с ним.
7. После продажи все открытые меню обновляют остаток лота либо удаляют проданный лот.
Установка
1. Скачайте pnMarket-1.0.1.jar:
https://github.com/Dy6HiLa/pnMarket/releases/latest
2. Поместите файл в папку сервера plugins/.
3. Установите Vault и совместимый плагин экономики.
4. Для донат-аукциона /dah дополнительно установите PlayerPoints.
5. Запустите сервер. По умолчанию будет создана SQLite-база:
plugins/pnMarket/market.db
6. При необходимости измените:
plugins/pnMarket/config.yml
После изменения настроек выполните полный перезапуск сервера.
Требования:
Paper 1.17–1.21.x
Java 17 или новее
Vault
Плагин экономики
PlayerPoints — только для /dah
Для MySQL и MongoDB нужен внешний сервер базы данных
Важно: не используйте PlugMan и аналоги для первой установки или смены типа базы данных. Выполняйте полный рестарт сервера.
Команды
Основной аукцион
/ah — открыть аукцион.
/ah sell <цена> — выставить предмет из основной руки.
/ah kit <цена> — выставить набор из занятых слотов основного инвентаря.
/ah search <название> — открыть результаты поиска.
/ah show <игрок> — открыть лоты игрока.
/ah reload — перезагрузить config.yml, messages.yml, категории и проверку обновлений.
Донат-аукцион
/dah — открыть донат-аукцион за PlayerPoints.
/dah sell <цена> — выставить предмет в донат-аукционе.
/dah kit <цена> — выставить набор в донат-аукционе.
/dah search <название> — найти лот в донат-аукционе.
/dah show <игрок> — открыть донат-лоты игрока.
Права
pnmarket.admin — использование /ah reload и уведомления о новых версиях.
Настройка
Лимиты лотов
limits.default определяет, сколько активных лотов может выставить обычный игрок. Если Vault отдаёт игроку основную группу, одноимённый ключ переопределяет этот лимит.
Код:
limits:
default: 3 # Все игроки без отдельного правила.
vip: 10 # Основная Vault-группа vip.
admin: 50 # Основная Vault-группа admin.
Ограничения цены
Цена относится ко всему лоту, а не к одной единице предмета. maximum: 0 отключает верхний предел.
Код:
listing-price:
minimum: 10
maximum: 1000000
Собственные категории
Категории отображаются в порядке из config.yml. Первый подходящий фильтр определяет категорию товара. Категория all встроена всегда и показывает все лоты.
Правила категорий:
materials — точные значения Bukkit Material, например STONE или DIAMOND_SWORD.
material-contains — фрагменты Material ID, например _PICKAXE.
name-contains — фрагменты пользовательского названия предмета без цветовых кодов.
edible — все съедобные предметы.
Код:
categories:
building:
name: "Строительство"
materials: ["STONE", "OAK_PLANKS", "GLASS"]
tools:
name: "Инструменты"
material-contains: ["_PICKAXE", "_SHOVEL", "_HOE"]
rare-items:
name: "Редкие предметы"
name-contains: ["легендар", "rare"]
food:
name: "Еда"
edible: true
После изменения категорий выполните /ah reload или перезапустите сервер.
Базы данных
SQLite
Работает сразу после установки и не требует отдельного сервера.
Код:
storage:
type: sqlite
sqlite:
file: "market.db"
MySQL
Код:
storage:
type: mysql
mysql:
host: "localhost"
port: 3306
database: "minecraft"
username: "pnmarket"
password: "change-me"
Можно использовать полный JDBC-адрес в storage.mysql.url.
MongoDB
Код:
storage:
type: mongodb
mongo:
uri: "mongodb://localhost:27017"
database: "minecraft"
collection: "auction"
Переменная окружения PNMARKET_MONGO_URI имеет приоритет над storage.mongo.uri.
Поддержка
Поддержка и предложения по развитию: Discord privatenull

