diff --git a/src/main/java/net/fabricmc/loom/decompilers/fernflower/FabricFernFlowerDecompiler.java b/src/main/java/net/fabricmc/loom/decompilers/fernflower/FabricFernFlowerDecompiler.java index 18d55451..2d2041b6 100644 --- a/src/main/java/net/fabricmc/loom/decompilers/fernflower/FabricFernFlowerDecompiler.java +++ b/src/main/java/net/fabricmc/loom/decompilers/fernflower/FabricFernFlowerDecompiler.java @@ -61,6 +61,11 @@ public final class FabricFernFlowerDecompiler implements LoomDecompiler { } ff.addSource(compiledJar.toFile()); - ff.decompileContext(); + + try { + ff.decompileContext(); + } finally { + ff.clearContext(); + } } } diff --git a/src/main/java/net/fabricmc/loom/task/AbstractRemapJarTask.java b/src/main/java/net/fabricmc/loom/task/AbstractRemapJarTask.java index 5e89e6bf..6ac5a4ff 100644 --- a/src/main/java/net/fabricmc/loom/task/AbstractRemapJarTask.java +++ b/src/main/java/net/fabricmc/loom/task/AbstractRemapJarTask.java @@ -29,6 +29,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.nio.file.Path; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -93,6 +94,9 @@ public abstract class AbstractRemapJarTask extends Jar { @Input public abstract Property getIncludesClientOnlyClasses(); + @Input + public abstract ListProperty getAdditionalClientOnlyEntries(); + @Inject public AbstractRemapJarTask() { getSourceNamespace().convention(MappingsNamespace.NAMED.toString()).finalizeValueOnRead(); @@ -117,7 +121,8 @@ public abstract class AbstractRemapJarTask extends Jar { params.getJarManifestService().set(JarManifestService.get(getProject())); if (getIncludesClientOnlyClasses().get()) { - final List clientOnlyEntries = getClientOnlyEntries(); + final List clientOnlyEntries = new ArrayList<>(getClientOnlyEntries()); + clientOnlyEntries.addAll(getAdditionalClientOnlyEntries().get()); applyClientOnlyManifestAttributes(params, clientOnlyEntries); params.getClientOnlyEntries().set(clientOnlyEntries.stream().filter(s -> s.endsWith(".class")).toList()); }