Cleanup installer json handling, should hopefully fix incorrect dependency versions.
This commit is contained in:
		
							parent
							
								
									35437891b5
								
							
						
					
					
						commit
						e03bbe0f87
					
				
					 4 changed files with 17 additions and 32 deletions
				
			
		|  | @ -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() { | ||||
|  |  | |||
|  | @ -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<File> 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); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  |  | |||
|  | @ -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) { | ||||
|  |  | |||
|  | @ -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; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue