diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java index e23194547..327d17a30 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java @@ -202,6 +202,7 @@ public class GameCrashWindow extends Stage { case TWILIGHT_FOREST_OPTIFINE: case PERFORMANT_FOREST_OPTIFINE: case JADE_FOREST_OPTIFINE: + case NEOFORGE_FOREST_OPTIFINE: message = i18n("game.crash.reason.mod", "OptiFine"); LOG.info("Crash cause: " + result.getRule() + ": " + i18n("game.crash.reason.mod", "OptiFine")); break; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CrashReportAnalyzer.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CrashReportAnalyzer.java index 571604f2a..ded09ad84 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CrashReportAnalyzer.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CrashReportAnalyzer.java @@ -139,6 +139,8 @@ public final class CrashReportAnalyzer { TWILIGHT_FOREST_OPTIFINE(Pattern.compile("java\\.lang\\.IllegalArgumentException: (.*) outside of image bounds (.*)")), // Jade is not compatible with OptiFine on Minecraft 1.20+ JADE_FOREST_OPTIFINE(Pattern.compile("Critical injection failure: LVT in net/minecraft/client/renderer/GameRenderer::m_109093_\\(FJZ\\)V has incompatible changes at opcode 760 in callback jade\\.mixins\\.json:GameRendererMixin-\\>@Inject::jade\\$runTick\\(FJZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;IILcom/mojang/blaze3d/platform/Window;Lorg/joml/Matrix4f;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/gui/GuiGraphics;\\)V\\.")), + // NeoForge 与 OptiFine 不兼容 + NEOFORGE_FOREST_OPTIFINE(Pattern.compile("cpw\\.mods\\.modlauncher\\.InvalidLauncherSetupException: Invalid Services found OptiFine")), // 一些模组与 Sodium 不兼容 // https://github.com/CaffeineMC/sodium-fabric/wiki/Known-Issues#rtss-incompatible diff --git a/HMCLCore/src/test/java/org/jackhuang/hmcl/game/CrashReportAnalyzerTest.java b/HMCLCore/src/test/java/org/jackhuang/hmcl/game/CrashReportAnalyzerTest.java index 13ea2b6ce..d7578d3a5 100644 --- a/HMCLCore/src/test/java/org/jackhuang/hmcl/game/CrashReportAnalyzerTest.java +++ b/HMCLCore/src/test/java/org/jackhuang/hmcl/game/CrashReportAnalyzerTest.java @@ -448,6 +448,13 @@ public class CrashReportAnalyzerTest { CrashReportAnalyzer.Rule.PERFORMANT_FOREST_OPTIFINE); } + @Test + public void neoforgeForestOptiFineIncompatible() throws IOException { + CrashReportAnalyzer.Result result = findResultByRule( + CrashReportAnalyzer.anaylze(loadLog("/crash-report/mod/neoforgeforest_optifine_incompatibility.txt")), + CrashReportAnalyzer.Rule.NEOFORGE_FOREST_OPTIFINE); + } + @Test public void fabricMissingMinecraft() throws IOException { CrashReportAnalyzer.Result result = findResultByRule( diff --git a/HMCLCore/src/test/resources/crash-report/mod/neoforgeforest_optifine_incompatibility.txt b/HMCLCore/src/test/resources/crash-report/mod/neoforgeforest_optifine_incompatibility.txt new file mode 100644 index 000000000..7536a0363 --- /dev/null +++ b/HMCLCore/src/test/resources/crash-report/mod/neoforgeforest_optifine_incompatibility.txt @@ -0,0 +1,55 @@ +[14:42:15] [main/INFO]: ModLauncher running: args [--username, Zkitefly, --version, 1.20.4-of, --gameDir, /home/zkitefly/.minecraft, --assetsDir, /home/zkitefly/.minecraft/assets, --assetIndex, 12, --uuid, 4453d157b2b8488c8be610fe8d34ef8c, --accessToken, ❄❄❄❄❄❄❄❄, --clientId, ${clientid}, --xuid, ${auth_xuid}, --userType, msa, --versionType, HMCL (PR Collection) 3.5.unofficial-eb0b16b (PR Collection), --width, 854, --height, 480, --fml.neoForgeVersion, 20.4.223, --fml.fmlVersion, 2.0.17, --fml.mcVersion, 1.20.4, --fml.neoFormVersion, 20231207.154220, --launchTarget, forgeclient] +[14:42:15] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.10 by BellSoft; OS Linux arch amd64 version 5.10.0-amd64-desktop +[14:42:15] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow +[14:42:15] [main/INFO]: Trying GL version 4.6 +[14:42:15] [main/INFO]: Requested GL version 4.6 got version 4.6 +[14:42:15] [main/INFO]: OptiFineTransformationService.onLoad +[14:42:15] [main/INFO]: OptiFine ZIP file URL: union:/home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar%23167!/ +[14:42:15] [main/ERROR]: Error loading OptiFine ZIP file: union:/home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar%23167!/ +java.nio.file.NoSuchFileException: /home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar#167 + at sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) ~[?:?] + at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) ~[?:?] + at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?] + at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55) ~[?:?] + at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:148) ~[?:?] + at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99) ~[?:?] + at java.nio.file.Files.readAttributes(Files.java:1851) ~[?:?] + at java.util.zip.ZipFile$Source.get(ZipFile.java:1428) ~[?:?] + at java.util.zip.ZipFile$CleanableResource.(ZipFile.java:718) ~[?:?] + at java.util.zip.ZipFile.(ZipFile.java:252) ~[?:?] + at java.util.zip.ZipFile.(ZipFile.java:181) ~[?:?] + at java.util.zip.ZipFile.(ZipFile.java:195) ~[?:?] + at optifine.OptiFineTransformationService.onLoad(OptiFineTransformationService.java:109) ~[?:?] + at cpw.mods.modlauncher.TransformationServiceDecorator.onLoad(TransformationServiceDecorator.java:53) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.TransformationServicesHandler.lambda$loadTransformationServices$11(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?] + at java.util.HashMap$Values.forEach(HashMap.java:1065) ~[?:?] + at cpw.mods.modlauncher.TransformationServicesHandler.loadTransformationServices(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:48) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.Launcher.run(Launcher.java:88) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] +[14:42:15] [main/ERROR]: Service failed to load OptiFine +cpw.mods.modlauncher.api.IncompatibleEnvironmentException: Error loading OptiFine ZIP file: union:/home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar%23167!/ + at optifine.OptiFineTransformationService.onLoad(OptiFineTransformationService.java:122) ~[?:?] + at cpw.mods.modlauncher.TransformationServiceDecorator.onLoad(TransformationServiceDecorator.java:53) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.TransformationServicesHandler.lambda$loadTransformationServices$11(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?] + at java.util.HashMap$Values.forEach(HashMap.java:1065) ~[?:?] + at cpw.mods.modlauncher.TransformationServicesHandler.loadTransformationServices(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:48) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.Launcher.run(Launcher.java:88) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] + at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] +[14:42:15] [main/ERROR]: Found 1 services that failed to load : [OptiFine] +Exception in thread "main" cpw.mods.modlauncher.InvalidLauncherSetupException: Invalid Services found OptiFine + at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.TransformationServicesHandler.validateTransformationServices(TransformationServicesHandler.java:110) + at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:49) + at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:88) + at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78) + at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) + at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) + at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) +[HMCL ProcessListener] Minecraft exit with code 1(0x1), type is APPLICATION_ERROR.