disgroove 3.0.0-dev.fd521a8 → 3.0.1-dev.24a02ed

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.
Files changed (38) hide show
  1. package/LICENSE +9 -9
  2. package/README.md +48 -48
  3. package/dist/lib/Client.d.ts +68 -58
  4. package/dist/lib/Client.js +59 -23
  5. package/dist/lib/constants.d.ts +17 -4
  6. package/dist/lib/constants.js +18 -4
  7. package/dist/lib/gateway/Dispatcher.d.ts +104 -0
  8. package/dist/lib/gateway/Dispatcher.js +472 -0
  9. package/dist/lib/gateway/Shard.d.ts +10 -22
  10. package/dist/lib/gateway/Shard.js +123 -656
  11. package/dist/lib/gateway/Transmitter.d.ts +22 -0
  12. package/dist/lib/gateway/Transmitter.js +93 -0
  13. package/dist/lib/rest/Endpoints.d.ts +3 -0
  14. package/dist/lib/rest/Endpoints.js +10 -3
  15. package/dist/lib/rest/RequestManager.js +21 -7
  16. package/dist/lib/rest/index.js +17 -7
  17. package/dist/lib/transformers/Components.d.ts +3 -1
  18. package/dist/lib/transformers/Components.js +26 -0
  19. package/dist/lib/transformers/Guilds.d.ts +2 -0
  20. package/dist/lib/transformers/Guilds.js +134 -0
  21. package/dist/lib/transformers/Interactions.js +30 -0
  22. package/dist/lib/transformers/Invites.js +2 -2
  23. package/dist/lib/transformers/Presences.d.ts +3 -3
  24. package/dist/lib/types/components.d.ts +36 -4
  25. package/dist/lib/types/gateway-events.d.ts +203 -75
  26. package/dist/lib/types/interaction.d.ts +3 -3
  27. package/dist/lib/types/invite.d.ts +5 -2
  28. package/dist/lib/utils/errors.d.ts +3 -1
  29. package/dist/lib/utils/errors.js +4 -0
  30. package/dist/lib/utils/formatters.js +9 -10
  31. package/dist/lib/utils/index.d.ts +1 -0
  32. package/dist/lib/utils/index.js +18 -7
  33. package/dist/lib/utils/permissions.d.ts +2 -0
  34. package/dist/lib/utils/permissions.js +7 -0
  35. package/dist/package.json +5 -5
  36. package/package.json +6 -6
  37. package/dist/lib/types/message-components.d.ts +0 -450
  38. package/dist/lib/types/message-components.js +0 -2
