PlaguBot/bot/src/main/kotlin/dev/inmo/plagubot/HelloPlugin.kt

42 lines
1.3 KiB
Kotlin
Raw Normal View History

2020-11-08 13:23:01 +00:00
package dev.inmo.plagubot
2022-06-11 13:15:09 +00:00
import dev.inmo.kslog.common.d
import dev.inmo.kslog.common.logger
2022-05-16 17:58:16 +00:00
import dev.inmo.tgbotapi.extensions.api.bot.getMe
import dev.inmo.tgbotapi.extensions.api.send.reply
2021-01-10 09:21:31 +00:00
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
2022-05-16 17:58:16 +00:00
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand
2022-05-16 14:07:57 +00:00
import kotlinx.serialization.*
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject
2020-11-11 17:05:21 +00:00
import org.jetbrains.exposed.sql.Database
2022-05-16 14:07:57 +00:00
import org.koin.core.Koin
import org.koin.core.KoinApplication
import org.koin.core.component.KoinComponent
import org.koin.core.component.get
2022-05-16 17:58:16 +00:00
import org.koin.core.module.Module
2022-05-16 14:07:57 +00:00
import org.koin.dsl.module
2020-11-11 17:05:21 +00:00
2020-11-12 05:52:09 +00:00
@Serializable
@SerialName("Hello")
2022-05-16 14:07:57 +00:00
class HelloPlugin : Plugin {
@Serializable
data class HelloPluginConfig(
val print: String
)
2022-05-16 17:58:16 +00:00
override fun Module.setupDI(database: Database, params: JsonObject) {
single {
get<Json>().decodeFromJsonElement(HelloPluginConfig.serializer(), params["helloPlugin"] ?: return@single null)
2022-05-16 14:07:57 +00:00
}
2022-05-16 17:58:16 +00:00
}
2022-05-16 14:07:57 +00:00
2022-05-16 17:58:16 +00:00
override suspend fun BehaviourContext.setupBotPlugin(koin: Koin) {
2022-06-11 13:15:09 +00:00
logger.d(koin.get<HelloPluginConfig>().print)
logger.d(getMe().toString())
2022-05-16 17:58:16 +00:00
onCommand("hello_world") {
reply(it, "Hello :)")
}
2020-11-12 05:52:09 +00:00
}
2020-11-11 17:05:21 +00:00
}