diff --git a/CustomBot/src/main/kotlin/CustomBot.kt b/CustomBot/src/main/kotlin/CustomBot.kt index 3c19749..6cf9334 100644 --- a/CustomBot/src/main/kotlin/CustomBot.kt +++ b/CustomBot/src/main/kotlin/CustomBot.kt @@ -4,10 +4,23 @@ import dev.inmo.kslog.common.defaultMessageFormatter import dev.inmo.kslog.common.setDefaultKSLog import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions import dev.inmo.tgbotapi.extensions.api.bot.getMe +import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData +import dev.inmo.tgbotapi.extensions.behaviour_builder.buildSubcontextInitialAction import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling +import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand +import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage +import dev.inmo.tgbotapi.types.update.abstracts.Update import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers +private var BehaviourContextData.update: Update? + get() = get("update") as? Update + set(value) = set("update", value) + +private var BehaviourContextData.commonMessage: CommonMessage<*>? + get() = get("commonMessage") as? CommonMessage<*> + set(value) = set("commonMessage", value) + /** * This place can be the playground for your code. */ @@ -38,12 +51,32 @@ suspend fun main(vararg args: String) { } } } + }, + subcontextInitialAction = buildSubcontextInitialAction { + add { + data.update = it + } } ) { // start here!! val me = getMe() println(me) + onCommand("start") { + println(data.update) + println(data.commonMessage) + } + + onCommand( + "additional_command", + additionalSubcontextInitialAction = { update, commonMessage -> + data.commonMessage = commonMessage + } + ) { + println(data.update) + println(data.commonMessage) + } + allUpdatesFlow.subscribeSafelyWithoutExceptions(this) { println(it) } diff --git a/gradle.properties b/gradle.properties index 14812d2..381249d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,8 +5,8 @@ org.gradle.jvmargs=-Xmx3148m kotlin.daemon.jvmargs=-Xmx3g -Xms500m -kotlin_version=2.0.21 -telegram_bot_api_version=20.0.1 -micro_utils_version=0.23.0 +kotlin_version=2.1.0 +telegram_bot_api_version=21.0.0 +micro_utils_version=0.23.1 serialization_version=1.7.3 ktor_version=3.0.1