From e4450c8417624b71d779cb4f41692538f9165e10 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sat, 2 Sep 2023 19:12:47 -0400 Subject: first commit --- .../src/client/actions/ThreadMembersUpdate.js | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js (limited to 'node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js') diff --git a/node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js b/node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js new file mode 100644 index 0000000..c1781b9 --- /dev/null +++ b/node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js @@ -0,0 +1,47 @@ +'use strict'; + +const { Collection } = require('@discordjs/collection'); +const Action = require('./Action'); +const Events = require('../../util/Events'); + +class ThreadMembersUpdateAction extends Action { + handle(data) { + const client = this.client; + const thread = client.channels.cache.get(data.id); + if (thread) { + thread.memberCount = data.member_count; + const addedMembers = new Collection(); + const removedMembers = new Collection(); + + data.added_members?.reduce( + (_addedMembers, addedMember) => _addedMembers.set(addedMember.user_id, thread.members._add(addedMember)), + addedMembers, + ); + + data.removed_member_ids?.reduce((removedMembersIds, removedMembersId) => { + const threadMember = this.getThreadMember(removedMembersId, thread.members); + if (threadMember) removedMembersIds.set(threadMember.id, threadMember); + thread.members.cache.delete(removedMembersId); + return removedMembersIds; + }, removedMembers); + + if (addedMembers.size === 0 && removedMembers.size === 0) { + // Uncached thread member(s) left. + return {}; + } + + /** + * Emitted whenever members are added or removed from a thread. + * This event requires the {@link GatewayIntentBits.GuildMembers} privileged gateway intent. + * @event Client#threadMembersUpdate + * @param {Collection} addedMembers The members that were added + * @param {Collection} removedMembers The members that were removed + * @param {ThreadChannel} thread The thread where members got updated + */ + client.emit(Events.ThreadMembersUpdate, addedMembers, removedMembers, thread); + } + return {}; + } +} + +module.exports = ThreadMembersUpdateAction; -- cgit v1.2.3