diff --git a/docs/guide/pack-update.md b/docs/guide/pack-update.md index 645f43e0..3703bbba 100644 --- a/docs/guide/pack-update.md +++ b/docs/guide/pack-update.md @@ -123,16 +123,13 @@ flowchart TD | 字段 | 含义 | |------|------| -| `defaultBindingEnabled` | 新建绑定的默认 `enabled`;`false` 时仍写入 `pack-sources.json`,但不会自动检查/更新。 | +| `defaultBindingEnabled` | 新建绑定的默认 `enabled`(**默认 `false`**)。仍写入 `pack-sources.json`,但需手改为 `true`(或改此默认)才参与启动检查/自动更新。 | | `match.nameMinScore` | 安装后自动绑定的最低相似度阈值(源无关,顶层)。 | | `match.stripFolderTags` | 清洗时是否去掉方括号标签(如 `[BP]`/`[玩法]`)。 | | `gameId` | **Minecraft Bedrock = `78022`**。历史误用 `459` 无效,加载时会纠正。Java Minecraft 是 `432`,不要混用。 | | `classId` | Bedrock **Addons = `4984`**;`null` 时用 `/v1/categories?classesOnly=true` 解析「Addons」。 | | `baseUrl` | 官方 Core API:getMod / files / download-url。 | | `searchBaseUrl` | 搜索镜像;官方 search 403 时回退。 | -| `nameMinScore` | 安装后自动绑定的最低相似度阈值。 | -| `stripFolderTags` | 清洗时是否去掉方括号标签(如 `[BP]`/`[玩法]`)。 | -| `defaultBindingEnabled` | 新建绑定的默认 `enabled`(**默认 `false`**)。需手改为 `true` 才参与启动检查/自动更新。 | ### 3.4 绑定文件示例 diff --git a/sfmc/src/pack-update/service.ts b/sfmc/src/pack-update/service.ts index a105188c..8a0d14c7 100644 --- a/sfmc/src/pack-update/service.ts +++ b/sfmc/src/pack-update/service.ts @@ -54,8 +54,9 @@ function fmtVer(v: SemVer3): string { return v.join("."); } +/** 绑定启用态文案:bindOk / sources list 共用(DRY),走 packs.list i18n */ function bindingEnabledLabel(enabled: boolean): string { - return enabled ? "on" : "off"; + return enabled ? t("packs.list.on").trim() : t("packs.list.off").trim(); } function providerShortLabel(id: PackProviderId): string { @@ -218,9 +219,9 @@ export async function probeSourceAfterInstall(opts: { t("packUpdate.bindOk", { uuid: opts.info.uuid, slug: best.hit.slug, + /* 报告实际写入的 binding.enabled(LSP),勿再并列一份 cfg 派生字段 */ enabled: bindingEnabledLabel(binding.enabled), path: packSourcesPath(), - enabled: cfg.defaultBindingEnabled ? t("packs.list.on").trim() : t("packs.list.off").trim(), }), "success" ); @@ -289,7 +290,8 @@ export function formatSourcesList(): string { return lines.join("\n"); } for (const { bpUuid, binding } of bindings) { - const en = binding.enabled ? c.green(t("packs.list.on").trim()) : c.dim(t("packs.list.off").trim()); + const label = bindingEnabledLabel(binding.enabled); + const en = binding.enabled ? c.green(label) : c.dim(label); const tag = providerShortLabel(binding.provider); lines.push( ` [${en}] ${bpUuid} ${tag}:${binding.slug || binding.projectId} ${c.dim(binding.websiteUrl || "")}` @@ -429,14 +431,11 @@ async function prepareCheck( * 远程 BP 版本未更高:无需覆盖安装,但仍记下 fileId, * 否则每次启动都会重复下载同一归档(lastApplied 一直为空)。 */ + binding.lastFileId = file.fileId; if (!decision.remoteNewer) { binding.lastAppliedFileId = file.fileId; - binding.lastFileId = file.fileId; - setBinding(bpUuid, binding); - } else { - binding.lastFileId = file.fileId; - setBinding(bpUuid, binding); } + setBinding(bpUuid, binding); return withLocalBp( {