diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/DownloadProviders.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/DownloadProviders.java index 5a2c12351..3b16ebf89 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/DownloadProviders.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/DownloadProviders.java @@ -37,13 +37,21 @@ public final class DownloadProviders { private static final AdaptedDownloadProvider DOWNLOAD_PROVIDER = new AdaptedDownloadProvider(); - public static final Map providersById = mapOf( - pair("mojang", new MojangDownloadProvider()), - pair("bmclapi", new BMCLAPIDownloadProvider("https://bmclapi2.bangbang93.com")), - pair("mcbbs", new BMCLAPIDownloadProvider("https://download.mcbbs.net"))); + public static final Map providersById; public static final String DEFAULT_PROVIDER_ID = "mcbbs"; + static { + String bmclapiRoot = "https://bmclapi2.bangbang93.com"; + String bmclapiRootOverride = System.getProperty("hmcl.bmclapi.override"); + if (bmclapiRootOverride != null) bmclapiRoot = bmclapiRootOverride; + + providersById = mapOf( + pair("mojang", new MojangDownloadProvider()), + pair("bmclapi", new BMCLAPIDownloadProvider(bmclapiRoot)), + pair("mcbbs", new BMCLAPIDownloadProvider("https://download.mcbbs.net"))); + } + static void init() { FXUtils.onChangeAndOperate(config().downloadTypeProperty(), downloadType -> { DownloadProvider primary = Optional.ofNullable(providersById.get(config().getDownloadType()))