From d9ea2900885c7e3ab0ca7495991f009664bb6786 Mon Sep 17 00:00:00 2001 From: Gamebuster19901 Date: Wed, 30 Oct 2024 13:06:22 -0400 Subject: [PATCH] genEclipseRuns now executes when the eclipse task is run --- .../workspace/WilderWorkspacePluginImpl.java | 11 +++++++++-- .../tasks/eclipse/GenerateRunConfigurationTask.java | 9 ++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/wildermods/workspace/WilderWorkspacePluginImpl.java b/src/main/java/com/wildermods/workspace/WilderWorkspacePluginImpl.java index d61c2c8..0607af6 100644 --- a/src/main/java/com/wildermods/workspace/WilderWorkspacePluginImpl.java +++ b/src/main/java/com/wildermods/workspace/WilderWorkspacePluginImpl.java @@ -28,6 +28,7 @@ import com.wildermods.workspace.tasks.ClearLocalRuntimeTask; import com.wildermods.workspace.tasks.CopyLocalDependenciesToWorkspaceTask; import com.wildermods.workspace.tasks.DecompileJarsTask; +import com.wildermods.workspace.tasks.eclipse.GenerateRunConfigurationTask; import com.wildermods.workspace.util.ExceptionUtil; import java.io.File; @@ -398,6 +399,10 @@ private void setupTasks(WWProjectContext context) { task.into(Path.of(extension.getGameDestDir()).resolve("modDeps")); }); + project.getTasks().register("genEclipseRuns", GenerateRunConfigurationTask.class, task -> { + + }); + } /** @@ -450,7 +455,7 @@ private void setupEclipsePlugin(WWProjectContext context) { if (project.getPlugins().hasPlugin("eclipse")) { EclipseModel eclipseModel = proj.getExtensions().getByType(EclipseModel.class); EclipseClasspath classpath = eclipseModel.getClasspath(); - + classpath.file(xmlFileContent -> { xmlFileContent.getWhenMerged().add((classPathMerged) -> { Classpath c = (Classpath) classPathMerged; @@ -470,8 +475,10 @@ private void setupEclipsePlugin(WWProjectContext context) { }); }); + project.getTasks().getByName("eclipse").finalizedBy(project.getTasks().getByName("genEclipseRuns")); + } else { - project.getLogger().warn("Eclipse plugin is not applied. The eclipse source attachment will not be configured."); + project.getLogger().warn("Eclipse plugin is not applied. The eclipse source attachment will not be configured, and the eclipse run configurations will not be generated."); } }); } diff --git a/src/main/java/com/wildermods/workspace/tasks/eclipse/GenerateRunConfigurationTask.java b/src/main/java/com/wildermods/workspace/tasks/eclipse/GenerateRunConfigurationTask.java index 1fb703f..00ecf83 100644 --- a/src/main/java/com/wildermods/workspace/tasks/eclipse/GenerateRunConfigurationTask.java +++ b/src/main/java/com/wildermods/workspace/tasks/eclipse/GenerateRunConfigurationTask.java @@ -6,6 +6,7 @@ import java.nio.file.Path; import org.gradle.api.DefaultTask; +import org.gradle.api.tasks.Input; import org.gradle.api.tasks.OutputFile; import org.gradle.api.tasks.TaskAction; @@ -34,13 +35,19 @@ public class GenerateRunConfigurationTask extends DefaultTask { """; + public @Input boolean overwrite = false; + + public boolean getOverwrite() { + return overwrite; + } + @OutputFile public Path getLaunchFile() { return getProject().getProjectDir().toPath().resolve(".eclipse/configurations/runClient.launch"); } @TaskAction - private void generateLaunchConfig(boolean overwrite) { + private void generateLaunchConfig() { Path launchFile = getLaunchFile(); String projectName = getProject().getName();