StrangeCraft CMS PlaVER

Серверный плагин StrangeCraftCore

Зачем нужен плагин

StrangeCraftCore — мост между сайтом и игровым сервером. Один плагин делает всё:

  • Heartbeat — сервер регулярно сообщает сайту онлайн, MOTD и версию; на сайте виден живой мониторинг.
  • Задания сайта — плагин забирает с сайта очередь заданий и выполняет их на сервере: выдача покупок из магазина, группы LuckPerms, установка скинов, кики, произвольные консольные команды.
  • Наказания — баны и муты живут в базе сайта; плагин применяет их на сервере и позволяет выдавать прямо из игры.
  • Авторизация на offline-серверах/login и /register; пароль проверяет сайт, своей базы паролей у плагина нет (пароль единый с сайтом).
  • Гибридный вход на session-серверах — игрока со сторонним клиентом или истёкшим токеном лаунчера плагин замораживает до /login.
  • Привязка Discord — команда /discord в игре выдаёт код привязки аккаунта.

Плагин — «тонкий клиент»: в его конфиге только адрес сайта и токен, все остальные настройки раздаёт панель. При потере связи с сайтом активные баны и муты продолжают действовать из локального кэша, а выданные офлайн наказания отправляются на сайт при восстановлении связи.

Установка

  1. Скачайте jar: Админка → Серверы → кнопка скачивания серверного плагина (StrangeCraftCore.jar). Файл приезжает вместе с обновлениями CMS; скачивание доступно при действующей лицензии.
  2. Выпустите токен: откройте карточку нужного сервера → блок «Плагин StrangeCraftCore» → «Сгенерировать токен». Токен вида SCP_… показывается один раз — сразу скопируйте. Токен персональный: по нему сайт опознаёт именно этот сервер (имя сервера в конфиге не нужно).
  3. Положите jar в папку plugins/ сервера. Если раньше стояли старые CmsPlugin-*.jar или StrangeCraftAdmin-*.jar — удалите их, с ними StrangeCraftCore не запустится.
  4. Запустите сервер и впишите в 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, сервер лишь исполняет вердикт.

Наказания