private static bool PermCheck(ChatMember user, ChatMemberPerms perm) { switch (perm) { case ChatMemberPerms.CanBeEdited: { return(user.can_be_edited ? true : false); } case ChatMemberPerms.CanPostMessages: { return(user.can_post_messages ? true : false); } case ChatMemberPerms.CanEditMessages: { return(user.can_edit_messages ? true : false); } case ChatMemberPerms.CanDeleteMessages: { return(user.can_delete_messages ? true : false); } case ChatMemberPerms.CanRestrictMembers: { return(user.can_restrict_members ? true : false); } case ChatMemberPerms.CanPromoteMembers: { return(user.can_promote_members ? true : false); } case ChatMemberPerms.CanChangeInfo: { return(user.can_change_info ? true : false); } case ChatMemberPerms.CanInviteUsers: { return(user.can_invite_users ? true : false); } case ChatMemberPerms.CanPinMessages: { return(user.can_pin_messages ? true : false); } case ChatMemberPerms.CanSendMessages: { return(user.can_send_messages ? true : false); } case ChatMemberPerms.CanSendMedia: { return(user.can_send_media_messages ? true : false); } case ChatMemberPerms.CanSendPolls: { return(user.can_send_polls ? true : false); } case ChatMemberPerms.CanSendOther: { return(user.can_send_other_messages ? true : false); } case ChatMemberPerms.CanAddWebPagePreviews: { return(user.can_add_web_page_previews ? true : false); } default: return(false); } }
public static bool CheckMemberPermission(long userID, long chatID, ChatMemberPerms perm) { ChatCache chat = ChatCaching.GetCache(chatID); if ((EpochTime() - ToEpoch(chat.LastUpdate)) >= Configs.RunningConfig.ChatCacheTimer) { ChatCaching.UpdateCache(chat); } if (chat.Admins.ContainsKey(userID)) { ChatMember admin = chat.Admins[userID]; if (admin.status == "creator") { return(true); } if (admin.status == "administrator") { return(PermCheck(admin, perm)); } } else { Result <ChatMember> memberResult = Methods.getChatMember(chatID, userID); if (!memberResult.ok) { Logger.LogWarn("There was an error while getting the permission for " + userID + " in chat " + chatID + "\nError: (" + memberResult.errorCode + ") Description: " + memberResult.description); return(false); } else { ChatMember member = memberResult.result; if (!member.is_member) { return(false); } if (member.status == "left") { return(false); } if (member.status == "kicked") { return(false); } if (member.status == "restricted") { return(PermCheck(member, perm)); } if (member.status == "member") { return(PermCheck(member, perm)); } } } return(false); }