From 8fd500e93103ef7670bcdb5f446e9209361cba69 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Wed, 11 Mar 2020 00:18:29 +0800 Subject: [PATCH] fix: forbids OptiFine and Fabric coexistence --- .../org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java | 3 ++- .../jackhuang/hmcl/download/optifine/OptiFineInstallTask.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java index 7ce18dc92..aae2b35e1 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java @@ -131,7 +131,8 @@ public class ForgeNewInstallTask extends Task { @Override public void execute() throws Exception { - if ("net.minecraft.launchwrapper.Launch".equals(version.resolve(dependencyManager.getGameRepository()).getMainClass())) + String originalMainClass = version.resolve(dependencyManager.getGameRepository()).getMainClass(); + if (!"net.minecraft.client.main.Main".equals(originalMainClass) && !"cpw.mods.modlauncher.Launcher".equals(originalMainClass)) throw new OptiFineInstallTask.UnsupportedOptiFineInstallationException(); Path temp = Files.createTempDirectory("forge_installer"); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java index 71fdffe28..8b548370f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java @@ -122,7 +122,8 @@ public final class OptiFineInstallTask extends Task { @Override public void execute() throws Exception { - if ("cpw.mods.modlauncher.Launcher".equals(version.resolve(dependencyManager.getGameRepository()).getMainClass())) + String originalMainClass = version.resolve(dependencyManager.getGameRepository()).getMainClass(); + if (!"net.minecraft.client.main.Main".equals(originalMainClass) && !"net.minecraft.launchwrapper.Launch".equals(originalMainClass)) throw new OptiFineInstallTask.UnsupportedOptiFineInstallationException(); List libraries = new LinkedList<>();