Config
Feathed Friend имеет два уровня конфигурации:
- Конфигурация клиента (
featheredfriend-client.toml): поведение пользовательского интерфейса и локальных предпочтений. - Конфигурация сервера (
featheredfriend-server.toml): важные для игрового процесса значения синхронизируются с клиентами.
В типичном запуске разработки:
neoforge/run/config/featheredfriend-client.tomlneoforge/run/config/featheredfriend-server.toml
Конфигурация сервера является источником достоверных правил игрового процесса. Клиенты получают синхронизированные значения и должны рассматривать их как доступные только для чтения, если сервер не разрешает редактирование.
Конвейер синхронизации
- Клиент запрашивает настройки (
RequestServerSettingsPayload). - Сервер отправляет полный снимок (
ServerSettingsPayload). - Сервер также передает настройки при входе в систему.
- Наблюдатель тиков сервера проверяет наличие изменений конфигурации и осуществляет ретрансляцию.
Таким образом, изменения, внесенные в результате горячей перезагрузки TOML и внутриигровых настроек, распространяются на подключенные клиенты.
Поведение при горячей перезагрузке
Значения конфигурации сервера в FFServerConfig являются значениями времени выполнения.
FFConfigSyncEvents отслеживает значения и повторно передает их в случае их изменения, в том числе:
- переключатели функций (
enableSuspiciousFeather,enableSuspiciousChest,enableRavenArmor,enableMailbox) - лимиты/перезарядки
- переключение чата
ravenLinkDurationSeconds перечитывается во время активных сессий, поэтому текущие ссылки могут сокращаться/расширяться сразу после изменения конфигурации.
DEEP DIVE: dirty-flag + save
Установщики в FFServerConfig помечают настройки как грязные и пытаются выполнить SERVER_SPEC.save(), чтобы изменения могли быстро синхронизироваться и сохраниться на диске.
Разрешения внутриигровых настроек
Графический интерфейс пользовательских настроек открывается с помощью сочетания клавиш open_settings (по умолчанию не привязано).
Редактирование на стороне сервера разрешено только в том случае, если оба параметра верны:
allowServerSettingsScreenEditing = true- игрок имеет права оператора 4 уровня
В противном случае клиенты смогут просматривать синхронизированные значения, но не смогут применять изменения настроек сервера.
Конфигурация клиента (только локально)
Конфигурация клиента управляет только локальным пользовательским интерфейсом/предпочтениями, включая:
scrollUiFontMode(VANILLA,JACQUARD,ALAGARD)- положение значка статуса ворона/привязка/визуальный режим
- ключ от любимой печати
- настройки просмотра журнала Raven (видимость/цвета категорий)
Они не меняют игровой процесс сервера.
Конфигурация сервера (права игрового процесса)
settings раздел
| Key | Default | Range | Purpose | |
|---|---|---|---|---|
| ZZTOKEN00008ZZ | ravenChestsPerPlayer | 3 | 0..64 | Max placed Suspicious Chests per player. |
ravenLogRetentionMinutes | 10080 | 0..129600 | Raven log retention window (minutes). | |
ravenLogMaxBytesPerPlayer | 262144 | 0..4194304 | Max Raven log size per player before clear. | |
enderpackDepositCooldownSeconds | 600 | 0..86400 | Cooldown between Enderpack -> chest deposit workflows. | |
scrollDeliveryCooldownSeconds | 600 | 0..86400 | Cooldown between scroll courier dispatches. | |
courierTimeoutRetrySeconds | 60 | 0..86400 | Auto-retry interval for timeout-failed courier jobs. | |
brushRavenCooldownSeconds | 30 | 0..86400 | Cooldown between brushing ravens. | |
| ZZTOKEN00016ZZ | allowServerSettingsScreenEditing | true | bool | Allows/disallows OP editing in settings screen. |
| ZZTOKEN00018ZZZ | features.enableSuspiciousChest | true | bool | Enables Suspicious Chest special logic. |
features.enableRavenArmor | true | bool | Enables Raven Armor equip/stat logic. | |
features.enableMailbox | true | bool | Enables mailbox spotting + courier mailbox routing. |
spawning раздел
| Key | Default | Range | Purpose |
|---|---|---|---|
wildRavensPerPlayer | 1 | 0..16 | Wild raven cap per online non-spectator player. |
Если переключатель функций отключен
Переключатели функций отключают логику, а не существование элемента/блока:
- существующие предметы/блоки остаются
- инвентарь остается доступным
- пропускаются системы выполнения для конкретных функций.
Примеры:
enableMailbox=false: хранилище почтовых ящиков по-прежнему открывается, но обнаружение/маршрутизация отключены.enableSuspiciousChest=false: хранилище сундуков все еще работает, но логика начисления/депозита отключена.enableSuspiciousFeather=false: путь запуска/восстановления Raven Link отключен.
Отключение функции — это только переключатель поведения. Он не удаляет существующие мировые данные для этой функции.
Пример снимка сервера
{
"settings": {
"ravenChestsPerPlayer": 3,
"enderpackDepositCooldownSeconds": 600,
"scrollDeliveryCooldownSeconds": 600,
"ravenLinkDurationSeconds": 30,
"allowServerSettingsScreenEditing": true,
"features": {
"enableSuspiciousFeather": true,
"enableSuspiciousChest": true,
"enableRavenArmor": true,
"enableMailbox": true
}
},
"spawning": {
"wildRavensPerPlayer": 1
}
}Поддержать проект
Нравится эта вики и эти моды?
Любая поддержка помогает мне развивать функции, писать документацию и выпускать обновления.