From 4332bc124e666c212c66d20bdf826fbba820c838 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Sun, 8 Mar 2020 20:49:00 +0800 Subject: [PATCH] fix: unable to launch --- .../jackhuang/hmcl/game/LauncherHelper.java | 2 +- .../jackhuang/hmcl/download/MaintainTask.java | 26 +++---------------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java index acec48374..5f7adfd90 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -124,7 +124,7 @@ public final class LauncherHelper { private void launch0() { HMCLGameRepository repository = profile.getRepository(); DefaultDependencyManager dependencyManager = profile.getDependency(); - Version version = MaintainTask.maintain(repository, repository.getResolvedPreservingPatchesVersion(selectedVersion)); + Version version = MaintainTask.maintain(repository, repository.getResolvedVersion(selectedVersion)); Optional gameVersion = GameVersion.minecraftVersion(repository.getVersionJar(version)); TaskExecutor executor = Task.allOf( diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java index a7246041d..aea850d91 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java @@ -45,7 +45,7 @@ public class MaintainTask extends Task { this.repository = repository; this.version = version; - if (!version.isResolvedPreservingPatches()) + if (version.getInheritsFrom() != null) throw new IllegalArgumentException("MaintainTask requires independent game version"); } @@ -55,28 +55,10 @@ public class MaintainTask extends Task { } public static Version maintain(GameRepository repository, Version version) { - if (!version.isResolvedPreservingPatches()) + if (version.getInheritsFrom() != null) throw new IllegalArgumentException("MaintainTask requires independent game version"); - // We made a mistake that priority of OptiFine should be 90000 instead of 10000, - // manually reset priority here. - version = version.setPatches(version.getPatches().stream().map(patch -> { - if (FABRIC.getPatchId().equals(patch.getId())) { - return patch.setPriority(30000); - } else if (FORGE.getPatchId().equals(patch.getId())) { - return patch.setPriority(30000); - } else if (LITELOADER.getPatchId().equals(patch.getId())) { - return patch.setPriority(60000); - } else if (OPTIFINE.getPatchId().equals(patch.getId())) { - return patch.setPriority(90000); - } else if (MINECRAFT.getPatchId().equals(patch.getId())) { - return patch.setPriority(0); - } else { - return patch; - } - }).collect(Collectors.toList())).resolve(repository); - - String mainClass = version.getMainClass(); + String mainClass = version.resolve(null).getMainClass(); if (mainClass != null && mainClass.contains("launchwrapper")) { return maintainOptiFineLibrary(repository, maintainGameWithLaunchWrapper(unique(version), true)); @@ -91,7 +73,7 @@ public class MaintainTask extends Task { public static Version maintainPreservingPatches(GameRepository repository, Version version) { if (!version.isResolvedPreservingPatches()) throw new IllegalArgumentException("MaintainTask requires independent game version"); - Version newVersion = maintain(repository, version.resolvePreservingPatches(repository)); + Version newVersion = maintain(repository, version.resolve(repository)); return newVersion.setPatches(version.getPatches()).markAsUnresolved(); }