diff --git a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/BaseAbilityBot.java b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/BaseAbilityBot.java index 4bf4a804..e8297590 100644 --- a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/BaseAbilityBot.java +++ b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/BaseAbilityBot.java @@ -265,10 +265,10 @@ public abstract class BaseAbilityBot extends DefaultAbsSender implements Ability .orElse(new ArrayList<>()) .stream() .map(member -> { - if (member instanceof ChatMemberAdministrator) { - return ((ChatMemberAdministrator) member).getUser().getId(); - } else if (member instanceof ChatMemberOwner) { - return ((ChatMemberOwner) member).getUser().getId(); + final String status = member.getStatus(); + if (status.equals(ChatMemberOwner.STATUS) + || status.equals(ChatMemberAdministrator.STATUS)) { + return member.getUser().getId(); } return 0L; }) diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMember.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMember.java index 30b86947..e9d38cab 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMember.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMember.java @@ -2,6 +2,7 @@ package org.telegram.telegrambots.meta.api.objects.chatmember; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.telegram.telegrambots.meta.api.interfaces.BotApiObject; +import org.telegram.telegrambots.meta.api.objects.User; import org.telegram.telegrambots.meta.api.objects.chatmember.serialization.ChatMemberDeserializer; /** @@ -14,4 +15,5 @@ import org.telegram.telegrambots.meta.api.objects.chatmember.serialization.ChatM @JsonDeserialize(using = ChatMemberDeserializer.class) public interface ChatMember extends BotApiObject { String getStatus(); + User getUser(); } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberAdministrator.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberAdministrator.java index dc3a7c8c..c8ca7056 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberAdministrator.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberAdministrator.java @@ -26,6 +26,8 @@ import org.telegram.telegrambots.meta.api.objects.User; @AllArgsConstructor @Builder public class ChatMemberAdministrator implements ChatMember { + public static final String STATUS = "administrator"; + private static final String STATUS_FIELD = "status"; private static final String USER_FIELD = "user"; private static final String CANBEEDITED_FIELD = "can_be_edited"; @@ -46,7 +48,7 @@ public class ChatMemberAdministrator implements ChatMember { * The member's status in the chat, always “administrator” */ @JsonProperty(STATUS_FIELD) - private final String status = "administrator"; + private final String status = STATUS; /** * Information about the user */ diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberBanned.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberBanned.java index becee325..205181a1 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberBanned.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberBanned.java @@ -26,6 +26,8 @@ import org.telegram.telegrambots.meta.api.objects.User; @AllArgsConstructor @Builder public class ChatMemberBanned implements ChatMember { + public static final String STATUS = "kicked"; + private static final String STATUS_FIELD = "status"; private static final String USER_FIELD = "user"; private static final String UNTILDATE_FIELD = "until_date"; @@ -34,7 +36,7 @@ public class ChatMemberBanned implements ChatMember { * The member's status in the chat, always “kicked” */ @JsonProperty(STATUS_FIELD) - private final String status = "kicked"; + private final String status = STATUS; /** * Information about the user */ diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberLeft.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberLeft.java index c93da1e2..c05303a8 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberLeft.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberLeft.java @@ -26,6 +26,8 @@ import org.telegram.telegrambots.meta.api.objects.User; @AllArgsConstructor @Builder public class ChatMemberLeft implements ChatMember { + public static final String STATUS = "left"; + private static final String STATUS_FIELD = "status"; private static final String USER_FIELD = "user"; @@ -33,7 +35,7 @@ public class ChatMemberLeft implements ChatMember { * The member's status in the chat, always “left” */ @JsonProperty(STATUS_FIELD) - private final String status = "left"; + private final String status = STATUS; /** * Information about the user */ diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberMember.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberMember.java index 8227179b..12cbafb1 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberMember.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberMember.java @@ -26,6 +26,8 @@ import org.telegram.telegrambots.meta.api.objects.User; @AllArgsConstructor @Builder public class ChatMemberMember implements ChatMember { + public static final String STATUS = "member"; + private static final String STATUS_FIELD = "status"; private static final String USER_FIELD = "user"; @@ -33,7 +35,7 @@ public class ChatMemberMember implements ChatMember { * The member's status in the chat, always “member” */ @JsonProperty(STATUS_FIELD) - private final String status = "member"; + private final String status = STATUS; /** * Information about the user */ diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberOwner.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberOwner.java index ae1c97c5..f77a733e 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberOwner.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberOwner.java @@ -26,6 +26,8 @@ import org.telegram.telegrambots.meta.api.objects.User; @AllArgsConstructor @Builder public class ChatMemberOwner implements ChatMember { + public static final String STATUS = "creator"; + private static final String STATUS_FIELD = "status"; private static final String USER_FIELD = "user"; private static final String CUSTOMTITLE_FIELD = "custom_title"; @@ -35,7 +37,7 @@ public class ChatMemberOwner implements ChatMember { * The member's status in the chat, always “creator” */ @JsonProperty(STATUS_FIELD) - private final String status = "creator"; + private final String status = STATUS; /** * Information about the user */ diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberRestricted.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberRestricted.java index 02b3dcf1..b98ae180 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberRestricted.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/objects/chatmember/ChatMemberRestricted.java @@ -26,6 +26,8 @@ import org.telegram.telegrambots.meta.api.objects.User; @AllArgsConstructor @Builder public class ChatMemberRestricted implements ChatMember { + public static final String STATUS = "restricted"; + private static final String STATUS_FIELD = "status"; private static final String USER_FIELD = "user"; private static final String ISMEMBER_FIELD = "is_member"; @@ -43,7 +45,7 @@ public class ChatMemberRestricted implements ChatMember { * The member's status in the chat, always “restricted” */ @JsonProperty(STATUS_FIELD) - private final String status = "restricted"; + private final String status = STATUS; /** * Information about the user */