diff --git a/CHANGELOG.md b/CHANGELOG.md index c2174381db..93e0bc469e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 0.21.0 TelegramBotAPI 4.5 +* Now any administrator object instance have `customTitle` nullable field * Added the new request `SetChatAdministratorCustomTitle` to manage the custom titles of administrators promoted by the bot. * Added the field `slowModeDelay` to the `ExtendedSupergroupChat` objects. diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/AdministratorChatMemberImpl.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/AdministratorChatMemberImpl.kt index 168b61ff8f..23662f990e 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/AdministratorChatMemberImpl.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/AdministratorChatMemberImpl.kt @@ -13,5 +13,6 @@ data class AdministratorChatMemberImpl( override val canInviteUsers: Boolean, override val canRestrictMembers: Boolean, override val canPinMessages: Boolean, - override val canPromoteMembers: Boolean + override val canPromoteMembers: Boolean, + override val customTitle: String? ) : AdministratorChatMember diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/CreatorChatMember.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/CreatorChatMember.kt index b00de59489..d92d84b2d8 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/CreatorChatMember.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/CreatorChatMember.kt @@ -3,8 +3,10 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.ChatMember import com.github.insanusmokrassar.TelegramBotAPI.types.ChatMember.abstracts.AdministratorChatMember import com.github.insanusmokrassar.TelegramBotAPI.types.User -data class CreatorChatMember(override val user: User) : - AdministratorChatMember { +data class CreatorChatMember( + override val user: User, + override val customTitle: String? +) : AdministratorChatMember { override val canBeEdited: Boolean = true override val canChangeInfo: Boolean = true override val canPostMessages: Boolean = true diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt index 278f851e73..ac40748e8a 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt @@ -39,11 +39,13 @@ internal data class RawChatMember( @SerialName(canSendOtherMessagesField) private val canSendOtherMessages: Boolean = false, @SerialName(canAddWebPagePreviewsField) - private val canAddWebPagePreviews: Boolean = false + private val canAddWebPagePreviews: Boolean = false, + @SerialName(customTitleField) + private val customTitle: String? = null ) { val asChatMember: ChatMember by lazy { when (status) { - "creator" -> CreatorChatMember(user) + "creator" -> CreatorChatMember(user, customTitle) "administrator" -> AdministratorChatMemberImpl( user, canBeEdited, @@ -54,7 +56,8 @@ internal data class RawChatMember( canInviteUsers, canRestrictMembers, canPinMessages, - canPromoteMembers + canPromoteMembers, + customTitle ) "member" -> MemberChatMember(user) "restricted" -> RestrictedChatMember( diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/AdministratorChatMember.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/AdministratorChatMember.kt index 27bc3e5842..f99ce2ef25 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/AdministratorChatMember.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/AdministratorChatMember.kt @@ -7,4 +7,5 @@ interface AdministratorChatMember : SpecialRightsChatMember { val canRemoveMessages: Boolean val canRestrictMembers: Boolean val canPromoteMembers: Boolean + val customTitle: String? } \ No newline at end of file