diff --git a/structs.go b/structs.go index fb7e1ff..0a0d38d 100644 --- a/structs.go +++ b/structs.go @@ -1476,6 +1476,22 @@ type Assets struct { SmallText string `json:"small_text,omitempty"` } +// MemberFlags represent flags of a guild member. +// https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags +type MemberFlags int + +// Block containing known MemberFlags values. +const ( + // MemberFlagDidRejoin indicates whether the Member has left and rejoined the guild. + MemberFlagDidRejoin MemberFlags = 1 << 0 + // MemberFlagCompletedOnboarding indicates whether the Member has completed onboarding. + MemberFlagCompletedOnboarding MemberFlags = 1 << 1 + // MemberFlagBypassesVerification indicates whether the Member is exempt from guild verification requirements. + MemberFlagBypassesVerification MemberFlags = 1 << 2 + // MemberFlagStartedOnboarding indicates whether the Member has started onboarding. + MemberFlagStartedOnboarding MemberFlags = 1 << 3 +) + // A Member stores user information for Guild members. A guild // member represents a certain user's presence in a guild. type Member struct { @@ -1506,6 +1522,10 @@ type Member struct { // When the user used their Nitro boost on the server PremiumSince *time.Time `json:"premium_since"` + // The flags of this member. This is a combination of bit masks; the presence of a certain + // flag can be checked by performing a bitwise AND between this int and the flag. + Flags MemberFlags `json:"flags"` + // Is true while the member hasn't accepted the membership screen. Pending bool `json:"pending"`