Конфигурация FreeMinecraftModels
На этой странице описаны текущие настройки config.yml и shop_config.yml, существенно влияющие на настройку, отрисовку, взаимодействие с игроком и опциональный магазин мебели.
Расположение файлов
plugins/FreeMinecraftModels/config.yml
plugins/FreeMinecraftModels/shop_config.yml
shop_config.yml создаётся при первом запуске; сам магазин остаётся отключённым, пока вы его не включите.
Настройки config.yml
setupDone
- По умолчанию:
false - Управляет тем, считается ли подсказка по первичной настройке завершённой
- Игроки с широкими правами FreeMinecraftModels получают напоминание о запуске
/fmm initialize, пока значение остаётсяfalse - Меню настройки переключает это значение за вас; редактировать вручную при обычной настройке не нужно
useDisplayEntitiesWhenPossible
- По умолчанию:
true - Указывает FreeMinecraftModels предпочитать рендеринг через display-сущности, когда это поддерживают сервер и клиент
- Плагин при необходимости откатывается на отображение через armor stand, если display-сущности недоступны (версии старше 1.19.4 или Bedrock)
- Bedrock-клиенты — особый случай, поэтому не стоит считать, что этот параметр форсирует один и тот же путь отрисовки для всех игроков
maxModelViewDistance
- По умолчанию:
60 - Ограничивает, на какое расстояние моделированные сущности отправляются зрителям
- Более низкие значения снижают нагрузку на пакеты и клиентскую отрисовку в плотно заставленных моделями зонах
- Отдельные сущности могут переопределить это значение во время выполнения через
ModeledEntity.setViewDistanceOverride(int)— см. руководство по API
maxInteractionAndAttackDistance
- По умолчанию:
3 - Применяется к статическим и динамическим моделированным сущностям
- Используется проверками взаимодействия и попадания во время выполнения
maxInteractionAndAttackDistanceForProps
- По умолчанию:
6 - Применяется к сущностям-реквизитам
- Это значение отделено от дистанции взаимодействия для статических/динамических сущностей
sendCustomModelsToBedrockClientsV2
- По умолчанию:
true - Управляет тем, пытается ли FreeMinecraftModels отправлять пользовательские модели Bedrock-клиентам
- Этот ключ заменяет более старый
sendCustomModelsToBedrockClients(у которого по умолчанию былоfalse). Переименование вV2переворачивает значение по умолчанию, так что Bedrock-игроки видят модели по умолчанию; если вы ранее явно задавали старый ключ, можете удалить его — новый ключ V2 возьмёт верх - Если отключено, Bedrock-игроки видят базовую ванильную сущность, если она есть (и маскировки для них не отображаются)
- Если вы это включаете, убедитесь, что ваш путь ресурс-пака для Bedrock/Geyser/Floodgate действительно готов для таких клиентов
- Диагностическое логирование во время выполнения для пайплайна отображения Bedrock не является ключом конфига — оно переключается во время выполнения через
/fmm debug bedrock on|off, чтобы случайно не остаться включённым в продакшене. См. Команды
shop_config.yml
Опциональный магазин мебели на базе Vault живёт в собственном конфиге, чтобы его можно было включать и настраивать независимо от основного поведения плагина. Магазин отказывается регистрироваться, если отсутствует Vault или экономический провайдер.
Ключи верхнего уровня
| Ключ | По умолчанию | Описание |
|---|---|---|
enabled | false | Главный переключатель /fmm shop. Команда регистрируется только когда значение true, а также установлены Vault и экономический провайдер |
defaultPrice | 100.0 | Цена, записываемая в файлы рецептов, у которых при следующей загрузке не указано собственное shopPrice |
menuTitle | &8FMM - Furniture Shop | Заголовок, отображаемый в верхней части инвентаря магазина (поддерживает цветовые коды &) |
priceLoreFormat | &7Price: &e{price} | Строка lore, добавляемая к каждому товару в магазине с указанием цены. Плейсхолдер: {price} |
clickToBuyLoreFormat | &aClick to purchase | Строка lore, добавляемая к каждому товару в магазине с предложением о покупке |
Ключи сообщений (messages.*)
Все строки сообщений поддерживают цветовые коды &.
| Ключ | По умолчанию | Плейсхолдеры |
|---|---|---|
messages.purchaseSuccess | &aPurchased &f{item} &afor &e{price}&a. Balance: &e{balance}&a. | {item}, {price}, {balance} |
messages.insufficientFunds | &cYou need &e{price} &cto buy &f{item}&c. Balance: &e{balance}&c. | {item}, {price}, {balance} |
messages.shopDisabled | &cThe furniture shop is currently unavailable. | нет |
messages.itemNotForSale | &cThat item is not currently for sale. | {item} |
messages.inventoryFull | &eYour inventory was full; &f{item} &ehas been dropped at your feet. | {item} |
Поля магазина в рецептах
Каждый файл рецепта в plugins/FreeMinecraftModels/recipes/<model_id>.yml получает два дополнительных поля:
| Поле | По умолчанию | Описание |
|---|---|---|
shopEnabled | true | Виден ли этот рецепт в /fmm shop. Рецепты с shopEnabled: false по-прежнему доступны в крафте, но никогда не выставляются на продажу |
shopPrice | defaultPrice из shop_config.yml | Стоимость в валюте Vault для этого конкретного предмета |
Конструктор рецептов (/fmm craftify) записывает оба поля при сохранении, поэтому настройка цены — это просто правка в тексте.
Права доступа
Зарегистрированы в plugin.yml
| Право | По умолчанию | Описание |
|---|---|---|
freeminecraftmodels.* | op | Wildcard, дающий админ-права и права на маскировку себя/других |
freeminecraftmodels.admin | op | Доступ к /fmm admin (админский браузер контента) и /fmm giveitem. Остальные админ/отладочные команды (/fmm location, /fmm spawn, /fmm mount, /fmm itemify, /fmm craftify, /fmm reload, /fmm stats, /fmm hitbox visualize, /fmm debug bedrock, /fmm setup, /fmm initialize, /fmm downloadall, /fmm updatecontent) вместо этого проверяют wildcard freeminecraftmodels.* |
freeminecraftmodels.disguise.self | op | Разрешает /fmm disguise / /fmm undisguise для отправителя |
freeminecraftmodels.disguise.others | op | Разрешает целевую маскировку/снятие маскировки, а также /fmm disguiselist |
freeminecraftmodels.menu | true | Доступ к меню крафтящихся предметов /fmm |
freeminecraftmodels.shop | true | Доступ к /fmm shop |
Проверяются командами (не зарегистрированы в plugin.yml)
| Право | По умолчанию | Описание |
|---|---|---|
freeminecraftmodels.deleteall | op | Доступ к /fmm deleteall (проверяется обработчиком команды во время выполнения) |
Конфигурация YML модели
У каждого файла .bbmodel может быть сопутствующий файл .yml (с тем же именем в той же папке), управляющий настройками конкретной модели. Унифицированный формат YML поддерживает следующие поля:
isEnabled: true
voxelize: true
solidify: true
scripts:
- my_script.lua
material: DIAMOND_SWORD
name: "&bFrost Blade"
lore:
- "&7A sword forged in ice"
- "&7Deals frost damage"
enchantments:
- SHARPNESS,3
- UNBREAKING,2
| Поле | Тип | Описание |
|---|---|---|
isEnabled | boolean | Загружена ли модель (по умолчанию: true) |
scripts | список строк | Имена Lua-скриптов, которые нужно прицепить (из plugins/FreeMinecraftModels/scripts/) |
voxelize | boolean | Когда true, реквизит привязывается к шагам поворота 90 градусов и при размещении выравнивается по сетке блоков. Размер основания рассчитывается из размеров хитбокса модели (округлённых до целых блоков). При размещении проверяется, что все блоки основания не являются твёрдыми. |
solidify | boolean | Когда true (требует voxelize: true), в каждом блоке основания реквизита размещаются барьерные блоки только в пакетах, что даёт ему коллизию на стороне клиента. Эти барьеры невидимы и существуют только в пакетах — в мир они не помещаются. Барьеры автоматически удаляются, когда реквизит подбирают или уничтожают. |
material | string | Имя материала Bukkit (например, DIAMOND_SWORD, PAPER). При установке модель становится пользовательским предметом, который игроки могут держать и экипировать |
name | string | Отображаемое имя пользовательского предмета (поддерживает цветовые коды &) |
lore | список строк | Строки lore для пользовательского предмета (поддерживает цветовые коды &) |
enchantments | список строк | Зачарования в формате ENCHANTMENT_NAME,LEVEL (например, SHARPNESS,3) |
Когда задан material, модель регистрируется как пользовательский предмет. Игроки могут получить его через /fmm giveitem, скрафтить, если настроен рецепт, и он получает доступ ко всем 22 Lua-хукам предметов.
Эксплуатационные заметки
/fmm reloadповторно импортирует контент и перегенерирует выходной пак, поэтому изменения конфигурации, влияющие на поведение отрисовки, легче всего проверить после перезагрузки. При каждой перезагрузке рассылаетсяFmmReloadedEvent, чтобы зависимые плагины могли переподключить свои привязки к моделям.- FreeMinecraftModels только генерирует ресурс-пак; сам он его не хостит.
- ResourcePackManager по-прежнему является рекомендуемым способом доставки для Java-клиентов и самым безопасным задокументированным путём для смешанных конфигураций.
- WorldGuard, WorldEdit, GriefPrevention и Vault объявлены как
softdependвplugin.yml— ни один из них не требуется для запуска плагина, но они открывают определённые функции при наличии (Lua-предикаты, учитывающие защиту, и магазин мебели).
Когда менять эти значения
Используйте этот конфиг для настройки поведения во время выполнения, а не для управления пакетами контента.
- Для жизненного цикла официальных пакетов используйте
/fmm initialize,/fmm setup,/fmm downloadallи/fmm updatecontent - Используйте папку
importsдля ручного импорта.bbmodelили другого локального контента - Используйте
config.yml, когда нужно подкрутить режим отрисовки, дальность видимости, дистанцию взаимодействия или поведение Bedrock - Используйте
shop_config.yml(и поляshopEnabled/shopPriceв рецептах), чтобы настраивать магазин мебели без правок кода
Известные особенности
- Поведение на Bedrock зависит и от
sendCustomModelsToBedrockClientsV2, и от вашей более широкой настройки Floodgate/Geyser/ресурс-пака, поэтому делайте осторожные выводы, если не тестировали конкретно свой стек. - Магазин молча отключается, если отсутствует Vault или экономический провайдер. Если
/fmm shopнеожиданно недоступен, используйте/fmm versionи проверьте консоль при запуске.