feat(GuildMemberManager): _fetchMany

This commit is contained in:
March 7th
2022-08-09 10:43:16 +07:00
parent de5fe927a3
commit 19dc2ee263
5 changed files with 49 additions and 31 deletions

View File

@@ -27,7 +27,7 @@ class ThreadListSyncAction extends Action {
return coll.set(thread.id, thread);
}, new Collection());
for (const rawMember of Object.values(data.members)) {
for (const rawMember of Object.values(data.members || {})) {
// Discord sends the thread id as id in this object
const thread = client.channels.cache.get(rawMember.id);
if (thread) {

View File

@@ -4,8 +4,6 @@ const { Collection } = require('@discordjs/collection');
const { Events } = require('../../../util/Constants');
module.exports = (client, { d: data }) => {
// Console.log(data);
// console.log(data.ops[0])
const guild = client.guilds.cache.get(data.guild_id);
if (!guild) return;
const members = new Collection();
@@ -21,7 +19,10 @@ module.exports = (client, { d: data }) => {
}
}
} else if (object.op == 'INVALIDATE') {
client.emit(Events.DEBUG, `Invalidate [${object.range[0]}, ${object.range[1]}]`);
client.emit(
Events.DEBUG,
`Invalidate [${object.range[0]}, ${object.range[1]}], Fetching GuildId: ${data.guild_id}`,
);
} else if (object.op == 'UPDATE' || object.op == 'INSERT') {
const member = object.item.member;
if (!member) continue;
@@ -33,5 +34,13 @@ module.exports = (client, { d: data }) => {
// Nothing;
}
}
client.emit(Events.GUILD_MEMBER_LIST_UPDATE, members, guild, data);
/**
* Emitted whenever a guild member list (sidebar) is updated.
* @event Client#guildMemberListUpdate
* @param {Collection<Snowflake, GuildMember>} members Members that were updated
* @param {Guild} guild Guild
* @param {string} type Type of update (INVALIDATE | UPDATE | INSERT | DELETE | SYNC)
* @param {data} raw Raw data
*/
client.emit(Events.GUILD_MEMBER_LIST_UPDATE, members, guild, data.ops[0].op, data);
};

View File

@@ -170,7 +170,7 @@ module.exports = (client, { d: data }, shard) => {
d: {
guild_id: guild.id,
typing: true,
threads: false,
threads: true,
activities: true,
thread_member_lists: [],
members: [],