Config
Feathered Friend には 2 つの構成レイヤーがあります。
- クライアント構成 (
featheredfriend-client.toml): UI とローカル設定の動作。 - サーバー設定 (
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() を試行します。これにより、変更が迅速に同期され、ディスクに保存されます。
ゲーム内設定の権限
カスタム設定 GUI は、open_settings キーバインドを介して開きます (デフォルトではバインドされていません)。
サーバー側の編集は、両方が true の場合にのみ許可されます。
allowServerSettingsScreenEditing = true- プレイヤーはオペレーター権限レベル 4 を持っています
それ以外の場合、クライアントは同期された値を表示できますが、サーバー設定の編集を適用できません。
クライアント構成 (ローカルのみ)
クライアント構成は、以下を含むローカル UI/設定のみを制御します。
scrollUiFontMode(VANILLA、JACQUARD、ALAGARD)- レイブンステータスバッジの位置/アンカー/ビジュアルモード
- お気に入りの印鑑キー
- raven ログの表示設定 (カテゴリの表示/色)
これらはサーバーのゲームプレイを変更しません。
サーバー設定 (ゲームプレイ権限)
settings セクション
| 鍵 | デフォルト | 範囲 | 目的 |
|---|---|---|---|
chatDisabledDefault | false | ブール | グローバル プレーヤー チャットが無効になります (コマンドは影響を受けません)。 |
ravenChestsPerPlayer | 3 | 0..64 | 最大はプレイヤーごとに疑わしいチェストを配置しました。 |
ravenLogRetentionMinutes | 10080 | 0..129600 | Raven ログの保持期間 (分)。 |
ravenLogMaxBytesPerPlayer | 262144 | 0..4194304 | クリア前のプレイヤーごとの Raven ログの最大サイズ。 |
enderpackDepositCooldownSeconds | 600 | 0..86400 | エンダーパック -> チェスト デポジット ワークフローの間のクールダウン。 |
scrollDeliveryCooldownSeconds | 600 | 0..86400 | スクロールクーリエの発送間のクールダウン。 |
courierTimeoutRetrySeconds | 60 | 0..86400 | タイムアウトに失敗した宅配ジョブの自動再試行間隔。 |
brushRavenCooldownSeconds | 30 | 0..86400 | カラスをブラッシングする間のクールダウン。 |
ravenLinkDurationSeconds | 30 | 5..600 | Raven Link セッションの継続時間。 |
allowServerSettingsScreenEditing | true | ブール | 設定画面でOP編集を許可/禁止します。 |
features.enableSuspiciousFeather | true | ブール | Suspicious Feather ロジックを有効にします。 |
features.enableSuspiciousChest | true | ブール | Suspicious Chest の特別なロジックを有効にします。 |
features.enableRavenArmor | true | ブール | Raven Armor の装備/ステータス ロジックを有効にします。 |
features.enableMailbox | true | ブール | メールボックス スポッティング + 宅配便メールボックス ルーティングを有効にします。 |
spawning セクション
| 鍵 | デフォルト | 範囲 | 目的 |
|---|---|---|---|
wildRavensPerPlayer | 1 | 0..16 | オンラインの無観客プレイヤーごとのワイルド レイヴンの上限。 |
機能の切り替えがオフの場合
機能の切り替えにより、アイテム/ブロックの存在ではなく、ロジックが無効になります。
- 既存のアイテム/ブロックは残ります
- 在庫は引き続きアクセス可能です
- 機能固有のランタイム システムはスキップされます
例:
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
}
}このプロジェクトを支援
このWikiとModが気に入りましたか?
ご支援いただくことで、機能開発、ドキュメント整備、アップデート継続の助けになります。