diff --git a/surf-api-gradle-plugin/build.gradle.kts b/surf-api-gradle-plugin/build.gradle.kts index e7d81d7d..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.2") + append("-1.9.0") if (snapshot) append("-SNAPSHOT") } @@ -163,4 +163,4 @@ idea { java { withJavadocJar() withSourcesJar() -} \ No newline at end of file +} 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 ca973f5e..92b97211 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 @@ -245,6 +245,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 0f16f6a9..f114c4a1 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 @@ -49,6 +50,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 532d2280..2acb5fe3 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) } }