diff --git a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java index 07a20590..1b09cdc3 100644 --- a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java +++ b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java @@ -63,11 +63,13 @@ public interface LoomGradleExtensionAPI { void decompilers(Action> action); - @Deprecated(forRemoval = true) + @Deprecated() ListProperty getGameJarProcessors(); - @Deprecated(forRemoval = true) - void addJarProcessor(JarProcessor processor); + @Deprecated() + default void addJarProcessor(JarProcessor processor) { + getGameJarProcessors().add(processor); + } ListProperty> getMinecraftJarProcessors(); diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/JarProcessor.java b/src/main/java/net/fabricmc/loom/configuration/processors/JarProcessor.java index 34833a92..72a7c2ea 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/JarProcessor.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/JarProcessor.java @@ -26,7 +26,7 @@ package net.fabricmc.loom.configuration.processors; import java.io.File; -@Deprecated(forRemoval = true) +@Deprecated() public interface JarProcessor { /** * Returns a unique ID for this jar processor, containing all configuration details. diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/LegacyJarProcessorWrapper.java b/src/main/java/net/fabricmc/loom/configuration/processors/LegacyJarProcessorWrapper.java index 98ab2033..847e391c 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/LegacyJarProcessorWrapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/LegacyJarProcessorWrapper.java @@ -47,8 +47,14 @@ public abstract class LegacyJarProcessorWrapper implements MinecraftJarProcessor this.delegate = delegate; } + @Inject public abstract Project getProject(); + @Override + public String getName() { + return "legacy:" + delegate.getClass().getCanonicalName(); + } + @Override public @Nullable LegacyJarProcessorWrapper.Spec buildSpec(SpecContext context) { delegate.setup(); diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftJarProcessorManager.java b/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftJarProcessorManager.java index aa2027d1..609045fe 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftJarProcessorManager.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftJarProcessorManager.java @@ -59,7 +59,13 @@ public final class MinecraftJarProcessorManager { @Nullable public static MinecraftJarProcessorManager create(Project project) { final LoomGradleExtension extension = LoomGradleExtension.get(project); - return MinecraftJarProcessorManager.create(extension.getMinecraftJarProcessors().get(), SpecContextImpl.create(project)); + List> processors = new ArrayList<>(extension.getMinecraftJarProcessors().get()); + + for (JarProcessor legacyProcessor : extension.getGameJarProcessors().get()) { + processors.add(project.getObjects().newInstance(LegacyJarProcessorWrapper.class, legacyProcessor)); + } + + return MinecraftJarProcessorManager.create(processors, SpecContextImpl.create(project)); } @Nullable diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java b/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java index 384bdf97..50567c97 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java @@ -60,13 +60,7 @@ public record SpecContextImpl(List modDependencies, List artifacts = entry.getSourceConfiguration().get().resolve(); for (File artifact : artifacts) { - final FabricModJson fabricModJson; - - try { - fabricModJson = FabricModJsonFactory.createFromZipNullable(artifact.toPath()); - } catch (IOException e) { - throw new UncheckedIOException("Failed to read dependent mod jar: " + artifact, e); - } + final FabricModJson fabricModJson = FabricModJsonFactory.createFromZipNullable(artifact.toPath()); if (fabricModJson != null) { mods.add(fabricModJson); diff --git a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java index 4705ca9b..af025439 100644 --- a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java +++ b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java @@ -51,7 +51,6 @@ import net.fabricmc.loom.api.processor.MinecraftJarProcessor; import net.fabricmc.loom.configuration.RemapConfigurations; import net.fabricmc.loom.configuration.ide.RunConfigSettings; import net.fabricmc.loom.configuration.processors.JarProcessor; -import net.fabricmc.loom.configuration.processors.LegacyJarProcessorWrapper; import net.fabricmc.loom.configuration.providers.mappings.GradleMappingContext; import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpec; import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpecBuilderImpl; @@ -67,7 +66,7 @@ import net.fabricmc.loom.util.gradle.SourceSetHelper; */ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionAPI { protected final DeprecationHelper deprecationHelper; - @Deprecated(forRemoval = true) + @Deprecated() protected final ListProperty jarProcessors; protected final ConfigurableFileCollection log4jConfigs; protected final RegularFileProperty accessWidener; @@ -176,12 +175,6 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA return jarProcessors; } - @Override - public void addJarProcessor(JarProcessor processor) { - getDeprecationHelper().replaceWithInLoom2_0("addJarProcessor", "getMinecraftJarProcessors"); - getMinecraftJarProcessors().add(getProject().getObjects().newInstance(LegacyJarProcessorWrapper.class, processor)); - } - @Override public ListProperty> getMinecraftJarProcessors() { return minecraftJarProcessors; diff --git a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java index ada1462a..7b300db6 100644 --- a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java +++ b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java @@ -148,7 +148,12 @@ public abstract class RemapJarTask extends AbstractRemapJarTask { final LoomGradleExtension extension = LoomGradleExtension.get(getProject()); final MixinExtension mixinExtension = extension.getMixin(); - final FabricModJson fabricModJson = FabricModJsonFactory.createFromZip(getInputFile().getAsFile().get().toPath()); + final FabricModJson fabricModJson = FabricModJsonFactory.createFromZipNullable(getInputFile().getAsFile().get().toPath()); + + if (fabricModJson == null) { + return; + } + final Collection allMixinConfigs = fabricModJson.getMixinConfigurations(); for (SourceSet sourceSet : mixinExtension.getMixinSourceSets()) { diff --git a/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java b/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java index 4ebb95bc..812b385f 100644 --- a/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java +++ b/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java @@ -75,8 +75,14 @@ public final class FabricModJsonFactory { } @Nullable - public static FabricModJson createFromZipNullable(Path zipPath) throws IOException { - JsonObject jsonObject = ZipUtils.unpackGsonNullable(zipPath, FABRIC_MOD_JSON, JsonObject.class); + public static FabricModJson createFromZipNullable(Path zipPath) { + JsonObject jsonObject; + + try { + jsonObject = ZipUtils.unpackGsonNullable(zipPath, FABRIC_MOD_JSON, JsonObject.class); + } catch (IOException e) { + throw new UncheckedIOException("Failed to read zip: " + zipPath, e); + } if (jsonObject == null) { return null; diff --git a/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy b/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy index 448effa9..b08f8b8e 100644 --- a/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy @@ -27,7 +27,7 @@ package net.fabricmc.loom.test import org.gradle.util.GradleVersion class LoomTestConstants { - private final static String NIGHTLY_VERSION = "8.0-20220911113203+0000" + private final static String NIGHTLY_VERSION = "8.0-20221005221811+0000" private final static boolean NIGHTLY_EXISTS = nightlyExists(NIGHTLY_VERSION) public final static String DEFAULT_GRADLE = GradleVersion.current().getVersion()