{"version":3,"file":"Member.mjs","sourceRoot":"","sources":["../../src/payloads/Member.mts"],"names":[],"mappings":"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","sourcesContent":["import { APIGuildMember, APIInteractionDataResolvedGuildMember, APIInteractionGuildMember, CDNRoutes, ImageFormat, UserAvatarFormat } from \"discord-api-types/v10\";\nimport Permissions from \"../basic/Permissions.mjs\";\nimport { DISCORD_CDN_BASE_URL } from \"../constants.mjs\";\nimport User from \"./User.mjs\";\n\n/** A guild member */\nexport class GuildMember {\n    /** This users guild nickname */\n    nickname?: string | null;\n    /** The member's guild avatar hash */\n    avatar?: string | null;\n    /** Array of role object ids */\n    roles: string[];\n    /** When the user joined the guild */\n    joinedAt: Date;\n    /** When the user started boosting the guild */\n    premiumSince?: string | null;\n    /** Whether the user has not yet passed the guild's Membership Screening requirements */\n    pending?: boolean;\n    /** Timestamp of when the time out will be removed; until then, they cannot interact with the guild */\n    communicationDisabledUntil?: string | null;\n\n    /** Whether the user is deafened in voice channels */\n    deaf: boolean;\n    /** Whether the user is muted in voice channels */\n    mute: boolean;\n\n    /** The guild id that this member is in */\n    guildId: string;\n    /** The members's user id */\n    userId: string;\n    /** The member's user object */\n    user?: User;\n\n    constructor(member: APIGuildMember, guildId: string, userId?: string) {\n        this.guildId = guildId;\n        this.userId = userId || member.user!.id;\n        this.user = member.user ? new User(member.user) : undefined;\n\n        this.avatar = member.avatar;\n        this.nickname = member.nick;\n        this.roles = member.roles;\n        this.joinedAt = new Date(member.joined_at);\n        this.premiumSince = member.premium_since;\n        this.pending = member.pending;\n        this.communicationDisabledUntil = member.communication_disabled_until;\n        this.deaf = member.deaf;\n        this.mute = member.mute;\n\n    }\n\n    /** The member's custom avatar in the guild (not to be confused with {@link User.avatarURL}) */\n    memberAvatarURL(config: { extension: UserAvatarFormat, size: number, animatedExtension?: UserAvatarFormat } = { extension: ImageFormat.GIF, size: 512, animatedExtension: ImageFormat.GIF }): string | null {\n        if (!this.avatar) return null;\n        if (!this.avatar.startsWith(\"a_\") && config.extension === ImageFormat.GIF) config.extension = ImageFormat.PNG;\n        return DISCORD_CDN_BASE_URL + CDNRoutes.guildMemberAvatar(this.guildId, this.userId, this.avatar, config.extension) + `?size=${config.size}`;\n    }\n\n}\n\n/** A guild member but from an interaction */\nexport class InteractionGuildMember extends GuildMember {\n    declare user: User;\n    /** The permissions the member has */\n    permissions: Permissions;\n\n    constructor(member: APIInteractionGuildMember, guildId: string, userId?: string) {\n        super(member, guildId, userId);\n\n        this.permissions = new Permissions(member.permissions);\n    }\n\n}\n\n/** A guild member but from the resolved part of an interaction */\nexport class InteractionDataResolvedGuildMember extends InteractionGuildMember {\n\n    constructor(member: APIInteractionDataResolvedGuildMember, guildId: string, userId: string) {\n        // @ts-expect-error: The types for this member is removing properties\n        super(member, guildId, userId);\n    }\n\n    /** @deprecated This will never be filled with data */\n    declare deaf: never;\n\n    /** @deprecated This will never be filled with data */\n    declare muted: never;\n\n    /** @deprecated This will never be filled with data */\n    declare user: never;\n}\n\n\nexport default GuildMember;\n"]}