Skip to content

关于自动选择下载源 #59

@WingChunWong

Description

@WingChunWong

问题描述

本人在海外地区,今日(3月4日)启动 MC 时,发现模组自动选择了由 @502y 维护的镜像源,于是便诞生了该 Issue。

复现步骤

  1. 今日(3月4日)启动游戏,模组自动选择了由 @502y 维护的镜像源
  2. 每个下载均因 SocketTimeoutException 超时失败。
  3. 最终游戏启动耗时 约 3 分 30 秒

日志片段

[2026-03-04 20:08:50] [INFO]: I18nUpdate Mod 3.7.0 is loaded in 1.21.1 with Fabric
[2026-03-04 20:08:50] [INFO]: Using fastest url: http://8.137.167.65:64684/
[2026-03-04 20:08:51] [INFO]: Downloading: http://8.137.167.65:64684/Minecraft-Mod-Language-Modpack-1-21-Fabric.zip -> C:\Users\huang\AppData\Local\.i18nupdatemod\1.21\Minecraft-Mod-Language-Modpack-1-21-Fabric.zip.tmp
[2026-03-04 20:09:59] [WARNING]: Error while downloading: java.net.SocketTimeoutException: Read timed out
[2026-03-04 20:10:00] [INFO]: Downloading: http://8.137.167.65:64684/Minecraft-Mod-Language-Modpack-1-20-Fabric.zip -> C:\Users\huang\AppData\Local\.i18nupdatemod\1.20\Minecraft-Mod-Language-Modpack-1-20-Fabric.zip.tmp
[2026-03-04 20:11:18] [WARNING]: Error while downloading: java.net.SocketTimeoutException: Read timed out
[2026-03-04 20:11:18] [INFO]: Downloading: http://8.137.167.65:64684/Minecraft-Mod-Language-Modpack-1-19.zip -> C:\Users\huang\AppData\Local\.i18nupdatemod\1.19\Minecraft-Mod-Language-Modpack-1-19.zip.tmp
[2026-03-04 20:12:17] [WARNING]: Error while downloading: java.net.SocketTimeoutException: Read timed out
[2026-03-04 20:12:17] [INFO]: Converting: C:\Users\huang\AppData\Local\.i18nupdatemod\1.21\Minecraft-Mod-Language-Modpack-1-21-Fabric.zip
...
[20:12:40] [Render thread/WARN]: Game took 241.251 seconds to start

建议

当前模组仅通过测速选择最快源,但对于海外用户,镜像源可能因网络问题导致超时。建议优化源选择逻辑:

  1. 引入地理位置判断:在测速前先判断用户是否位于中国大陆。

    • 可调用公开 API(如 https://mips.kugou.com/check/iscn)进行判断。
    • 代理工具可能影响判断结果。
  2. 根据地理位置分流

    • 若用户不在中国大陆,直接使用 GitHub 源(通常对海外更稳定)。
    • 若用户在中国大陆,则在镜像源之间测速选择。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions