修复未初始化 fileDownloadProvider 的问题 (#2906)
This commit is contained in:
@@ -55,7 +55,6 @@ public final class DownloadProviders {
|
|||||||
|
|
||||||
private static final MojangDownloadProvider MOJANG;
|
private static final MojangDownloadProvider MOJANG;
|
||||||
private static final BMCLAPIDownloadProvider BMCLAPI;
|
private static final BMCLAPIDownloadProvider BMCLAPI;
|
||||||
// private static final BMCLAPIDownloadProvider MCBBS;
|
|
||||||
|
|
||||||
public static final String DEFAULT_PROVIDER_ID = "balanced";
|
public static final String DEFAULT_PROVIDER_ID = "balanced";
|
||||||
public static final String DEFAULT_RAW_PROVIDER_ID = "bmclapi";
|
public static final String DEFAULT_RAW_PROVIDER_ID = "bmclapi";
|
||||||
@@ -69,27 +68,19 @@ public final class DownloadProviders {
|
|||||||
|
|
||||||
MOJANG = new MojangDownloadProvider();
|
MOJANG = new MojangDownloadProvider();
|
||||||
BMCLAPI = new BMCLAPIDownloadProvider(bmclapiRoot);
|
BMCLAPI = new BMCLAPIDownloadProvider(bmclapiRoot);
|
||||||
// MCBBS = new BMCLAPIDownloadProvider("https://download.mcbbs.net");
|
|
||||||
rawProviders = mapOf(
|
rawProviders = mapOf(
|
||||||
pair("mojang", MOJANG),
|
pair("mojang", MOJANG),
|
||||||
pair("bmclapi", BMCLAPI)
|
pair("bmclapi", BMCLAPI)
|
||||||
// pair("mcbbs", MCBBS)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
AdaptedDownloadProvider fileProvider = new AdaptedDownloadProvider();
|
AdaptedDownloadProvider fileProvider = new AdaptedDownloadProvider();
|
||||||
fileProvider.setDownloadProviderCandidates(Arrays.asList(
|
fileProvider.setDownloadProviderCandidates(Arrays.asList(BMCLAPI, MOJANG));
|
||||||
// MCBBS,
|
BalancedDownloadProvider balanced = new BalancedDownloadProvider(MOJANG, BMCLAPI);
|
||||||
BMCLAPI,
|
|
||||||
MOJANG));
|
|
||||||
BalancedDownloadProvider balanced = new BalancedDownloadProvider(
|
|
||||||
MOJANG,
|
|
||||||
// MCBBS,
|
|
||||||
BMCLAPI);
|
|
||||||
|
|
||||||
providersById = mapOf(
|
providersById = mapOf(
|
||||||
pair("official", new AutoDownloadProvider(MOJANG, fileProvider)),
|
pair("official", new AutoDownloadProvider(MOJANG, fileProvider)),
|
||||||
pair("balanced", new AutoDownloadProvider(balanced, fileProvider)),
|
pair("balanced", new AutoDownloadProvider(balanced, fileProvider)),
|
||||||
pair("mirror", new AutoDownloadProvider(BMCLAPI /* MCBBS */, fileProvider)));
|
pair("mirror", new AutoDownloadProvider(BMCLAPI, fileProvider)));
|
||||||
|
|
||||||
observer = FXUtils.observeWeak(() -> {
|
observer = FXUtils.observeWeak(() -> {
|
||||||
FetchTask.setDownloadExecutorConcurrency(
|
FetchTask.setDownloadExecutorConcurrency(
|
||||||
@@ -108,12 +99,11 @@ public final class DownloadProviders {
|
|||||||
.orElse(providersById.get(DEFAULT_PROVIDER_ID));
|
.orElse(providersById.get(DEFAULT_PROVIDER_ID));
|
||||||
});
|
});
|
||||||
|
|
||||||
FXUtils.onChangeAndOperate(config().downloadTypeProperty(), downloadType -> {
|
if (!rawProviders.containsKey(config().getDownloadType())) {
|
||||||
if (!rawProviders.containsKey(downloadType)) {
|
config().setDownloadType(DEFAULT_RAW_PROVIDER_ID);
|
||||||
config().setDownloadType(DEFAULT_RAW_PROVIDER_ID);
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
FXUtils.onChangeAndOperate(config().downloadTypeProperty(), downloadType -> {
|
||||||
DownloadProvider primary = Optional.ofNullable(rawProviders.get(downloadType))
|
DownloadProvider primary = Optional.ofNullable(rawProviders.get(downloadType))
|
||||||
.orElse(rawProviders.get(DEFAULT_RAW_PROVIDER_ID));
|
.orElse(rawProviders.get(DEFAULT_RAW_PROVIDER_ID));
|
||||||
fileDownloadProvider.setDownloadProviderCandidates(
|
fileDownloadProvider.setDownloadProviderCandidates(
|
||||||
|
|||||||
Reference in New Issue
Block a user