feat(sync): 跨实例同步第1轮——同步功能表、InstanceSyncedOptions 类型与实例元数据字段
Sync source to CNB / Sync Git ref (push) Has been cancelled

- 新增 4 个 migration:同步功能表/instance_servers 扩展/synced_pack_selection/禁用发现选项

- 新增 InstanceSyncedOptions 类型(per-instance 同步开关)

- InstanceMetadata 增加 synced_options 字段并在 3 个查询点填充

- instance_rows 新增 get_instance_synced_options

- 前端 GameInstance 增加 synced_options 类型
This commit is contained in:
AxTps committed 2026-10-03 21:08:05 +08:00
1 parent 91e63fdb2c
commit 5a289c3a15
10 files changed
+302 -6

No files matched your search

@@ -88,3 +88,24 @@ pub(crate) fn playtime_to_storage(
.into()
})
}
/// Per-instance synchronization feature switches. Mirrors the Axolotl
/// `InstanceSyncedOptions` shape so the sync subsystem can be ported on top of
/// the shared `instance_sync_preferences` table.
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
pub struct InstanceSyncedOptions {
#[serde(default)]
pub game_options: bool,
#[serde(default)]
pub command_history: bool,
#[serde(default)]
pub multiplayer_servers: bool,
#[serde(default)]
pub creative_hotbars: bool,
#[serde(default)]
pub screenshots: bool,
#[serde(default)]
pub resource_packs: bool,
#[serde(default)]
pub data_packs: bool,
}