From b44e4ec3d52ce0c4a8f1dab0333a8931102672ea Mon Sep 17 00:00:00 2001 From: modmuss Date: Sun, 10 Mar 2024 13:37:45 +0000 Subject: [PATCH] Add API to get named minecraft jars. (#1063) --- .../net/fabricmc/loom/api/LoomGradleExtensionAPI.java | 6 ++++++ .../loom/extension/LoomGradleExtensionApiImpl.java | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java index 6570178e..255c5da5 100644 --- a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java +++ b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java @@ -32,6 +32,7 @@ import org.gradle.api.NamedDomainObjectContainer; import org.gradle.api.NamedDomainObjectList; import org.gradle.api.artifacts.Dependency; import org.gradle.api.file.ConfigurableFileCollection; +import org.gradle.api.file.FileCollection; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.provider.ListProperty; import org.gradle.api.provider.Property; @@ -231,4 +232,9 @@ public interface LoomGradleExtensionAPI { * @return The minecraft version, as a {@link Provider}. */ Provider getMinecraftVersion(); + + /** + * @return A lazily evaluated {@link FileCollection} containing the named minecraft jars. + */ + FileCollection getNamedMinecraftJars(); } diff --git a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java index 30c63cc9..e81a0560 100644 --- a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java +++ b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java @@ -37,6 +37,7 @@ import org.gradle.api.Project; import org.gradle.api.UncheckedIOException; import org.gradle.api.artifacts.Dependency; import org.gradle.api.file.ConfigurableFileCollection; +import org.gradle.api.file.FileCollection; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.ListProperty; @@ -54,6 +55,7 @@ import net.fabricmc.loom.api.ModSettings; import net.fabricmc.loom.api.RemapConfigurationSettings; import net.fabricmc.loom.api.decompilers.DecompilerOptions; import net.fabricmc.loom.api.mappings.intermediate.IntermediateMappingsProvider; +import net.fabricmc.loom.api.mappings.layered.MappingsNamespace; import net.fabricmc.loom.api.mappings.layered.spec.LayeredMappingSpecBuilder; import net.fabricmc.loom.api.processor.MinecraftJarProcessor; import net.fabricmc.loom.api.remapping.RemapperExtension; @@ -432,6 +434,13 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA return getProject().provider(() -> LoomGradleExtension.get(getProject()).getMinecraftProvider().minecraftVersion()); } + @Override + public FileCollection getNamedMinecraftJars() { + final ConfigurableFileCollection jars = getProject().getObjects().fileCollection(); + jars.from(getProject().provider(() -> LoomGradleExtension.get(getProject()).getMinecraftJars(MappingsNamespace.NAMED))); + return jars; + } + // This is here to ensure that LoomGradleExtensionApiImpl compiles without any unimplemented methods private final class EnsureCompile extends LoomGradleExtensionApiImpl { private EnsureCompile() {