Skip to content

Commit

Permalink
Avoid referencing Project class outside of configuration stage
Browse files Browse the repository at this point in the history
  • Loading branch information
thecatcore committed Sep 5, 2024
1 parent 40c0e74 commit 10137f5
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
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;
import net.fabricmc.filament.task.mappingio.MergeMappingsTask;
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;
Expand Down Expand Up @@ -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<Integer> getIntermediaryRevision();
public abstract DirectoryProperty getActiveMappingsDir();
public abstract DirectoryProperty getMultiMappingsDir();
Expand All @@ -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();
Expand Down Expand Up @@ -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<Directory> 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<Directory> getIntermediaryRevisionDirectory() {
return getCacheDirectory().dir(getIntermediaryRevision().map(r -> "v" + r));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public FabricLikeMetadata(String url) {

private void computeData() {
try {
TypeReference<List<FabricMetaMCVersion>> metaType = new TypeReference<List<FabricMetaMCVersion>>() {};
TypeReference<List<FabricMetaMCVersion>> metaType = new TypeReference<>() {};
List<FabricMetaMCVersion> versions = MultiFilamentGradlePlugin.OBJECT_MAPPER.readValue(new URL(url), metaType);

if (versions != null) {
Expand Down

0 comments on commit 10137f5

Please sign in to comment.