n8n-nodes-discord-dnd 0.1.70 → 0.1.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ class DiscordEventHandler {
11
11
  async setupEventHandler(event) {
12
12
  // Handle main events
13
13
  this.client.on(event, async (...args) => {
14
- var _a, _b, _c, _d, _e, _f, _g;
14
+ var _a, _b, _c, _d, _e, _f;
15
15
  const data = {};
16
16
  // Helper to enrich user/member info with roles
17
17
  const enrichMember = async (memberOrUser, guildId) => {
@@ -24,14 +24,13 @@ class DiscordEventHandler {
24
24
  return {
25
25
  ...memberOrUser,
26
26
  roles: (member === null || member === void 0 ? void 0 : member.roles.cache.map((role) => ({
27
- id: role.id,
28
- name: role.name,
27
+ ...role,
29
28
  }))) || [],
30
29
  };
31
30
  };
32
31
  switch (event) {
33
32
  // Message events
34
- case "messageCreate":
33
+ case discord_js_1.Events.MessageCreate:
35
34
  const message = args[0];
36
35
  data.message = await (0, MessageTransformer_1.messageToJson)(message);
37
36
  // Use the guild ID from the message when enriching the author
@@ -39,89 +38,74 @@ class DiscordEventHandler {
39
38
  data.user = await enrichMember(message.author, message.guildId);
40
39
  }
41
40
  else {
42
- data.user = message.author;
41
+ data.user = { ...message.author };
43
42
  }
44
43
  break;
45
- case "messageDelete":
44
+ case discord_js_1.Events.MessageDelete:
46
45
  const deletedMessage = args[0];
47
46
  data.message = { ...deletedMessage };
48
47
  break;
49
- case "messageDeleteBulk":
48
+ case discord_js_1.Events.MessageBulkDelete:
50
49
  const deletedMessages = args[0]; // Collection<Snowflake, Message>
51
50
  const channelMessageDeleteBulk = args[1]; // TextBasedChannel
52
51
  // Trích xuất thông tin kênh
53
52
  data.channel = {
54
- id: channelMessageDeleteBulk.id,
55
- name: channelMessageDeleteBulk.name || "DM",
56
- guildId: channelMessageDeleteBulk.guildId || null,
57
- type: channelMessageDeleteBulk.type,
53
+ ...channelMessageDeleteBulk,
58
54
  };
59
55
  // Trích xuất danh sách tin nhắn bị xóa
60
- data.deletedMessages = deletedMessages.map((message) => {
61
- var _a;
62
- return ({
63
- id: message.id,
64
- content: message.content || "",
65
- authorId: (_a = message.author) === null || _a === void 0 ? void 0 : _a.id,
66
- createdTimestamp: message.createdTimestamp,
67
- });
68
- });
56
+ data.deletedMessages = deletedMessages.map((message) => ({
57
+ ...message,
58
+ }));
69
59
  // Tổng số tin nhắn bị xóa
70
60
  data.deletedCount = deletedMessages.size;
71
61
  break;
72
- case "messageUpdate":
62
+ case discord_js_1.Events.MessageUpdate:
73
63
  const oldMessage = args[0];
74
64
  const newMessage = args[1];
75
65
  data.oldMessage = { ...oldMessage };
76
66
  data.newMessage = { ...newMessage };
77
67
  break;
78
- case "messageReactionAdd":
79
- case "messageReactionRemove":
80
- const reaction = args[0];
68
+ case discord_js_1.Events.MessageReactionAdd:
69
+ case discord_js_1.Events.MessageReactionRemove:
70
+ const messageReaction = args[0];
81
71
  const reactUser = args[1];
82
- data.reaction = { ...reaction };
83
- data.user = await enrichMember(reactUser, reaction.message.guildId || undefined);
72
+ const details = args[2]; // MessageReactionEventDetails
73
+ data.messageReaction = { ...messageReaction };
74
+ data.user = await enrichMember(reactUser, messageReaction.message.guildId || undefined);
75
+ data.details = { ...details };
84
76
  break;
85
- case "messageReactionRemoveAll":
77
+ case discord_js_1.Events.MessageReactionRemoveAll:
86
78
  const messageReactionRemoved = args[0];
79
+ const reactions = args[1]; // Collection<Snowflake, MessageReaction>
87
80
  data.message = { ...messageReactionRemoved };
81
+ data.reactions = reactions.map((reaction) => ({
82
+ ...reaction,
83
+ }));
88
84
  break;
89
- case "messageReactionRemoveEmoji":
85
+ case discord_js_1.Events.MessageReactionRemoveEmoji:
90
86
  const reactionMessageReactionRemoveEmoji = args[0]; // MessageReaction
91
- console.log(`🚀 ~ messageReactionRemoveEmoji - Emoji ${reactionMessageReactionRemoveEmoji.emoji.name} removed from message ${reactionMessageReactionRemoveEmoji.message.id}`);
92
87
  // Trích xuất thông tin tin nhắn và reaction
93
88
  data.reaction = {
94
- emoji: {
95
- id: reactionMessageReactionRemoveEmoji.emoji.id,
96
- name: reactionMessageReactionRemoveEmoji.emoji.name,
97
- animated: reactionMessageReactionRemoveEmoji.emoji.animated || false,
98
- },
99
- message: {
100
- id: reactionMessageReactionRemoveEmoji.message.id,
101
- channelId: reactionMessageReactionRemoveEmoji.message.channelId,
102
- guildId: reactionMessageReactionRemoveEmoji.message.guildId || null,
103
- content: reactionMessageReactionRemoveEmoji.message.content || "",
104
- authorId: (_a = reactionMessageReactionRemoveEmoji.message.author) === null || _a === void 0 ? void 0 : _a.id,
105
- },
89
+ ...reactionMessageReactionRemoveEmoji,
106
90
  };
107
91
  break;
108
- case "typingStart":
92
+ case discord_js_1.Events.TypingStart:
109
93
  const typing = args[0];
110
94
  data.typing = { ...typing };
111
95
  if (typing.user) {
112
- data.user = await enrichMember(typing.user, typing.guildId);
96
+ data.user = await enrichMember(typing.user);
113
97
  }
114
98
  break;
115
99
  // Guild events
116
- case "channelCreate":
100
+ case discord_js_1.Events.ChannelCreate:
117
101
  const channel = args[0];
118
102
  data.channel = { ...channel };
119
103
  break;
120
- case "channelDelete":
104
+ case discord_js_1.Events.ChannelDelete:
121
105
  const deletedChannel = args[0];
122
106
  data.channel = { ...deletedChannel };
123
107
  break;
124
- case "channelPinsUpdate":
108
+ case discord_js_1.Events.ChannelPinsUpdate:
125
109
  const pinsChannel = args[0]; // GuildChannel hoặc ThreadChannel
126
110
  const pinTimestamp = args[1]; // Date
127
111
  // Trích xuất thông tin cơ bản của channel
@@ -143,12 +127,12 @@ class DiscordEventHandler {
143
127
  guildId: latestPinnedMessage.guildId,
144
128
  createdTimestamp: latestPinnedMessage.createdTimestamp,
145
129
  author: {
146
- id: (_b = latestPinnedMessage.author) === null || _b === void 0 ? void 0 : _b.id,
147
- username: (_c = latestPinnedMessage.author) === null || _c === void 0 ? void 0 : _c.username,
148
- discriminator: (_d = latestPinnedMessage.author) === null || _d === void 0 ? void 0 : _d.discriminator,
149
- globalName: (_e = latestPinnedMessage.author) === null || _e === void 0 ? void 0 : _e.globalName,
150
- avatar: (_f = latestPinnedMessage.author) === null || _f === void 0 ? void 0 : _f.avatar,
151
- bot: (_g = latestPinnedMessage.author) === null || _g === void 0 ? void 0 : _g.bot,
130
+ id: (_a = latestPinnedMessage.author) === null || _a === void 0 ? void 0 : _a.id,
131
+ username: (_b = latestPinnedMessage.author) === null || _b === void 0 ? void 0 : _b.username,
132
+ discriminator: (_c = latestPinnedMessage.author) === null || _c === void 0 ? void 0 : _c.discriminator,
133
+ globalName: (_d = latestPinnedMessage.author) === null || _d === void 0 ? void 0 : _d.globalName,
134
+ avatar: (_e = latestPinnedMessage.author) === null || _e === void 0 ? void 0 : _e.avatar,
135
+ bot: (_f = latestPinnedMessage.author) === null || _f === void 0 ? void 0 : _f.bot,
152
136
  },
153
137
  pinned: latestPinnedMessage.pinned,
154
138
  pinnedAt: pinTimestamp.toISOString(), // Thời gian ghim (dùng pinTimestamp từ sự kiện)
@@ -163,15 +147,9 @@ class DiscordEventHandler {
163
147
  data.pinnedMessage = null;
164
148
  }
165
149
  // Lưu toàn bộ danh sách tin nhắn ghim (nếu cần)
166
- data.pinnedMessages = pinnedMessages.map((message) => {
167
- var _a;
168
- return ({
169
- id: message.id,
170
- content: message.content,
171
- authorId: (_a = message.author) === null || _a === void 0 ? void 0 : _a.id,
172
- createdTimestamp: message.createdTimestamp,
173
- });
174
- });
150
+ data.pinnedMessages = pinnedMessages.map((message) => ({
151
+ ...message,
152
+ }));
175
153
  }
176
154
  catch (error) {
177
155
  console.error("Lỗi khi fetch tin nhắn ghim:", error);
@@ -179,136 +157,77 @@ class DiscordEventHandler {
179
157
  data.pinnedMessages = [];
180
158
  }
181
159
  break;
182
- case "channelUpdate":
160
+ case discord_js_1.Events.ChannelUpdate:
183
161
  const oldChannel = args[0];
184
162
  const newChannel = args[1];
185
163
  data.oldChannel = { ...oldChannel };
186
164
  data.newChannel = { ...newChannel };
187
165
  break;
188
- case "guildAvailable":
166
+ case discord_js_1.Events.GuildAvailable:
189
167
  const guildAvailable = args[0]; // Đối tượng Guild
190
168
  // Trích xuất thông tin chi tiết từ guild
191
169
  data.guild = {
192
- id: guildAvailable.id,
193
- name: guildAvailable.name,
194
- icon: guildAvailable.icon,
195
- description: guildAvailable.description,
196
- memberCount: guildAvailable.memberCount,
197
- ownerId: guildAvailable.ownerId,
198
- joinedTimestamp: guildAvailable.joinedTimestamp,
199
- available: guildAvailable.available,
170
+ ...guildAvailable,
200
171
  channels: guildAvailable.channels.cache.map((channel) => ({
201
- id: channel.id,
202
- name: channel.name,
203
- type: channel.type,
172
+ ...channel,
173
+ })),
174
+ roles: guildAvailable.roles.cache.map((role) => ({
175
+ ...role,
204
176
  })),
205
- roles: guildAvailable.roles.cache.map((role) => {
206
- var _a;
207
- return ({
208
- id: role.id,
209
- name: role.name,
210
- color: role.color,
211
- permissions: (_a = role.permissions) === null || _a === void 0 ? void 0 : _a.bitfield,
212
- });
213
- }),
214
177
  // Nếu cần, fetch owner của guild
215
178
  owner: await guildAvailable
216
179
  .fetchOwner()
217
- .then((owner) => {
218
- var _a, _b;
219
- return ({
220
- id: owner.id,
221
- username: (_a = owner.user) === null || _a === void 0 ? void 0 : _a.username,
222
- globalName: (_b = owner.user) === null || _b === void 0 ? void 0 : _b.globalName,
223
- nickname: owner.nickname,
224
- });
225
- })
180
+ .then((owner) => ({
181
+ ...owner,
182
+ }))
226
183
  .catch((error) => {
227
184
  console.error("Lỗi khi fetch owner:", error);
228
185
  return null;
229
186
  }),
230
187
  };
231
188
  break;
232
- case "guildCreate":
189
+ case discord_js_1.Events.GuildCreate:
233
190
  const guildCreated = args[0]; // Guild
234
191
  console.log(`🚀 ~ guildCreate - Bot được thêm vào guild ${guildCreated.name} (ID: ${guildCreated.id})`);
235
192
  data.guild = {
236
- id: guildCreated.id,
237
- name: guildCreated.name,
238
- icon: guildCreated.icon,
239
- description: guildCreated.description,
240
- memberCount: guildCreated.memberCount,
241
- ownerId: guildCreated.ownerId,
242
- joinedTimestamp: guildCreated.joinedTimestamp,
243
- available: guildCreated.available,
193
+ ...guildCreated,
244
194
  channels: guildCreated.channels.cache.map((channel) => ({
245
- id: channel.id,
246
- name: channel.name,
247
- type: channel.type,
195
+ ...channel,
196
+ })),
197
+ roles: guildCreated.roles.cache.map((role) => ({
198
+ ...role,
248
199
  })),
249
- roles: guildCreated.roles.cache.map((role) => {
250
- var _a;
251
- return ({
252
- id: role.id,
253
- name: role.name,
254
- color: role.color,
255
- permissions: (_a = role.permissions) === null || _a === void 0 ? void 0 : _a.bitfield,
256
- });
257
- }),
258
200
  owner: await guildCreated
259
201
  .fetchOwner()
260
- .then((owner) => {
261
- var _a, _b;
262
- return ({
263
- id: owner.id,
264
- username: (_a = owner.user) === null || _a === void 0 ? void 0 : _a.username,
265
- globalName: (_b = owner.user) === null || _b === void 0 ? void 0 : _b.globalName,
266
- nickname: owner.nickname,
267
- });
268
- })
202
+ .then((owner) => ({
203
+ ...owner,
204
+ }))
269
205
  .catch((error) => {
270
206
  console.error("Lỗi khi fetch owner:", error);
271
207
  return null;
272
208
  }),
273
209
  };
274
210
  break;
275
- case "guildDelete":
211
+ case discord_js_1.Events.GuildDelete:
276
212
  const guildDeleted = args[0]; // Guild hoặc PartialGuild
277
- console.log(`🚀 ~ guildDelete - Bot bị xóa khỏi guild ${guildDeleted.name || "unknown"} (ID: ${guildDeleted.id})`);
278
213
  data.guild = {
279
- id: guildDeleted.id,
280
- name: guildDeleted.name || "unknown",
281
- available: guildDeleted.available || false, // Có thể là false nếu guild không khả dụng
214
+ ...guildDeleted,
282
215
  };
283
216
  break;
284
- case "guildUnavailable":
217
+ case discord_js_1.Events.GuildUnavailable:
285
218
  const guildUnavailable = args[0]; // Guild
286
- console.log(`🚀 ~ guildUnavailable - Guild ${guildUnavailable.name} (ID: ${guildUnavailable.id}) không khả dụng.`);
287
219
  data.guild = {
288
- id: guildUnavailable.id,
289
- name: guildUnavailable.name,
290
- available: guildUnavailable.available, // Sẽ là false
220
+ ...guildUnavailable,
291
221
  };
292
222
  break;
293
- case "guildUpdate":
223
+ case discord_js_1.Events.GuildUpdate:
294
224
  const oldGuild = args[0]; // Guild trước khi thay đổi
295
225
  const newGuild = args[1]; // Guild sau khi thay đổi
296
- console.log(`🚀 ~ guildUpdate - Guild ${oldGuild.name} (ID: ${oldGuild.id}) đã được cập nhật.`);
297
226
  data.oldGuild = {
298
- id: oldGuild.id,
299
- name: oldGuild.name,
300
- icon: oldGuild.icon,
301
- description: oldGuild.description,
302
- memberCount: oldGuild.memberCount,
303
- ownerId: oldGuild.ownerId,
227
+ ...oldGuild,
304
228
  };
305
229
  data.newGuild = {
306
- id: newGuild.id,
307
- name: newGuild.name,
308
- icon: newGuild.icon,
309
- description: newGuild.description,
310
- memberCount: newGuild.memberCount,
311
- ownerId: newGuild.ownerId,
230
+ ...newGuild,
312
231
  };
313
232
  // So sánh thay đổi (ví dụ: log những thay đổi chính)
314
233
  data.changes = {};
@@ -328,52 +247,32 @@ class DiscordEventHandler {
328
247
  new: newGuild.description,
329
248
  };
330
249
  break;
331
- case "roleCreate":
332
- case "roleDelete":
250
+ case discord_js_1.Events.GuildRoleCreate:
251
+ case discord_js_1.Events.GuildRoleDelete:
333
252
  const role = args[0];
334
253
  data.role = { ...role };
335
- data.guild = { ...role.guild };
336
254
  break;
337
- case "roleUpdate":
255
+ case discord_js_1.Events.GuildRoleUpdate:
338
256
  const oldRole = args[0];
339
257
  const newRole = args[1];
340
258
  data.oldRole = { ...oldRole };
341
259
  data.newRole = { ...newRole };
342
- data.guild = { ...newRole.guild };
343
- break;
344
- case "stageInstanceCreate":
345
- const stageInstanceCreated = args[0]; // StageInstance
346
- data.stageInstance = { ...stageInstanceCreated };
347
- break;
348
- case "stageInstanceDelete":
349
- const stageInstanceDeleted = args[0]; // StageInstance
350
- data.stageInstance = {
351
- id: stageInstanceDeleted.id,
352
- channelId: stageInstanceDeleted.channelId,
353
- guildId: stageInstanceDeleted.guildId,
354
- topic: stageInstanceDeleted.topic,
355
- privacyLevel: stageInstanceDeleted.privacyLevel,
356
- };
357
260
  break;
358
- case "stageInstanceUpdate":
261
+ case discord_js_1.Events.StageInstanceCreate:
262
+ case discord_js_1.Events.StageInstanceDelete:
263
+ const stageInstance = args[0]; // StageInstance
264
+ data.stageInstance = { ...stageInstance };
265
+ break;
266
+ case discord_js_1.Events.StageInstanceUpdate:
359
267
  const oldStageInstance = args[0]; // StageInstance trước khi thay đổi
360
268
  const newStageInstance = args[1]; // StageInstance sau khi thay đổi
361
269
  data.oldStageInstance = oldStageInstance
362
270
  ? {
363
- id: oldStageInstance.id,
364
- channelId: oldStageInstance.channelId,
365
- guildId: oldStageInstance.guildId,
366
- topic: oldStageInstance.topic,
367
- privacyLevel: oldStageInstance.privacyLevel,
271
+ ...oldStageInstance,
368
272
  }
369
273
  : null;
370
274
  data.newStageInstance = {
371
- id: newStageInstance.id,
372
- channelId: newStageInstance.channelId,
373
- guildId: newStageInstance.guildId,
374
- topic: newStageInstance.topic,
375
- privacyLevel: newStageInstance.privacyLevel,
376
- discoverableDisabled: newStageInstance.discoverableDisabled,
275
+ ...newStageInstance,
377
276
  };
378
277
  // So sánh thay đổi
379
278
  data.changes = {};
@@ -392,184 +291,78 @@ class DiscordEventHandler {
392
291
  };
393
292
  }
394
293
  break;
395
- case "threadCreate":
294
+ case discord_js_1.Events.ThreadCreate:
396
295
  const threadCreate = args[0];
296
+ const newlyCreated = args[1];
397
297
  data.thread = { ...threadCreate };
298
+ data.newlyCreated = newlyCreated; // true nếu thread mới được tạo
398
299
  break;
399
- case "threadDelete":
300
+ case discord_js_1.Events.ThreadDelete:
400
301
  const deletedThread = args[0];
401
302
  data.thread = { ...deletedThread };
402
303
  break;
403
- case "threadListSync":
304
+ case discord_js_1.Events.ThreadListSync:
404
305
  const syncedThreads = args[0]; // Collection<Snowflake, ThreadChannel>
405
- const channels = args[1]; // Collection<Snowflake, GuildChannel>
406
- const guildThreadListSync = args[2]; // Guild
407
- console.log(`🚀 ~ threadListSync - Synced ${syncedThreads.size} threads in guild ${guildThreadListSync.name} (ID: ${guildThreadListSync.id})`);
408
- // Trích xuất thông tin guild
409
- data.guild = {
410
- id: guildThreadListSync.id,
411
- name: guildThreadListSync.name,
412
- };
413
- // Trích xuất danh sách kênh
414
- data.channels = channels.map((channel) => ({
415
- id: channel.id,
416
- name: channel.name,
417
- type: channel.type,
418
- }));
306
+ const guildThreadListSync = args[1]; // Guild
419
307
  // Trích xuất danh sách thread được đồng bộ
420
308
  data.syncedThreads = syncedThreads.map((thread) => ({
421
- id: thread.id,
422
- name: thread.name,
423
- channelId: thread.parentId,
424
- guildId: thread.guildId,
425
- memberCount: thread.memberCount,
426
- createdTimestamp: thread.createdTimestamp,
309
+ ...thread,
427
310
  }));
428
- case "threadMembersUpdate":
311
+ data.guild = { ...guildThreadListSync };
312
+ break;
313
+ case discord_js_1.Events.ThreadMembersUpdate:
429
314
  const addedMembers = args[0]; // Collection<Snowflake, ThreadMember>
430
315
  const removedMembers = args[1]; // Collection<Snowflake, ThreadMember>
431
316
  const threadMembersUpdate = args[2]; // ThreadChannel
432
- console.log(`🚀 ~ threadMembersUpdate - Thread ${threadMembersUpdate.name} (ID: ${threadMembersUpdate.id}) updated members.`);
433
317
  // Trích xuất thông tin thread
434
318
  data.thread = {
435
- id: threadMembersUpdate.id,
436
- name: threadMembersUpdate.name,
437
- channelId: threadMembersUpdate.parentId,
438
- guildId: threadMembersUpdate.guildId,
439
- memberCount: threadMembersUpdate.memberCount,
319
+ ...threadMembersUpdate,
440
320
  };
441
321
  // Trích xuất danh sách thành viên được thêm
442
322
  data.addedMembers = addedMembers.map((member) => ({
443
- id: member.id,
444
- userId: member.user,
323
+ ...member,
445
324
  }));
446
325
  // Trích xuất danh sách thành viên bị xóa
447
326
  data.removedMembers = removedMembers.map((member) => ({
448
- id: member.id,
449
- user: member.user,
327
+ ...member,
450
328
  }));
451
- // Nếu cần, fetch thông tin chi tiết của thành viên (yêu cầu GUILD_MEMBERS intent)
452
- if (threadMembersUpdate.guild &&
453
- (addedMembers.size > 0 || removedMembers.size > 0)) {
454
- data.addedMembersDetails = await Promise.all(addedMembers.map(async (member) => ({
455
- id: member.id,
456
- user: await thread.guild.members
457
- .fetch(member.user)
458
- .then((m) => {
459
- var _a, _b;
460
- return ({
461
- id: m.id,
462
- username: (_a = m.user) === null || _a === void 0 ? void 0 : _a.username,
463
- globalName: (_b = m.user) === null || _b === void 0 ? void 0 : _b.globalName,
464
- nickname: m.nickname,
465
- });
466
- })
467
- .catch(() => null),
468
- })));
469
- data.removedMembersDetails = await Promise.all(removedMembers.map(async (member) => ({
470
- id: member.id,
471
- user: await thread.guild.members
472
- .fetch(member.user)
473
- .then((m) => {
474
- var _a, _b;
475
- return ({
476
- id: m.id,
477
- username: (_a = m.user) === null || _a === void 0 ? void 0 : _a.username,
478
- globalName: (_b = m.user) === null || _b === void 0 ? void 0 : _b.globalName,
479
- nickname: m.nickname,
480
- });
481
- })
482
- .catch(() => null),
483
- })));
484
- }
485
329
  break;
486
- case "threadMemberUpdate":
330
+ case discord_js_1.Events.ThreadMemberUpdate:
487
331
  const oldMember = args[0]; // ThreadMember trước khi thay đổi
488
332
  const newMember = args[1]; // ThreadMember sau khi thay đổi
489
- console.log(`🚀 ~ threadMemberUpdate - Thread member updated in thread ${newMember.thread.id}`);
490
- // Trích xuất thông tin thread
491
- const thread = newMember.thread;
492
- data.thread = {
493
- id: thread.id,
494
- name: thread.name,
495
- channelId: thread.parentId,
496
- guildId: thread.guildId,
497
- memberCount: thread.memberCount,
498
- };
499
333
  // Trích xuất thông tin thành viên trước và sau khi thay đổi
500
334
  data.oldMember = {
501
- id: oldMember.id,
502
- userId: oldMember.userId,
503
- threadId: oldMember.threadId,
335
+ ...oldMember,
504
336
  };
505
337
  data.newMember = {
506
- id: newMember.id,
507
- userId: newMember.userId,
508
- threadId: newMember.threadId,
338
+ ...newMember,
509
339
  };
510
- // So sánh thay đổi (nếu có)
511
- data.changes = {};
512
- // Hiện tại ThreadMember không có nhiều thuộc tính có thể thay đổi, nhưng bạn có thể thêm logic so sánh nếu Discord cập nhật thêm tính năng
513
- // Ví dụ: if (oldMember.someProperty !== newMember.someProperty) { ... }
514
- // Fetch thông tin chi tiết của thành viên (nếu cần)
515
- if (thread.guild) {
516
- data.memberDetails = await thread.guild.members
517
- .fetch(newMember.userId)
518
- .then((member) => {
519
- var _a, _b;
520
- return ({
521
- id: member.id,
522
- username: (_a = member.user) === null || _a === void 0 ? void 0 : _a.username,
523
- globalName: (_b = member.user) === null || _b === void 0 ? void 0 : _b.globalName,
524
- nickname: member.nickname,
525
- roles: member.roles.cache.map((role) => ({
526
- id: role.id,
527
- name: role.name,
528
- })),
529
- });
530
- })
531
- .catch((error) => {
532
- console.error("Lỗi khi fetch member:", error);
533
- return null;
534
- });
535
- }
536
340
  break;
537
- case "threadUpdate":
341
+ case discord_js_1.Events.ThreadUpdate:
538
342
  const oldThread = args[0];
539
343
  const newThread = args[1];
540
344
  data.oldThread = { ...oldThread };
541
345
  data.newThread = { ...newThread };
542
346
  break;
543
347
  // Moderation events
544
- case "guildBanAdd":
545
- case "guildBanRemove":
348
+ case discord_js_1.Events.GuildBanAdd:
349
+ case discord_js_1.Events.GuildBanRemove:
546
350
  const ban = args[0];
547
351
  data.ban = { ...ban };
548
- data.guild = { ...ban.guild };
549
- data.user = await enrichMember(ban.user, ban.guild.id);
550
352
  break;
551
- case "guildAuditLogEntryCreate":
353
+ case discord_js_1.Events.GuildAuditLogEntryCreate:
552
354
  const auditLogEntry = args[0]; // GuildAuditLogsEntry
553
355
  const guildAuditLogEntry = args[1]; // Guild
554
356
  // Trích xuất thông tin từ audit log entry
555
357
  data.auditLogEntry = {
556
- id: auditLogEntry.id,
557
- guildId: guildAuditLogEntry.id,
558
- action: auditLogEntry.action,
559
- executorId: auditLogEntry.executorId,
560
- targetId: auditLogEntry.targetId,
561
- reason: auditLogEntry.reason || null,
562
- createdTimestamp: auditLogEntry.createdTimestamp,
358
+ ...auditLogEntry,
563
359
  };
564
360
  // Fetch thông tin chi tiết của người thực hiện hành động (executor)
565
361
  if (auditLogEntry.executorId) {
566
362
  try {
567
363
  const executor = await guildAuditLogEntry.client.users.fetch(auditLogEntry.executorId);
568
364
  data.executor = {
569
- id: executor.id,
570
- username: executor.username,
571
- globalName: executor.globalName,
572
- tag: executor.tag,
365
+ ...executor,
573
366
  };
574
367
  }
575
368
  catch (error) {
@@ -577,112 +370,98 @@ class DiscordEventHandler {
577
370
  data.executor = null;
578
371
  }
579
372
  }
373
+ data.guildAuditLogEntry = { ...guildAuditLogEntry };
580
374
  break;
581
375
  // Emoji & Sticker events
582
- case "emojiCreate":
583
- const emojiCreated = args[0]; // Emoji
584
- data.emoji = { ...emojiCreated };
585
- case "emojiDelete":
586
- const emojiDeleted = args[0]; // Emoji
587
- data.emoji = { ...emojiDeleted };
588
- break;
589
- case "emojiUpdate":
376
+ case discord_js_1.Events.GuildEmojiCreate:
377
+ case discord_js_1.Events.GuildEmojiDelete:
378
+ const emoji = args[0]; // Emoji
379
+ data.emoji = { ...emoji };
380
+ break;
381
+ case discord_js_1.Events.GuildEmojiUpdate:
590
382
  const oldEmoji = args[0]; // Emoji trước khi thay đổi
591
383
  const newEmoji = args[1]; // Emoji sau khi thay đổi
592
384
  data.oldEmoji = { ...oldEmoji };
593
385
  data.newEmoji = { ...newEmoji };
594
386
  break;
595
- case "stickerCreate":
596
- const stickerCreated = args[0]; // Sticker
597
- data.sticker = { ...stickerCreated };
387
+ case discord_js_1.Events.GuildStickerCreate:
388
+ case discord_js_1.Events.GuildStickerDelete:
389
+ const sticker = args[0]; // Sticker
390
+ data.sticker = { ...sticker };
598
391
  break;
599
- case "stickerDelete":
600
- const stickerDeleted = args[0]; // Sticker
601
- data.sticker = { ...stickerDeleted };
602
- break;
603
- case "stickerUpdate":
392
+ case discord_js_1.Events.GuildStickerUpdate:
604
393
  const oldSticker = args[0]; // Sticker trước khi thay đổi
605
394
  const newSticker = args[1]; // Sticker sau khi thay đổi
606
395
  data.oldSticker = { ...oldSticker };
607
396
  data.newSticker = { ...newSticker };
608
397
  break;
609
398
  // Integration & Webhook events
610
- case "guildIntegrationsUpdate":
399
+ case discord_js_1.Events.GuildIntegrationsUpdate:
611
400
  const guildIntegrations = args[0]; // Guild
612
401
  data.guild = {
613
- id: guildIntegrations.id,
614
- name: guildIntegrations.name,
402
+ ...guildIntegrations,
615
403
  };
616
404
  break;
617
- case "webhooksUpdate":
405
+ case discord_js_1.Events.WebhooksUpdate:
618
406
  const webhooksChannel = args[0]; // Channel
619
407
  data.webhooksChannel = {
620
408
  ...webhooksChannel,
621
409
  };
622
- data.guild = {
623
- id: webhooksChannel.guildId,
624
- name: webhooksChannel.guild.name,
625
- };
626
410
  break;
627
411
  // Invite events
628
- case "inviteCreate":
412
+ case discord_js_1.Events.InviteCreate:
413
+ case discord_js_1.Events.InviteDelete:
629
414
  const inviteCreated = args[0]; // Invite
630
415
  data.invite = { ...inviteCreated };
631
- data.guild = { ...inviteCreated.guild };
632
- break;
633
- case "inviteDelete":
634
- const inviteDeleted = args[0]; // Invite
635
- data.invite = { ...inviteDeleted };
636
- data.guild = { ...inviteDeleted.guild };
637
416
  break;
638
417
  // Voice events
639
- case "voiceChannelEffectSend":
418
+ case discord_js_1.Events.VoiceChannelEffectSend:
640
419
  const voiceChannelEffectSend = args[0]; // VoiceChannelEffectSend
641
420
  data.voiceChannelEffectSend = { ...voiceChannelEffectSend };
642
421
  break;
643
- case "voiceStateUpdate":
422
+ case discord_js_1.Events.VoiceStateUpdate:
644
423
  const oldVoiceState = args[0]; // VoiceState trước khi thay đổi
645
424
  const newVoiceState = args[1]; // VoiceState sau khi thay đổi
646
425
  data.oldVoiceState = { ...oldVoiceState };
647
426
  data.newVoiceState = { ...newVoiceState };
648
427
  break;
649
428
  // Presence events
650
- case "presenceUpdate":
429
+ case discord_js_1.Events.PresenceUpdate:
651
430
  const oldPresence = args[0];
652
431
  const newPresence = args[1];
653
- if (oldPresence)
654
- data.oldPresence = { ...oldPresence };
432
+ data.oldPresence = oldPresence
433
+ ? {
434
+ ...oldPresence,
435
+ }
436
+ : null;
655
437
  data.newPresence = { ...newPresence };
656
438
  break;
657
439
  // Scheduled event events
658
- case "guildScheduledEventCreate":
659
- case "guildScheduledEventDelete":
660
- case "guildScheduledEventUpdate":
661
- const scheduledEvent = args[0];
662
- data.scheduledEvent = { ...scheduledEvent };
663
- data.guild = { ...scheduledEvent.guild };
664
- break;
665
- case "guildScheduledEventUserAdd":
666
- case "guildScheduledEventUserRemove":
440
+ case discord_js_1.Events.GuildScheduledEventCreate:
441
+ case discord_js_1.Events.GuildScheduledEventDelete:
442
+ const guildScheduled = args[0]; // GuildScheduledEvent
443
+ data.guildScheduledEvent = { ...guildScheduled };
444
+ data.guild = { ...guildScheduled.guild };
445
+ break;
446
+ case discord_js_1.Events.GuildScheduledEventUpdate:
447
+ const oldGuildScheduledEvent = args[0]; // GuildScheduledEvent trước khi thay đổi
448
+ const newGuildScheduledEvent = args[1]; // GuildScheduledEvent sau khi thay đổi
449
+ data.oldGuildScheduledEvent = oldGuildScheduledEvent
450
+ ? { ...oldGuildScheduledEvent }
451
+ : null;
452
+ data.newGuildScheduledEvent = { ...newGuildScheduledEvent };
453
+ break;
454
+ case discord_js_1.Events.GuildScheduledEventUserAdd:
455
+ case discord_js_1.Events.GuildScheduledEventUserRemove:
667
456
  const guildScheduledEvent = args[0];
668
457
  const user = args[1];
669
458
  data.user = { ...user };
670
459
  data.guildScheduledEvent = { ...guildScheduledEvent };
671
- data.guild = { ...guildScheduledEvent.guild };
672
460
  break;
673
461
  // Interaction events
674
- case "interactionCreate":
462
+ case discord_js_1.Events.InteractionCreate:
675
463
  const interaction = args[0];
676
464
  data.interaction = { ...interaction };
677
- if (interaction.guild) {
678
- data.guild = {
679
- id: interaction.guild.id,
680
- name: interaction.guild.name,
681
- };
682
- }
683
- if (interaction.user) {
684
- data.user = await enrichMember(interaction.user, interaction.guildId || undefined);
685
- }
686
465
  break;
687
466
  case discord_js_1.Events.ApplicationCommandPermissionsUpdate:
688
467
  const dataApp = args[0]; // ApplicationCommandPermissionsUpdateData
@@ -721,17 +500,17 @@ class DiscordEventHandler {
721
500
  const ShardReadyId = args[0];
722
501
  const unavailableGuilds = args[1];
723
502
  data.ShardReadyId = ShardReadyId;
724
- data.unavailableGuilds = unavailableGuilds;
503
+ data.unavailableGuilds = { ...unavailableGuilds };
725
504
  break;
726
505
  case discord_js_1.Events.ShardReconnecting:
727
506
  const ShardReconnectingId = args[0];
728
- data.ShardReconnectingId = ShardReconnectingId;
507
+ data.id = ShardReconnectingId;
729
508
  break;
730
509
  case discord_js_1.Events.ShardResume:
731
510
  const ShardResumeId = args[0];
732
511
  const replayedEvents = args[1];
733
- data.ShardResumeId = ShardResumeId;
734
- data.replayedEvents = replayedEvents;
512
+ data.id = ShardResumeId;
513
+ data.replayedEvent = replayedEvents;
735
514
  break;
736
515
  // User event
737
516
  case discord_js_1.Events.UserUpdate:
@@ -742,21 +521,16 @@ class DiscordEventHandler {
742
521
  break;
743
522
  // Member events
744
523
  case discord_js_1.Events.GuildMemberAdd:
745
- const memberAdded = args[0]; // GuildMember
746
- data.member = { ...memberAdded };
747
- break;
748
524
  case discord_js_1.Events.GuildMemberAvailable:
749
- const memberAvailable = args[0]; // GuildMember
750
- data.member = { ...memberAvailable };
751
- break;
752
525
  case discord_js_1.Events.GuildMemberRemove:
753
- const memberRemoved = args[0]; // GuildMember
754
- data.member = { ...memberRemoved };
526
+ const member = args[0]; // GuildMember
527
+ data.member = { ...member };
755
528
  break;
756
529
  case discord_js_1.Events.GuildMemberUpdate:
757
- const memberUpdate = args[0];
758
- data.member = { ...memberUpdate };
759
- data.guild = { ...memberUpdate.guild };
530
+ const oldMemberUpdate = args[0]; // GuildMember trước khi thay đổi
531
+ const newMemberUpdate = args[1]; // GuildMember sau khi thay đổi
532
+ data.oldMemberUpdate = { ...oldMemberUpdate };
533
+ data.newMemberUpdate = { ...newMemberUpdate };
760
534
  break;
761
535
  case discord_js_1.Events.GuildMembersChunk:
762
536
  const membersChunk = args[0];
@@ -770,19 +544,13 @@ class DiscordEventHandler {
770
544
  case discord_js_1.Events.AutoModerationActionExecution:
771
545
  const action = args[0];
772
546
  data.action = { ...action };
773
- if (action.guild) {
774
- data.guild = { ...action.guild };
775
- }
776
547
  break;
777
548
  case discord_js_1.Events.AutoModerationRuleCreate:
549
+ case discord_js_1.Events.AutoModerationRuleDelete:
778
550
  const ruleCreated = args[0];
779
551
  data.rule = { ...ruleCreated };
780
552
  break;
781
- case discord_js_1.Events.AutoModerationRuleDelete:
782
- const ruleDeleted = args[0];
783
- data.rule = { ...ruleDeleted };
784
- break;
785
- case "autoModerationRuleUpdate":
553
+ case discord_js_1.Events.AutoModerationRuleUpdate:
786
554
  const oldRule = args[0]; // AutoModerationRule trước khi thay đổi
787
555
  const newRule = args[1]; // AutoModerationRule sau khi thay đổi
788
556
  data.oldRule = { ...oldRule };
@@ -790,17 +558,12 @@ class DiscordEventHandler {
790
558
  break;
791
559
  // Poll event
792
560
  case discord_js_1.Events.MessagePollVoteAdd:
561
+ case discord_js_1.Events.MessagePollVoteRemove:
793
562
  const pollVoteAdd = args[0]; // PollVote
794
563
  const userId = args[1]; // User ID
795
564
  data.pollVote = { ...pollVoteAdd };
796
565
  data.userId = userId;
797
566
  break;
798
- case discord_js_1.Events.MessagePollVoteRemove:
799
- const pollVoteRemove = args[0]; // PollVote
800
- const userIdRemove = args[1]; // User ID
801
- data.pollVote = { ...pollVoteRemove };
802
- data.userId = userIdRemove;
803
- break;
804
567
  default:
805
568
  data.eventData = args;
806
569
  break;