From 91516b45c3fc92af4a548ffe16dca644add0bbbf Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Tue, 6 Aug 2024 13:13:04 -0700 Subject: [PATCH 1/2] Fix plugin jar detection breaking paperweight clearCache tasks --- .../xyz/jpenilla/runpaper/RunPaperPlugin.kt | 39 ++++++++++++++----- .../kotlin/xyz/jpenilla/runtask/RunPlugin.kt | 4 +- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt b/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt index eff1515..219e89a 100644 --- a/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt +++ b/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt @@ -18,11 +18,15 @@ package xyz.jpenilla.runpaper import io.papermc.paperweight.tasks.RemapJar import io.papermc.paperweight.userdev.PaperweightUserExtension +import io.papermc.paperweight.util.constants.DEV_BUNDLE_CONFIG import io.papermc.paperweight.util.constants.MOJANG_MAPPED_SERVER_RUNTIME_CONFIG import org.gradle.api.Action +import org.gradle.api.GradleException import org.gradle.api.Project import org.gradle.api.UnknownTaskException import org.gradle.api.file.RegularFile +import org.gradle.api.logging.Logger +import org.gradle.api.logging.Logging import org.gradle.api.provider.Provider import org.gradle.api.tasks.Delete import org.gradle.api.tasks.TaskProvider @@ -35,10 +39,15 @@ import xyz.jpenilla.runpaper.task.RunServer import xyz.jpenilla.runtask.RunExtension import xyz.jpenilla.runtask.RunPlugin import xyz.jpenilla.runtask.service.DownloadsAPIService +import xyz.jpenilla.runtask.task.RunWithPlugins import xyz.jpenilla.runtask.util.Constants import xyz.jpenilla.runtask.util.sharedCaches public abstract class RunPaperPlugin : RunPlugin() { + private companion object { + private val logger: Logger = Logging.getLogger(RunPaperPlugin::class.java) + } + override fun apply(target: Project) { super.apply(target) @@ -88,17 +97,27 @@ public abstract class RunPaperPlugin : RunPlugin() { } } - override fun findPluginJar(project: Project): Provider? = when { - project.plugins.hasPlugin(Constants.Plugins.PAPERWEIGHT_USERDEV_PLUGIN_ID) -> { - val paperweight = project.extensions.getByType() - if (paperweight.minecraftVersion.get().minecraftVersionIsSameOrNewerThan(1, 20, 5)) { - super.findPluginJar(project) - } else { - project.tasks.named(Constants.Plugins.PAPERWEIGHT_REOBF_JAR_TASK_NAME).flatMap { it.outputJar } - } - } + override fun findPluginJar(task: TaskProvider, project: Project): Provider? { + if (project.plugins.hasPlugin(Constants.Plugins.PAPERWEIGHT_USERDEV_PLUGIN_ID)) { + val paperweight = project.extensions.getByType() + try { + project.configurations.getByName(DEV_BUNDLE_CONFIG).resolve() + } catch (ex: Exception) { + val error = GradleException("Failed to resolve dev bundle, cannot setup dev bundle runs. If you are clearing the paperweight cache, this is expected and can be ignored.", ex) + logger.error(error.message, error) + task.configure { + doFirst { throw error } + } + return null + } - else -> super.findPluginJar(project) + return if (paperweight.minecraftVersion.get().minecraftVersionIsSameOrNewerThan(1, 20, 5)) { + super.findPluginJar(task, project) + } else { + project.tasks.named(Constants.Plugins.PAPERWEIGHT_REOBF_JAR_TASK_NAME).flatMap { it.outputJar } + } + } + return super.findPluginJar(task, project) } private fun Project.setupPaperweightCompat( diff --git a/plugin/src/main/kotlin/xyz/jpenilla/runtask/RunPlugin.kt b/plugin/src/main/kotlin/xyz/jpenilla/runtask/RunPlugin.kt index 393068a..69184ea 100644 --- a/plugin/src/main/kotlin/xyz/jpenilla/runtask/RunPlugin.kt +++ b/plugin/src/main/kotlin/xyz/jpenilla/runtask/RunPlugin.kt @@ -58,7 +58,7 @@ public abstract class RunPlugin : Plugin { ) { val action = { if (extension.detectPluginJar.get()) { - findPluginJar(project)?.let { + findPluginJar(this, project)?.let { configure { pluginJars(it) } } } @@ -83,7 +83,7 @@ public abstract class RunPlugin : Plugin { } } - protected open fun findPluginJar(project: Project): Provider? { + protected open fun findPluginJar(task: TaskProvider, project: Project): Provider? { if (Constants.Plugins.SHADOW_JAR_TASK_NAME in project.tasks.names) { try { return project.tasks.named(Constants.Plugins.SHADOW_JAR_TASK_NAME).flatMap { it.archiveFile } From 4a7a9878e6ed5ffdaabcf7aff47e2df4f928a99a Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Tue, 6 Aug 2024 13:16:46 -0700 Subject: [PATCH 2/2] apply spotless --- .../xyz/jpenilla/runpaper/RunPaperPlugin.kt | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt b/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt index 219e89a..7d0f8ad 100644 --- a/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt +++ b/plugin/src/main/kotlin/xyz/jpenilla/runpaper/RunPaperPlugin.kt @@ -99,23 +99,23 @@ public abstract class RunPaperPlugin : RunPlugin() { override fun findPluginJar(task: TaskProvider, project: Project): Provider? { if (project.plugins.hasPlugin(Constants.Plugins.PAPERWEIGHT_USERDEV_PLUGIN_ID)) { - val paperweight = project.extensions.getByType() - try { - project.configurations.getByName(DEV_BUNDLE_CONFIG).resolve() - } catch (ex: Exception) { - val error = GradleException("Failed to resolve dev bundle, cannot setup dev bundle runs. If you are clearing the paperweight cache, this is expected and can be ignored.", ex) - logger.error(error.message, error) - task.configure { - doFirst { throw error } - } - return null + val paperweight = project.extensions.getByType() + try { + project.configurations.getByName(DEV_BUNDLE_CONFIG).resolve() + } catch (ex: Exception) { + val error = GradleException("Failed to resolve dev bundle, cannot setup dev bundle runs. If you are clearing the paperweight cache, this is expected and can be ignored.", ex) + logger.error(error.message, error) + task.configure { + doFirst { throw error } } + return null + } - return if (paperweight.minecraftVersion.get().minecraftVersionIsSameOrNewerThan(1, 20, 5)) { - super.findPluginJar(task, project) - } else { - project.tasks.named(Constants.Plugins.PAPERWEIGHT_REOBF_JAR_TASK_NAME).flatMap { it.outputJar } - } + return if (paperweight.minecraftVersion.get().minecraftVersionIsSameOrNewerThan(1, 20, 5)) { + super.findPluginJar(task, project) + } else { + project.tasks.named(Constants.Plugins.PAPERWEIGHT_REOBF_JAR_TASK_NAME).flatMap { it.outputJar } + } } return super.findPluginJar(task, project) }