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); } }