From 6522a826e1adba9a55070df3d4ae38ecfcfce565 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Mon, 20 Sep 2021 01:59:54 +0800 Subject: Fix forge with AT Signed-off-by: shedaniel --- .../processors/MinecraftProcessedProvider.java | 4 ++-- .../providers/forge/ForgeProvider.java | 2 +- .../minecraft/MinecraftMappedProvider.java | 2 +- .../sources/ForgeSourcesRemapper.java | 22 ++++++++++++++++++++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java b/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java index fd3e3bda..744bc53e 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java @@ -68,7 +68,7 @@ public class MinecraftProcessedProvider extends MinecraftMappedProvider { } getProject().getDependencies().add(Constants.Configurations.MINECRAFT_NAMED, - getProject().getDependencies().module("net.minecraft:minecraft-" + projectMappedClassifier + ":" + getMinecraftProvider().minecraftVersion() + "/" + getExtension().getMappingsProvider().mappingsIdentifier())); + getProject().getDependencies().module("net.minecraft:" + minecraftProvider.getJarPrefix() + "minecraft-" + projectMappedClassifier + ":" + getMinecraftProvider().minecraftVersion() + "/" + getExtension().getMappingsProvider().mappingsIdentifier())); } private void invalidateJar() { @@ -88,7 +88,7 @@ public class MinecraftProcessedProvider extends MinecraftMappedProvider { super.initFiles(minecraftProvider, mappingsProvider); projectMappedJar = new File(getDirectories().getRootProjectPersistentCache(), getMinecraftProvider().minecraftVersion() + "/" - + getExtension().getMappingsProvider().mappingsIdentifier() + "/minecraft-" + projectMappedClassifier + ".jar"); + + getExtension().getMappingsProvider().mappingsIdentifier() + "/" + minecraftProvider.getJarPrefix() + "minecraft-" + projectMappedClassifier + ".jar"); } @Override diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeProvider.java index d8f8800a..cd626652 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeProvider.java @@ -63,7 +63,7 @@ public class ForgeProvider extends DependencyProvider { public File getProjectCache() { if (projectCache == null) { - projectCache = new File(getDirectories().getProjectPersistentCache(), "forge/" + getExtension().getForgeProvider().getVersion().getCombined()); + projectCache = new File(getDirectories().getRootProjectPersistentCache(), getMinecraftProvider().minecraftVersion() + "/forge/" + getExtension().getForgeProvider().getVersion().getCombined() + "/project-" + getProject().getPath().replace(':', '@')); projectCache.mkdirs(); } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java index fd2d95ca..5d03b971 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java @@ -73,7 +73,7 @@ public class MinecraftMappedProvider extends DependencyProvider { private File forgeIntermediaryJar; private File forgeSrgJar; - private MinecraftProviderImpl minecraftProvider; + protected MinecraftProviderImpl minecraftProvider; public MinecraftMappedProvider(Project project) { super(project); diff --git a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java index 076f3674..34b8badf 100644 --- a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java @@ -26,6 +26,7 @@ package net.fabricmc.loom.configuration.sources; import java.io.File; import java.io.IOException; +import java.io.PrintStream; import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; @@ -39,11 +40,14 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; import java.util.stream.Collectors; +import org.apache.commons.io.output.NullOutputStream; import org.cadixdev.lorenz.MappingSet; import org.cadixdev.mercury.Mercury; import org.cadixdev.mercury.remapper.MercuryRemapper; import org.gradle.api.Project; import org.gradle.api.artifacts.ResolvedArtifact; +import org.gradle.api.logging.LogLevel; +import org.gradle.api.logging.configuration.ShowStacktrace; import org.zeroturnaround.zip.ZipUtil; import net.fabricmc.loom.LoomGradleExtension; @@ -134,7 +138,21 @@ public class ForgeSourcesRemapper { taskCompleter.complete(); } + PrintStream out = System.out; + PrintStream err = System.err; + + if (project.getGradle().getStartParameter().getShowStacktrace() == ShowStacktrace.INTERNAL_EXCEPTIONS && project.getGradle().getStartParameter().getLogLevel().compareTo(LogLevel.LIFECYCLE) >= 0) { + System.setOut(new PrintStream(NullOutputStream.NULL_OUTPUT_STREAM)); + System.setErr(new PrintStream(NullOutputStream.NULL_OUTPUT_STREAM)); + } + remapForgeSourcesInner(project, tmpInput.toPath(), tmpOutput.toPath()); + + if (project.getGradle().getStartParameter().getShowStacktrace() == ShowStacktrace.INTERNAL_EXCEPTIONS && project.getGradle().getStartParameter().getLogLevel().compareTo(LogLevel.LIFECYCLE) >= 0) { + System.setOut(out); + System.setErr(err); + } + tmpInput.delete(); int[] failedToRemap = {0}; @@ -149,7 +167,7 @@ public class ForgeSourcesRemapper { sources.put(entry.getKey(), Files.readAllBytes(path)); } else { sources.remove(entry.getKey()); - project.getLogger().error("forge source failed to remap " + entry.getKey()); + project.getLogger().error("Failed to remap sources for " + entry.getKey()); failedToRemap[0]++; } }); @@ -161,7 +179,7 @@ public class ForgeSourcesRemapper { tmpOutput.delete(); if (failedToRemap[0] > 0) { - project.getLogger().error("{} forge sources failed to remap", failedToRemap[0]); + project.getLogger().error("Failed to remap {} forge sources", failedToRemap[0]); } } -- cgit