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

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

Официальный контент FMM теперь представлен в виде управляемых пакетов Nightbreak.

Текущие официальные пакеты​

Текущая версия плагина определяет пять готовых официальных пакетов, смешивающих реквизит и предметы:

ПакТипИмя файла конфигаИмя папкиSlug Nightbreak
Basic Furniture PackРеквизитbasic_furniture_packBasic Furniture Packbasic-furniture-pack
BetterStructures Prop PackРеквизитbetterstructures_prop_packbs prop packbetterstructures-prop-pack
EliteMobs Prop PackРеквизитelitemobs_prop_packem_dungeon_prop_packelitemobs-prop-pack
Craftenmine's Weapons Item PackПользовательские предметыcraftenmines_weapons_item_packfmm_craftenmine_weapons_items_packcraftenmines-weapons-item-pack
Craftenmine Tools Item PackПользовательские предметыcraftenmine_tools_item_packfmm_craftenmine_tools_items_packcraftenmine-tools-item-pack

Имя файла конфига определяет запись .yml в plugins/FreeMinecraftModels/content_packages/. Имя папки определяет каталог моделей пакета внутри models/ или models_disabled/. Префиксы настраиваются отдельно, как описано ниже.

У каждого пакета есть локальное имя папки, slug Nightbreak, поле версии и состояние включено/выключено в content_packages. Два пакета предметов Craftenmine содержат предметы для удержания в руке с определениями material: и зачарованиями с пространствами имён. Старые копии со scripts: для экипированных предметов требуют обновлённого контента; такие определения пропускаются.

Чем управляет меню настройки​

/fmm setup показывает состояние пакетов по локальной конфигурации, обнаруженным файлам и кешированным данным Nightbreak. Меню различает:

  • установленные пакеты
  • скачанные, но в данный момент отключённые пакеты
  • устаревшие пакеты
  • пакеты, требующие доступа Nightbreak

Меню запускает фоновые проверки версий и доступа с минимальным интервалом в пять минут. Версии проверяются для пакетов, обнаруженных как установленные. Значок установки означает, что пакет включён и существует управляемая запись модели; он не доказывает загрузку всех моделей или получение ресурс-пака клиентами. Проверяйте также /fmm admin, консоль и доставку клиентам.

Поведение папок​

Плагин использует перемещение папок для включения и отключения контента в зависимости от состояния пакета:

  • включённые папки моделей лежат в models/<folderName>
  • отключённые папки моделей лежат в models_disabled/<folderName>
  • включённые файлы скриптов лежат в scripts/
  • отключённые файлы скриптов лежат в scripts_disabled/

Скачанный контент может находиться на диске, не будучи активным. Установка или удаление перемещает подходящие записи моделей, скриптов и зачарований, сохраняет состояние включения и затем запрашивает перезагрузку. Перемещения последовательны и не составляют атомарную транзакцию: ошибка перемещения или сохранения состояния может оставить частичные изменения. Перед повтором проверьте консоль и обе папки. Обеим операциям нужна управляемая запись модели в исходной папке; файлы только со скриптами или зачарованиями могут считаться скачанными, не делая пакет доступным для установки этой операцией.

Старые установки могут использовать Models или Models_disabled. Активный путь предпочитает models в нижнем регистре, а отключённый — существующую папку Models_disabled. Перед объединением каталогов с учётом регистра прочитайте заметки по созданию моделей.

Префиксы файлов​

Конфигурации пакетов содержат contentFilePrefixes и scriptFilePrefixes. Пять встроенных определений инициализируют оба списка пустыми; folderName не становится префиксом автоматически. Проверьте значения в установленном конфиге пакета.

Для моделей и зачарований FMM выбирает точную запись folderName, а также записи в корне, имена которых начинаются со значения из contentFilePrefixes. Для скриптов выбираются корневые записи по scriptFilePrefixes, без отдельного совпадения по имени папки. Сопоставление префиксов не учитывает регистр и может выбирать файлы либо целые каталоги; рекурсивного поиска подходящих файлов в посторонних каталогах нет. Используйте разные префиксы и храните связанные файлы внутри выбранных записей.

Жизненный цикл скачивания и установки​

Здесь два отдельных шага:

  1. Скачивание контента пакета. Файлы попадают в plugins/FreeMinecraftModels/imports. Успешное управляемое скачивание сохраняет состояние включения перед запросом перезагрузки с импортом.
  2. Сохранение пакета включённым или отключённым. Меню настройки устанавливает и удаляет пакеты, перемещая их папки между models и models_disabled.

Массовые операции работают по той же модели:

  • /fmm downloadall скачивает обновление jar плагина, а затем каждый доступный пакет, который отсутствует или устарел. Контент может быть применён последующей перезагрузкой FMM; сам jar плагина вступает в силу после перезапуска или /fmm applypluginupdate
  • /fmm downloadallcontent делает тот же проход по контенту без обновления jar плагина
  • /fmm updatecontent (псевдоним /fmm updateallcontent) обновляет сведения о версиях и доступе, затем пакеты, отмеченные как устаревшие; проверки версий сейчас охватывают установленные пакеты

