From 79cfe6fbb36123168663aa7c9db54aae0a4fbaa6 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Wed, 31 Oct 2018 19:25:41 +0000 Subject: [PATCH] Mod dev env fixes --- .../net/fabricmc/loom/task/SetupTask.java | 1 - .../net/fabricmc/loom/util/ModProccessor.java | 24 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/task/SetupTask.java b/src/main/java/net/fabricmc/loom/task/SetupTask.java index 9e25e38..647be5b 100644 --- a/src/main/java/net/fabricmc/loom/task/SetupTask.java +++ b/src/main/java/net/fabricmc/loom/task/SetupTask.java @@ -52,7 +52,6 @@ public class SetupTask extends DefaultTask { if(!output.getParentFile().exists()){ output.mkdirs(); } - getProject().getLogger().lifecycle(":remapping jar " + input.getName()); ModProccessor.handleMod(input, output, getProject()); Validate.isTrue(output.exists()); getProject().getDependencies().add(Constants.COMPILE_MODS_PROCESSED, getProject().files(output.getPath())); diff --git a/src/main/java/net/fabricmc/loom/util/ModProccessor.java b/src/main/java/net/fabricmc/loom/util/ModProccessor.java index f314beb..56a2303 100644 --- a/src/main/java/net/fabricmc/loom/util/ModProccessor.java +++ b/src/main/java/net/fabricmc/loom/util/ModProccessor.java @@ -32,7 +32,9 @@ import net.fabricmc.tinyremapper.TinyRemapper; import net.fabricmc.tinyremapper.TinyUtils; import org.apache.commons.io.IOUtils; import org.gradle.api.Project; -import org.gradle.api.artifacts.dsl.DependencyHandler; +import org.gradle.api.artifacts.Configuration; +import org.gradle.api.artifacts.ExternalModuleDependency; +import org.gradle.api.artifacts.repositories.MavenArtifactRepository; import java.io.File; import java.io.IOException; @@ -91,18 +93,26 @@ public class ModProccessor { } private static void handleInstallerJson(JsonObject jsonObject, Project project){ - DependencyHandler dependencyHandler = project.getDependencies(); - JsonObject libraries = jsonObject.get("libraries").getAsJsonObject(); libraries.get("common").getAsJsonArray().forEach(jsonElement -> { String name = jsonElement.getAsJsonObject().get("name").getAsString(); - dependencyHandler.add("compile", name); - //TODO is it an issue if we add the same url twice? or do I need to check this? + Configuration configuration = project.getConfigurations().getByName("compile"); + ExternalModuleDependency modDep = (ExternalModuleDependency) project.getDependencies().create(name); + modDep.setTransitive(false); + configuration.getDependencies().add(modDep); + if(jsonElement.getAsJsonObject().has("url")){ - project.getRepositories().maven(mavenArtifactRepository -> mavenArtifactRepository.setUrl(jsonElement.getAsJsonObject().get("url").getAsString())); - } + String url = jsonElement.getAsJsonObject().get("url").getAsString(); + long count = project.getRepositories().stream() + .filter(artifactRepository -> artifactRepository instanceof MavenArtifactRepository) + .map(artifactRepository -> (MavenArtifactRepository) artifactRepository) + .filter(mavenArtifactRepository -> mavenArtifactRepository.getUrl().toString().equalsIgnoreCase(url)).count(); + if(count == 0){ + project.getRepositories().maven(mavenArtifactRepository -> mavenArtifactRepository.setUrl(jsonElement.getAsJsonObject().get("url").getAsString())); + } + } }); }