From 10137f53d8dbdab1698785ada7fd7b6966f4e70c Mon Sep 17 00:00:00 2001 From: Cat Core Date: Thu, 5 Sep 2024 20:06:05 +0200 Subject: [PATCH] Avoid referencing Project class outside of configuration stage --- .../multifilament/MultiFilamentExtension.java | 28 ++++++------------- .../provider/IntermediaryProvider.java | 2 +- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/main/java/net/legacyfabric/multifilament/MultiFilamentExtension.java b/src/main/java/net/legacyfabric/multifilament/MultiFilamentExtension.java index 3b95822..2c4e0c5 100644 --- a/src/main/java/net/legacyfabric/multifilament/MultiFilamentExtension.java +++ b/src/main/java/net/legacyfabric/multifilament/MultiFilamentExtension.java @@ -1,11 +1,9 @@ package net.legacyfabric.multifilament; -import cuchaz.enigma.command.CheckMappingsCommand; import net.fabricmc.filament.FilamentExtension; import net.fabricmc.filament.task.CombineUnpickDefinitionsTask; import net.fabricmc.filament.task.DownloadTask; import net.fabricmc.filament.task.MapJarTask; -import net.fabricmc.filament.task.UnpickJarTask; import net.fabricmc.filament.task.enigma.MapSpecializedMethodsTask; import net.fabricmc.filament.task.mappingio.CompleteMappingsTask; import net.fabricmc.filament.task.mappingio.ConvertMappingsTask; @@ -13,14 +11,12 @@ import net.fabricmc.filament.task.minecraft.ExtractBundledServerTask; import net.fabricmc.filament.task.minecraft.MergeMinecraftTask; import net.fabricmc.mappingio.format.MappingFormat; -import net.fabricmc.nameproposal.MappingNameCompleter; import net.legacyfabric.multifilament.provider.IntermediaryProvider; import net.legacyfabric.multifilament.provider.ProviderHandler; import net.legacyfabric.multifilament.task.*; import net.legacyfabric.multifilament.util.VersionHelper; import org.gradle.api.Action; import org.gradle.api.Project; -import org.gradle.api.Task; import org.gradle.api.artifacts.Configuration; import org.gradle.api.file.Directory; import org.gradle.api.file.DirectoryProperty; @@ -71,6 +67,10 @@ public static MultiFilamentExtension get(Project project) { @Inject protected abstract Project getProject(); + public abstract DirectoryProperty getTempDirectory(); + public abstract DirectoryProperty getLibsDirectory(); + public abstract DirectoryProperty getCacheDirectory(); + public abstract Property getIntermediaryRevision(); public abstract DirectoryProperty getActiveMappingsDir(); public abstract DirectoryProperty getMultiMappingsDir(); @@ -97,11 +97,14 @@ public static MultiFilamentExtension get(Project project) { @Inject public MultiFilamentExtension() { + getTempDirectory().set(getProject().getObjects().directoryProperty().fileValue(new File(getProject().getRootDir(), "build/temp/yarn"))); + getLibsDirectory().set(getProject().getObjects().directoryProperty().fileValue(new File(getProject().getRootDir(), "build/libs"))); + getCacheDirectory().set(getProject().getObjects().directoryProperty().fileValue(new File(getProject().getRootDir(), ".gradle/multi-filament"))); + minecraftVersion = FilamentExtension.get(getProject()).getMinecraftVersion(); getIntermediaryRevision().finalizeValueOnRead(); getActiveMappingsDir().finalizeValueOnRead(); getMultiMappingsDir().finalizeValueOnRead(); - getTempDirectory().finalizeValueOnRead(); getYarnGroup().finalizeValueOnRead(); getBuildMappingGroup().finalizeValueOnRead(); getMapJarGroupGroup().finalizeValueOnRead(); @@ -449,25 +452,10 @@ public IntermediaryProvider getIntermediaryProvider() { return intermediaryProvider; } - public DirectoryProperty getTempDirectory() { -// return getProject().getObjects().directoryProperty().fileValue(new File(getProject().getRootDir(), ".gradle/multi-filament")); - return getProject().getObjects().directoryProperty().fileValue(new File(getProject().getRootDir(), "build/temp/yarn")); - } - public Provider getMinecraftCacheDirectory() { -// return getCacheDirectory().dir("minecraft"); return getTempDirectory().dir("minecraft"); } - public DirectoryProperty getLibsDirectory() { -// return getCacheDirectory().dir("libs"); - return getProject().getObjects().directoryProperty().fileValue(new File(getProject().getRootDir(), "build/libs")); - } - - public DirectoryProperty getCacheDirectory() { - return getProject().getObjects().directoryProperty().fileValue(new File(getProject().getRootDir(), ".gradle/multi-filament")); - } - public Provider getIntermediaryRevisionDirectory() { return getCacheDirectory().dir(getIntermediaryRevision().map(r -> "v" + r)); } diff --git a/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java b/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java index 56c47c6..a60ac96 100644 --- a/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java +++ b/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java @@ -26,7 +26,7 @@ public FabricLikeMetadata(String url) { private void computeData() { try { - TypeReference> metaType = new TypeReference>() {}; + TypeReference> metaType = new TypeReference<>() {}; List versions = MultiFilamentGradlePlugin.OBJECT_MAPPER.readValue(new URL(url), metaType); if (versions != null) {