Массовые операции обрабатывают пакеты последовательно и отдельно сообщают об успешных скачиваниях с подготовкой и об ошибках. Если хотя бы один пакет завершён успешно, они планируют перезагрузку через 20 тиков, даже при ошибках других пакетов. Без успешных пакетов перезагрузки нет; пустой проход установки сообщает об отсутствии нового контента, а пустой проход обновления — об отсутствии ожидающих обновлений. Успешное скачивание не доказывает успех последующего импорта, загрузки моделей или доставки клиентам.

Массовые операции с контентом используют общую блокировку, запрещающую второй запуск до завершения первого или начала последующей перезагрузки. Нужен привязанный токен Nightbreak; ошибка аутентификации останавливает операцию. Обычные ошибки пакетов сообщаются, а остальные пакеты продолжают обрабатываться. После выхода инициатора обработка продолжается с сообщениями в консоли. Выключение плагина делает недействительными ожидающие публикации скачанных файлов и обратные вызовы этого жизненного цикла.

Восстановление пакета​

Обычный выбор использует обнаруженные файлы и состояние версии, а не проверку целостности. Частично повреждённый пакет может выглядеть актуальным и пропускаться. /fmm forcereinstallcontent <package|all> скачивает выбранный контент заново независимо от версии и запрашивает перезагрузку после успешных скачиваний. Этот путь не включает отключённый пакет принудительно.

  • Автодополнение предлагает all и слаг Nightbreak каждого пакета (basic-furniture-pack, betterstructures-prop-pack, elitemobs-prop-pack, craftenmines-weapons-item-pack, craftenmine-tools-item-pack).
  • all выбирает пакеты, обнаруженные как скачанные, установленные или отмеченные как устаревшие. Если подходящих нет, выводится No downloaded content was detected. Specify a package slug directly if its files are completely missing. Для полностью отсутствующего пакета укажите слаг напрямую.
  • Неизвестный селектор выдаёт Unknown Nightbreak content package: <name>.
  • На неё распространяется та же защита от параллельных запусков, что и на остальные массовые операции, и она требует freeminecraftmodels.*.

Контент из других паков​

Пак контента для любого плагина Nightbreak, например пак EliteMobs или BetterStructures, помещённый в папку imports этого плагина, может нести контент FreeMinecraftModels в папке верхнего уровня freeminecraftmodels/, устроенной так же, как plugins/FreeMinecraftModels/. Например, freeminecraftmodels/enchantments/ поставляет зачарования freeminecraftmodels:, которые используют предметы пака, а freeminecraftmodels/models/ объединяется с папкой моделей, которую читает FMM (models в нижнем регистре или устаревшая папка Models, если она существует). Папки верхнего уровня models/ и scripts/ в паке тоже отправляются в FMM. Папка верхнего уровня enchantments/ следует платформе пака, указанной в pack.meta (а без него — плагину, в папке imports которого лежит пак): пак FreeMinecraftModels устанавливает её в FMM, а паки EliteMobs и BetterStructures — в EliteMobs.

Когда импорт другого плагина помещает файлы в папку FMM, FMM после этого выполняет перезагрузку импортированного контента. Эта перезагрузка пересобирает модели, предметы, зачарования, скрипты реквизита, рецепты и ресурс-пак, но не перечитывает config.yml и shop_config.yml.

Админский браузер контента​

/fmm admin открывает внутриигровой браузер загруженных моделей и зарегистрированных пользовательских предметов. Он показывает:

  • включённые пакеты с загруженным контентом (с отдельным подсчётом реквизита и предметов)
  • папки моделей, не входящие в пакеты (с отдельным подсчётом реквизита и предметов)
  • отдельные модели реквизита
  • успешно зарегистрированные пользовательские предметы

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

Записи пакетов и папок открывают списки их содержимого. Нажатие на отдельный реквизит или предмет добавляет копию в инвентарь. Пользовательские предметы содержат заданный материал, зачарования, lore и тег fmm_item_id; реквизит выдаёт бумажные предметы для размещения. Оставляйте свободное место: эти административные обработчики не выбрасывают излишки на землю. Ошибки создания предметов сообщаются в чате. Регистрация и видимая запись меню не доказывают правильную отрисовку клиентом.

Контент зачарований​

Включение и отключение пакетов охватывает управляемые YAML/Lua зачарований вместе с моделями и скриптами реквизита. Активный контент находится в enchantments/, отключённый перемещается в enchantments_disabled/. Выбор следует описанным выше правилам имени папки и префиксов контента; храните определения провайдеров и связанные скрипты внутри выбранных записей. Устаревшая среда скриптов предметов не заменяет отсутствующего провайдера зачарований.