diff --git a/src/client/websocket/packets/handlers/GuildMembersChunk.js b/src/client/websocket/packets/handlers/GuildMembersChunk.js index e67c1d425..bee51571a 100644 --- a/src/client/websocket/packets/handlers/GuildMembersChunk.js +++ b/src/client/websocket/packets/handlers/GuildMembersChunk.js @@ -17,7 +17,7 @@ class GuildMembersChunkHandler extends AbstractHandler { const members = data.members.map(member => guild._addMember(member, false)); - client.emit(Constants.Events.GUILD_MEMBERS_CHUNK, members); + client.emit(Constants.Events.GUILD_MEMBERS_CHUNK, members, guild); client.ws.lastHeartbeatAck = true; } @@ -27,6 +27,7 @@ class GuildMembersChunkHandler extends AbstractHandler { * Emitted whenever a chunk of guild members is received (all members come from the same guild) * @event Client#guildMembersChunk * @param {Collection} members The members in the chunk + * @param {Guild} guild The guild related to the member chunk */ module.exports = GuildMembersChunkHandler; diff --git a/src/structures/Guild.js b/src/structures/Guild.js index 457593cc9..643a30ac9 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -347,9 +347,10 @@ class Guild { * Fetches all the members in the guild, even if they are offline. If the guild has less than 250 members, * this should not be necessary. * @param {string} [query=''] Limit fetch to members with similar usernames + * @param {number} [limit=0] Maximum number of members to request * @returns {Promise} */ - fetchMembers(query = '') { + fetchMembers(query = '', limit = 0) { return new Promise((resolve, reject) => { if (this.memberCount === this.members.size) { // uncomment in v12 @@ -362,12 +363,12 @@ class Guild { d: { guild_id: this.id, query, - limit: 0, + limit, }, }); const handler = (members, guild) => { if (guild.id !== this.id) return; - if (this.memberCount === this.members.size) { + if (this.memberCount === this.members.size || members.length < 1000) { this.client.removeListener(Constants.Events.GUILD_MEMBERS_CHUNK, handler); // uncomment in v12 // resolve(this.members)