Skip to content

GuildMemberManager

classe · Source

Manages API methods for GuildMembers and stores their cache.

Extends: CachedManager

Properties

guild

guild: Guild

The guild this manager belongs to Source

cache

cache: Collection<Snowflake, GuildMember>

The cache of this Manager Source

me

readonly · nullable

me: GuildMember

The client user as a GuildMember of this guild Source

_cache

readonly · private

_cache: Collection

The private cache of items for this manager. Source

holds

readonly · private

holds: function

The data structure belonging to this manager. Source

client

readonly

client: Client

The client that instantiated this Manager Source

Methods

resolve

resolve(member: GuildMemberResolvable): GuildMember

Resolves a GuildMemberResolvable to a GuildMember object. Parameters

NameTypeDescription
memberGuildMemberResolvableThe user that is part of the guild

Returns: GuildMemberSource

resolveId

resolveId(member: GuildMemberResolvable): Snowflake

Resolves a GuildMemberResolvable to a member id. Parameters

NameTypeDescription
memberGuildMemberResolvableThe user that is part of the guild

Returns: SnowflakeSource

add

async

async add(user: UserResolvable, options: AddGuildMemberOptions): Promise<(GuildMember|null)>

Adds a user to the guild using OAuth2. Requires the CREATE_INSTANT_INVITE permission. Parameters

NameTypeDescription
userUserResolvableThe user to add to the guild
optionsAddGuildMemberOptionsOptions for adding the user to the guild

Returns: Promise<(GuildMember\|null)>Source

fetch

fetch(options?: UserResolvable | FetchMemberOptions | FetchMembersOptions): Promise<(GuildMember|Collection<Snowflake, GuildMember>)>

Fetches member(s) from Discord, even if they're offline. Parameters

NameTypeDescription
options?UserResolvable | FetchMemberOptions | FetchMembersOptionsIf a UserResolvable, the user to fetch.
If undefined, fetches all members.
If a query, it limits the results to users with similar usernames.

Returns: Promise<(GuildMember\|Collection<Snowflake, GuildMember>)>

js
// Fetch all members from a guild
guild.members.fetch()
  .then(console.log)
  .catch(console.error);
js
// Fetch a single member
guild.members.fetch('66564597481480192')
  .then(console.log)
  .catch(console.error);
js
// Fetch a single member without checking cache
guild.members.fetch({ user, force: true })
  .then(console.log)
  .catch(console.error)
js
// Fetch a single member without caching
guild.members.fetch({ user, cache: false })
  .then(console.log)
  .catch(console.error);
js
// Fetch by an array of users including their presences
guild.members.fetch({ user: ['66564597481480192', '191615925336670208'], withPresences: true })
  .then(console.log)
  .catch(console.error);
js
// Fetch by query
guild.members.fetch({ query: 'hydra', limit: 1 })
  .then(console.log)
  .catch(console.error);

Source

fetchMe

fetchMe(options?: BaseFetchOptions): Promise<GuildMember>

Fetches the client user as a GuildMember of the guild. Parameters

NameTypeDescription
options?BaseFetchOptionsThe options for fetching the member

Returns: Promise<GuildMember>Source

async

async search(options: GuildSearchMembersOptions): Promise<Collection<Snowflake, GuildMember>>

Searches for members in the guild based on a query. Parameters

NameTypeDescription
optionsGuildSearchMembersOptionsOptions for searching members

Returns: Promise<Collection<Snowflake, GuildMember>>Source

edit

async

async edit(user: UserResolvable, data: GuildMemberEditData, reason?: string): Promise<GuildMember>

Edits a member of the guild. The user must be a member of the guild Parameters

NameTypeDescription
userUserResolvableThe member to edit
dataGuildMemberEditDataThe data to edit the member with
reason?stringReason for editing this user

Returns: Promise<GuildMember>Source

prune

async

async prune(options?: GuildPruneMembersOptions): Promise<(number|null)>

Prunes members from the guild based on how long they have been inactive. Parameters

NameTypeDescription
options?GuildPruneMembersOptionsOptions for pruning

Returns: Promise<(number\|null)> — The number of members that were/will be kicked

js
// See how many members will be pruned
guild.members.prune({ dry: true })
  .then(pruned => console.log(`This will prune ${pruned} people!`))
  .catch(console.error);
js
// Actually prune the members
guild.members.prune({ days: 1, reason: 'too many people!' })
  .then(pruned => console.log(`I just pruned ${pruned} people!`))
  .catch(console.error);
