Add API to get named minecraft jars. (#1063)

This commit is contained in:
modmuss
2024-03-10 13:37:45 +00:00
committed by GitHub
parent 04ca22c225
commit b44e4ec3d5
2 changed files with 15 additions and 0 deletions

View File

@@ -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<String> getMinecraftVersion();
/**
* @return A lazily evaluated {@link FileCollection} containing the named minecraft jars.
*/
FileCollection getNamedMinecraftJars();
}

View File

@@ -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() {