diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt index 5dfbfab319..f706eb2818 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt @@ -5,6 +5,7 @@ package dev.inmo.tgbotapi.types import dev.inmo.tgbotapi.abstracts.SpoilerableData import dev.inmo.tgbotapi.types.chat.SuperPublicChat import dev.inmo.tgbotapi.types.checklists.Checklist +import dev.inmo.tgbotapi.types.checklists.ChecklistTaskId import dev.inmo.tgbotapi.types.dice.Dice import dev.inmo.tgbotapi.types.files.* import dev.inmo.tgbotapi.types.games.RawGame @@ -28,9 +29,11 @@ import kotlinx.serialization.encoding.Encoder @ClassCastsIncluded sealed interface ReplyInfo { val messageMeta: Message.MetaInfo? + val checklistTaskId: ChecklistTaskId? data class Internal( - val message: Message + val message: Message, + override val checklistTaskId: ChecklistTaskId? = null, ): ReplyInfo { override val messageMeta: Message.MetaInfo get() = message.metaInfo @@ -42,6 +45,8 @@ sealed interface ReplyInfo { ): ReplyInfo { override val messageMeta: Message.MetaInfo? get() = null + override val checklistTaskId: ChecklistTaskId? + get() = null } @Serializable(External.Companion::class) @@ -57,7 +62,8 @@ sealed interface ReplyInfo { @Suppress("SERIALIZER_TYPE_INCOMPATIBLE") override val chat: SuperPublicChat?, override val messageMeta: Message.MetaInfo?, - val linkPreviewOptions: LinkPreviewOptions? + val linkPreviewOptions: LinkPreviewOptions?, + override val checklistTaskId: ChecklistTaskId? = null, ) : External @Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @@ -72,7 +78,8 @@ sealed interface ReplyInfo { @Suppress("SERIALIZER_TYPE_INCOMPATIBLE") override val chat: SuperPublicChat?, override val messageMeta: Message.MetaInfo?, - override val content: ContentVariant + override val content: ContentVariant, + override val checklistTaskId: ChecklistTaskId? = null, ) : Content @Serializable @@ -82,7 +89,8 @@ sealed interface ReplyInfo { override val chat: SuperPublicChat?, override val messageMeta: Message.MetaInfo?, override val spoilered: Boolean, - override val content: MediaContentVariant + override val content: MediaContentVariant, + override val checklistTaskId: ChecklistTaskId? = null, ) : Content, SpoilerableData } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt index 8b21df2386..1888c58182 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt @@ -7,6 +7,7 @@ import dev.inmo.tgbotapi.types.chat.* import dev.inmo.tgbotapi.types.chat.CommonBot import dev.inmo.tgbotapi.types.chat.User import dev.inmo.tgbotapi.types.checklists.Checklist +import dev.inmo.tgbotapi.types.checklists.ChecklistTaskId import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone import dev.inmo.tgbotapi.types.dice.Dice @@ -64,6 +65,7 @@ internal data class RawMessage( private val is_automatic_forward: Boolean? = null, private val reply_to_message: RawMessage? = null, private val reply_to_story: Story? = null, + private val reply_to_checklist_task_id: ChecklistTaskId? = null, private val external_reply: ReplyInfo.External? = null, private val quote: TextQuote? = null, private val via_bot: CommonBot? = null, @@ -360,7 +362,8 @@ internal data class RawMessage( } ?: content?.let { content -> val replyInfo: ReplyInfo? = when { reply_to_message != null -> ReplyInfo.Internal( - reply_to_message.asMessage + reply_to_message.asMessage, + reply_to_checklist_task_id ) reply_to_story != null -> ReplyInfo.ToStory(reply_to_story) external_reply != null -> external_reply