js
// Include members with a specified role
guild.members.prune({ days: 7, roles: ['657259391652855808'] })
   .then(pruned => console.log(`I just pruned ${pruned} people!`))
   .catch(console.error);

Source

kick

async

async kick(user: UserResolvable, reason?: string): Promise<(GuildMember|User|Snowflake)>

Kicks a user from the guild. The user must be a member of the guild Parameters

NameTypeDescription
userUserResolvableThe member to kick
reason?stringReason for kicking

Returns: Promise<(GuildMember\|User\|Snowflake)> — Result object will be resolved as specifically as possible. If the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot be resolved, the user's id will be the result.

js
// Kick a user by id (or with a user/guild member object)
guild.members.kick('84484653687267328')
  .then(kickInfo => console.log(`Kicked ${kickInfo.user?.tag ?? kickInfo.tag ?? kickInfo}`))
  .catch(console.error);

Source

ban

ban(user: UserResolvable, options?: BanOptions): Promise<(GuildMember|User|Snowflake)>

Bans a user from the guild. Parameters

NameTypeDescription
userUserResolvableThe user to ban
options?BanOptionsOptions for the ban

Returns: Promise<(GuildMember\|User\|Snowflake)> — Result object will be resolved as specifically as possible. If the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot be resolved, the user id will be the result. Internally calls the GuildBanManager#create method.

js
// Ban a user by id (or with a user/guild member object)
guild.members.ban('84484653687267328')
  .then(banInfo => console.log(`Banned ${banInfo.user?.tag ?? banInfo.tag ?? banInfo}`))
  .catch(console.error);

Source

unban

unban(user: UserResolvable, reason?: string): Promise<?User>

Unbans a user from the guild. Internally calls the GuildBanManager#remove method. Parameters

NameTypeDescription
userUserResolvableThe user to unban
reason?stringReason for unbanning user

Returns: Promise<?User> — The user that was unbanned

js
// Unban a user by id (or with a user/guild member object)
guild.members.unban('84484653687267328')
  .then(user => console.log(`Unbanned ${user.username} from ${guild.name}`))
  .catch(console.error);

Source

addRole

async

async addRole(user: GuildMemberResolvable, role: RoleResolvable, reason?: string): Promise<(GuildMember|User|Snowflake)>

Adds a role to a member. Parameters

NameTypeDescription
userGuildMemberResolvableThe user to add the role from
roleRoleResolvableThe role to add
reason?stringReason for adding the role

Returns: Promise<(GuildMember\|User\|Snowflake)>Source

removeRole

async

async removeRole(user: UserResolvable, role: RoleResolvable, reason?: string): Promise<(GuildMember|User|Snowflake)>

Removes a role from a member. Parameters

NameTypeDescription
userUserResolvableThe user to remove the role from
roleRoleResolvableThe role to remove
reason?stringReason for removing the role

Returns: Promise<(GuildMember\|User\|Snowflake)>Source

fetchByMemberSafety

fetchByMemberSafety(timeout?: number): Promise<Collection<Snowflake, GuildMember>>

Experimental method to fetch members from the guild. Lists up to 10000 members of the guild. Parameters

NameTypeDescription
timeout?numberTimeout for receipt of members in ms Default: 15_000.

Returns: Promise<Collection<Snowflake, GuildMember>>Source

bulkBan

deprecated

bulkBan(users: Collection<Snowflake, UserResolvable> | Array<UserResolvable>, options?: BulkBanOptions): Promise<BulkBanResult>

Bulk ban users from a guild, and optionally delete previous messages sent by them. Parameters

NameTypeDescription
usersCollection<Snowflake, UserResolvable> | Array<UserResolvable>The users to ban
options?BulkBanOptionsThe options for bulk banning users

Returns: Promise<BulkBanResult> — Returns an object with bannedUsers key containing the IDs of the banned users and the key failedUsers with the IDs that could not be banned or were already banned. Internally calls the GuildBanManager#bulkCreate method.

js
// Bulk ban users by ids (or with user/guild member objects) and delete all their messages from the past 7 days
guild.members.bulkBan(['84484653687267328'], { deleteMessageSeconds: 7 * 24 * 60 * 60 })
  .then(result => {
    console.log(`Banned ${result.bannedUsers.length} users, failed to ban ${result.failedUsers.length} users.`)
  })
  .catch(console.error);

Source

Unofficial software. Not affiliated with or supported by Discord.