Skip to content

Commit 3504bd7

Browse files
authored
✨ feat(plugin): add support for surf-npc integration in PaperPluginSurf (#342)
2 parents adb7cd4 + afcf269 commit 3504bd7

3 files changed

Lines changed: 17 additions & 1 deletion

File tree

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

2121
group = groupId
2222
version = buildString {
23-
append("2.0.4")
23+
append("2.0.5")
2424
if (snapshot) append("-SNAPSHOT")
2525
}
2626

surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/api/gradle/platform/paper/plugin/PaperPluginSurfExtension.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ open class PaperPluginSurfExtension @Inject constructor(objects: ObjectFactory)
2121
internal val foliaSupported = objects.property<Boolean>().convention(true)
2222
internal val generateLibraryLoader = objects.property<Boolean>().convention(false)
2323

24+
internal val installSurfNpc = objects.property<Boolean>().convention(false)
25+
2426
fun mainClass(mainClass: String) {
2527
this.mainClass.set(mainClass)
2628
this.mainClass.finalizeValue()
@@ -56,6 +58,11 @@ open class PaperPluginSurfExtension @Inject constructor(objects: ObjectFactory)
5658
this.generateLibraryLoader.finalizeValue()
5759
}
5860

61+
fun withSurfNpc() {
62+
installSurfNpc.set(true)
63+
installSurfNpc.finalizeValue()
64+
}
65+
5966
override fun validate() {
6067
super.validate()
6168
require(mainClass.isPresent) { "Main class must be set to your plugin's main class" }

surf-api-gradle-plugin/src/main/kotlin/dev/slne/surf/api/gradle/platform/paper/plugin/PaperPluginSurfPlugin.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import org.gradle.kotlin.dsl.configure
1414
import org.gradle.kotlin.dsl.getByType
1515
import org.gradle.kotlin.dsl.invoke
1616
import org.gradle.kotlin.dsl.withType
17+
import org.jetbrains.kotlin.gradle.utils.COMPILE_ONLY
1718
import xyz.jpenilla.runpaper.task.RunServer
1819

1920
internal class PaperPluginSurfPlugin :
@@ -31,6 +32,10 @@ internal class PaperPluginSurfPlugin :
3132
extension.mainClass.get().substringBeforeLast('.')
3233
)
3334

35+
if (extension.installSurfNpc.get()) {
36+
dependencies.add(COMPILE_ONLY, "dev.slne.surf.npc:surf-npc-api:+")
37+
}
38+
3439
configure<PaperPluginDescription> {
3540
authors = extension.authors.get()
3641
main = extension.mainClass.get()
@@ -63,6 +68,10 @@ internal class PaperPluginSurfPlugin :
6368
registerRequired("surf-redis-paper")
6469
}
6570

71+
if (extension.installSurfNpc.get()) {
72+
registerRequired("surf-npc-paper")
73+
}
74+
6675
extension.serverDependencies.orNull?.execute(this)
6776
}
6877
}

0 commit comments

Comments
 (0)