diff options
| author | Juuxel <6596629+Juuxel@users.noreply.github.com> | 2020-12-02 21:30:27 +0200 |
|---|---|---|
| committer | Juuxel <6596629+Juuxel@users.noreply.github.com> | 2020-12-02 21:30:27 +0200 |
| commit | 5a8cd5ce9ff8e680c91d4f23f461659859171e08 (patch) | |
| tree | 7f0245984c3329ca060060c44d5f8e46c84ff94a /src/main | |
| parent | fe99918d360e7f4796c5c1c85c9109be2dd7e805 (diff) | |
| download | architectury-loom-5a8cd5ce9ff8e680c91d4f23f461659859171e08.tar.gz architectury-loom-5a8cd5ce9ff8e680c91d4f23f461659859171e08.tar.bz2 architectury-loom-5a8cd5ce9ff8e680c91d4f23f461659859171e08.zip | |
Switch to TR (once again) for remapping srg -> official
It works now :^)
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java | 1 | ||||
| -rw-r--r-- | src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java | 64 |
2 files changed, 33 insertions, 32 deletions
diff --git a/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java b/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java index ac3099cf..aa590205 100644 --- a/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java @@ -148,7 +148,6 @@ public class MinecraftMappedProvider extends DependencyProvider { // TODO: Relocate this to its own class try (FileSystem fs = FileSystems.newFileSystem(URI.create("jar:" + output.toUri()), ImmutableMap.of("create", false))) { Path manifestPath = fs.getPath("META-INF", "MANIFEST.MF"); - ForgeProvider.ForgeVersion version = getExtension().getForgeProvider().getVersion(); Manifest minecraftManifest; Manifest forgeManifest; diff --git a/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java b/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java index dc394415..583c662e 100644 --- a/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java @@ -25,10 +25,8 @@ package net.fabricmc.loom.providers; import java.io.File; -import java.io.FileReader; import java.io.IOException; import java.io.InputStream; -import java.io.Reader; import java.io.UncheckedIOException; import java.net.URI; import java.net.URISyntaxException; @@ -40,7 +38,6 @@ import java.util.Collections; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; -import java.util.function.UnaryOperator; import com.google.common.collect.ImmutableMap; import com.google.common.io.Files; @@ -49,19 +46,16 @@ import net.minecraftforge.binarypatcher.ConsoleTool; import net.minecraftforge.gradle.mcp.util.MCPRuntime; import net.minecraftforge.gradle.mcp.util.MCPWrapper; import org.apache.commons.io.FileUtils; -import org.cadixdev.atlas.Atlas; -import org.cadixdev.bombe.asm.jar.JarEntryRemappingTransformer; -import org.cadixdev.lorenz.MappingSet; -import org.cadixdev.lorenz.asm.LorenzRemapper; -import org.cadixdev.lorenz.io.srg.tsrg.TSrgReader; import org.gradle.api.Project; import org.gradle.api.logging.Logger; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.DependencyProvider; import net.fabricmc.loom.util.JarUtil; +import net.fabricmc.loom.util.TinyRemapperMappingsHelper; import net.fabricmc.loom.util.function.FsPathConsumer; -import net.fabricmc.loom.util.function.IoConsumer; +import net.fabricmc.tinyremapper.OutputConsumerPath; +import net.fabricmc.tinyremapper.TinyRemapper; public class MinecraftPatchedProvider extends DependencyProvider { private File minecraftClientSrgJar; @@ -115,6 +109,7 @@ public class MinecraftPatchedProvider extends DependencyProvider { } private void createSrgJars(Logger logger) throws Exception { + // TODO: FORGE: Get rid of *this* logger.lifecycle(":remapping minecraft (MCP, official -> srg)"); McpConfigProvider volde = getExtension().getMcpConfigProvider(); @@ -169,29 +164,36 @@ public class MinecraftPatchedProvider extends DependencyProvider { } private void remapPatchedJars(Logger logger) throws IOException { - logger.lifecycle(":remapping minecraft (Atlas, srg -> official)"); - - useAtlas(MappingSet::reverse, atlas -> { - atlas.run(minecraftClientPatchedSrgJar.toPath(), minecraftClientPatchedJar.toPath()); - atlas.run(minecraftServerPatchedSrgJar.toPath(), minecraftServerPatchedJar.toPath()); - }); - } - - private void useAtlas(UnaryOperator<MappingSet> mappingOp, IoConsumer<Atlas> action) throws IOException { - try (Reader mappingReader = new FileReader(getExtension().getMcpConfigProvider().getSrg()); - TSrgReader reader = new TSrgReader(mappingReader); - Atlas atlas = new Atlas()) { - MappingSet mappings = mappingOp.apply(reader.read()); - - atlas.install(ctx -> new JarEntryRemappingTransformer( - new LorenzRemapper(mappings, ctx.inheritanceProvider()) - )); - - for (File library : getExtension().getMinecraftProvider().getLibraryProvider().getLibraries()) { - atlas.use(library.toPath()); + boolean[] bools = { true, false }; + Path[] libraries = getExtension() + .getMinecraftProvider() + .getLibraryProvider() + .getLibraries() + .stream() + .map(File::toPath) + .toArray(Path[]::new); + + for (boolean isClient : bools) { + logger.lifecycle(":remapping minecraft (TinyRemapper, " + (isClient ? "client" : "server") + ", srg -> official)"); + + TinyRemapper remapper = TinyRemapper.newRemapper() + .withMappings(TinyRemapperMappingsHelper.create(getExtension().getMappingsProvider().getMappingsWithSrg(), "srg", "official", true)) + .renameInvalidLocals(true) + .rebuildSourceFilenames(true) + .build(); + + Path input = (isClient ? minecraftClientPatchedSrgJar : minecraftServerPatchedSrgJar).toPath(); + Path output = (isClient ? minecraftClientPatchedJar : minecraftServerPatchedJar).toPath(); + + try (OutputConsumerPath outputConsumer = new OutputConsumerPath.Builder(output).build()) { + outputConsumer.addNonClassFiles(input); + + remapper.readClassPath(libraries); + remapper.readInputs(input); + remapper.apply(outputConsumer); + } finally { + remapper.finish(); } - - action.accept(atlas); } } |
