
SweetPlayerMarket - Глобальный рынок игроков
SweetPlayerMarket - плагин глобального рынка для серверов Майнкрафт: игроки выставляют предметы на продажу и создают заявки на покупку прямо через GUI, а админы настраивают валюты, комиссии и ограничения. Работает с MySQL и объединяет рынок между серверами.
SweetPlayerMarket - это серверный плагин глобального рынка для Майнкрафт. Если коротко: игроки выставляют предметы на продажу или создают заявки на покупку, а все остальные видят это через удобное меню и покупают в любой момент, даже когда продавец офлайн. То есть получается что-то вроде аукциона, только без аукциона - со ставками тут никто не возится, цены фиксированные, а управляют всем база данных и настраиваемые GUI.
Заходит это в первую очередь админам экономических серверов, выживания с торговлей и больших сеток с несколькими мирами или серверами. Любителям ванильного сингла плагин ни к чему, а вот для SMPa с валютой - прямо в жилу. По сути SweetPlayerMarket закрывает классическую боль: обычные /trade и физические сундучные магазины работают только когда обе стороны онлайн. Тут вы просто выставили лот и ушли спать, а утром на балансе уже капает.
Зачем это нужно на сервере
Раньше админам приходилось либо строить вручную магазины на спавне, либо мириться с тем, что игроки торгуют как получится. Оба варианта геморройные: персонал не набегается раздавать товар, а игроки не могут найти нужное в нужный момент. SweetPlayerMarket снимает эту обязанность полностью - рынок наполняют сами игроки. Админу остаётся только следить за порядком: запрещать продажу отдельных предметов, ограничивать валюты и брать комиссию с лотов.
Хорошо сочетается с привычным стеком серверной экономики. Из подтверждённых интеграций - Vault, PlayerPoints, MPoints, CoinsEngine и ExcellentEconomy, а ещё PlaceholderAPI, MythicMobs, CraftEngine и LangUtils. То есть балансы, голограммы и шаблоны плейсхолдеров подтянутся без плясок с бубном.
Что умеет плагин
- MySQL и межсерверность. Один рынок на всю сеть: предмет, выставленный на lobby, виден на survival и наоборот.
- Фильтрация и сортировка через базу данных. Список лотов можно сортировать по времени создания, сроку истечения, цене или количеству, по возрастанию и убыванию. Это не перебирание массива в памяти - работают реальные запросы к БД, поэтому даже на десятках тысяч лотов всё летает.
- Гибкий GUI-движок. Все меню строятся на движке из собственного PluginBase автора: интерфейсы до 6x9 слотов, кастомные раскладки, свои тексты и клик-экшены. Хоть полностью свой дизайн рисуйте.
- Свои лоты. Игрок открывает
/pm meи видит всё, что выставил: сколько продано, что осталось, где истекло. - Два пути выставления. Через команду одной строкой или через удобное GUI-меню, где предмет берётся прямо из инвентаря.
- Ограничения. Бан конкретных предметов, разрешённые валюты, комиссии за лот - всё настраивается.
- Локализация. Практически любой текст плагина меняется в конфигах.
- Автоматические лоты от системы. Плагин сам может выставлять предметы от имени аккаунта "Server" - по расписанию, по условию или со случайным шансом. Удобно для наград, ивентов и наполнения рынка редкими вещами.
- Категории. Лоты можно раскладывать по тегам, чтобы игроки не листали одну простыню.
Команды
Основная команда - /sweetplayermarket. Сокращения: /playermarket, /spm, /pm. Угловые скобки - обязательный параметр, квадратные - необязательный.
Для игроков
| Команда | Что делает | Право |
|---|---|---|
/pm open | Открыть главное меню рынка | sweet.playermarket.open |
/pm me | Посмотреть свои лоты | sweet.playermarket.me |
/pm tags | Открыть меню выбора категорий | sweet.playermarket.tags |
/pm create <shop-type> <price> <currency> [amount-per-item] [total-stock] | Выставить предмет на рынок | sweet.playermarket.create |
/pm create <shop-type> --menu | Открыть GUI выставления предмета | sweet.playermarket.create |
Для админов
| Команда | Что делает | Право |
|---|---|---|
/pm open [player] | Открыть рынок себе или другому игроку | sweet.playermarket.open.other |
/pm me [player] | Посмотреть лоты свои или чужого игрока | sweet.playermarket.open.other |
/pm tags [player] | Открыть меню категорий себе или игроку | sweet.playermarket.tags.other |
/pm recalc tags | Пересчитать теги всех предметов | sweet.playermarket.recalc |
/pm recalc index | Перестроить поисковый индекс | sweet.playermarket.recalc |
/pm server [player] | Посмотреть лоты системного аккаунта "Server" | sweet.playermarket.server |
/pm auto-deploy <config-name> <action> | Тест авто-выставления лотов | sweet.playermarket.auto-deploy |
/pm reload assets | Перезагрузить языковые файлы, докачает недостающие | OP / консоль |
/pm reload database | Переподключиться к базе данных | OP / консоль |
/pm reload | Перезагрузить конфиг плагина | OP / консоль |
У команды open есть флаги для фильтра: --type=type (по типу), --currency=type (по валюте), --tag=tag-name (по тегу). У me - --notice (только лоты с флагом уведомления) и --only-out-of-stock (только распроданные и просроченные). У create - --system=custom-name, чтобы выставить предмет от системного магазина (нужно право sweet.playermarket.create.system).
Права
Помимо базовых, есть тонкая настройка под разные экономики:
sweet.playermarket.create.currency.vault- выставление за деньги Vaultsweet.playermarket.create.currency.playerpoints- за очки PlayerPointssweet.playermarket.create.currency.mpoints.<amount>- за валюту MPointssweet.playermarket.create.bypass.cost- обход комиссии за лотsweet.playermarket.create.bypass.currency- обход ограничений по валютеsweet.playermarket.create.bypass.type- обход ограничений по типу магазина (продажа/покупка)sweet.playermarket.admin- глобальный админ-доступ, сейчас используется для удаления чужих лотов
Важный нюанс
Конфиги по умолчанию на китайском, как и документация. Это не баг, а просто родной язык автора MrXiaoM. В репозитории есть локализации под другие языки, так что перед стартом загляните в языковые файлы и переведите ключевые тексты под себя - иначе игроки увидят в меню иероглифы. Файлы подтягиваются через /pm reload assets, причём недостающие плагин докачает сам.
Совет по установке
SweetPlayerMarket - не мод, а серверный плагин, поэтому клиента он не касается: игрокам ничего ставить не нужно, заходят с ванильным Java Edition. Заявлена работа на Bukkit, Spigot, Paper, Purpur и Folia, поддерживаемые версии - от 1.8 до 1.21.x. Folia-совместимость отдельно приятна тем, кто поднимает многопоточные сервера под большие онлайны.
Если планируете сеть из нескольких серверов - сразу настраивайте MySQL, иначе весь смысл межсерверного рынка теряется. И заложите под это нормальный хостинг: тут удобно подходит BungeeHost, где плагин ставится буквально в один клик, а база данных поднимается рядом с игровыми серверами. Кросс-серверной экономике нужен стабильный пинг между нодами, иначе лоты будут открываться с задержкой.
Проект открытый - исходники под AGPL-3.0, текущая публичная версия 1.0.19. По классификации он попадает в жанры Economy, Social и Storage, а на площадке MineBBS взял первое место в мультиплеерной категории Java Edition на конкурсе "方块创作大赛". Из свежих правок стоит отметить разные алгоритмы комиссий, хуки на ограничение открытия GUI, настройку срока истечения распроданных лотов, просмотр содержимого контейнеров в лотах и закрытую уязвимость дюпа - последнее особенно важно, если у вас на сервере уже крутится живая экономика.
Скачать SweetPlayerMarket имеет смысл, если вы устали вручную разруливать торговлю между игроками. Один раз настроили валюты и комиссии - и рынок живёт сам. А для больших сеток это вообще must-have: без общего рынка игроки попросту не находят друг друга.
Сервер для плагина SweetPlayerMarket - Глобальный рынок игроков - как у профи
Плагин SweetPlayerMarket - Глобальный рынок игроков создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином SweetPlayerMarket - Глобальный рынок игроков для друзей можно за пару минут - BungeeHost всё уже подготовил.
