Skip to content

Commit d6fa0d0

Browse files
committed
feat: introduce SurfCloudModules enum and extend cloud module functionality in extensions
1 parent 70626ea commit d6fa0d0

File tree

8 files changed

+52
-3
lines changed

8 files changed

+52
-3
lines changed

.idea/modules.xml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

surf-api-gradle-plugin/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ plugins {
2020
group = groupId
2121
version = buildString {
2222
append(mcVersion)
23-
append("-1.1.10")
23+
append("-1.2.0")
2424
if (snapshot) append("-SNAPSHOT")
2525
}
2626

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package dev.slne.surf.surfapi.gradle
2+
3+
enum class SurfCloudModules(val module: String) {
4+
COMMON("surf-cloud-api-common"),
5+
CLIENT_COMMON("surf-cloud-api-client-common"),
6+
CLIENT_PAPER("surf-cloud-api-client-paper"),
7+
CLIENT_VELOCITY("surf-cloud-api-client-velocity"),
8+
SERVER("surf-cloud-api-server"),
9+
}

surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfExtension.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.slne.surf.surfapi.gradle.platform.common
22

3+
import dev.slne.surf.surfapi.gradle.SurfCloudModules
34
import org.gradle.api.model.ObjectFactory
45
import org.gradle.kotlin.dsl.property
56
import org.jetbrains.annotations.MustBeInvokedByOverriders
@@ -9,6 +10,7 @@ abstract class CommonSurfExtension(protected val objects: ObjectFactory) {
910
internal val surfApiScope = objects.property<String>()
1011
internal val publishingUrl = objects.property<String>().convention("https://repo.slne.dev/repository/maven-releases")
1112
internal val publishingRepoName = objects.property<String>().convention("maven-releases")
13+
internal val cloudModule = objects.property<SurfCloudModules>()
1214

1315
fun addSurfApiToClasspath(value: Boolean) {
1416
addSurfApiToClasspath.set(value)

surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/common/CommonSurfPlugin.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.gradle.kotlin.dsl.withType
1717
import org.jetbrains.kotlin.allopen.gradle.AllOpenExtension
1818
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
1919
import org.jetbrains.kotlin.gradle.utils.COMPILE_ONLY
20+
import org.jetbrains.kotlin.gradle.utils.IMPLEMENTATION
2021

2122
abstract class CommonSurfPlugin<E : CommonSurfExtension>(
2223
protected val platformName: String,
@@ -130,8 +131,6 @@ abstract class CommonSurfPlugin<E : CommonSurfExtension>(
130131
.distinct()
131132
.toList()
132133

133-
println("contains surf-cloud-api-common: ${deps.any { it.contains("surf-cloud-api-common") }}")
134-
135134
dependencyDependentRelocations.forEach { (dependency, relocations) ->
136135
if (deps.any { it.contains(dependency) }) {
137136
logger.warn("Dependency $dependency found. Applying relocations.")
@@ -190,6 +189,20 @@ abstract class CommonSurfPlugin<E : CommonSurfExtension>(
190189
}
191190
}
192191

192+
val cloudModule = extension.cloudModule.orNull
193+
if (cloudModule != null) {
194+
dependencies {
195+
add(
196+
IMPLEMENTATION,
197+
platform("dev.slne.surf.cloud:surf-cloud-bom:${Constants.SURF_API_VERSION}")
198+
)
199+
add(
200+
COMPILE_ONLY,
201+
"dev.slne.surf.cloud:${cloudModule.module}:${Constants.SURF_API_VERSION}"
202+
)
203+
}
204+
}
205+
193206
afterEvaluated0(extension)
194207
}
195208

surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/core/CoreSurfExtension.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.slne.surf.surfapi.gradle.platform.core
22

3+
import dev.slne.surf.surfapi.gradle.SurfCloudModules
34
import dev.slne.surf.surfapi.gradle.platform.common.CommonSurfExtension
45
import org.gradle.api.model.ObjectFactory
56
import org.gradle.kotlin.dsl.listProperty
@@ -8,4 +9,16 @@ import javax.inject.Inject
89
open class CoreSurfExtension @Inject constructor(objects: ObjectFactory) :
910
CommonSurfExtension(objects) {
1011
val authors = objects.listProperty<String>().convention(mutableListOf("SLNE Development"))
12+
13+
fun withCloudCommon() {
14+
cloudModule.set(SurfCloudModules.COMMON)
15+
}
16+
17+
fun withCloudClientCommon() {
18+
cloudModule.set(SurfCloudModules.CLIENT_COMMON)
19+
}
20+
21+
fun withCloudServer() {
22+
cloudModule.set(SurfCloudModules.SERVER)
23+
}
1124
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package dev.slne.surf.surfapi.gradle.platform.paper
22

3+
import dev.slne.surf.surfapi.gradle.SurfCloudModules
34
import dev.slne.surf.surfapi.gradle.platform.core.CoreSurfExtension
45
import org.gradle.api.model.ObjectFactory
56

67
abstract class AbstractPaperSurfExtension(objects: ObjectFactory) : CoreSurfExtension(objects) {
8+
fun withCloudClientPaper() {
9+
cloudModule.set(SurfCloudModules.CLIENT_PAPER)
10+
}
711
}

surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/surfapi/gradle/platform/velocity/VelocitySurfExtension.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.slne.surf.surfapi.gradle.platform.velocity
22

3+
import dev.slne.surf.surfapi.gradle.SurfCloudModules
34
import dev.slne.surf.surfapi.gradle.platform.core.CoreSurfExtension
45
import org.gradle.api.Project
56
import org.gradle.api.model.ObjectFactory
@@ -9,4 +10,8 @@ open class VelocitySurfExtension @Inject constructor(
910
private val project: Project,
1011
objects: ObjectFactory,
1112
) : CoreSurfExtension(objects) {
13+
14+
fun withCloudClientVelocity() {
15+
cloudModule.set(SurfCloudModules.CLIENT_VELOCITY)
16+
}
1217
}

0 commit comments

Comments
 (0)