From 234787266eaad955245083ff9c8af59c2d0caa68 Mon Sep 17 00:00:00 2001 From: TheBjoRedCraft Date: Tue, 30 Dec 2025 14:56:51 +0100 Subject: [PATCH 1/2] feat: add support for core modules in Gradle plugin configuration --- surf-api-gradle-plugin/build.gradle.kts | 2 +- .../dev/slne/surf/surfapi/gradle/SurfCoreModules.kt | 7 +++++++ .../generators/pluginfiles/VelocityPluginFile.kt | 6 ++++++ .../gradle/platform/common/CommonSurfExtension.kt | 5 ++++- .../gradle/platform/common/CommonSurfPlugin.kt | 9 +++++++++ .../gradle/platform/core/CoreSurfExtension.kt | 13 +++++++++++++ .../platform/paper/plugin/PaperPluginSurfPlugin.kt | 4 ++++ 7 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/SurfCoreModules.kt diff --git a/surf-api-gradle-plugin/build.gradle.kts b/surf-api-gradle-plugin/build.gradle.kts index 038a684e..d01c64ea 100644 --- a/surf-api-gradle-plugin/build.gradle.kts +++ b/surf-api-gradle-plugin/build.gradle.kts @@ -20,7 +20,7 @@ plugins { group = groupId version = buildString { append(mcVersion) - append("-1.6.4") + append("-1.6.5") if (snapshot) append("-SNAPSHOT") } diff --git a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/SurfCoreModules.kt b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/SurfCoreModules.kt new file mode 100644 index 00000000..5bc0a121 --- /dev/null +++ b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/SurfCoreModules.kt @@ -0,0 +1,7 @@ +package dev.slne.surf.surfapi.gradle + +internal enum class SurfCoreModules(val module: String) { + COMMON("surf-core-api-common"), + PAPER("surf-core-api-paper"), + VELOCITY("surf-core-api-velocity"), +} \ No newline at end of file diff --git a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/generators/pluginfiles/VelocityPluginFile.kt b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/generators/pluginfiles/VelocityPluginFile.kt index 6902afb5..4bf6ffbf 100644 --- a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/generators/pluginfiles/VelocityPluginFile.kt +++ b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/generators/pluginfiles/VelocityPluginFile.kt @@ -76,6 +76,12 @@ class VelocityPluginFile(project: Project) : CommonPluginFile() { optional = false } } + + if (extension.coreModule.isPresent) { + register("surf-core-velocity") { + optional = false + } + } } } diff --git a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfExtension.kt b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfExtension.kt index 7438072a..a13d9dac 100644 --- a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfExtension.kt +++ b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfExtension.kt @@ -1,6 +1,7 @@ package dev.slne.surf.surfapi.gradle.platform.common import dev.slne.surf.surfapi.gradle.SurfCloudModules +import dev.slne.surf.surfapi.gradle.SurfCoreModules import org.gradle.api.model.ObjectFactory import org.gradle.kotlin.dsl.property import org.jetbrains.annotations.MustBeInvokedByOverriders @@ -8,9 +9,11 @@ import org.jetbrains.annotations.MustBeInvokedByOverriders abstract class CommonSurfExtension(protected val objects: ObjectFactory) { internal val addSurfApiToClasspath = objects.property().convention(true) internal val surfApiScope = objects.property() - internal val publishingUrl = objects.property().convention("https://repo.slne.dev/repository/maven-releases") + internal val publishingUrl = + objects.property().convention("https://repo.slne.dev/repository/maven-releases") internal val publishingRepoName = objects.property().convention("maven-releases") internal val cloudModule = objects.property() + internal val coreModule = objects.property() internal val dependOnCloud = objects.property().convention(true) internal val migrationMainClass = objects.property() diff --git a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfPlugin.kt b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfPlugin.kt index e592a6b7..cb0da4c4 100644 --- a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfPlugin.kt +++ b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfPlugin.kt @@ -217,6 +217,15 @@ abstract class CommonSurfPlugin( } } + extension.coreModule.orNull?.let { + dependencies { + add( + COMPILE_ONLY, + "dev.slne.surf.core:${it.module}:${Constants.SURF_API_VERSION}" + ) + } + } + afterEvaluated0(extension) } diff --git a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/core/CoreSurfExtension.kt b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/core/CoreSurfExtension.kt index 1680f50f..3e164683 100644 --- a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/core/CoreSurfExtension.kt +++ b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/core/CoreSurfExtension.kt @@ -1,6 +1,7 @@ package dev.slne.surf.surfapi.gradle.platform.core import dev.slne.surf.surfapi.gradle.SurfCloudModules +import dev.slne.surf.surfapi.gradle.SurfCoreModules import dev.slne.surf.surfapi.gradle.platform.common.CommonSurfExtension import org.gradle.api.model.ObjectFactory import org.gradle.kotlin.dsl.listProperty @@ -22,6 +23,18 @@ open class CoreSurfExtension @Inject constructor(objects: ObjectFactory) : cloudModule.set(SurfCloudModules.SERVER) } + fun withCoreCommon() { + coreModule.set(SurfCoreModules.COMMON) + } + + fun withCorePaper() { + coreModule.set(SurfCoreModules.PAPER) + } + + fun withCoreVelocity() { + coreModule.set(SurfCoreModules.VELOCITY) + } + fun migrationMainClass(value: String) { migrationMainClass.set(value) migrationMainClass.finalizeValue() diff --git a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/paper/plugin/PaperPluginSurfPlugin.kt b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/paper/plugin/PaperPluginSurfPlugin.kt index 2742d82a..5b122619 100644 --- a/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/paper/plugin/PaperPluginSurfPlugin.kt +++ b/surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/paper/plugin/PaperPluginSurfPlugin.kt @@ -63,6 +63,10 @@ internal class PaperPluginSurfPlugin : if (extension.cloudModule.isPresent && extension.dependOnCloud.get()) { registerRequired("surf-cloud-bukkit") } + if (extension.coreModule.isPresent) { + registerRequired("surf-core-paper") + } + extension.serverDependencies.orNull?.execute(this) } } From 55112a6cc46a191d54899927881b67016ce2b2f4 Mon Sep 17 00:00:00 2001 From: twisti <76837088+twisti-dev@users.noreply.github.com> Date: Tue, 30 Dec 2025 18:21:28 +0100 Subject: [PATCH 2/2] Update version from 1.8.3 to 1.9.0 --- surf-api-gradle-plugin/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/surf-api-gradle-plugin/build.gradle.kts b/surf-api-gradle-plugin/build.gradle.kts index 023a7479..2d1af1b6 100644 --- a/surf-api-gradle-plugin/build.gradle.kts +++ b/surf-api-gradle-plugin/build.gradle.kts @@ -20,7 +20,7 @@ plugins { group = groupId version = buildString { append(mcVersion) - append("-1.8.3") + append("-1.9.0") if (snapshot) append("-SNAPSHOT") } @@ -163,4 +163,4 @@ idea { java { withJavadocJar() withSourcesJar() -} \ No newline at end of file +}