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 5d50d272d4..59b2fb6061 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 @@ -287,6 +287,13 @@ internal data class RawMessage( } val asMessage: Message by lazy { + if (date.date == 0L) { + return@lazy InaccessibleMessage( + chat, + messageId + ) + } + try { chatEvent?.let { chatEvent -> when (chat) { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt index 5e1fcba29c..6d01402657 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt @@ -19,6 +19,15 @@ interface Message : WithPreviewChatAndMessageId { val date: DateTime } +@Serializable +data class InaccessibleMessage( + override val chat: PreviewChat, + override val messageId: MessageId, +) : Message { + override val date: DateTime + get() = DateTime.invoke(0L) +} + data class UnknownMessageType( override val messageId: MessageId, override val chat: PreviewChat,