Config
Feathered Friend tiene dos capas de configuración:
- Configuración del cliente (
featheredfriend-client.toml): UI y comportamiento de preferencia local. - Configuración del servidor (
featheredfriend-server.toml): valores autorizados para el juego sincronizados con los clientes.
En una ejecución de desarrollo típica:
neoforge/run/config/featheredfriend-client.tomlneoforge/run/config/featheredfriend-server.toml
Authoritative model
La configuración del servidor es la fuente de confianza para las reglas del juego. Los clientes reciben valores sincronizados y deben tratarlos como de solo lectura a menos que el servidor permita editarlos.
Canalización de sincronización
- El cliente solicita configuración (
RequestServerSettingsPayload). - El servidor envía una instantánea completa (
ServerSettingsPayload). - El servidor también envía la configuración al iniciar sesión.
- El observador de ticks del servidor comprueba si hay cambios de configuración y retransmisiones.
Por lo tanto, las ediciones de TOML hot-reload y las configuraciones del juego se propagan a los clientes conectados.
Comportamiento de recarga en caliente
Los valores de configuración del servidor en FFServerConfig son valores de tiempo de ejecución.
FFConfigSyncEvents monitorea los valores y retransmite si cambian, incluyendo:
- alternancia de funciones (
enableSuspiciousFeather,enableSuspiciousChest,enableRavenArmor,enableMailbox) - límites/enfriamientos
- alternar chat
ravenLinkDurationSeconds se vuelve a leer durante las sesiones activas, por lo que los enlaces actuales pueden acortarse o extenderse inmediatamente después de los cambios de configuración.
DEEP DIVE: dirty-flag + save
Los configuradores en FFServerConfig marcan la configuración como sucia e intentan SERVER_SPEC.save() para que los cambios puedan sincronizarse rápidamente y persistir en el disco.
Permisos de configuración del juego
La GUI de configuración personalizada se abre mediante la combinación de teclas open_settings (sin vincular de forma predeterminada).
Las ediciones del lado del servidor solo se permiten cuando ambas cosas son verdaderas:
allowServerSettingsScreenEditing = true- el jugador tiene permiso de operador nivel 4
De lo contrario, los clientes pueden ver los valores sincronizados pero no pueden aplicar ediciones de configuración del servidor.
Configuración del cliente (solo local)
La configuración del cliente controla únicamente la interfaz de usuario/preferencias locales, incluyendo:
scrollUiFontMode(VANILLA,JACQUARD,ALAGARD)- posición de la insignia de estado del cuervo/ancla/modo visual
- clave de sello de sello favorito
- configuración de vista de registro de Raven (visibilidad/colores de categoría)
Estos no cambian el juego del servidor.
Configuración del servidor (autoridad de juego)
settings sección
| Key | Default | Range | Purpose |
|---|---|---|---|
chatDisabledDefault | false | bool | Global player chat disable (commands unaffected). |
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. |
ravenLinkDurationSeconds | 30 | 5..600 | Raven Link session duration. |
allowServerSettingsScreenEditing | true | bool | Allows/disallows OP editing in settings screen. |
features.enableSuspiciousFeather | true | bool | Enables Suspicious Feather logic. |
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 sección
| Key | Default | Range | Purpose |
|---|---|---|---|
wildRavensPerPlayer | 1 | 0..16 | Wild raven cap per online non-spectator player. |
Si una función está desactivada
La función desactiva la lógica, no la existencia de elementos/bloques:
- los elementos/bloques existentes permanecen
- los inventarios siguen siendo accesibles
- se omiten los sistemas de tiempo de ejecución con funciones específicas
Ejemplos:
enableMailbox=false: el almacenamiento del buzón aún se abre, pero la detección/enrutamiento está deshabilitada.enableSuspiciousChest=false: el almacenamiento del cofre aún funciona, pero la lógica de depósito/percha está deshabilitada.enableSuspiciousFeather=false: La ruta de inicio/reactivación de Raven Link está deshabilitada.
Deshabilitar una función es solo un cambio de comportamiento. No elimina los datos mundiales existentes para esa función.
Ejemplo de instantánea del servidor
{
"settings": {
"ravenChestsPerPlayer": 3,
"enderpackDepositCooldownSeconds": 600,
"scrollDeliveryCooldownSeconds": 600,
"ravenLinkDurationSeconds": 30,
"allowServerSettingsScreenEditing": true,
"features": {
"enableSuspiciousFeather": true,
"enableSuspiciousChest": true,
"enableRavenArmor": true,
"enableMailbox": true
}
},
"spawning": {
"wildRavensPerPlayer": 1
}
}Apoya este proyecto
Te gusta esta wiki y estos mods?
Cada apoyo me ayuda a seguir creando funciones, escribiendo documentacion y publicando actualizaciones.