diff --git a/src/main/java/net/fabricmc/loom/AbstractPlugin.java b/src/main/java/net/fabricmc/loom/AbstractPlugin.java index 309a5a0..dff95f7 100644 --- a/src/main/java/net/fabricmc/loom/AbstractPlugin.java +++ b/src/main/java/net/fabricmc/loom/AbstractPlugin.java @@ -25,9 +25,9 @@ package net.fabricmc.loom; import com.google.common.collect.ImmutableMap; +import net.fabricmc.loom.providers.MappingsProvider; import net.fabricmc.loom.providers.MinecraftProvider; import net.fabricmc.loom.providers.ModRemapperProvider; -import net.fabricmc.loom.providers.MappingsProvider; import net.fabricmc.loom.task.RemapJar; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.LoomDependencyManager; @@ -189,7 +189,7 @@ public class AbstractPlugin implements Plugin { }); project1.getRepositories().flatDir(flatDirectoryArtifactRepository -> { - flatDirectoryArtifactRepository.dir(Constants.CACHE_FILES); + flatDirectoryArtifactRepository.dir(extension.getProjectCache()); flatDirectoryArtifactRepository.setName("UserLocalCacheFiles"); }); diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index e8a9022..b890945 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -53,6 +53,14 @@ public class LoomGradleExtension { return userCache; } + public File getProjectCache(){ + File projectCache = new File(project.getRootDir(), ".gradle/minecraft/"); + if(!projectCache.exists()){ + projectCache.mkdirs(); + } + return projectCache; + } + public LoomDependencyManager getDependencyManager() { return dependencyManager; } diff --git a/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java b/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java index 927c281..b837bf5 100644 --- a/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java @@ -106,7 +106,7 @@ public class MappingsProvider extends DependencyProvider { MAPPINGS_TINY_BASE = new File(MAPPINGS_DIR, mappingsName + "-tiny-" + minecraftVersion + "." + mappingsVersion + "-base"); MAPPINGS_TINY = new File(MAPPINGS_DIR, mappingsName + "-tiny-" + minecraftVersion + "." + mappingsVersion); - MAPPINGS_MIXIN_EXPORT = new File(Constants.CACHE_FILES, "mixin-map-" + minecraftVersion + "." + mappingsVersion + ".tiny"); + MAPPINGS_MIXIN_EXPORT = new File(extension.getProjectCache(), "mixin-map-" + minecraftVersion + "." + mappingsVersion + ".tiny"); } @Override diff --git a/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java b/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java index ea45e60..a3be5d7 100644 --- a/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java @@ -42,7 +42,8 @@ public class ModRemapperProvider extends DependencyProvider { MappingsProvider mappingsProvider = getDependencyManager().getProvider(MappingsProvider.class); 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 output = new File(Constants.REMAPPED_MODS_STORE, outputName); + File modStore = new File(extension.getProjectCache(), "remapped_mods"); + File output = new File(modStore, outputName); if(output.exists()){ output.delete(); } diff --git a/src/main/java/net/fabricmc/loom/task/GenIdeaProjectTask.java b/src/main/java/net/fabricmc/loom/task/GenIdeaProjectTask.java index b0dbde4..5860495 100644 --- a/src/main/java/net/fabricmc/loom/task/GenIdeaProjectTask.java +++ b/src/main/java/net/fabricmc/loom/task/GenIdeaProjectTask.java @@ -24,9 +24,7 @@ package net.fabricmc.loom.task; - import net.fabricmc.loom.LoomGradleExtension; -import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.IdeaRunConfig; import org.gradle.api.DefaultTask; import org.gradle.api.Project; @@ -86,7 +84,7 @@ public class GenIdeaProjectTask extends DefaultTask { transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); transformer.transform(source, result); - File runDir = new File(Constants.WORKING_DIRECTORY, extension.runDir); + File runDir = new File(getProject().getRootDir(), extension.runDir); if (!runDir.exists()) { runDir.mkdirs(); } diff --git a/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java b/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java index d5c96aa..0a4ea27 100644 --- a/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java +++ b/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java @@ -27,7 +27,6 @@ package net.fabricmc.loom.task; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import net.fabricmc.loom.LoomGradleExtension; -import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.IdeaRunConfig; import org.apache.commons.io.FileUtils; import org.gradle.api.DefaultTask; @@ -70,7 +69,7 @@ public class GenVsCodeProjectTask extends DefaultTask { throw new RuntimeException("Failed to write launch.json", e); } - File runDir = new File(Constants.WORKING_DIRECTORY, extension.runDir); + File runDir = new File(getProject().getRootDir(), extension.runDir); if (!runDir.exists()) { runDir.mkdirs(); } diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index edda3cd..40025f4 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -24,13 +24,8 @@ package net.fabricmc.loom.util; -import java.io.File; public class Constants { - public static final File WORKING_DIRECTORY = new File("."); - public static final File CACHE_FILES = new File(WORKING_DIRECTORY, ".gradle/minecraft"); - - public static final File REMAPPED_MODS_STORE = new File(CACHE_FILES, "remapped_mods"); public static final String FABRIC_CLIENT_TWEAKER = "net.fabricmc.loader.launch.FabricClientTweaker"; public static final String FABRIC_SERVER_TWEAKER = "net.fabricmc.loader.launch.FabricServerTweaker"; diff --git a/src/main/java/net/fabricmc/loom/util/SetupIntelijRunConfigs.java b/src/main/java/net/fabricmc/loom/util/SetupIntelijRunConfigs.java index 0579e77..15c3895 100644 --- a/src/main/java/net/fabricmc/loom/util/SetupIntelijRunConfigs.java +++ b/src/main/java/net/fabricmc/loom/util/SetupIntelijRunConfigs.java @@ -47,7 +47,7 @@ public class SetupIntelijRunConfigs { throw new RuntimeException("Failed to generate run configs", e); } - File runDir = new File(Constants.WORKING_DIRECTORY, extension.runDir); + File runDir = new File(project.getRootDir(), extension.runDir); if (!runDir.exists()) { runDir.mkdirs(); }