diff --git a/CHANGELOG.md b/CHANGELOG.md index 139208d678..c29570f310 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 0.38.17 +* `Core`: + * Add `BotCommandScopeChat` as new `BotCommandScope` (fix of [#574](https://github.com/InsanusMokrassar/TelegramBotAPI/issues/574)) + ## 0.38.16 * `Core`: diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/commands/BotCommandScope.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/commands/BotCommandScope.kt index 9fa0b953d2..681a1c6baa 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/commands/BotCommandScope.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/commands/BotCommandScope.kt @@ -22,11 +22,14 @@ private class SurrogateBotCommandScope( BotCommandScopeAllGroupChats.type -> BotCommandScopeAllGroupChats BotCommandScopeAllChatAdministrators.type -> BotCommandScopeAllChatAdministrators BotCommandScopeChatAdministrators.type -> BotCommandScopeChatAdministrators( - chatId ?: error("chat_administrators type must have $chatIdField field, but have no") + chatId ?: error("${BotCommandScopeChatAdministrators.type} type must have $chatIdField field, but have no") ) BotCommandScopeChatMember.type -> BotCommandScopeChatMember( - chatId ?: error("chat_administrators type must have $chatIdField field, but have no"), - userId ?: error("chat_administrators type must have $userIdField field, but have no") + chatId ?: error("${BotCommandScopeChatMember.type} type must have $chatIdField field, but have no"), + userId ?: error("${BotCommandScopeChatMember.type} type must have $userIdField field, but have no") + ) + BotCommandScopeChat.type -> BotCommandScopeChat( + chatId ?: error("${BotCommandScopeChat.type} type must have $chatIdField field, but have no") ) else -> UnknownBotCommandScope(type) } @@ -40,6 +43,7 @@ private class SurrogateBotCommandScope( BotCommandScopeAllChatAdministrators -> SurrogateBotCommandScope(scope.type) is BotCommandScopeChatAdministrators -> SurrogateBotCommandScope(scope.type, scope.chatId) is BotCommandScopeChatMember -> SurrogateBotCommandScope(scope.type, scope.chatId, scope.userId) + is BotCommandScopeChat -> SurrogateBotCommandScope(scope.type, scope.chatId) } } } @@ -94,6 +98,17 @@ data class BotCommandScopeChatAdministrators( } } +@Serializable +data class BotCommandScopeChat( + override val chatId: ChatIdentifier +) : ChatBotCommandScope { + @Required + override val type: String = BotCommandScopeChat.type + companion object { + const val type = "chat" + } +} + @Serializable data class BotCommandScopeChatMember( override val chatId: ChatIdentifier,