Пакеты контента FreeMinecraftModels
Официальный контент FMM теперь представлен в виде управляемых пакетов Nightbreak.
Текущие официальные пакеты
Текущая версия плагина определяет пять готовых официальных пакетов, смешивающих реквизит и предметы:
| Пак | Тип | Имя файла конфига | Имя папки | Slug Nightbreak |
|---|---|---|---|---|
Basic Furniture Pack | Реквизит | basic_furniture_pack | Basic Furniture Pack | basic-furniture-pack |
BetterStructures Prop Pack | Реквизит | betterstructures_prop_pack | bs prop pack | betterstructures-prop-pack |
EliteMobs Prop Pack | Реквизит | elitemobs_prop_pack | em_dungeon_prop_pack | elitemobs-prop-pack |
Craftenmine's Weapons Item Pack | Пользовательские предметы | craftenmines_weapons_item_pack | fmm_craftenmine_weapons_items_pack | craftenmines-weapons-item-pack |
Craftenmine Tools Item Pack | Пользовательские предметы | craftenmine_tools_item_pack | fmm_craftenmine_tools_items_pack | craftenmine-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, без отдельного совпадения по имени папки. Сопоставление префиксов не учитывает регистр и может выбирать файлы либо целые каталоги; рекурсивного поиска подходящих файлов в посторонних каталогах нет. Используйте разные префиксы и храните связанные файлы внутри выбранных записей.
Жизненный цикл скачивания и установки
Здесь два отдельных шага:
- Скачивание контента пакета.
Файлы попадают в
plugins/FreeMinecraftModels/imports. Успешное управляемое скачивание сохраняет состояние включения перед запросом перезагрузки с импортом. - Сохранение пакета включённым или отключённым.
Меню настройки устанавливает и удаляет пакеты, перемещая их папки между
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/. Выбор следует описанным выше правилам имени папки и префиксов контента; храните определения провайдеров и связанные скрипты внутри выбранных записей. Устаревшая среда скриптов предметов не заменяет отсутствующего провайдера зачарований.