Add Bot API 10.2 Ephemeral Messages support

New ephemeral messaging surface: EphemeralMessageId, Message.receiverUser/
ephemeralMessageId (PossiblyEphemeralMessage on group message impls),
BotCommand.isEphemeral, receiverUserId/callbackQueryId parameters across the 13
covered send methods (core requests, per-type api extensions and the
Sends/Replies/RepliesWithChatsAndMessages aggregators), editEphemeralMessageText/
Media/Caption/ReplyMarkup and deleteEphemeralMessage, plus replyToEphemeral
helpers and smart-branch ephemeral replies.

BREAKING: ReplyParameters.messageId and chatIdentifier are now nullable and the
WithMessageId supertype was dropped so ephemeral_message_id-only replies can be
expressed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
InsanusMokrassarandClaude Opus 4.8 committed 2026-07-18 20:25:59 +06:00
1 parent 16be206b0f
commit 838caae7f5
57 files changed
+3571 -801

No files matched your search

@@ -371,6 +371,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.InaccessibleMessage
import dev.inmo.tgbotapi.types.message.abstracts.Message
import dev.inmo.tgbotapi.types.message.abstracts.OptionallyFromUserMessage
import dev.inmo.tgbotapi.types.message.abstracts.PossiblyEditedMessage
import dev.inmo.tgbotapi.types.message.abstracts.PossiblyEphemeralMessage
import dev.inmo.tgbotapi.types.message.abstracts.PossiblyForwardedMessage
import dev.inmo.tgbotapi.types.message.abstracts.PossiblyGuestAnswerMessage
import dev.inmo.tgbotapi.types.message.abstracts.PossiblyMediaGroupMessage
@@ -2395,6 +2396,12 @@ public inline fun Message.possiblyForwardedMessageOrThrow(): PossiblyForwardedMe
public inline fun <T> Message.ifPossiblyForwardedMessage(block: (PossiblyForwardedMessage) -> T): T? = possiblyForwardedMessageOrNull() ?.let(block)
public inline fun Message.possiblyEphemeralMessageOrNull(): PossiblyEphemeralMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.PossiblyEphemeralMessage
public inline fun Message.possiblyEphemeralMessageOrThrow(): PossiblyEphemeralMessage = this as dev.inmo.tgbotapi.types.message.abstracts.PossiblyEphemeralMessage
public inline fun <T> Message.ifPossiblyEphemeralMessage(block: (PossiblyEphemeralMessage) -> T): T? = possiblyEphemeralMessageOrNull() ?.let(block)
public inline fun Message.possiblyWithEffectMessageOrNull(): PossiblyWithEffectMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.PossiblyWithEffectMessage
public inline fun Message.possiblyWithEffectMessageOrThrow(): PossiblyWithEffectMessage = this as dev.inmo.tgbotapi.types.message.abstracts.PossiblyWithEffectMessage