Skip to content

Commit b583d8d

Browse files
feat: add member flags (#1252)
* feat: add member flags * ci: correct from checks. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 438c8e8 commit b583d8d

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

interactions/api/models/flags.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@
22

33
from ...client.enums import StrEnum
44

5-
__all__ = ("Intents", "AppFlags", "StatusType", "UserFlags", "Permissions", "MessageFlags")
5+
__all__ = (
6+
"Intents",
7+
"AppFlags",
8+
"StatusType",
9+
"UserFlags",
10+
"Permissions",
11+
"MessageFlags",
12+
"MemberFlags",
13+
)
614

715

816
class Intents(IntFlag):
@@ -216,3 +224,21 @@ class MessageFlags(IntFlag):
216224
EPHEMERAL = 1 << 6
217225
LOADING = 1 << 7
218226
FAILED_TO_MENTION_SOME_ROLES_IN_THREAD = 1 << 8
227+
228+
229+
class MemberFlags(IntFlag):
230+
"""
231+
.. versionadded:: 4.4.0
232+
233+
An integer flag bitshift object representing member flags on the guild.
234+
235+
:ivar int DID_REJOIN: Member has left and rejoined the guild
236+
:ivar int COMPLETED_ONBOARDING: Member has completed onboarding
237+
:ivar int BYPASSES_VERIFICATION: Member bypasses guild verification requirements
238+
:ivar int STARTED_ONBOARDING: Member has started onboarding
239+
"""
240+
241+
DID_REJOIN = 1 << 0
242+
COMPLETED_ONBOARDING = 1 << 1
243+
BYPASSES_VERIFICATION = 1 << 2
244+
STARTED_ONBOARDING = 1 << 3

interactions/api/models/member.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from ...utils.utils import search_iterable
77
from ..error import LibraryException
88
from .channel import Channel
9-
from .flags import Permissions
9+
from .flags import MemberFlags, Permissions
1010
from .misc import AllowedMentions, File, IDMixin, Snowflake
1111
from .role import Role
1212
from .user import User
@@ -38,6 +38,7 @@ class Member(ClientSerializerMixin, IDMixin):
3838
:ivar datetime premium_since: The timestamp the member has been a server booster since.
3939
:ivar bool deaf: Whether the member is deafened.
4040
:ivar bool mute: Whether the member is muted.
41+
:ivar MemberFlags flags: The guild member flags. Default to 0.
4142
:ivar Optional[bool] pending: Whether the member is pending to pass membership screening.
4243
:ivar Optional[Permissions] permissions: Whether the member has permissions.
4344
:ivar Optional[str] communication_disabled_until: How long until they're unmuted, if any.
@@ -53,6 +54,7 @@ class Member(ClientSerializerMixin, IDMixin):
5354
)
5455
deaf: bool = field()
5556
mute: bool = field()
57+
flags: MemberFlags = field(converter=convert_int(MemberFlags), repr=False)
5658
is_pending: Optional[bool] = field(default=None, repr=False)
5759
pending: Optional[bool] = field(default=None, repr=False)
5860
permissions: Optional[Permissions] = field(
@@ -64,7 +66,6 @@ class Member(ClientSerializerMixin, IDMixin):
6466
hoisted_role: Optional[Any] = field(
6567
default=None, repr=False
6668
) # TODO: Investigate what this is for when documented by Discord.
67-
flags: int = field(repr=False) # TODO: Investigate what this is for when documented by Discord.
6869

6970
def __getattr__(self, name):
7071
# Forward any attributes the user has to make it easier for devs

0 commit comments

Comments
 (0)