Как установить и настроить плагин Millida Trade
Это пошаговый гайд по установке плагина Millida Services — одного плагина сразу для донат-магазина (Trade) и рейтинга сервера (Rating). За 5 минут ты доведёшь сервер от «скачал .jar» до зелёного индикатора «онлайн» и начнёшь принимать покупки и награждать игроков за голоса.
Плагин работает на Paper / Spigot / Folia, прокси BungeeCord / Velocity и модах Fabric / Forge / NeoForge. Никаких прав root и открытых портов не нужно — соединение всегда исходящее.
Не делись токеном сервера ни с кем. Это пароль, который позволяет выдавать товары на твоём сервере. Если токен утёк — сгенерируй новый в админке (см. FAQ ниже).
Какую версию выбрать
Есть две основные сборки. Если сомневаешься и у тебя обычный сервер — бери Modern (Paper / Spigot / Folia).
- Modern: Minecraft 1.13 – 1.21+, Java 17+, софт Paper / Spigot / Folia, опционально PlaceholderAPI.
- Legacy: Minecraft 1.8.8 – 1.12.2, Java 8+, софт Spigot / Bukkit, SSL-сертификаты вшиты прямо в JAR.
На Folia работает modern-версия: плагин сам определит Folia и переключится на регионализованный планировщик. Внешние зависимости (LuckPerms / Vault / EssentialsX) не требуются — плагин выдаёт команды от лица консоли.
Прокси и моды. Для BungeeCord / Velocity и для Fabric / Forge / NeoForge есть отдельные сборки. Bukkit-сборка и прокси работают на всех версиях Minecraft одним файлом; сборки модов идут под конкретные версии Minecraft (1.20.1, 1.21.1).
Шаг 1. Скачай сборку под свою платформу
Выбери файл под свой сервер. Если сомневаешься и у тебя обычный сервер — бери Paper / Spigot / Folia. Моды собираются под конкретную версию Minecraft, так что бери файл со своей версией. Нужна другая версия MC — напиши в поддержку, добавим в сборку.
- MillidaServices-Paper.jar — Paper / Spigot / Folia (1.13+)
- MillidaServices-BungeeCord.jar — BungeeCord (прокси)
- MillidaServices-Velocity.jar — Velocity (прокси)
- MillidaServices-Fabric-1.21.1.jar — Fabric · 1.21.1
- MillidaServices-Fabric-1.20.1.jar — Fabric · 1.20.1
- MillidaServices-Forge-1.21.1.jar — Forge · 1.21.1
- MillidaServices-Forge-1.20.1.jar — Forge · 1.20.1
- MillidaServices-NeoForge-1.21.1.jar — NeoForge · 1.21.1
- MillidaTrade-legacy.jar — Legacy · Spigot 1.8 – 1.12
Шаг 2. Положи JAR в plugins/
Скопируй файл в папку plugins/ своего сервера — через FTP, SFTP или панель хостинга. На модах файл кладётся в папку mods/.
- Пример пути на хостинге: /home/minecraft/server/plugins/MillidaServices-Paper.jar
- На модах: /home/minecraft/server/mods/MillidaServices-Fabric-1.21.1.jar
Шаг 3. Перезапусти сервер
Полный рестарт нужен один раз, чтобы плагин создал файл plugins/MillidaServices/config.yml. Дальше изменения применяются командой /ms reload без перезапуска. В консоли сервера выполни stop, затем запусти заново (например, ./start.sh).
Шаг 4. Возьми токен в админке
Открой Админка → Магазин → раздел «Серверы» → твой сервер → кнопка «Скопировать токен». Токен выглядит как mt_XXXXXXXXXXXXXXXX. Если сервера ещё нет — нажми «+ Добавить сервер», укажи название (например, «Анархия #3»), и токен сгенерируется автоматически.
Токен сервера показывается один раз — копируй сразу.
Шаг 5. Вставь токен в config.yml
Открой plugins/MillidaServices/config.yml (на модах — config/millidaservices/config.json) и впиши токен в поле server-token. Это единственное обязательное поле — остальное опционально. Адрес API подставляется автоматически, указывать его не нужно.
- server-token: "mt_XXXXXXXXXXXXXXXXXXXXXXXX" — токен сервера (обязательно)
- server-name: "Анархия #3" — имя сервера
- mode-name: "Анархия" — режим
- services.trade.enabled: true — автодонат
- services.rating.enabled: true — награды за голоса
- logging.show-errors: true — выводить ошибки плагина в консоль
- error-reporting.enabled: true — обезличенные отчёты об ошибках в Millida
Шаг 6. Перезагрузи конфиг и проверь статус
В консоли сервера или из игры (с правами оператора) выполни команду /ms reload. В админке во вкладке «Серверы» статус сервера сменится на «● Онлайн» в течение 30 секунд. Готово — можно принимать покупки. Если не загорелось зелёным, загляни в раздел «Что-то не работает» ниже.
Команды плагина
Основная команда — /ms. Алиасы: /millida, /mt, /millidatrade. Админ-команды требуют права millidaservices.admin (по умолчанию оно у операторов); команда /ms top доступна всем игрокам.
- /ms top — топ голосующих сервера, доступна всем игрокам.
- /ms status — версия, server ID, очередь событий, последний flush, активные сервисы. Ничего не меняет.
- /ms reload — перечитать конфиг и заново сделать handshake. После смены токена или настроек.
- /ms test — ping на api.millida.trade, проверка сети/файрвола без перезагрузки.
- /ms update — проверить и скачать обновление плагина (если включено на бэкенде).
Рейтинг: награды за голоса
Игрок голосует за твой сервер на сайте Millida (там же защита от накрутки: Discord, Cloudflare, история игры). Плагин узнаёт о засчитанном голосе и выдаёт награды локально — командами, которые ты настраиваешь сам в config.yml. Можно давать бонус за каждый голос и отдельные бонусы за стрик (голоса несколько дней подряд).
- rating.vote-rewards — команды за КАЖДЫЙ голос, поддерживают плейсхолдеры {player}, {streak}, {server}. Пример: "eco give {player} 100" и "crate give {player} vote 1".
- rating.streak-milestones: [7, 30] — на каких днях стрика срабатывают бонусы.
- rating.streak-rewards — команды за стрик: на 7 дней, например, "crate give {player} weekly 1"; на 30 дней — "lp user {player} parent addtemp vip 30d".
- rating.top.size: 10 — сколько мест показывать в /ms top и плейсхолдерах.
- rating.messages.vote — сообщение при голосе, например: "&8[&dRating&8] &f{player} проголосовал — спасибо!"
Топ голосующих и голограммы
Команда /ms top показывает топ. Для голограмм используй плейсхолдеры (их рендерят DecentHolograms / HolographicDisplays) — нужен установленный PlaceholderAPI.
- %millida_rating_top_1_name% — ник игрока на 1-м месте (и _2_, _3_ … до top.size).
- %millida_rating_top_1_votes% — голоса игрока на 1-м месте.
- %millida_rating_votes% — голоса текущего игрока.
- %millida_rating_streak% — стрик игрока (дней подряд).
- %millida_rating_position% — позиция игрока в топе.
API для разработчиков
Другие плагины могут расширять Millida Services. На Bukkit/Paper — через ServicesManager и события. Стабильная точка интеграции — пакет ru.millida.services.core.api.
- Получить API: MillidaServicesApi api = getServer().getServicesManager().load(MillidaServicesApi.class);
- api.serverId() — ID сервера.
- api.ratingTop(10) — топ голосующих.
- api.ratingPlayer("Steve") — голоса, стрик и позиция игрока.
- Событие MillidaVoteRewardEvent (через @EventHandler) — реакция на награду за голос, у e.getInfo() доступны nickname() и streak().
- На любой платформе доступна подписка api.onVoteReward(listener).
Прокси-сервер
Если у тебя BungeeCord или Velocity и фронт-сервер раздаёт игроков по бэк-нодам — плагин ставится на каждый бэк-сервер, который принимает покупки. На самом прокси-сервере плагин не нужен.
BungeeCord / Waterfall
В spigot.yml бэк-сервера убедись, что включена опция settings.bungeecord: true. Плагин автоматически прочитает hostname из BungeeCord handshake — никаких дополнительных настроек.
Velocity (только modern)
В paper-global.yml на бэк-сервере должна быть включена секция proxies.velocity: enabled: true, online-mode: true и secret: 'твой-velocity-secret'. Secret должен совпадать со значением в velocity.toml на прокси. На legacy-версии (1.8 – 1.12) Velocity не поддерживается — только BungeeCord.
Что-то не работает
Пройдись по чек-листу сверху вниз. В 90% случаев это одна из четырёх причин.
1. Сервер не появляется онлайн в админке
Проверь по порядку токен, файрвол, версию Minecraft/Java и загрузку плагина.
- Токен — скопирован полностью, без пробелов, начинается с mt_. После правки выполни /mt reload.
- Файрвол — сервер должен иметь исходящий доступ к api.millida.trade по порту 443 (HTTPS). Проверка: /mt test — должно вернуть «API отвечает».
- Версия Minecraft / Java — modern требует MC 1.13+ и Java 17+. Если у тебя 1.12 или ниже — нужна Legacy-версия.
- Плагин загрузился — в консоли при старте должна быть строка [MillidaServices] Millida Services v… запущен.
2. Где смотреть логи
Все сообщения плагина пишутся в стандартный лог сервера: logs/latest.log (текущий) и logs/2026-06-01-1.log.gz (архивные). Ищи строки с тегом [MillidaServices] или [MillidaTradeLegacy].
- server-token не указан — поле в config.yml пустое.
- Handshake failed: 401 — токен неверный или сервер удалён из админки.
- UnknownHostException: api.millida.trade — нет DNS или интернета.
- SSLHandshakeException — устаревшая Java на legacy (см. FAQ ниже).
3. Версия Java несовместима
Проверь версию Java на сервере командой java -version.
- Modern — Java 17 или выше (как и сам Paper 1.18+).
- Legacy — Java 8 или выше.
4. Игроки не получают покупки
- В админке статус сервера «● Онлайн» (зелёный).
- Игрок реально в онлайне на нужном сервере. Плагин выдаёт только онлайн-игрокам, оффлайн — копит в очередь и выдаст при входе.
- В консоли нет ошибок с тегом [MillidaServices].
- Команды товара в админке корректные — частая ошибка: опечатка в плейсхолдере {player}.
FAQ
Как ротировать токен?
Зайди в Админка → Серверы, открой нужный сервер, нажми «Сгенерировать заново». Старый токен сразу перестанет работать. Скопируй новый, вставь в config.yml и выполни /mt reload.
Обновление со старой версии плагина
Просто замени JAR в plugins/ на новый и перезапусти сервер. config.yml сохранится — плагин дольёт новые поля со значениями по умолчанию. Если переезжаешь с Legacy на Modern (обновил MC до 1.13+ и Java до 17+) — удали MillidaTradeLegacy.jar, положи MillidaTrade.jar и перенеси server-token в новый config. Server ID в админке останется тем же.
SSL-ошибка на старой Java
Для legacy-плагина (1.8 – 1.12) мы кладём корневые сертификаты Let's Encrypt (ISRG Root X1) прямо в JAR — подключение к api.millida.trade работает из коробки даже на Java 8. Если всё равно ловишь SSL-handshake — обнови Java до 11+.
Как работает плагин «под капотом»?
Плагин держит лёгкое long-poll соединение с api.millida.trade (heartbeat) и каждые несколько секунд проверяет, есть ли новые покупки на выдачу. Когда покупка приходит — выполняет команду товара от лица консоли. Никакие порты на твоём сервере открывать не нужно — соединение всегда исходящее.
Несколько серверов на один магазин
Да. В админке создаёшь несколько серверов (у каждого свой токен), ставишь плагин на каждый и в config.yml вписываешь соответствующий токен. По желанию объединяешь сервера в режим (например, «Анархия») — тогда покупатель на витрине сначала выбирает режим, потом конкретный сервер.
Поддомен — как настроить DNS
В админке (раздел «Поддомены») добавь свой поддомен — например, blogger.shop.ru. Затем в DNS-провайдере (Cloudflare, рег.ру и т.д.) создай CNAME-запись. Через 5 – 60 минут (зависит от провайдера) поддомен начнёт работать, SSL-сертификат выпустим автоматически.
- Тип: CNAME
- Хост: blogger.shop.ru
- Цель: millida.trade
- TTL: 300 (или auto)


