From 0bda9a36efb85eb5448b8c03965c3129c00e6278 Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Mon, 30 Nov 2020 14:54:31 +0200 Subject: [PATCH] Use DLI for launching Forge --- .../net/fabricmc/loom/providers/LaunchProvider.java | 5 +++++ src/main/java/net/fabricmc/loom/util/RunConfig.java | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java b/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java index 3697874c..8b5c6559 100644 --- a/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java @@ -68,6 +68,11 @@ public class LaunchProvider extends DependencyProvider { .argument("client", "--assetsDir") .argument("client", new File(getExtension().getUserCache(), "assets").getAbsolutePath()); + if (getExtension().isForge()) { + launchConfig.argument("client", "--launchTarget=fmluserdevclient"); + launchConfig.argument("server", "--launchTarget=fmluserdevserver"); + } + //Enable ansi by default for idea and vscode if (new File(getProject().getRootDir(), ".vscode").exists() || new File(getProject().getRootDir(), ".idea").exists() diff --git a/src/main/java/net/fabricmc/loom/util/RunConfig.java b/src/main/java/net/fabricmc/loom/util/RunConfig.java index 7c7e0914..6f4dea88 100644 --- a/src/main/java/net/fabricmc/loom/util/RunConfig.java +++ b/src/main/java/net/fabricmc/loom/util/RunConfig.java @@ -111,10 +111,7 @@ public class RunConfig { runConfig.runDir = "file://$PROJECT_DIR$/" + extension.runDir; runConfig.vmArgs = ""; - if (extension.isForge()) { - runConfig.mainClass = "net.minecraftforge.userdev.LaunchTesting"; - runConfig.programArgs = ""; - } else if ("launchwrapper".equals(extension.getLoaderLaunchMethod())) { + if ("launchwrapper".equals(extension.getLoaderLaunchMethod())) { runConfig.mainClass = "net.minecraft.launchwrapper.Launch"; runConfig.programArgs = "--tweakClass " + ("client".equals(mode) ? Constants.LaunchWrapper.DEFAULT_FABRIC_CLIENT_TWEAKER : Constants.LaunchWrapper.DEFAULT_FABRIC_SERVER_TWEAKER); } else { @@ -161,7 +158,6 @@ public class RunConfig { populate(project, extension, ideaClient, "client"); ideaClient.vmArgs += getOSClientJVMArgs(); ideaClient.vmArgs += " -Dfabric.dli.main=" + getMainClass("client", extension); - ideaClient.vmArgs += " -DlaunchTarget=fmluserdevclient"; return ideaClient; } @@ -173,7 +169,6 @@ public class RunConfig { ideaServer.configName = "Minecraft Server"; populate(project, extension, ideaServer, "server"); ideaServer.vmArgs += " -Dfabric.dli.main=" + getMainClass("server", extension); - ideaServer.vmArgs += " -DlaunchTarget=fmluserdevserver"; return ideaServer; } @@ -210,6 +205,10 @@ public class RunConfig { } private static String getMainClass(String side, LoomGradleExtension extension) { + if (extension.isForge()) { + return "net.minecraftforge.userdev.LaunchTesting"; + } + JsonObject installerJson = extension.getInstallerJson(); if (installerJson != null && installerJson.has("mainClass")) {