summaryrefslogtreecommitdiff
path: root/node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2023-09-02 19:12:47 -0400
committersowgro <tpoke.ferrari@gmail.com>2023-09-02 19:12:47 -0400
commite4450c8417624b71d779cb4f41692538f9165e10 (patch)
treeb70826542223ecdf8a7a259f61b0a1abb8a217d8 /node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js
downloadsowbot3-e4450c8417624b71d779cb4f41692538f9165e10.tar.gz
sowbot3-e4450c8417624b71d779cb4f41692538f9165e10.tar.bz2
sowbot3-e4450c8417624b71d779cb4f41692538f9165e10.zip
first commit
Diffstat (limited to 'node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js')
-rw-r--r--node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js47
1 files changed, 47 insertions, 0 deletions
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.
+ * <info>This event requires the {@link GatewayIntentBits.GuildMembers} privileged gateway intent.</info>
+ * @event Client#threadMembersUpdate
+ * @param {Collection<Snowflake, ThreadMember>} addedMembers The members that were added
+ * @param {Collection<Snowflake, ThreadMember>} 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;