From c12ae9fdf8bc223f3dc6b4a23c87537bcd4c4b5b Mon Sep 17 00:00:00 2001 From: Burning_TNT <88144530+burningtnt@users.noreply.github.com> Date: Thu, 21 Nov 2024 21:22:20 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#3460=20=E6=97=A0=E6=B3=95=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E5=A5=87=E5=BC=82=E7=9A=84=20Forge=20(Like)=20?= =?UTF-8?q?=E6=A8=A1=E7=BB=84=20Metadata=20(#3470)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmcl/mod/modinfo/ForgeNewModMetadata.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/modinfo/ForgeNewModMetadata.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/modinfo/ForgeNewModMetadata.java index 4a94eff56..ec4efb22e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/modinfo/ForgeNewModMetadata.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/modinfo/ForgeNewModMetadata.java @@ -160,12 +160,17 @@ public final class ForgeNewModMetadata { private static ModLoaderType analyzeLoader(Toml toml, String modID, int loaderACC, ModLoaderType defaultLoader) throws IOException { List> dependencies = toml.getList("dependencies." + modID); - if (dependencies != null) { - for (HashMap dependency : dependencies) { - switch ((String) dependency.get("modId")) { - case "forge": return checkLoaderACC(loaderACC, ACC_FORGE, ModLoaderType.FORGE); - case "neoforge": return checkLoaderACC(loaderACC, ACC_NEO_FORGED, ModLoaderType.NEO_FORGED); - } + if (dependencies == null) { + dependencies = toml.getList("dependencies"); // ??? I have no idea why some of the Forge mods use [[dependencies]] + if (dependencies == null) { + return defaultLoader; + } + } + + for (HashMap dependency : dependencies) { + switch ((String) dependency.get("modId")) { + case "forge": return checkLoaderACC(loaderACC, ACC_FORGE, ModLoaderType.FORGE); + case "neoforge": return checkLoaderACC(loaderACC, ACC_NEO_FORGED, ModLoaderType.NEO_FORGED); } }