From 530896e41a0c2693e758690c682f26d955b22be2 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sat, 22 Dec 2018 14:44:34 +0100 Subject: [PATCH] make modCompile use flat directory artifact location instead of hack --- src/main/java/net/fabricmc/loom/AbstractPlugin.java | 5 +++++ src/main/java/net/fabricmc/loom/LoomGradleExtension.java | 8 ++++++++ .../net/fabricmc/loom/providers/ModRemapperProvider.java | 9 ++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/AbstractPlugin.java b/src/main/java/net/fabricmc/loom/AbstractPlugin.java index 879357d..08dc42f 100644 --- a/src/main/java/net/fabricmc/loom/AbstractPlugin.java +++ b/src/main/java/net/fabricmc/loom/AbstractPlugin.java @@ -196,6 +196,11 @@ public class AbstractPlugin implements Plugin { flatDirectoryArtifactRepository.setName("UserLocalCacheFiles"); }); + project1.getRepositories().flatDir(flatDirectoryArtifactRepository -> { + flatDirectoryArtifactRepository.dir(extension.getRemappedModCache()); + flatDirectoryArtifactRepository.setName("UserLocalRemappedMods"); + }); + project1.getRepositories().maven(mavenArtifactRepository -> { mavenArtifactRepository.setName("Fabric"); mavenArtifactRepository.setUrl("https://maven.fabricmc.net/"); diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index 50abb6d..df96fbb 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -100,6 +100,14 @@ public class LoomGradleExtension { return projectCache; } + public File getRemappedModCache() { + File remappedModCache = new File(getProjectCache(), "remapped_mods/"); + if (!remappedModCache.exists()) { + remappedModCache.mkdir(); + } + return remappedModCache; + } + @Nullable public String getMixinVersion() { for (Dependency dependency : project.getConfigurations().getByName("compile").getDependencies()) { diff --git a/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java b/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java index a3be5d7..17b0a3a 100644 --- a/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java @@ -40,9 +40,10 @@ public class ModRemapperProvider extends DependencyProvider { project.getLogger().lifecycle("Providing " + dependency.getDepString()); MappingsProvider mappingsProvider = getDependencyManager().getProvider(MappingsProvider.class); + String verSuffix = ".mapped." + mappingsProvider.mappingsName + "." + mappingsProvider.mappingsVersion; - String outputName = input.getName().substring(0, input.getName().length() - 4) + "-mapped-" + mappingsProvider.mappingsVersion + ".jar";//TODO use the hash of the input file or something? - File modStore = new File(extension.getProjectCache(), "remapped_mods"); + String outputName = input.getName().substring(0, input.getName().length() - 4) + verSuffix + ".jar";//TODO use the hash of the input file or something? + File modStore = extension.getRemappedModCache(); File output = new File(modStore, outputName); if(output.exists()){ output.delete(); @@ -54,7 +55,9 @@ public class ModRemapperProvider extends DependencyProvider { throw new RuntimeException("Failed to remap mod"); } - addDependency(output, project); + project.getDependencies().add("compile", project.getDependencies().module( + dependency.getDepString() + verSuffix + )); } @Override