Skip to content

fix(bds-tools): BDS 更新检查优先使用 Mojang 官方下载接口 - #167

Merged
Tanya7z merged 1 commit into
mainfrom
fix/bds-official-version-source
Oct 28, 2026
Merged

Tanya7z merged 1 commit into
mainfrom
fix/bds-official-version-source

Conversation

@Tanya7z

@Tanya7z Tanya7z commented Oct 28, 2026

Copy link
Copy Markdown
Member

背景

服务器上 BDS 更新检查结果时新时旧:默认版本源 GitHub raw 在服务器网络不可达,只能依赖 jsDelivr 镜像,而 jsDelivr 缓存常落后于新版本。

改动

  • upstream.ts:getVersionInfo 在 bedrock-oss 模式且未自定义 version_versions 时,先查 Mojang 官方下载接口(net-secondary.web.minecraft-services.net/api/v1.0/download/links,15 秒超时),失败或无对应条目则回退到原 Bedrock-OSS 列表逻辑(原重试逻辑不变)。
  • check-update.ts:Bedrock-OSS 尚未收录该版本或不可达时,改用官方下载地址并告警(无哈希可校验);能取到详情时仍照常校验哈希。
  • types.ts:VersionInfo 增加可选 downloadUrl。
  • http.ts:httpRequest / httpDownload 在成功、重定向、4xx 时也清除超时计时器(原先只在出错时清除,一次性命令完成后会空等至超时,默认 600 秒)。
  • schema:更新 version_versions 说明。
  • changeset:@sfmc-bds/bds-tools、@sfmc-bds/sdk patch。

验证

  • bds-tools typecheck、build 通过。
  • 本机脚本:官方接口解析(正式/预览 × Windows/Linux、异常数据)断言通过;getVersionInfo 默认返回 1.26.60.6 与官方下载地址(约 200ms);自定义版本源时不查官方接口;脚本结束后进程正常退出。

- 版本号优先取自 Mojang 官方下载接口,失败再回退到 Bedrock-OSS 列表(GitHub raw / jsDelivr)
- Bedrock-OSS 未收录新版本或不可达时,改用官方下载地址(跳过哈希校验)
- 自定义 version_versions 或 endstone 模式行为不变
- httpRequest / httpDownload 在成功、重定向、4xx 后清除超时计时器,避免命令完成后空等至超时
@Tanya7z
Tanya7z merged commit 4d11c9b into main Oct 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant