diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index 2b590b8..15abb2a 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -64,7 +64,6 @@ public class LoomGradleExtension { private Project project; private LoomDependencyManager dependencyManager; private JsonObject installerJson; - private int installerJsonPriority = Integer.MAX_VALUE; // 0+, higher = less prioritized private MappingSet[] srcMappingCache = new MappingSet[2]; private Mercury[] srcMercuryCache = new Mercury[2]; @@ -88,11 +87,8 @@ public class LoomGradleExtension { return Collections.unmodifiableList(unmappedModsBuilt); } - public void setInstallerJson(JsonObject object, int priority) { - if (installerJson == null || priority <= installerJsonPriority) { - this.installerJson = object; - this.installerJsonPriority = priority; - } + public void setInstallerJson(JsonObject object) { + this.installerJson = object; } public JsonObject getInstallerJson() { diff --git a/src/main/java/net/fabricmc/loom/util/LoomDependencyManager.java b/src/main/java/net/fabricmc/loom/util/LoomDependencyManager.java index 75742c7..fce9a26 100644 --- a/src/main/java/net/fabricmc/loom/util/LoomDependencyManager.java +++ b/src/main/java/net/fabricmc/loom/util/LoomDependencyManager.java @@ -27,15 +27,12 @@ package net.fabricmc.loom.util; import java.io.File; import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; import com.google.gson.JsonObject; import org.gradle.api.Project; import org.gradle.api.artifacts.Configuration; -import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.ExternalModuleDependency; import org.gradle.api.artifacts.repositories.MavenArtifactRepository; @@ -129,23 +126,20 @@ public class LoomDependencyManager { if (extension.getInstallerJson() == null) { //If we've not found the installer JSON we've probably skipped remapping Fabric loader, let's go looking - project.getLogger().info("Didn't find installer JSON, searching through modCompileClasspath"); - Configuration configuration = project.getConfigurations().getByName(Constants.MOD_COMPILE_CLASSPATH); + project.getLogger().info("Searching through modCompileClasspath for installer JSON"); + final Configuration configuration = project.getConfigurations().getByName(Constants.MOD_COMPILE_CLASSPATH); - Set seenFiles = new HashSet<>(); + for (File input : configuration.resolve()) { + JsonObject jsonObject = ModProcessor.readInstallerJson(input, project); - for (Dependency dependency : configuration.getDependencies()) { - DependencyInfo info = DependencyInfo.create(project, dependency, configuration); - - for (File input : info.resolve()) { - if (seenFiles.add(input)) { - ModProcessor.readInstallerJson(input, project); - - if (extension.getInstallerJson() != null) { - project.getLogger().info("Found installer JSON in " + info); - break; //Found it, probably don't need to look any further - } + if (jsonObject != null) { + if (extension.getInstallerJson() != null) { + project.getLogger().info("Found another installer JSON in, ignoring it! " + input); + continue; } + + project.getLogger().info("Found installer JSON in " + input); + extension.setInstallerJson(jsonObject); } } } diff --git a/src/main/java/net/fabricmc/loom/util/ModCompileRemapper.java b/src/main/java/net/fabricmc/loom/util/ModCompileRemapper.java index 73cafaf..aed60ab 100644 --- a/src/main/java/net/fabricmc/loom/util/ModCompileRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/ModCompileRemapper.java @@ -141,8 +141,6 @@ public class ModCompileRemapper { } else { project.getLogger().info(output.getName() + " is up to date with " + input.getName()); } - - ModProcessor.acknowledgeMod(input, output, project, config); } private static File findSources(DependencyHandler dependencies, ResolvedArtifact artifact) { diff --git a/src/main/java/net/fabricmc/loom/util/ModProcessor.java b/src/main/java/net/fabricmc/loom/util/ModProcessor.java index 09c746f..03cf2e0 100644 --- a/src/main/java/net/fabricmc/loom/util/ModProcessor.java +++ b/src/main/java/net/fabricmc/loom/util/ModProcessor.java @@ -73,10 +73,6 @@ public class ModProcessor { stripNestedJars(output); } - public static void acknowledgeMod(File input, File output, Project project, Configuration config) { - readInstallerJson(input, project); - } - private static void handleNestedJars(File input, Project project, Configuration config) throws IOException { JarFile jarFile = new JarFile(input); JarEntry modJsonEntry = jarFile.getJarEntry("fabric.mod.json"); @@ -187,7 +183,7 @@ public class ModProcessor { } } - static void readInstallerJson(File file, Project project) { + static JsonObject readInstallerJson(File file, Project project) { try { LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); String launchMethod = extension.getLoaderLaunchMethod(); @@ -211,7 +207,7 @@ public class ModProcessor { priority++; if (entry == null) { - return; + return null; } } @@ -221,9 +217,10 @@ public class ModProcessor { } JsonObject jsonObject = GSON.fromJson(jsonStr, JsonObject.class); - extension.setInstallerJson(jsonObject, priority); + return jsonObject; } catch (IOException e) { e.printStackTrace(); } + return null; } }