Серверный плагин StrangeCraftCore
Зачем нужен плагин
StrangeCraftCore — мост между сайтом и игровым сервером. Один плагин делает всё:
- Heartbeat — сервер регулярно сообщает сайту онлайн, MOTD и версию; на сайте виден живой мониторинг.
- Задания сайта — плагин забирает с сайта очередь заданий и выполняет их на сервере: выдача покупок из магазина, группы LuckPerms, установка скинов, кики, произвольные консольные команды.
- Наказания — баны и муты живут в базе сайта; плагин применяет их на сервере и позволяет выдавать прямо из игры.
- Авторизация на offline-серверах —
/loginи/register; пароль проверяет сайт, своей базы паролей у плагина нет (пароль единый с сайтом). - Гибридный вход на session-серверах — игрока со сторонним клиентом или истёкшим токеном лаунчера плагин замораживает до
/login. - Привязка Discord — команда
/discordв игре выдаёт код привязки аккаунта.
Плагин — «тонкий клиент»: в его конфиге только адрес сайта и токен, все остальные настройки раздаёт панель. При потере связи с сайтом активные баны и муты продолжают действовать из локального кэша, а выданные офлайн наказания отправляются на сайт при восстановлении связи.
Установка
- Скачайте jar: Админка → Серверы → кнопка скачивания серверного плагина (
StrangeCraftCore.jar). Файл приезжает вместе с обновлениями CMS; скачивание доступно при действующей лицензии. - Выпустите токен: откройте карточку нужного сервера → блок «Плагин StrangeCraftCore» → «Сгенерировать токен». Токен вида
SCP_…показывается один раз — сразу скопируйте. Токен персональный: по нему сайт опознаёт именно этот сервер (имя сервера в конфиге не нужно). - Положите jar в папку
plugins/сервера. Если раньше стояли старыеCmsPlugin-*.jarилиStrangeCraftAdmin-*.jar— удалите их, с ними StrangeCraftCore не запустится. - Запустите сервер и впишите в
plugins/StrangeCraftCore/config.yml(шаблон показан прямо в карточке сервера):
api:
url: https://ваш-сайт
token: SCP_ваш-токен
Токен можно не хранить в файле, а задать переменной окружения CMS_API_TOKEN.
5. Перезапустите сервер или выполните /core reload. В карточке сервера появится индикатор «на связи» с временем последней сверки.
Токен можно в любой момент перевыпустить или отозвать в той же карточке — старый сразу перестанет действовать.
Настройки плагина из панели
После первого выхода плагина на связь в карточке сервера появляется блок «Настройки плагина». Они хранятся на сайте (per-server) и раздаются серверу по API — плагин применяет их при ближайшей сверке, без рестарта сервера:
- «Наказания на этом сервере (баны, муты)» — вкл/выкл;
- «Объявлять наказания в чат»;
- «Вход по паролю (авторизация)» и «Требовать вход до игры» — режим
/loginдля offline-серверов; - язык сообщений (русский, английский, немецкий, французский);
- Heartbeat (5–300 сек) и период опроса заданий (1–60 сек).
Наказания
Источник истины — база сайта: плагин не ведёт свою базу, а держит локальный кэш активных записей и синхронизирует его с сайтом дельтами (передаются только изменения). Типы: бан, мут, бан по IP, кик. Срок задаётся как 7d, 2h, 30m (пусто — навсегда); у мута есть таймер «по игровому времени» — срок идёт, только пока игрок онлайн.
Выдача с сайта: Админка → Наказания — форма выдачи (ник или IP, тип, срок, причина), можно на конкретный сервер или глобально на всю сеть. Там же список активных с быстрым снятием. У игроков есть публичная страница наказаний с историей по игроку.
Выдача из игры: команды /ban, /mute, /banip, /kick, снятие /unban, /unmute, /unbanip (права strangecraft.punish.*). Запись сразу уходит на сайт; если сайт недоступен — наказание действует локально и доедет на сайт позже, дублей не будет.
История и активные записи видны в админке; на session-серверах баны дополнительно применяются прямо на входе — забаненного не пустит сам сайт ещё до подключения.
RCON или плагин: как сайт выполняет команды
Сайту регулярно нужно выполнять консольные команды на серверах: выдача покупок, группы LuckPerms, скины (SkinsRestorer), наказания. Есть два канала:
- RCON — классический протокол; работает синхронно и возвращает вывод команды, но требует открытого RCON-порта (держите его только на localhost/VPN) и пароля.
- Плагин — команда кладётся в очередь заданий и выполняется в консоли сервера при следующем опросе (по умолчанию каждые 5 секунд). Вывода команды нет, зато не нужен RCON вообще.
Режим выбирается в Настройки → Игровой плагин → «Выполнение команд сервера» (настройка plugin.command_transport):
- auto (по умолчанию) — сначала RCON; если он не настроен или не ответил, команда уходит в очередь плагина (если его heartbeat свежий, не старше 3 минут);
- rcon — только RCON;
- plugin — только очередь плагина.
Рекомендация: если плагин стоит на всех серверах, RCON можно вовсе не настраивать — режим auto сам всё разрулит. RCON остаётся полезен для RCON-консоли в карточке сервера (там нужен вывод команд).
Модовые серверы (Fabric / NeoForge / Forge)
На ядра с модами классический плагин не ставится, поэтому CMS поставляет мод-версии StrangeCraftCore с тем же функционалом: heartbeat, задания магазина, наказания (включая команды /ban, /mute и мут в чате), авторизация /login//register для offline-режима, /core status, /discord. Единственное отличие — задания смены скина на модовых серверах не выполняются (SkinsRestorer — плагин, на модовых ядрах его нет).
Поддерживаемые загрузчики и версии:
- Fabric: 1.18.2, 1.19.2, 1.20.1, 1.20.4, 1.21.1, 1.21.4;
- NeoForge: 1.20.6, 1.21.1, 1.21.4;
- Forge: 1.16.5, 1.18.2, 1.19.2, 1.20.1.
Если сервер создаётся через встроенную панель, мод ставится и настраивается автоматически — в mods/ попадает StrangeCraftCore.jar, конфиг с адресом сайта и токеном создаётся в config/strangecraftcore.json. Для промежуточных версий подбирается ближайшая совместимая сборка (например, сборка для 1.21.1 подойдёт серверу 1.21.0).
Для ручной установки на внешний сервер: скачайте jar нужной версии в Админка → Серверы → Мод-версии плагина, положите в mods/, запустите сервер один раз и впишите адрес сайта и токен сервера в config/strangecraftcore.json.
Сборка под версию вне списка: там же, в блоке «Мод-версии плагина», выберите загрузчик и версию Minecraft и нажмите «Собрать» — CMS соберёт мод прямо на сервере сайта. Первая сборка скачивает инструменты загрузчика и может занять до часа; готовая сборка сразу становится доступна панели и для скачивания.
Совместимость
- Сервер: Spigot/Paper 1.12.2 и новее, Java 8+. В
plugin.ymlполеapi-versionне указано намеренно — так один jar грузится и на 1.12.2, и на 1.13+. - Мягкие зависимости: LuckPerms (выдача групп) и SkinsRestorer (скины) — плагин работает и без них, соответствующие задания просто требуют установленного плагина-исполнителя.
- Версия установленного jar видна в админке (читается из самого файла), команда
/core statusпоказывает состояние связи с сайтом.
Статистика игроков
Плагин считает наигранное время и последний вход и батчами отправляет их в CMS — на этих данных работают топы, профили игроков и блок «Топ игроков» на главной. Отдельной настройки не требуется.
Варны и автоэскалация
Тип наказания WARN доступен в админке, из игры (/warn) и из Discord.
Правила эскалации (Наказания → Эскалация) автоматически выдают бан или мут
при накоплении N активных варнов за период — логика применяется на стороне
CMS, сервер лишь исполняет вердикт.
