diff options
Diffstat (limited to 'src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java')
-rw-r--r-- | src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java index e630939c..1ce95ac1 100644 --- a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java +++ b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java @@ -27,6 +27,7 @@ package net.fabricmc.loom.configuration.ide; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.nio.file.Path; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -203,13 +204,23 @@ public class RunConfig { return runConfig; } - public String fromDummy(String dummy) throws IOException { + public String fromDummy(String dummy, boolean relativeDir, Project project) throws IOException { String dummyConfig; try (InputStream input = SetupIntelijRunConfigs.class.getClassLoader().getResourceAsStream(dummy)) { dummyConfig = new String(input.readAllBytes(), StandardCharsets.UTF_8); } + String runDir = this.runDir; + + if (relativeDir && project.getRootProject() != project) { + Path rootPath = project.getRootDir().toPath(); + Path projectPath = project.getProjectDir().toPath(); + String relativePath = rootPath.relativize(projectPath).toString(); + + runDir = relativePath + "/" + runDir; + } + dummyConfig = dummyConfig.replace("%NAME%", configName); dummyConfig = dummyConfig.replace("%MAIN_CLASS%", mainClass); dummyConfig = dummyConfig.replace("%ECLIPSE_PROJECT%", eclipseProjectName); |