@@ -0,0 +1,472 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Handlers = exports.Dispatcher = void 0;
4
+ const constants_1 = require("../constants");
5
+ const transformers_1 = require("../transformers");
6
+ class Dispatcher {
7
+ shard;
8
+ constructor(shard) {
9
+ this.shard = shard;
10
+ }
11
+ dispatch(event, data) {
12
+ const handler = exports.Handlers[event];
13
+ if (handler)
14
+ handler(this.shard, data);
15
+ }
16
+ }
17
+ exports.Dispatcher = Dispatcher;
18
+ exports.Handlers = {
19
+ [constants_1.GatewayEvents.Ready]: (shard, data) => {
20
+ shard.sessionId = data.session_id;
21
+ shard.resumeGatewayURL = `${data.resume_gateway_url}?v=10&encoding=json`;
22
+ shard.client.user = transformers_1.Users.userFromRaw(data.user);
23
+ shard.client.application = data.application;
24
+ shard.client.emit("ready", shard.id);
25
+ },
26
+ [constants_1.GatewayEvents.Resumed]: (shard) => {
27
+ shard.client.emit("resumed", shard.id);
28
+ },
29
+ [constants_1.GatewayEvents.RateLimited]: (shard, data) => {
30
+ if (data.opcode === constants_1.GatewayOPCodes.RequestGuildMembers) {
31
+ shard.client.emit("rateLimited", {
32
+ opcode: constants_1.GatewayOPCodes.RequestGuildMembers,
33
+ retryAfter: data.retry_after,
34
+ meta: {
35
+ guildId: data.meta.guild_id,
36
+ nonce: data.meta.nonce,
37
+ },
38
+ }, shard.id);
39
+ }
40
+ },
41
+ [constants_1.GatewayEvents.ApplicationCommandPermissionsUpdate]: (shard, data) => {
42
+ shard.client.emit("applicationCommandPermissionsUpdate", transformers_1.Guilds.guildApplicationCommandPermissionsFromRaw(data));
43
+ },
44
+ [constants_1.GatewayEvents.AutoModerationRuleCreate]: (shard, data) => shard.client.emit("autoModerationRuleCreate", transformers_1.AutoModeration.autoModerationRuleFromRaw(data)),
45
+ [constants_1.GatewayEvents.AutoModerationRuleUpdate]: (shard, data) => shard.client.emit("autoModerationRuleUpdate", transformers_1.AutoModeration.autoModerationRuleFromRaw(data)),
46
+ [constants_1.GatewayEvents.AutoModerationRuleDelete]: (shard, data) => shard.client.emit("autoModerationRuleDelete", transformers_1.AutoModeration.autoModerationRuleFromRaw(data)),
47
+ [constants_1.GatewayEvents.AutoModerationActionExecution]: (shard, data) => shard.client.emit("autoModerationActionExecution", {
48
+ guildId: data.guild_id,
49
+ action: {
50
+ type: data.action.type,
51
+ metadata: {
52
+ channelId: data.action.metadata.channel_id,
53
+ durationSeconds: data.action.metadata.duration_seconds,
54
+ customMessage: data.action.metadata.custom_message,
55
+ },
56
+ },
57
+ ruleId: data.rule_id,
58
+ ruleTriggerType: data.rule_trigger_type,
59
+ userId: data.user_id,
60
+ channelId: data.channel_id,
61
+ messageId: data.message_id,
62
+ alertSystemMessageId: data.alert_system_message_id,
63
+ content: data.content,
64
+ matchedKeyword: data.matched_keyword,
65
+ matchedContent: data.matched_content,
66
+ }),
67
+ [constants_1.GatewayEvents.ChannelCreate]: (shard, data) => shard.client.emit("channelCreate", transformers_1.Channels.channelFromRaw(data)),
68
+ [constants_1.GatewayEvents.ChannelUpdate]: (shard, data) => shard.client.emit("channelUpdate", transformers_1.Channels.channelFromRaw(data)),
69
+ [constants_1.GatewayEvents.ChannelDelete]: (shard, data) => shard.client.emit("channelDelete", transformers_1.Channels.channelFromRaw(data)),
70
+ [constants_1.GatewayEvents.ChannelPinsUpdate]: (shard, data) => shard.client.emit("channelPinsUpdate", {
71
+ guildId: data.guild_id,
72
+ channelId: data.channel_id,
73
+ lastPinTimestamp: data.last_pin_timestamp,
74
+ }),
75
+ [constants_1.GatewayEvents.ThreadCreate]: (shard, data) => shard.client.emit("threadCreate", transformers_1.Channels.channelFromRaw(data)),
76
+ [constants_1.GatewayEvents.ThreadUpdate]: (shard, data) => shard.client.emit("threadUpdate", transformers_1.Channels.channelFromRaw(data)),
77
+ [constants_1.GatewayEvents.ThreadDelete]: (shard, data) => shard.client.emit("threadDelete", transformers_1.Channels.channelFromRaw(data)),
78
+ [constants_1.GatewayEvents.ThreadListSync]: (shard, data) => shard.client.emit("threadListSync", {
79
+ guildId: data.guild_id,
80
+ channelIds: data.channel_ids,
81
+ threads: data.threads.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
82
+ members: data.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
83
+ }),
84
+ [constants_1.GatewayEvents.ThreadMemberUpdate]: (shard, data) => {
85
+ shard.client.emit("threadMemberUpdate", {
86
+ id: data.id,
87
+ userId: data.user_id,
88
+ joinTimestamp: data.join_timestamp,
89
+ flags: data.flags,
90
+ member: data.member !== undefined
91
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
92
+ : undefined,
93
+ guildId: data.guild_id,
94
+ });
95
+ },
96
+ [constants_1.GatewayEvents.ThreadMembersUpdate]: (shard, data) => {
97
+ shard.client.emit("threadMembersUpdate", {
98
+ id: data.id,
99
+ guildId: data.guild_id,
100
+ memberCount: data.member_count,
101
+ addedMembers: data.added_members?.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
102
+ removedMemberIds: data.removed_member_ids,
103
+ });
104
+ },
105
+ [constants_1.GatewayEvents.EntitlementCreate]: (shard, data) => {
106
+ shard.client.emit("entitlementCreate", transformers_1.Entitlements.entitlementFromRaw(data));
107
+ },
108
+ [constants_1.GatewayEvents.EntitlementUpdate]: (shard, data) => {
109
+ shard.client.emit("entitlementUpdate", transformers_1.Entitlements.entitlementFromRaw(data));
110
+ },
111
+ [constants_1.GatewayEvents.EntitlementDelete]: (shard, data) => {
112
+ shard.client.emit("entitlementDelete", transformers_1.Entitlements.entitlementFromRaw(data));
113
+ },
114
+ [constants_1.GatewayEvents.GuildCreate]: (shard, data) => {
115
+ shard.client.guildShardMap.set(data.id, shard.id);
116
+ if (data.unavailable) {
117
+ const unavailableGuild = data;
118
+ shard.client.emit("guildCreate", unavailableGuild);
119
+ }
120
+ else {
121
+ const guild = data;
122
+ shard.client.emit("guildCreate", {
123
+ ...transformers_1.Guilds.guildFromRaw(guild),
124
+ joinedAt: guild.joined_at,
125
+ large: guild.large,
126
+ unavailable: guild.unavailable,
127
+ memberCount: guild.member_count,
128
+ voiceStates: guild.voice_states?.map((voiceState) => transformers_1.Voice.voiceStateFromRaw(voiceState)),
129
+ members: guild.members?.map((member) => transformers_1.Guilds.guildMemberFromRaw(member)),
130
+ channels: guild.channels?.map((channel) => transformers_1.Channels.channelFromRaw(channel)),
131
+ threads: guild.threads?.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
132
+ presences: guild.presences?.map((presence) => transformers_1.Presences.presenceFromRaw(presence)),
133
+ stageInstances: guild.stage_instances?.map((stageInstance) => transformers_1.StageInstances.stageInstanceFromRaw(stageInstance)),
134
+ guildScheduledEvents: guild.guild_scheduled_events?.map((guildScheduledEvent) => transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(guildScheduledEvent)),
135
+ soundboardSounds: guild.soundboard_sounds?.map((soundboardSound) => transformers_1.Soundboards.soundboardSoundFromRaw(soundboardSound)),
136
+ });
137
+ shard.client.guilds.set(data.id, transformers_1.Guilds.guildFromRaw(data));
138
+ }
139
+ },
140
+ [constants_1.GatewayEvents.GuildUpdate]: (shard, data) => {
141
+ shard.client.guilds.set(data.id, transformers_1.Guilds.guildFromRaw(data));
142
+ shard.client.emit("guildUpdate", transformers_1.Guilds.guildFromRaw(data));
143
+ },
144
+ [constants_1.GatewayEvents.GuildDelete]: (shard, data) => {
145
+ shard.client.guildShardMap.delete(data.id);
146
+ shard.client.guilds.delete(data.id);
147
+ shard.client.emit("guildDelete", data);
148
+ },
149
+ [constants_1.GatewayEvents.GuildAuditLogEntryCreate]: (shard, data) => {
150
+ shard.client.emit("guildAuditLogEntryCreate", {
151
+ ...transformers_1.AuditLogs.auditLogEntryFromRaw(data),
152
+ guildId: data.guild_id,
153
+ });
154
+ },
155
+ [constants_1.GatewayEvents.GuildBanAdd]: (shard, data) => {
156
+ shard.client.emit("guildBanAdd", {
157
+ guildId: data.guild_id,
158
+ user: transformers_1.Users.userFromRaw(data.user),
159
+ });
160
+ },
161
+ [constants_1.GatewayEvents.GuildBanRemove]: (shard, data) => {
162
+ shard.client.emit("guildBanRemove", {
163
+ guildId: data.guild_id,
164
+ user: transformers_1.Users.userFromRaw(data.user),
165
+ });
166
+ },
167
+ [constants_1.GatewayEvents.GuildEmojisUpdate]: (shard, data) => {
168
+ shard.client.emit("guildEmojisUpdate", data.emojis.map((emoji) => transformers_1.Emojis.emojiFromRaw(emoji)), data.guild_id);
169
+ },
170
+ [constants_1.GatewayEvents.GuildStickersUpdate]: (shard, data) => {
171
+ shard.client.emit("guildStickersUpdate", data.stickers.map((sticker) => transformers_1.Stickers.stickerFromRaw(sticker)), data.guild_id);
172
+ },
173
+ [constants_1.GatewayEvents.GuildIntegrationsUpdate]: (shard, data) => {
174
+ shard.client.emit("guildIntegrationsUpdate", data.guild_id);
175
+ },
176
+ [constants_1.GatewayEvents.GuildMemberAdd]: (shard, data) => {
177
+ shard.client.emit("guildMemberAdd", {
178
+ ...transformers_1.Guilds.guildMemberFromRaw(data),
179
+ guildId: data.guild_id,
180
+ });
181
+ },
182
+ [constants_1.GatewayEvents.GuildMemberRemove]: (shard, data) => {
183
+ shard.client.emit("guildMemberRemove", {
184
+ guildId: data.guild_id,
185
+ user: transformers_1.Users.userFromRaw(data.user),
186
+ });
187
+ },
188
+ [constants_1.GatewayEvents.GuildMemberUpdate]: (shard, data) => {
189
+ shard.client.emit("guildMemberUpdate", {
190
+ guildId: data.guild_id,
191
+ roles: data.roles,
192
+ user: transformers_1.Users.userFromRaw(data.user),
193
+ nick: data.nick,
194
+ avatar: data.avatar,
195
+ banner: data.banner,
196
+ joinedAt: data.joined_at,
197
+ premiumSince: data.premium_since,
198
+ deaf: data.deaf,
199
+ mute: data.mute,
200
+ pending: data.pending,
201
+ communicationDisabledUntil: data.communication_disabled_until,
202
+ flags: data.flags,
203
+ avatarDecorationData: data.avatar_decoration_data !== undefined
204
+ ? data.avatar_decoration_data !== null
205
+ ? {
206
+ asset: data.avatar_decoration_data.asset,
207
+ skuId: data.avatar_decoration_data.sku_id,
208
+ }
209
+ : null
210
+ : undefined,
211
+ });
212
+ },
213
+ [constants_1.GatewayEvents.GuildMembersChunk]: (shard, data) => {
214
+ shard.client.emit("guildMembersChunk", {
215
+ guildId: data.guild_id,
216
+ members: data.members.map((guildMember) => transformers_1.Guilds.guildMemberFromRaw(guildMember)),
217
+ chunkIndex: data.chunk_index,
218
+ chunkCount: data.chunk_count,
219
+ notFound: data.not_found,
220
+ presences: data.presences?.map((presence) => transformers_1.Presences.presenceFromRaw(presence)),
221
+ nonce: data.nonce,
222
+ });
223
+ },
224
+ [constants_1.GatewayEvents.GuildRoleCreate]: (shard, data) => {
225
+ shard.client.emit("guildRoleCreate", transformers_1.Roles.roleFromRaw(data.role), data.guild_id);
226
+ },
227
+ [constants_1.GatewayEvents.GuildRoleUpdate]: (shard, data) => {
228
+ shard.client.emit("guildRoleUpdate", transformers_1.Roles.roleFromRaw(data.role), data.guild_id);
229
+ },
230
+ [constants_1.GatewayEvents.GuildRoleDelete]: (shard, data) => {
231
+ shard.client.emit("guildRoleDelete", data.role_id, data.guild_id);
232
+ },
233
+ [constants_1.GatewayEvents.GuildScheduledEventCreate]: (shard, data) => {
234
+ shard.client.emit("guildScheduledEventCreate", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(data));
235
+ },
236
+ [constants_1.GatewayEvents.GuildScheduledEventUpdate]: (shard, data) => {
237
+ shard.client.emit("guildScheduledEventUpdate", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(data));
238
+ },
239
+ [constants_1.GatewayEvents.GuildScheduledEventDelete]: (shard, data) => {
240
+ shard.client.emit("guildScheduledEventDelete", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(data));
241
+ },
242
+ [constants_1.GatewayEvents.GuildScheduledEventUserAdd]: (shard, data) => {
243
+ shard.client.emit("guildScheduledEventUserAdd", data.user_id, data.guild_scheduled_event_id, data.guild_id);
244
+ },
245
+ [constants_1.GatewayEvents.GuildScheduledEventUserRemove]: (shard, data) => {
246
+ shard.client.emit("guildScheduledEventUserRemove", data.user_id, data.guild_scheduled_event_id, data.guild_id);
247
+ },
248
+ [constants_1.GatewayEvents.GuildSoundboardSoundCreate]: (shard, data) => {
249
+ shard.client.emit("guildSoundboardSoundCreate", transformers_1.Soundboards.soundboardSoundFromRaw(data));
250
+ },
251
+ [constants_1.GatewayEvents.GuildSoundboardSoundUpdate]: (shard, data) => {
252
+ shard.client.emit("guildSoundboardSoundUpdate", transformers_1.Soundboards.soundboardSoundFromRaw(data));
253
+ },
254
+ [constants_1.GatewayEvents.GuildSoundboardSoundDelete]: (shard, data) => {
255
+ shard.client.emit("guildSoundboardSoundDelete", {
256
+ soundId: data.sound_id,
257
+ guildId: data.guild_id,
258
+ });
259
+ },
260
+ [constants_1.GatewayEvents.GuildSoundboardSoundsUpdate]: (shard, data) => {
261
+ shard.client.emit("guildSoundboardSoundsUpdate", data.soundboard_sounds.map((sound) => transformers_1.Soundboards.soundboardSoundFromRaw(sound)), data.guild_id);
262
+ },
263
+ [constants_1.GatewayEvents.SoundboardSounds]: (shard, data) => {
264
+ shard.client.emit("soundboardSounds", data.soundboard_sounds.map((sound) => transformers_1.Soundboards.soundboardSoundFromRaw(sound)), data.guild_id);
265
+ },
266
+ [constants_1.GatewayEvents.IntegrationCreate]: (shard, data) => {
267
+ shard.client.emit("integrationCreate", {
268
+ ...transformers_1.Guilds.integrationFromRaw(data),
269
+ guildId: data.guild_id,
270
+ });
271
+ },
272
+ [constants_1.GatewayEvents.IntegrationUpdate]: (shard, data) => {
273
+ shard.client.emit("integrationUpdate", {
274
+ ...transformers_1.Guilds.integrationFromRaw(data),
275
+ guildId: data.guild_id,
276
+ });
277
+ },
278
+ [constants_1.GatewayEvents.IntegrationDelete]: (shard, data) => {
279
+ shard.client.emit("integrationDelete", {
280
+ id: data.id,
281
+ guildId: data.guild_id,
282
+ applicationId: data.application_id,
283
+ });
284
+ },
285
+ [constants_1.GatewayEvents.InteractionCreate]: (shard, data) => {
286
+ shard.client.emit("interactionCreate", transformers_1.Interactions.interactionFromRaw(data));
287
+ },
288
+ [constants_1.GatewayEvents.InviteCreate]: (shard, data) => {
289
+ shard.client.emit("inviteCreate", {
290
+ channelId: data.channel_id,
291
+ code: data.code,
292
+ createdAt: data.created_at,
293
+ guildId: data.guild_id,
294
+ inviter: data.inviter !== undefined
295
+ ? transformers_1.Users.userFromRaw(data.inviter)
296
+ : undefined,
297
+ maxAge: data.max_age,
298
+ maxUses: data.max_uses,
299
+ targetType: data.target_type,
300
+ targetUser: data.target_user !== undefined
301
+ ? transformers_1.Users.userFromRaw(data.target_user)
302
+ : undefined,
303
+ targetApplication: data.target_application !== undefined
304
+ ? transformers_1.Applications.applicationFromRaw(data.target_application)
305
+ : undefined,
306
+ temporary: data.temporary,
307
+ uses: data.uses,
308
+ expiresAt: data.expires_at,
309
+ roleIds: data.roles_ids
310
+ });
311
+ },
312
+ [constants_1.GatewayEvents.InviteDelete]: (shard, data) => {
313
+ shard.client.emit("inviteDelete", {
314
+ channelId: data.channel_id,
315
+ guildId: data.guild_id,
316
+ code: data.code,
317
+ });
318
+ },
319
+ [constants_1.GatewayEvents.MessageCreate]: (shard, data) => {
320
+ shard.client.emit("messageCreate", {
321
+ ...transformers_1.Messages.messageFromRaw(data),
322
+ guildId: data.guild_id,
323
+ member: data.member !== undefined
324
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
325
+ : undefined,
326
+ mentions: data.mentions.map((mention) => transformers_1.Users.userFromRaw(mention)),
327
+ });
328
+ },
329
+ [constants_1.GatewayEvents.MessageUpdate]: (shard, data) => {
330
+ shard.client.emit("messageUpdate", transformers_1.Messages.messageFromRaw(data));
331
+ },
332
+ [constants_1.GatewayEvents.MessageDelete]: (shard, data) => {
333
+ shard.client.emit("messageDelete", {
334
+ id: data.id,
335
+ channelId: data.channel_id,
336
+ guildId: data.guild_id,
337
+ });
338
+ },
339
+ [constants_1.GatewayEvents.MessageDeleteBulk]: (shard, data) => {
340
+ shard.client.emit("messageDeleteBulk", {
341
+ ids: data.ids,
342
+ channelId: data.channel_id,
343
+ guildId: data.guild_id,
344
+ });
345
+ },
346
+ [constants_1.GatewayEvents.MessageReactionAdd]: (shard, data) => {
347
+ shard.client.emit("messageReactionAdd", {
348
+ userId: data.user_id,
349
+ channelId: data.channel_id,
350
+ messageId: data.message_id,
351
+ guildId: data.guild_id,
352
+ member: data.member !== undefined
353
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
354
+ : undefined,
355
+ emoji: transformers_1.Emojis.emojiFromRaw(data.emoji),
356
+ messageAuthorId: data.message_author_id,
357
+ burst: data.burst,
358
+ burstColors: data.burst_colors,
359
+ type: data.type,
360
+ });
361
+ },
362
+ [constants_1.GatewayEvents.MessageReactionRemove]: (shard, data) => {
363
+ shard.client.emit("messageReactionRemove", {
364
+ userId: data.user_id,
365
+ channelId: data.channel_id,
366
+ messageId: data.message_id,
367
+ guildId: data.guild_id,
368
+ emoji: transformers_1.Emojis.emojiFromRaw(data.emoji),
369
+ burst: data.burst,
370
+ type: data.type,
371
+ });
372
+ },
373
+ [constants_1.GatewayEvents.MessageReactionRemoveAll]: (shard, data) => {
374
+ shard.client.emit("messageReactionRemoveAll", {
375
+ channelId: data.channel_id,
376
+ messageId: data.message_id,
377
+ guildId: data.guild_id,
378
+ });
379
+ },
380
+ [constants_1.GatewayEvents.MessageReactionRemoveEmoji]: (shard, data) => {
381
+ shard.client.emit("messageReactionRemoveEmoji", {
382
+ channelId: data.channel_id,
383
+ guildId: data.guild_id,
384
+ messageId: data.message_id,
385
+ emoji: transformers_1.Emojis.emojiFromRaw(data.emoji),
386
+ });
387
+ },
388
+ [constants_1.GatewayEvents.PresenceUpdate]: (shard, data) => {
389
+ shard.client.emit("presenceUpdate", transformers_1.Presences.presenceFromRaw(data));
390
+ },
391
+ [constants_1.GatewayEvents.StageInstanceCreate]: (shard, data) => {
392
+ shard.client.emit("stageInstanceCreate", transformers_1.StageInstances.stageInstanceFromRaw(data));
393
+ },
394
+ [constants_1.GatewayEvents.StageInstanceUpdate]: (shard, data) => {
395
+ shard.client.emit("stageInstanceUpdate", transformers_1.StageInstances.stageInstanceFromRaw(data));
396
+ },
397
+ [constants_1.GatewayEvents.StageInstanceDelete]: (shard, data) => {
398
+ shard.client.emit("stageInstanceDelete", transformers_1.StageInstances.stageInstanceFromRaw(data));
399
+ },
400
+ [constants_1.GatewayEvents.TypingStart]: (shard, data) => {
401
+ shard.client.emit("typingStart", {
402
+ channelId: data.channel_id,
403
+ guildId: data.guild_id,
404
+ userId: data.user_id,
405
+ timestamp: data.timestamp,
406
+ member: data.member !== undefined
407
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
408
+ : undefined,
409
+ });
410
+ },
411
+ [constants_1.GatewayEvents.UserUpdate]: (shard, data) => {
412
+ shard.client.emit("userUpdate", transformers_1.Users.userFromRaw(data));
413
+ },
414
+ [constants_1.GatewayEvents.VoiceChannelEffectSend]: (shard, data) => {
415
+ shard.client.emit("voiceChannelEffectSend", {
416
+ channelId: data.channel_id,
417
+ guildId: data.guild_id,
418
+ userId: data.user_id,
419
+ emoji: data.emoji !== undefined
420
+ ? data.emoji !== null
421
+ ? transformers_1.Emojis.emojiFromRaw(data.emoji)
422
+ : null
423
+ : undefined,
424
+ animationType: data.animation_type,
425
+ animationId: data.animation_id,
426
+ soundId: data.sound_id,
427
+ soundVolume: data.sound_volume,
428
+ });
429
+ },
430
+ [constants_1.GatewayEvents.VoiceStateUpdate]: (shard, data) => {
431
+ shard.client.emit("voiceStateUpdate", transformers_1.Voice.voiceStateFromRaw(data));
432
+ },
433
+ [constants_1.GatewayEvents.VoiceServerUpdate]: (shard, data) => {
434
+ {
435
+ shard.client.emit("voiceServerUpdate", {
436
+ token: data.token,
437
+ guildId: data.guild_id,
438
+ endpoint: data.endpoint,
439
+ });
440
+ }
441
+ },
442
+ [constants_1.GatewayEvents.WebhooksUpdate]: (shard, data) => {
443
+ shard.client.emit("webhooksUpdate", data.channel_id, data.guild_id);
444
+ },
445
+ [constants_1.GatewayEvents.SubscriptionCreate]: (shard, data) => {
446
+ shard.client.emit("subscriptionCreate", transformers_1.Subscriptions.subscriptionFromRaw(data));
447
+ },
448
+ [constants_1.GatewayEvents.SubscriptionUpdate]: (shard, data) => {
449
+ shard.client.emit("subscriptionUpdate", transformers_1.Subscriptions.subscriptionFromRaw(data));
450
+ },
451
+ [constants_1.GatewayEvents.SubscriptionDelete]: (shard, data) => {
452
+ shard.client.emit("subscriptionDelete", transformers_1.Subscriptions.subscriptionFromRaw(data));
453
+ },
454
+ [constants_1.GatewayEvents.MessagePollVoteAdd]: (shard, data) => {
455
+ shard.client.emit("messagePollVoteAdd", {
456
+ userId: data.user_id,
457
+ channelId: data.channel_id,
458
+ messageId: data.message_id,
459
+ guildId: data.guild_id,
460
+ answerId: data.answer_id,
461
+ });
462
+ },
463
+ [constants_1.GatewayEvents.MessagePollVoteRemove]: (shard, data) => {
464
+ shard.client.emit("messagePollVoteRemove", {
465
+ userId: data.user_id,
466
+ channelId: data.channel_id,
467
+ messageId: data.message_id,
468
+ guildId: data.guild_id,
469
+ answerId: data.answer_id,
470
+ });
471
+ },
472
+ };
@@ -1,38 +1,26 @@
1
1
  import WebSocket from "ws";
