From 76985501f5c7ae677e5b09c12b73d233dee34189 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sun, 12 Sep 2021 15:32:36 +0600 Subject: [PATCH] CustomBotAction --- CHANGELOG.md | 3 +++ .../kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09289435fa..d3cc9ad0bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 0.35.9 +* `Core`: + * New `BotAction` implementation - `CustomBotAction` + ## 0.35.8 * `Common`: diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt index b258aeacf4..33348e702b 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.actions +import dev.inmo.tgbotapi.utils.RiskFeature import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable import kotlinx.serialization.builtins.serializer @@ -34,7 +35,7 @@ object BotActionSerializer: KSerializer { FindLocationAction.actionName -> FindLocationAction RecordVideoNoteAction.actionName -> RecordVideoNoteAction UploadVideoNoteAction.actionName -> UploadVideoNoteAction - else -> throw IllegalStateException("Unknown action type: $actionName") + else -> CustomBotAction(actionName) } } } @@ -148,3 +149,7 @@ object UploadVideoNoteAction : BotAction { inline val uploadVideoNote get() = UploadVideoNoteAction inline fun BotAction.asUploadVideoNote() = this as? UploadVideoNoteAction + +@Serializable(BotActionSerializer::class) +@RiskFeature("Usage of this action may lead to errors") +class CustomBotAction(override val actionName: String) : BotAction