Перейти к основному содержимому

Настройка MegaBlock Survivors

Процесс настройки MegaBlock Survivors построен на управляемых Nightbreak пакетах контента с опциональной поддержкой моделей через FreeMinecraftModels.

Требования

  • Java 21
  • Сервер, совместимый с Paper/Spigot, на линии API 1.21.4

Опциональные интеграции:

  • FreeMinecraftModels — пользовательские модели мобов и оружия (мягкая зависимость)
  • LibsDisguises — мягкая зависимость для дополнительной визуальной поддержки

Что создаёт MegaBlock Survivors

При запуске MegaBlock Survivors инициализирует или использует следующие пути внутри plugins/MegaBlockSurvivors/:

plugins/MegaBlockSurvivors/config.yml
plugins/MegaBlockSurvivors/translations.yml
plugins/MegaBlockSurvivors/content_packages/
plugins/MegaBlockSurvivors/imports/
plugins/MegaBlockSurvivors/worlds/
plugins/MegaBlockSurvivors/npcs/
plugins/MegaBlockSurvivors/leaderboard.yml
plugins/MegaBlockSurvivors/meta_progression.yml
plugins/MegaBlockSurvivors/stats-dump.log
plugins/MegaBlockSurvivors/version.txt

Плагин также автоматически загружает созданный оператором мир лобби с именем mbs_spawn, если его папка существует на диске. Плагин не создаёт и не изменяет этот мир — он только загружает его. Несколько функций плагина молча переходят к поведению по умолчанию, если mbs_spawn отсутствует:

  • Голограмма таблицы рекордов (закреплённая в (4.5, 67, -14.5) в mbs_spawn) не появляется, а в лог пишется предупреждение.
  • Телепорт при входе (SpawnLobbyListener) отправляет входящих игроков в (0.5, 65, 0.5) в mbs_spawn с углом yaw 180 — обходится, если у игрока есть активный матч.
  • Разбор после матча возвращает игрока в mbs_spawn, если он существует.

Конфигурация

config.yml содержит:

КлючТипПо умолчаниюОписание
setupDonebooleanfalseОтслеживает, завершено ли руководство по первоначальной настройке

Переводы

Все строки, видимые пользователю (сообщения в чате, заголовки диалогов, боссбары, текст голограмм, описания команд), загружаются из translations.yml. Операторы сервера могут локализовать или переоформить каждую строку, не трогая jar. Поддерживаемые возможности:

  • Простые цветовые коды с префиксом & и hex-экранирование &#RRGGBB.
  • Теги градиентов MagmaCore вида <gradient:#FF0000:#00FF00>text</gradient>.
  • Токены {placeholder}, которые плагин подставляет во время выполнения.
  • Отсутствующие ключи отображаются как видимый маркер [translations: key.name], чтобы незаданные записи было легко заметить в игре.

Файл регенерируется со значениями по умолчанию при первом запуске и при перезагрузке плагина, поэтому только что добавленные строки появляются автоматически.

Постоянные данные игрока

ФайлНазначение
leaderboard.ymlЗаписи таблицы рекордов по корзинам (6 секций: 2 режима × 3 сложности), не более 100 записей на корзину.
meta_progression.ymlБаланс Soul Echo и уровни треков улучшений по каждому игроку. Ключом служит UUID игрока.
stats-dump.logAppend-only JSON-журнал каждого завершённого матча, записываемый при разборе матча.

Предупреждение о первой настройке

Когда setupDone имеет значение false, плагин при входе показывает предупреждение о первой настройке игрокам с разрешением megablocksurvivors.*. Уведомление настроено (через NightbreakFirstTimeSetupSpec) только с командой настройки, поэтому оно направляет игроков к /mbs setup (браузер контента), а не к шагу инициализации/загрузки. /mbs initialize в этой сборке не зарегистрирована; /mbs downloadall зарегистрирована, но скачивает только jar плагина, поскольку пакеты контента отключены (см. страницу Команды) — используйте вместо неё /mbs setup.

Рекомендуемый порядок первой настройки

  1. Установите MegaBlock Survivors и запустите сервер один раз. Файлы переводов и конфигурации создаются при первом запуске.
  2. Привяжите свой аккаунт Nightbreak с помощью /nightbreaklogin <token>.
  3. Выполните /mbs setup, чтобы открыть браузер контента Nightbreak и установить / включить нужные пакеты.
  4. Выполните /mbs reload, если вы вручную поместили контент в imports/ или после переключения пакетов в content_packages/.

/nightbreaklogin <token> предоставляется общим потоком аккаунтов Nightbreak/MagmaCore, а не файлом plugin.yml плагина MegaBlock Survivors.

Пакеты контента

Пакеты контента настраиваются через YAML-файлы в папке content_packages/. Каждый пакет может определять:

ПолеТипОписание
isEnabledbooleanАктивен ли пакет
namestringОтображаемое имя пакета
descriptionstring listСтроки описания
downloadLinkstringURL для ручного скачивания
versionintegerНомер версии пакета
nightbreakSlugstringСлаг контента Nightbreak для автоматических загрузок
schematicFilesstring listФайлы схем, включённые в пакет
worldFoldersstring listВключённые папки миров
worldContainerFoldersstring listВключённые папки контейнеров миров
modelFoldersstring listПапки моделей для FreeMinecraftModels
markerFileNamestringМаркерный файл для определения, установлен ли пакет
categoryenumFREE, PREMIUM или RESOURCES
toggleablebooleanМожно ли включать/выключать пакет

Настройка NPC

NPC (квестодатели и торговцы в лобби) настраиваются через YAML-файлы в npcs/. NPC возрождаются при загрузке чанков, чтобы пережить циклы выгрузки/загрузки чанков лобби. Правый клик по NPC запускает его настроенную interactionCommand.

С плагином поставляются два NPC, которые автоматически появляются в mbs_spawn, когда этот мир загружен:

NPCЛокация по умолчаниюМаскировкаКоманда взаимодействия
Match Startermbs_spawn, 0, 67, -15VILLAGERmbs start
Meta Progressionmbs_spawn, -9, 66, -13PIGLINmbs meta

Любого из них можно отключить, переместить или перепривязать, отредактировав соответствующий YAML в npcs/. Маскировки требуют LibsDisguises для отрисовки; без него NPC всё равно появляется как базовая сущность в настроенной локации.

Поля YAML для NPC

ПолеТипОписание
isEnabledbooleanПоявляется ли NPC
namestringВнутреннее имя
locationstringФормат world,x,y,z,pitch,yaw
disguisestringТип сущности LibsDisguises (опционально)
interactionCommandstringКоманда, выполняемая при правом клике игрока по NPC
nameTagstringПлавающая голограмма над NPC (допустимы цветовые коды)

Уведомления об обновлении версии

Когда плагин обнаруживает изменение версии (сравнивая с version.txt), он уведомляет консоль и всех онлайн-операторов.