2
2
  import { Client } from "../Client";
3
- import type { GatewayPresenceUpdate, GatewayVoiceStateUpdate, Identify, RequestGuildMembers, RequestSoundboardSounds, Resume } from "../types/gateway-events";
3
+ import { Transmitter } from "./Transmitter";
4
+ import { Dispatcher } from "./Dispatcher";
4
5
  export declare class Shard {
5
6
  id: number;
6
- private heartbeatInterval;
7
7
  client: Client;
8
- ws: WebSocket | null;
8
+ private heartbeatInterval;
9
9
  sessionId: string | null;
10
10
  resumeGatewayURL: string | null;
11
11
  sequence: number | null;
12
+ ws: WebSocket | null;
13
+ transmitter: Transmitter;
14
+ dispatcher: Dispatcher;
12
15
  constructor(id: number, client: Client);
13
16
  /** https://discord.com/developers/docs/topics/gateway#connections */
14
- connect(reconnect: boolean): void;
17
+ connect(): void;
15
18
  /** https://discord.com/developers/docs/events/gateway#initiating-a-disconnect */
16
- disconnect(): void;
17
- /** https://discord.com/developers/docs/events/gateway#resuming */
18
- reconnect(): void;
19
- /** https://discord.com/developers/docs/topics/gateway-events#heartbeat */
20
- heartbeat(lastSequence: number | null): void;
21
- /** https://discord.com/developers/docs/topics/gateway-events#identify */
22
- identify(options: Identify): void;
23
- private onDispatch;
19
+ disconnect(reconnect: boolean): void;
20
+ identify(): void;
24
21
  private onWebSocketOpen;
25
22
  private onWebSocketMessage;
26
23
  private onWebSocketError;
27
24
  private onWebSocketClose;
28
- /** https://discord.com/developers/docs/topics/gateway-events#request-guild-members */
29
- requestGuildMembers(options: RequestGuildMembers): void;
30
- /** https://discord.com/developers/docs/topics/gateway-events#request-soundboard-sounds */
31
- requestSoundboardSounds(options: RequestSoundboardSounds): void;
32
- /** https://discord.com/developers/docs/topics/gateway-events#resume */
33
- resume(options: Resume): void;
34
- /** https://discord.com/developers/docs/topics/gateway-events#update-presence */
35
- updatePresence(options: Partial<Pick<GatewayPresenceUpdate, "activities" | "status" | "afk">>): void;
36
- /** https://discord.com/developers/docs/topics/gateway-events#update-voice-state */
37
- updateVoiceState(options: GatewayVoiceStateUpdate): void;
25
+ resume(): void;
38
26
  }