Commands: one plugin - one command manager, sender as player
Kotlin 1.9.20
Genref update
This commit is contained in:
redtea committed 2024-06-27 01:22:23 +03:00
1 parent 95edc90da4
commit 9dfd6c8d39
32 files changed
+264 -116

No files matched your search

+11
View File
@@ -1,3 +1,5 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("java")
kotlin("jvm")
@@ -24,6 +26,7 @@ dependencies {
implementation("com.google.devtools.ksp:symbol-processing-api:1.9.0-1.0.11")
implementation("com.squareup:kotlinpoet:1.10.1")
implementation("com.squareup:kotlinpoet-ksp:1.10.1")
implementation(kotlin("stdlib-jdk8"))
}
tasks.test {
@@ -114,3 +117,11 @@ signing {
useGpgCmd()
sign(publishing.publications.getByName("maven"))
}
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions {
jvmTarget = "1.8"
}
val compileTestKotlin: KotlinCompile by tasks
compileTestKotlin.kotlinOptions {
jvmTarget = "1.8"
}
@@ -15,6 +15,8 @@ import com.squareup.kotlinpoet.ksp.writeTo
import tech.carcadex.kotlinbukkitkit.genref.plugin.annotations.OnDisable
import tech.carcadex.kotlinbukkitkit.genref.plugin.annotations.Plugin
import tech.carcadex.kotlinbukkitkit.architecture.KotlinPlugin
import tech.carcadex.kotlinbukkitkit.genref.plugin.annotations.OnConfigReload
import tech.carcadex.kotlinbukkitkit.genref.plugin.annotations.OnLoad
import java.nio.file.Path
import java.nio.file.Paths
import kotlin.io.path.deleteIfExists
@@ -71,8 +73,9 @@ class PluginVisitor(private val codeGenerator: CodeGenerator,
@OptIn(KspExperimental::class)
override fun visitFunctionDeclaration(function: KSFunctionDeclaration, data: Unit) {
if (function.getAnnotationsByType(OnDisable::class).any()) disable(function)
if(function.getAnnotationsByType(Plugin::class).any()) enable(function)
if(function.getAnnotationsByType(OnConfigReload::class).any()) configReload(function)
if(function.getAnnotationsByType(OnLoad::class).any()) load(function)
}
fun disable(function: KSFunctionDeclaration) {
@@ -98,6 +101,29 @@ class PluginVisitor(private val codeGenerator: CodeGenerator,
.build())
}
fun load(function: KSFunctionDeclaration) {
funcs.add(FunSpec.builder("onPluginLoad")
.addCode(CodeBlock.of("""
plugin = this
${function.simpleName.getShortName()}()
""".trimIndent()))
.returns(Unit::class)
.addModifiers(KModifier.OVERRIDE)
.build())
}
fun configReload(function: KSFunctionDeclaration) {
funcs.add(FunSpec.builder("onConfigReload")
.addCode(CodeBlock.of("""
plugin = this
${function.simpleName.getShortName()}()
""".trimIndent()))
.returns(Unit::class)
.addModifiers(KModifier.OVERRIDE)
.build())
}
}
@@ -0,0 +1,5 @@
package tech.carcadex.kotlinbukkitkit.genref.plugin.annotations
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.SOURCE)
annotation class OnConfigReload()
@@ -0,0 +1,5 @@
package tech.carcadex.kotlinbukkitkit.genref.plugin.annotations
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.SOURCE)
annotation class OnLoad()