diff --git a/common/src/main/java/net/neoforged/gradle/common/runtime/extensions/CommonRuntimeExtension.java b/common/src/main/java/net/neoforged/gradle/common/runtime/extensions/CommonRuntimeExtension.java index c58953fb4..a71482cb9 100644 --- a/common/src/main/java/net/neoforged/gradle/common/runtime/extensions/CommonRuntimeExtension.java +++ b/common/src/main/java/net/neoforged/gradle/common/runtime/extensions/CommonRuntimeExtension.java @@ -15,7 +15,6 @@ import net.neoforged.gradle.dsl.common.tasks.WithOutput; import net.neoforged.gradle.dsl.common.util.CacheableMinecraftVersion; import net.neoforged.gradle.dsl.common.util.CommonRuntimeUtils; -import net.neoforged.gradle.dsl.common.util.DistributionType; import net.neoforged.gradle.dsl.common.util.GameArtifact; import org.gradle.api.Action; import org.gradle.api.Project; @@ -28,7 +27,7 @@ import org.jetbrains.annotations.Nullable; import java.io.File; -import java.util.HashMap; +import java.util.Collections; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -44,9 +43,8 @@ protected CommonRuntimeExtension(Project project) { this.project.getExtensions().getByType(RuntimesExtension.class).add(this); } - public static void configureCommonRuntimeTaskParameters(Runtime runtimeTask, Map dataFiles, Map dataDirectories, String step, Specification spec, File runtimeDirectory) { - runtimeTask.getData().putAllFiles(dataFiles); - runtimeTask.getData().putAllDirectories(dataDirectories); + public static void configureCommonRuntimeTaskParameters(Runtime runtimeTask, Map symbolicDataSources, String step, Specification spec, File runtimeDirectory) { + runtimeTask.getSymbolicDataSources().set(symbolicDataSources); runtimeTask.getStepName().set(step); runtimeTask.getDistribution().set(spec.getDistribution()); runtimeTask.getMinecraftVersion().set(CacheableMinecraftVersion.from(spec.getMinecraftVersion(), spec.getProject())); @@ -59,25 +57,18 @@ public static void configureCommonRuntimeTaskParameters(Runtime runtimeTask, Map } } - public static void configureCommonRuntimeTaskParameters(Runtime mcpRuntimeTask, Map dataFiles, Map dataDirectories, String step, DistributionType distributionType, String minecraftVersion, Project project, File runtimeDirectory) { - mcpRuntimeTask.getData().putAllFiles(dataFiles); - mcpRuntimeTask.getData().putAllDirectories(dataDirectories); - mcpRuntimeTask.getStepName().set(step); - mcpRuntimeTask.getDistribution().set(distributionType); - mcpRuntimeTask.getMinecraftVersion().set(CacheableMinecraftVersion.from(minecraftVersion, project)); - mcpRuntimeTask.getRuntimeDirectory().set(runtimeDirectory); - mcpRuntimeTask.getRuntimeName().set("unknown"); - mcpRuntimeTask.getJavaVersion().convention(project.getExtensions().getByType(JavaPluginExtension.class).getToolchain().getLanguageVersion()); - } - public static void configureCommonRuntimeTaskParameters(Runtime runtime, CommonRuntimeDefinition runtimeDefinition, File workingDirectory) { configureCommonRuntimeTaskParameters(runtime, runtimeDefinition.getSpecification(), workingDirectory); } - + + public static void configureCommonRuntimeTaskParameters(Runtime runtime, String stepName, CommonRuntimeSpecification specification, File workingDirectory) { + configureCommonRuntimeTaskParameters(runtime, Collections.emptyMap(), stepName, specification, workingDirectory); + } + private static void configureCommonRuntimeTaskParameters(Runtime runtime, CommonRuntimeSpecification specification, File workingDirectory) { - configureCommonRuntimeTaskParameters(runtime, new HashMap<>(), new HashMap<>(), runtime.getName(), specification, workingDirectory); + configureCommonRuntimeTaskParameters(runtime, runtime.getName(), specification, workingDirectory); } - + public static Map> buildDefaultArtifactProviderTasks(final Specification spec) { final MinecraftArtifactCache artifactCache = spec.getProject().getExtensions().getByType(MinecraftArtifactCache.class); return artifactCache.cacheGameVersionTasks(spec.getProject(), spec.getMinecraftVersion(), spec.getDistribution()); @@ -191,20 +182,28 @@ public Set findIn(final Configuration configuration) { .collect(Collectors.toSet()); } - protected final TaskProvider createDownloadAssetsTasks(final CommonRuntimeSpecification specification, final Map dataFiles, final Map dataDirectories, final File runtimeDirectory, final VersionJson versionJson) { + protected final TaskProvider createDownloadAssetsTasks(final CommonRuntimeSpecification specification, final Map symbolicDataSources, final File runtimeDirectory, final VersionJson versionJson) { return specification.getProject().getTasks().register(CommonRuntimeUtils.buildTaskName(specification, "downloadAssets"), DownloadAssets.class, task -> { task.getVersionJson().set(versionJson); - configureCommonRuntimeTaskParameters(task, dataFiles, dataDirectories, "downloadAssets", specification, runtimeDirectory); + configureCommonRuntimeTaskParameters(task, symbolicDataSources, "downloadAssets", specification, runtimeDirectory); }); } - protected final TaskProvider createExtractNativesTasks(final CommonRuntimeSpecification specification, final Map dataFiles, final Map dataDirectories, final File runtimeDirectory, final VersionJson versionJson) { + protected final TaskProvider createDownloadAssetsTasks(final CommonRuntimeSpecification specification, final File runtimeDirectory, final VersionJson versionJson) { + return createDownloadAssetsTasks(specification, Collections.emptyMap(), runtimeDirectory, versionJson); + } + + protected final TaskProvider createExtractNativesTasks(final CommonRuntimeSpecification specification, final Map symbolicDataSources, final File runtimeDirectory, final VersionJson versionJson) { return specification.getProject().getTasks().register(CommonRuntimeUtils.buildTaskName(specification, "extractNatives"), ExtractNatives.class, task -> { task.getVersionJson().set(versionJson); - configureCommonRuntimeTaskParameters(task, dataFiles, dataDirectories, "extractNatives", specification, runtimeDirectory); + configureCommonRuntimeTaskParameters(task, symbolicDataSources, "extractNatives", specification, runtimeDirectory); task.getOutputDirectory().set(task.getStepsDirectory().map(dir -> dir.dir("extractNatives"))); }); } + + protected final TaskProvider createExtractNativesTasks(final CommonRuntimeSpecification specification, final File runtimeDirectory, final VersionJson versionJson) { + return createExtractNativesTasks(specification, Collections.emptyMap(), runtimeDirectory, versionJson); + } } diff --git a/common/src/main/java/net/neoforged/gradle/common/runtime/tasks/DefaultRuntime.java b/common/src/main/java/net/neoforged/gradle/common/runtime/tasks/DefaultRuntime.java index a79558563..06d0927a5 100644 --- a/common/src/main/java/net/neoforged/gradle/common/runtime/tasks/DefaultRuntime.java +++ b/common/src/main/java/net/neoforged/gradle/common/runtime/tasks/DefaultRuntime.java @@ -1,7 +1,6 @@ package net.neoforged.gradle.common.runtime.tasks; import net.neoforged.gradle.common.tasks.JavaRuntimeTask; -import net.neoforged.gradle.dsl.common.runtime.tasks.RuntimeData; import net.neoforged.gradle.dsl.common.runtime.tasks.Runtime; import net.neoforged.gradle.dsl.common.runtime.tasks.RuntimeArguments; import net.neoforged.gradle.dsl.common.runtime.tasks.RuntimeMultiArguments; @@ -15,18 +14,17 @@ import java.io.File; import java.util.HashMap; import java.util.Map; +import java.util.stream.Collectors; @CacheableTask public abstract class DefaultRuntime extends JavaRuntimeTask implements Runtime { - private final RuntimeData data; private final RuntimeArguments arguments; private final RuntimeMultiArguments multiArguments; public DefaultRuntime() { super(); - data = getObjectFactory().newInstance(RuntimeDataImpl.class, getProviderFactory()); arguments = getObjectFactory().newInstance(RuntimeArgumentsImpl.class, getProviderFactory()); multiArguments = getObjectFactory().newInstance(RuntimeMultiArgumentsImpl.class, getProviderFactory()); @@ -49,21 +47,17 @@ public DefaultRuntime() { buildRuntimeArguments(result); return result; })); - getRuntimeData().convention(getData().asMap().map(data -> { + getRuntimeData().convention(getSymbolicDataSources().map(dataSources -> { final Directory unpackedMcpDirectory = getUnpackedMcpZipDirectory().get(); - final Map> result = new HashMap<>(); - data.forEach((key, value) -> result.put(key, unpackedMcpDirectory.file(value.map(File::getAbsolutePath)).map(RegularFile::getAsFile))); - return result; + return dataSources.entrySet().stream().collect(Collectors.toMap( + Map.Entry::getKey, + entry -> getProject().provider(() -> unpackedMcpDirectory.file(entry.getValue()).getAsFile()) + )); })); getOutputDirectory().finalizeValueOnRead(); } - - @Override - public RuntimeData getData() { - return data; - } - + @Override public RuntimeArguments getArguments() { return arguments; diff --git a/common/src/main/java/net/neoforged/gradle/common/runtime/tasks/RuntimeDataImpl.java b/common/src/main/java/net/neoforged/gradle/common/runtime/tasks/RuntimeDataImpl.java deleted file mode 100644 index c8dd54be4..000000000 --- a/common/src/main/java/net/neoforged/gradle/common/runtime/tasks/RuntimeDataImpl.java +++ /dev/null @@ -1,83 +0,0 @@ -package net.neoforged.gradle.common.runtime.tasks; - -import net.neoforged.gradle.dsl.common.runtime.tasks.*; -import org.gradle.api.file.Directory; -import org.gradle.api.file.RegularFile; -import org.gradle.api.provider.Provider; -import org.gradle.api.provider.ProviderFactory; - -import javax.inject.Inject; -import java.io.File; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - -public abstract class RuntimeDataImpl implements RuntimeData { - - private final ProviderFactory providerFactory; - - @Inject - public RuntimeDataImpl(ProviderFactory providerFactory) { - this.providerFactory = providerFactory; - } - - public Provider get(String key) { - return getFiles().map(files -> { - final Optional namedFile = files.stream().filter(f -> f.getName().equals(key)).findFirst(); - - return namedFile.map(NamedFileRef::getFile).orElse(null); - }); - } - - public Provider getOrDefault(String key, Provider defaultProvider) { - return get(key).orElse(defaultProvider); - } - - public Provider>> asMap() { - final Provider>> filesProvider = - getFiles().map(files -> files.stream() - .collect(Collectors.toMap( - NamedFileRef::getName, - namedFiles -> providerFactory.provider(namedFiles::getFile), - (a, b) -> b, - HashMap::new - ))); - - return filesProvider; - } - - @Override - public void putFile(String input, Provider fileProvider) { - getFiles().add(fileProvider.map(file -> new NamedFile(input, file))); - } - - @Override - public void putRegularFile(String input, Provider fileProvider) { - getFiles().add(new NamedRegularFile(input, fileProvider)); - } - - @Override - public void putDirectoryFile(String input, Provider fileProvider) { - getFiles().add(fileProvider.map(file -> new NamedDirectoryFile(input, file))); - } - - @Override - public void putDirectory(String input, Provider fileProvider) { - getFiles().add(new NamedDirectory(input, fileProvider)); - } - - @Override - public void putAllFiles(Map files) { - files.forEach((key, file) -> { - getFiles().add(providerFactory.provider(() -> new NamedFile(key, file))); - }); - } - - @Override - public void putAllDirectories(Map files) { - files.forEach((key, file) -> { - getFiles().add(providerFactory.provider(() -> new NamedDirectoryFile(key, file))); - }); - } -} diff --git a/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/runtime/tasks/Runtime.groovy b/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/runtime/tasks/Runtime.groovy index 481dcc802..ab5037030 100644 --- a/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/runtime/tasks/Runtime.groovy +++ b/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/runtime/tasks/Runtime.groovy @@ -8,6 +8,7 @@ import net.neoforged.gradle.dsl.common.tasks.WithWorkspace import net.neoforged.gradle.dsl.common.util.CacheableMinecraftVersion import net.neoforged.gradle.dsl.common.util.DistributionType import org.gradle.api.file.DirectoryProperty +import org.gradle.api.provider.MapProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal @@ -77,13 +78,11 @@ trait Runtime implements WithOutput, WithWorkspace, WithJavaVersion { abstract Property getMinecraftVersion(); /** - * The custom pipeline file pointer data. - * - * @return The custom pipeline file pointer data. + * Symbolic data source references defined by the NeoForm package, already adjusted for the + * current {@link #getDistribution()}. */ - @Nested - @DSLProperty - abstract RuntimeData getData(); + @Internal + abstract MapProperty getSymbolicDataSources(); /** * The arguments for this step. diff --git a/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/runtime/tasks/RuntimeData.groovy b/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/runtime/tasks/RuntimeData.groovy deleted file mode 100644 index 089d2e5f7..000000000 --- a/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/runtime/tasks/RuntimeData.groovy +++ /dev/null @@ -1,36 +0,0 @@ -package net.neoforged.gradle.dsl.common.runtime.tasks - -import groovy.transform.CompileStatic -import net.minecraftforge.gdi.ConfigurableDSLElement -import net.minecraftforge.gdi.annotations.DSLProperty -import org.gradle.api.file.Directory -import org.gradle.api.file.RegularFile -import org.gradle.api.provider.ListProperty -import org.gradle.api.provider.Provider -import org.gradle.api.tasks.Nested - -@CompileStatic -interface RuntimeData extends ConfigurableDSLElement { - - @DSLProperty - @Nested - abstract ListProperty getFiles(); - - Provider get(String key) - - Provider getOrDefault(String key, Provider defaultProvider) - - Provider>> asMap(); - - void putFile(String input, Provider fileProvider); - - void putRegularFile(String input, Provider fileProvider); - - void putDirectoryFile(String input, Provider fileProvider); - - void putDirectory(String input, Provider fileProvider); - - void putAllFiles(Map files); - - void putAllDirectories(Map files); -} \ No newline at end of file diff --git a/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/extensions/NeoFormRuntimeExtension.java b/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/extensions/NeoFormRuntimeExtension.java index 5ca2fc4f9..872cf636b 100644 --- a/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/extensions/NeoFormRuntimeExtension.java +++ b/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/extensions/NeoFormRuntimeExtension.java @@ -71,13 +71,13 @@ public NeoFormRuntimeExtension(Project project) { super(project); } - private static void configureMcpRuntimeTaskWithDefaults(NeoFormRuntimeSpecification spec, File neoFormDirectory, Map dataFiles, Map dataDirectories, LinkedHashMap> tasks, NeoFormConfigConfigurationSpecV1.Step step, Runtime neoFormRuntimeTask, Optional> alternativeInputProvider) { + private static void configureMcpRuntimeTaskWithDefaults(NeoFormRuntimeSpecification spec, File neoFormDirectory, Map symbolicDataSources, LinkedHashMap> tasks, NeoFormConfigConfigurationSpecV1.Step step, Runtime neoFormRuntimeTask, Optional> alternativeInputProvider) { buildArguments(neoFormRuntimeTask.getArguments(), spec, step, tasks, neoFormRuntimeTask, alternativeInputProvider); - configureCommonRuntimeTaskParameters(neoFormRuntimeTask, dataFiles, dataDirectories, step.getName(), spec, neoFormDirectory); + configureCommonRuntimeTaskParameters(neoFormRuntimeTask, symbolicDataSources, step.getName(), spec, neoFormDirectory); } - private static void configureMcpRuntimeTaskWithDefaults(NeoFormRuntimeSpecification spec, File neoFormDirectory, Map dataFiles, Map dataDirectories, Runtime neoFormRuntimeTask) { - configureCommonRuntimeTaskParameters(neoFormRuntimeTask, dataFiles, dataDirectories, CommonRuntimeUtils.buildStepName(spec, neoFormRuntimeTask.getName()), spec, neoFormDirectory); + private static void configureMcpRuntimeTaskWithDefaults(NeoFormRuntimeSpecification spec, File neoFormDirectory, Map symbolicDataSources, Runtime neoFormRuntimeTask) { + configureCommonRuntimeTaskParameters(neoFormRuntimeTask, symbolicDataSources, CommonRuntimeUtils.buildStepName(spec, neoFormRuntimeTask.getName()), spec, neoFormDirectory); } @SuppressWarnings("OptionalUsedAsFieldOrParameterType") @@ -223,39 +223,14 @@ private static void buildArguments(final RuntimeArguments arguments, final NeoFo }); } - @NotNull - private static Map buildDataFilesMap(NeoFormConfigConfigurationSpecV2 neoFormConfig, final DistributionType side, final File unpackedMcpDirectory) { - final Map dataMap = buildDataMap(neoFormConfig, side, unpackedMcpDirectory); - final Map dataFiles = Maps.newHashMap(); - dataMap.forEach((key, value) -> { - if (value.isFile()) { - dataFiles.put(key, value); - } - }); - - return dataFiles; - } - - @NotNull - private static Map buildDataDirectoriesMap(NeoFormConfigConfigurationSpecV2 neoFormConfig, final DistributionType side, final File unpackedMcpDirectory) { - final Map dataMap = buildDataMap(neoFormConfig, side, unpackedMcpDirectory); - final Map dataFiles = Maps.newHashMap(); - dataMap.forEach((key, value) -> { - if (value.isDirectory()) { - dataFiles.put(key, value); - } - }); - - return dataFiles; - } - @SuppressWarnings("unchecked") @NotNull - private static Map buildDataMap(NeoFormConfigConfigurationSpecV2 neoFormConfig, final DistributionType side, final File unpackedMcpDirectory) { + private static Map buildDataFilesMap(NeoFormConfigConfigurationSpecV2 neoFormConfig, final DistributionType side) { return neoFormConfig.getData().entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, - e -> new File(unpackedMcpDirectory, e.getValue() instanceof Map ? ((Map) e.getValue()).get(side.getName()) : (String) e.getValue()) - )); + .collect(Collectors.toMap( + Map.Entry::getKey, + e -> e.getValue() instanceof Map ? ((Map) e.getValue()).get(side.getName()) : (String) e.getValue() + )); } @SuppressWarnings({"ResultOfMethodCallIgnored"}) @@ -311,8 +286,7 @@ protected NeoFormRuntimeDefinition doCreate(final NeoFormRuntimeSpecification sp final Map> gameArtifactTasks = buildDefaultArtifactProviderTasks(spec); - final Map dataFiles = buildDataFilesMap(neoFormConfig, spec.getDistribution(), unpackedMcpZipDirectory); - final Map dataDirectories = buildDataDirectoriesMap(neoFormConfig, spec.getDistribution(), unpackedMcpZipDirectory); + final Map symbolicDataSources = buildDataFilesMap(neoFormConfig, spec.getDistribution()); final TaskProvider sourceJarTask = spec.getProject().getTasks().register("supplySourcesFor" + spec.getIdentifier(), ArtifactProvider.class, task -> { task.getOutput().set(new File(neoFormDirectory, "sources.jar")); @@ -321,9 +295,22 @@ protected NeoFormRuntimeDefinition doCreate(final NeoFormRuntimeSpecification sp task.getOutput().set(new File(neoFormDirectory, "raw.jar")); }); - return new NeoFormRuntimeDefinition(spec, new LinkedHashMap<>(), sourceJarTask, rawJarTask, gameArtifactTasks, minecraftDependenciesConfiguration, taskProvider -> taskProvider.configure(runtimeTask -> { - configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, runtimeTask); - }), versionJson, unpackedMcpZipDirectory, neoFormConfig, createDownloadAssetsTasks(spec, dataFiles, dataDirectories, neoFormDirectory, versionJson), createExtractNativesTasks(spec, dataFiles, dataDirectories, neoFormDirectory, versionJson)); + return new NeoFormRuntimeDefinition( + spec, + new LinkedHashMap<>(), + sourceJarTask, + rawJarTask, + gameArtifactTasks, + minecraftDependenciesConfiguration, + taskProvider -> taskProvider.configure(runtimeTask -> { + configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, runtimeTask); + }), + versionJson, + unpackedMcpZipDirectory, + neoFormConfig, + createDownloadAssetsTasks(spec, symbolicDataSources, neoFormDirectory, versionJson), + createExtractNativesTasks(spec, symbolicDataSources, neoFormDirectory, versionJson) + ); } @Override @@ -351,8 +338,7 @@ protected void bakeDefinition(NeoFormRuntimeDefinition definition) { versionData.put(NeoFormRuntimeConstants.Naming.Version.NEOFORM_VERSION, spec.getVersionedName()); definition.setMappingVersionData(versionData); - final Map dataFiles = buildDataFilesMap(neoFormConfig, spec.getDistribution(), unpackedMcpZipDirectory); - final Map dataDirectories = buildDataDirectoriesMap(neoFormConfig, spec.getDistribution(), unpackedMcpZipDirectory); + final Map symbolicDataSources = buildDataFilesMap(neoFormConfig, spec.getDistribution()); final List steps = neoFormConfig.getSteps(spec.getDistribution().getName()); if (steps.isEmpty()) { @@ -373,9 +359,9 @@ protected void bakeDefinition(NeoFormRuntimeDefinition definition) { if (!spec.getPreTaskTypeAdapters().get(step.getName()).isEmpty() && inputTask.isPresent()) { for (TaskTreeAdapter taskTreeAdapter : spec.getPreTaskTypeAdapters().get(step.getName())) { - final TaskProvider modifiedTree = taskTreeAdapter.adapt(definition, inputTask.get(), neoFormDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), taskProvider -> taskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, task))); + final TaskProvider modifiedTree = taskTreeAdapter.adapt(definition, inputTask.get(), neoFormDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), taskProvider -> taskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, task))); if (modifiedTree != null) { - modifiedTree.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, task)); + modifiedTree.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, task)); inputTask = Optional.of(modifiedTree); } } @@ -384,7 +370,14 @@ protected void bakeDefinition(NeoFormRuntimeDefinition definition) { } } - TaskProvider neoFormRuntimeTaskProvider = createBuiltIn(spec, neoFormConfig, step, taskOutputs, definition.getGameArtifactProvidingTasks(), adaptedInput); + TaskProvider neoFormRuntimeTaskProvider = createBuiltIn( + spec, + neoFormConfig, + step, + taskOutputs, + definition.getGameArtifactProvidingTasks(), + adaptedInput + ); if (neoFormRuntimeTaskProvider == null) { NeoFormConfigConfigurationSpecV1.Function function = neoFormConfig.getFunction(step.getType()); @@ -399,7 +392,7 @@ protected void bakeDefinition(NeoFormRuntimeDefinition definition) { neoFormRuntimeTaskProvider.configure((WithOutput neoFormRuntimeTask) -> { if (neoFormRuntimeTask instanceof Runtime) { final Runtime runtimeTask = (Runtime) neoFormRuntimeTask; - configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, taskOutputs, step, runtimeTask, finalAdaptedInput); + configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, taskOutputs, step, runtimeTask, finalAdaptedInput); } }); @@ -407,9 +400,9 @@ protected void bakeDefinition(NeoFormRuntimeDefinition definition) { taskOutputs.put(neoFormRuntimeTaskProvider.getName(), neoFormRuntimeTaskProvider); } else { for (TaskTreeAdapter taskTreeAdapter : spec.getPostTypeAdapters().get(step.getName())) { - final TaskProvider taskProvider = taskTreeAdapter.adapt(definition, neoFormRuntimeTaskProvider, neoFormDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), dependentTaskProvider -> dependentTaskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, task))); + final TaskProvider taskProvider = taskTreeAdapter.adapt(definition, neoFormRuntimeTaskProvider, neoFormDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), dependentTaskProvider -> dependentTaskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, task))); if (taskProvider != null) { - taskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, task)); + taskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, task)); neoFormRuntimeTaskProvider = taskProvider; } } @@ -425,8 +418,8 @@ protected void bakeDefinition(NeoFormRuntimeDefinition definition) { ); final TaskProvider remapTask = context.getNamingChannel().getApplySourceMappingsTaskBuilder().get().build(context); - additionalRuntimeTasks.forEach(taskProvider -> taskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, task))); - remapTask.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, task)); + additionalRuntimeTasks.forEach(taskProvider -> taskProvider.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, task))); + remapTask.configure(task -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, task)); final FileCollection recompileDependencies = spec.getAdditionalRecompileDependencies().plus(spec.getProject().files(definition.getMinecraftDependenciesConfiguration())); final TaskProvider recompileTask = spec.getProject() @@ -443,7 +436,7 @@ protected void bakeDefinition(NeoFormRuntimeDefinition definition) { forkOptions.setJvmArgs(settings.getJvmArgs().get()); task.getOptions().getCompilerArgumentProviders().add(settings.getArgs()::get); }); - recompileTask.configure(neoFormRuntimeTask -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, dataFiles, dataDirectories, neoFormRuntimeTask)); + recompileTask.configure(neoFormRuntimeTask -> configureMcpRuntimeTaskWithDefaults(spec, neoFormDirectory, symbolicDataSources, neoFormRuntimeTask)); taskOutputs.put(recompileTask.getName(), recompileTask); diff --git a/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java b/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java index fa44438a9..55d1d8763 100644 --- a/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java +++ b/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java @@ -1,9 +1,7 @@ package net.neoforged.gradle.neoform.runtime.tasks; import net.neoforged.gradle.common.runtime.tasks.RuntimeArgumentsImpl; -import net.neoforged.gradle.common.runtime.tasks.RuntimeDataImpl; import net.neoforged.gradle.common.runtime.tasks.RuntimeMultiArgumentsImpl; -import net.neoforged.gradle.dsl.common.runtime.tasks.RuntimeData; import net.neoforged.gradle.dsl.common.runtime.tasks.RuntimeArguments; import net.neoforged.gradle.dsl.common.runtime.tasks.RuntimeMultiArguments; import net.neoforged.gradle.util.ZipBuildingFileTreeVisitor; @@ -42,14 +40,12 @@ public abstract class RecompileSourceJar extends JavaCompile implements Runtime private Property javaVersion; private Provider javaToolchainService; - private final RuntimeData data; private final RuntimeArguments arguments; private final RuntimeMultiArguments multiArguments; public RecompileSourceJar() { super(); - data = getObjectFactory().newInstance(RuntimeDataImpl.class, getProviderFactory()); arguments = getObjectFactory().newInstance(RuntimeArgumentsImpl.class, getProviderFactory()); multiArguments = getObjectFactory().newInstance(RuntimeMultiArgumentsImpl.class, getProviderFactory()); @@ -126,12 +122,7 @@ public void execute(Task doLast) { getInputJar().finalizeValueOnRead(); } - - @Override - public RuntimeData getData() { - return data; - } - + @Override public RuntimeArguments getArguments() { return arguments; diff --git a/platform/src/main/java/net/neoforged/gradle/platform/runtime/runtime/extension/RuntimeDevRuntimeExtension.java b/platform/src/main/java/net/neoforged/gradle/platform/runtime/runtime/extension/RuntimeDevRuntimeExtension.java index 1ef6d0c83..6e0fae827 100644 --- a/platform/src/main/java/net/neoforged/gradle/platform/runtime/runtime/extension/RuntimeDevRuntimeExtension.java +++ b/platform/src/main/java/net/neoforged/gradle/platform/runtime/runtime/extension/RuntimeDevRuntimeExtension.java @@ -52,7 +52,7 @@ public RuntimeDevRuntimeExtension(Project project) { task.getRejects().set(spec.getRejectsDirectory()); task.getPatchMode().set(spec.isUpdating() ? PatchMode.FUZZY : PatchMode.ACCESS); task.getShouldFailOnPatchFailure().set(!spec.isUpdating()); - configureCommonRuntimeTaskParameters(task, Collections.emptyMap(), Collections.emptyMap(), "applyPatches", spec, workingDirectory); + configureCommonRuntimeTaskParameters(task, "applyPatches", spec, workingDirectory); }); final TaskProvider sourcesProvider = spec.getProject().getTasks().register(CommonRuntimeUtils.buildTaskName(spec, "sourceFromAppliedPatches"), ArtifactProvider.class, task -> { diff --git a/userdev/src/main/java/net/neoforged/gradle/userdev/runtime/definition/UserDevRuntimeDefinition.java b/userdev/src/main/java/net/neoforged/gradle/userdev/runtime/definition/UserDevRuntimeDefinition.java index 800b89286..cac84594a 100644 --- a/userdev/src/main/java/net/neoforged/gradle/userdev/runtime/definition/UserDevRuntimeDefinition.java +++ b/userdev/src/main/java/net/neoforged/gradle/userdev/runtime/definition/UserDevRuntimeDefinition.java @@ -10,8 +10,6 @@ import net.neoforged.gradle.common.util.run.RunsUtil; import net.neoforged.gradle.dsl.common.runtime.definition.Definition; import net.neoforged.gradle.dsl.common.tasks.WithOutput; -import net.neoforged.gradle.dsl.common.util.CommonRuntimeUtils; -import net.neoforged.gradle.dsl.common.util.ConfigurationUtils; import net.neoforged.gradle.dsl.userdev.configurations.UserdevProfile; import net.neoforged.gradle.dsl.userdev.runtime.definition.UserDevDefinition; import net.neoforged.gradle.neoform.runtime.definition.NeoFormRuntimeDefinition; diff --git a/vanilla/src/main/java/net/neoforged/gradle/vanilla/runtime/extensions/VanillaRuntimeExtension.java b/vanilla/src/main/java/net/neoforged/gradle/vanilla/runtime/extensions/VanillaRuntimeExtension.java index 5d0aec083..a4df005fe 100644 --- a/vanilla/src/main/java/net/neoforged/gradle/vanilla/runtime/extensions/VanillaRuntimeExtension.java +++ b/vanilla/src/main/java/net/neoforged/gradle/vanilla/runtime/extensions/VanillaRuntimeExtension.java @@ -98,9 +98,6 @@ protected VanillaRuntimeDefinition doCreate(final VanillaRuntimeSpecification sp stepsMcpDirectory.mkdirs(); - final Map dataFiles = Collections.emptyMap(); - final Map dataDirectories = Collections.emptyMap(); - final Map> gameArtifactTasks = buildDefaultArtifactProviderTasks(spec); if (gameArtifactTasks.containsKey(GameArtifact.SERVER_JAR) && BundledServerUtils.isBundledServer(gameArtifacts.get(GameArtifact.SERVER_JAR))) { final TaskProvider serverJarTask = gameArtifactTasks.get(GameArtifact.SERVER_JAR); @@ -124,8 +121,8 @@ protected VanillaRuntimeDefinition doCreate(final VanillaRuntimeSpecification sp final Optional launchInformation = spec.getDistribution().isClient() ? Optional.empty() : Optional.of(ServerLaunchInformation.from(gameArtifacts.get(GameArtifact.SERVER_JAR))); return new VanillaRuntimeDefinition(spec, new LinkedHashMap<>(), sourceJarTask, rawJarTask, gameArtifactTasks, minecraftDependenciesConfiguration, taskProvider -> taskProvider.configure(vanillaRuntimeTask -> { - configureCommonRuntimeTaskParameters(vanillaRuntimeTask, dataFiles, dataDirectories, CommonRuntimeUtils.buildStepName(spec, vanillaRuntimeTask.getName()), spec, vanillaDirectory); - }), versionJson, createDownloadAssetsTasks(spec, dataFiles, dataDirectories, runtimeWorkingDirectory, versionJson), createExtractNativesTasks(spec, dataFiles, dataDirectories, runtimeWorkingDirectory, versionJson), launchInformation); + configureCommonRuntimeTaskParameters(vanillaRuntimeTask, CommonRuntimeUtils.buildStepName(spec, vanillaRuntimeTask.getName()), spec, vanillaDirectory); + }), versionJson, createDownloadAssetsTasks(spec, runtimeWorkingDirectory, versionJson), createExtractNativesTasks(spec, runtimeWorkingDirectory, versionJson), launchInformation); } protected VanillaRuntimeSpecification.Builder createBuilder() { @@ -157,9 +154,9 @@ protected void bakeDefinition(VanillaRuntimeDefinition definition) { for (TaskTreeAdapter taskTreeAdapter : spec.getPreTaskTypeAdapters().get(step.getName())) { final AtomicInteger additionalPreAdapterTasks = new AtomicInteger(0); int currentTaskPreAdapterIndex = taskPreAdapterIndex; - final TaskProvider modifiedTree = taskTreeAdapter.adapt(definition, currentInput, vanillaDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), taskProvider -> taskProvider.configure(task -> configureCommonRuntimeTaskParameters(task, Collections.emptyMap(), Collections.emptyMap(), step.getName() + "PreAdapter" + currentTaskPreAdapterIndex + "-" + additionalPreAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory))); + final TaskProvider modifiedTree = taskTreeAdapter.adapt(definition, currentInput, vanillaDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), taskProvider -> taskProvider.configure(task -> configureCommonRuntimeTaskParameters(task,step.getName() + "PreAdapter" + currentTaskPreAdapterIndex + "-" + additionalPreAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory))); if (modifiedTree != null) { - modifiedTree.configure(task -> configureCommonRuntimeTaskParameters(task, Collections.emptyMap(), Collections.emptyMap(), step.getName() + "PreAdapter" + currentTaskPreAdapterIndex + "-" + additionalPreAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory)); + modifiedTree.configure(task -> configureCommonRuntimeTaskParameters(task, step.getName() + "PreAdapter" + currentTaskPreAdapterIndex + "-" + additionalPreAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory)); currentInput = modifiedTree; taskPreAdapterIndex++; } @@ -177,15 +174,13 @@ protected void bakeDefinition(VanillaRuntimeDefinition definition) { definition.getGameArtifactProvidingTasks(), taskProvider -> taskProvider.configure(additionalTask -> configureCommonRuntimeTaskParameters( additionalTask, - Collections.emptyMap(), - Collections.emptyMap(), step.getName() + "Additional" + additionalTaskIndex.getAndIncrement(), spec, runtimeWorkingDirectory) ) ); - task.configure((Runtime mcpRuntimeTask) -> configureCommonRuntimeTaskParameters(mcpRuntimeTask, Collections.emptyMap(), Collections.emptyMap(), step.getName(), spec, runtimeWorkingDirectory)); + task.configure((Runtime mcpRuntimeTask) -> configureCommonRuntimeTaskParameters(mcpRuntimeTask, step.getName(), spec, runtimeWorkingDirectory)); if (!spec.getPostTypeAdapters().containsKey(step.getName())) { definition.getTasks().put(task.getName(), task); @@ -194,9 +189,9 @@ protected void bakeDefinition(VanillaRuntimeDefinition definition) { for (TaskTreeAdapter taskTreeAdapter : spec.getPostTypeAdapters().get(step.getName())) { final AtomicInteger additionalPostAdapterTasks = new AtomicInteger(0); final int currentPostAdapterIndex = taskPostAdapterIndex++; - final TaskProvider taskProvider = taskTreeAdapter.adapt(definition, task, vanillaDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), dependentTaskProvider -> dependentTaskProvider.configure(additionalTask -> configureCommonRuntimeTaskParameters(additionalTask, Collections.emptyMap(), Collections.emptyMap(), step.getName() + "PostAdapter" + currentPostAdapterIndex + "-" + additionalPostAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory))); + final TaskProvider taskProvider = taskTreeAdapter.adapt(definition, task, vanillaDirectory, definition.getGameArtifactProvidingTasks(), definition.getMappingVersionData(), dependentTaskProvider -> dependentTaskProvider.configure(additionalTask -> configureCommonRuntimeTaskParameters(additionalTask, step.getName() + "PostAdapter" + currentPostAdapterIndex + "-" + additionalPostAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory))); if (taskProvider != null) { - taskProvider.configure(adaptedTask -> configureCommonRuntimeTaskParameters(adaptedTask, Collections.emptyMap(), Collections.emptyMap(), step.getName() + "PostAdapter" + currentPostAdapterIndex + "-" + additionalPostAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory)); + taskProvider.configure(adaptedTask -> configureCommonRuntimeTaskParameters(adaptedTask, step.getName() + "PostAdapter" + currentPostAdapterIndex + "-" + additionalPostAdapterTasks.getAndIncrement(), spec, runtimeWorkingDirectory)); task = taskProvider; } }