From 3f9c6978349c6129f3ffafdd6c84cb5b1db8ebfe Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Tue, 28 Jul 2020 00:40:54 +0300 Subject: [PATCH] Try using SpecialSource directly instead of going through ForgeGradle --- build.gradle | 2 +- .../loom/providers/MinecraftProvider.java | 27 ++++--------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/build.gradle b/build.gradle index 23a98b65..4c259f69 100644 --- a/build.gradle +++ b/build.gradle @@ -74,7 +74,7 @@ dependencies { implementation ('org.cadixdev:lorenz:0.5.3') implementation ('org.cadixdev:lorenz-asm:0.5.3') implementation ('org.cadixdev:atlas:0.2.0') - implementation ('net.minecraftforge.gradle:ForgeGradle:3.0.179') + implementation ('net.md-5:SpecialSource:1.8.6') // Testing testImplementation(gradleTestKit()) diff --git a/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java b/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java index b217bccb..61f1ef04 100644 --- a/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java @@ -47,9 +47,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.io.Files; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import net.md_5.specialsource.SpecialSource; import net.minecraftforge.binarypatcher.ConsoleTool; -import net.minecraftforge.gradle.mcp.util.MCPRuntime; -import net.minecraftforge.gradle.mcp.util.MCPWrapper; import org.cadixdev.atlas.Atlas; import org.cadixdev.bombe.asm.jar.JarEntryRemappingTransformer; import org.cadixdev.lorenz.MappingSet; @@ -237,26 +236,10 @@ public class MinecraftProvider extends DependencyProvider { } private void createSrgJars(Logger logger) throws Exception { - logger.lifecycle(":remapping minecraft (MCP, official -> srg)"); - - McpConfigProvider volde = getExtension().getMcpConfigProvider(); - File root = new File(getExtension().getUserCache(), "mcp_root"); - root.mkdirs(); - MCPWrapper wrapper = new MCPWrapper(volde.getMcp(), root); - - // Client - { - MCPRuntime runtime = wrapper.getRuntime(getProject(), "client"); - File output = runtime.execute(logger, "rename"); - Files.copy(output, minecraftClientSrgJar); - } - - // Server - { - MCPRuntime runtime = wrapper.getRuntime(getProject(), "server"); - File output = runtime.execute(logger, "rename"); - Files.copy(output, minecraftServerSrgJar); - } + logger.lifecycle(":remapping minecraft (SpecialSource, official -> srg)"); + String mappings = getExtension().getMcpConfigProvider().getSrg().getAbsolutePath(); + SpecialSource.main(new String[] { "--in-jar", minecraftClientJar.getAbsolutePath(), "--out-jar", minecraftClientSrgJar.getAbsolutePath(), "--srg-in", mappings }); + SpecialSource.main(new String[] { "--in-jar", minecraftServerJar.getAbsolutePath(), "--out-jar", minecraftServerSrgJar.getAbsolutePath(), "--srg-in", mappings }); } private void injectForgeClasses(Logger logger) throws IOException {