Config
Feathered Friend a deux couches de configuration :
- Configuration client (
featheredfriend-client.toml) : interface utilisateur et comportement des préférences locales. - Configuration du serveur (
featheredfriend-server.toml) : valeurs faisant autorité en matière de jeu synchronisées avec les clients.
Dans une exécution de développement typique :
neoforge/run/config/featheredfriend-client.tomlneoforge/run/config/featheredfriend-server.toml
Authoritative model
La configuration du serveur est une source de vérité pour les règles de jeu. Les clients reçoivent des valeurs synchronisées et doivent les traiter en lecture seule, sauf si le serveur autorise la modification.
Pipeline de synchronisation
- Le client demande des paramètres (
RequestServerSettingsPayload). - Le serveur envoie un instantané complet (
ServerSettingsPayload). - Le serveur transmet également les paramètres lors de la connexion.
- L'observateur de ticks du serveur vérifie les modifications de configuration et les rediffusions.
Ainsi, les modifications du rechargement à chaud TOML et les paramètres du jeu se propagent tous deux aux clients connectés.
Comportement de rechargement à chaud
Les valeurs de configuration du serveur dans FFServerConfig sont des valeurs d'exécution.
FFConfigSyncEvents surveille les valeurs et les rediffuse si elles changent, notamment :
- basculement des fonctionnalités (
enableSuspiciousFeather,enableSuspiciousChest,enableRavenArmor,enableMailbox) - limites/temps de recharge
- basculer le chat
ravenLinkDurationSeconds est relu pendant les sessions actives, de sorte que les liens actuels peuvent raccourcir/étendre immédiatement après les modifications de configuration.
DEEP DIVE: dirty-flag + save
Les installateurs de FFServerConfig marquent les paramètres comme étant sales et tentent SERVER_SPEC.save() afin que les modifications puissent se synchroniser rapidement et persister sur le disque.
Autorisations des paramètres du jeu
L'interface graphique des paramètres personnalisés s'ouvre via le raccourci clavier open_settings (non lié par défaut).
Les modifications côté serveur ne sont autorisées que lorsque les deux sont vraies :
allowServerSettingsScreenEditing = true- le joueur dispose d'une autorisation d'opérateur de niveau 4
Sinon, les clients peuvent afficher les valeurs synchronisées mais ne peuvent pas appliquer les modifications des paramètres du serveur.
Configuration client (locale uniquement)
La configuration du client contrôle uniquement l'interface utilisateur/les préférences locales, notamment :
scrollUiFontMode(VANILLA,JACQUARD,ALAGARD)- position/ancre/mode visuel du badge de statut corbeau
- clé de cachet de sceau préférée
- Paramètres d'affichage du journal Raven (visibilité/couleurs de la catégorie)
Cela ne change pas le gameplay du serveur.
Configuration du serveur (autorité de gameplay)
Section settings
| Clé | Défaut | Gamme | But |
|---|---|---|---|
chatDisabledDefault | false | bouffon | Désactivation du chat global du joueur (commandes non affectées). |
ravenChestsPerPlayer | 3 | 0..64 | Max placé des coffres suspects par joueur. |
ravenLogRetentionMinutes | 10080 | 0..129600 | Fenêtre de conservation des journaux Raven (minutes). |
ravenLogMaxBytesPerPlayer | 262144 | 0..4194304 | Taille maximale du journal Raven par joueur avant d'être effacé. |
enderpackDepositCooldownSeconds | 600 | 0..86400 | Temps de recharge entre les workflows Enderpack -> dépôt de coffre. |
scrollDeliveryCooldownSeconds | 600 | 0..86400 | Temps de recharge entre les expéditions de courrier par défilement. |
courierTimeoutRetrySeconds | 60 | 0..86400 | Intervalle de nouvelle tentative automatique pour les tâches de messagerie ayant échoué. |
brushRavenCooldownSeconds | 30 | 0..86400 | Temps de recharge entre les corbeaux brossants. |
ravenLinkDurationSeconds | 30 | 5..600 | Durée de la session Raven Link. |
allowServerSettingsScreenEditing | true | bouffon | Autorise/interdit l’édition OP dans l’écran des paramètres. |
features.enableSuspiciousFeather | true | bouffon | Active la logique Suspect Feather. |
features.enableSuspiciousChest | true | bouffon | Active la logique spéciale Coffre suspect. |
features.enableRavenArmor | true | bouffon | Active la logique d'équipement/statistiques de Raven Armor. |
features.enableMailbox | true | bouffon | Permet le repérage des boîtes aux lettres + le routage des boîtes aux lettres des coursiers. |
Section spawning
| Clé | Défaut | Gamme | But |
|---|---|---|---|
wildRavensPerPlayer | 1 | 0..16 | Casquette de corbeau sauvage par joueur non spectateur en ligne. |
Si une fonctionnalité est désactivée
Les fonctionnalités désactivent la logique, pas l'existence d'un élément/bloc :
- les éléments/blocs existants restent
- les stocks restent accessibles
- les systèmes d'exécution spécifiques aux fonctionnalités sont ignorés
Exemples :
enableMailbox=false: le stockage de la boîte aux lettres s'ouvre toujours, mais le repérage/routage est désactivé.enableSuspiciousChest=false: le stockage du coffre fonctionne toujours, mais la logique perche/dépôt est désactivée.enableSuspiciousFeather=false: Le chemin de démarrage/relance de Raven Link est désactivé.
La désactivation d'une fonctionnalité est uniquement une bascule de comportement. Il ne supprime pas les données mondiales existantes pour cette fonctionnalité.
Exemple d'instantané de serveur
{
"settings": {
"ravenChestsPerPlayer": 3,
"enderpackDepositCooldownSeconds": 600,
"scrollDeliveryCooldownSeconds": 600,
"ravenLinkDurationSeconds": 30,
"allowServerSettingsScreenEditing": true,
"features": {
"enableSuspiciousFeather": true,
"enableSuspiciousChest": true,
"enableRavenArmor": true,
"enableMailbox": true
}
},
"spawning": {
"wildRavensPerPlayer": 1
}
}Soutenir ce projet
Vous aimez ce wiki et ces mods ?
Chaque soutien m'aide a continuer a creer des fonctionnalites, ecrire la documentation et publier des mises a jour.