disgroove 1.3.3 → 1.3.4-dev.9e27a4b

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 (73) hide show
  1. package/dist/lib/Client.d.ts +11 -3
  2. package/dist/lib/Client.js +4 -4
  3. package/dist/lib/Client.js.map +1 -1
  4. package/dist/lib/gateway/Shard.js +2 -2
  5. package/dist/lib/structures/Guild.d.ts +7 -7
  6. package/dist/package.json +1 -1
  7. package/package.json +1 -1
  8. package/lib/Client.ts +0 -616
  9. package/lib/constants.ts +0 -1173
  10. package/lib/gateway/Shard.ts +0 -704
  11. package/lib/gateway/ShardsManager.ts +0 -11
  12. package/lib/gateway/index.ts +0 -2
  13. package/lib/index.ts +0 -7
  14. package/lib/rest/CDN.ts +0 -56
  15. package/lib/rest/Endpoints.ts +0 -241
  16. package/lib/rest/REST.ts +0 -45
  17. package/lib/rest/RequestsManager.ts +0 -134
  18. package/lib/rest/index.ts +0 -4
  19. package/lib/structures/Application.ts +0 -599
  20. package/lib/structures/ApplicationCommand.ts +0 -187
  21. package/lib/structures/AuditLog.ts +0 -112
  22. package/lib/structures/AutoModerationRule.ts +0 -127
  23. package/lib/structures/Base.ts +0 -39
  24. package/lib/structures/Channel.ts +0 -921
  25. package/lib/structures/ClientApplication.ts +0 -515
  26. package/lib/structures/Emoji.ts +0 -95
  27. package/lib/structures/Entitlement.ts +0 -65
  28. package/lib/structures/Guild.ts +0 -1842
  29. package/lib/structures/GuildMember.ts +0 -193
  30. package/lib/structures/GuildScheduledEvent.ts +0 -164
  31. package/lib/structures/GuildTemplate.ts +0 -103
  32. package/lib/structures/Integration.ts +0 -136
  33. package/lib/structures/Interaction.ts +0 -506
  34. package/lib/structures/Invite.ts +0 -108
  35. package/lib/structures/Message.ts +0 -421
  36. package/lib/structures/Role.ts +0 -116
  37. package/lib/structures/SKU.ts +0 -63
  38. package/lib/structures/StageInstance.ts +0 -74
  39. package/lib/structures/Sticker.ts +0 -100
  40. package/lib/structures/Team.ts +0 -41
  41. package/lib/structures/TestEntitlement.ts +0 -78
  42. package/lib/structures/UnavailableGuild.ts +0 -27
  43. package/lib/structures/User.ts +0 -233
  44. package/lib/structures/VoiceState.ts +0 -72
  45. package/lib/structures/Webhook.ts +0 -341
  46. package/lib/structures/index.ts +0 -27
  47. package/lib/types/application-command.ts +0 -118
  48. package/lib/types/application-role-connection-metadata.ts +0 -23
  49. package/lib/types/application.ts +0 -77
  50. package/lib/types/audit-log.ts +0 -105
  51. package/lib/types/auto-moderation.ts +0 -78
  52. package/lib/types/channel.ts +0 -534
  53. package/lib/types/emoji.ts +0 -24
  54. package/lib/types/entitlements.ts +0 -34
  55. package/lib/types/gateway-events.ts +0 -970
  56. package/lib/types/guild-scheduled-event.ts +0 -67
  57. package/lib/types/guild-template.ts +0 -30
  58. package/lib/types/guild.ts +0 -388
  59. package/lib/types/index.ts +0 -23
  60. package/lib/types/interaction.ts +0 -224
  61. package/lib/types/invite.ts +0 -78
  62. package/lib/types/message-components.ts +0 -127
  63. package/lib/types/role.ts +0 -51
  64. package/lib/types/sku.ts +0 -32
  65. package/lib/types/stage-instance.ts +0 -22
  66. package/lib/types/sticker.ts +0 -67
  67. package/lib/types/team.ts +0 -34
  68. package/lib/types/user.ts +0 -93
  69. package/lib/types/voice.ts +0 -51
  70. package/lib/types/webhook.ts +0 -40
  71. package/lib/utils/Util.ts +0 -600
  72. package/lib/utils/errors.ts +0 -23
  73. package/lib/utils/index.ts +0 -2
package/lib/Client.ts DELETED
@@ -1,616 +0,0 @@
1
- import {
2
- type DefaultMessageNotificationLevel,
3
- type ExplicitContentFilterLevel,
4
- GatewayIntents,
5
- type OAuth2Scopes,
6
- type PrivacyLevel,
7
- StatusTypes,
8
- type SystemChannelFlags,
9
- type VerificationLevel,
10
- GatewayOPCodes,
11
- ChannelTypes,
12
- } from "./constants";
13
- import { Util } from "./utils";
14
- import { Endpoints, REST } from "./rest";
15
- import {
16
- Application,
17
- AutoModerationRule,
18
- Channel,
19
- Guild,
20
- GuildMember,
21
- GuildScheduledEvent,
22
- Integration,
23
- Interaction,
24
- Invite,
25
- Message,
26
- StageInstance,
27
- User,
28
- VoiceState,
29
- ClientApplication,
30
- Emoji,
31
- Sticker,
32
- Role,
33
- UnavailableGuild,
34
- Entitlement,
35
- } from "./structures";
36
- import type {
37
- Activity,
38
- JSONAuditLogEntry,
39
- AutoModerationActionExecutionEventFields,
40
- JSONAutoModerationRule,
41
- JSONChannel,
42
- ChannelPinsUpdateEventFields,
43
- JSONGuildApplicationCommandPermissions,
44
- GuildBanAddEventFields,
45
- GuildBanRemoveEventFields,
46
- GuildMemberRemoveEventFields,
47
- GuildMemberUpdateEventFields,
48
- GuildMembersChunkEventFields,
49
- JSONGuildScheduledEvent,
50
- IntegrationDeleteEventFields,
51
- InviteCreateEventFields,
52
- InviteDeleteEventFields,
53
- MessageDeleteBulkEventFields,
54
- MessageDeleteEventFields,
55
- MessageReactionAddEventFields,
56
- MessageReactionRemoveAllEventFields,
57
- MessageReactionRemoveEmojiEventFields,
58
- MessageReactionRemoveEventFields,
59
- PresenceUpdateEventFields,
60
- JSONRole,
61
- JSONStageInstance,
62
- JSONStickerPack,
63
- ThreadListSyncEventFields,
64
- JSONThreadMember,
65
- ThreadMembersUpdateEventFields,
66
- TypingStartEventFields,
67
- JSONVoiceRegion,
68
- VoiceServerUpdateEventFields,
69
- RawApplication,
70
- RawChannel,
71
- RawGuild,
72
- RawInvite,
73
- RawStageInstance,
74
- RawStickerPack,
75
- RawUser,
76
- RawVoiceRegion,
77
- JSONEntitlement,
78
- JSONUnavailableGuild,
79
- } from "./types";
80
- import EventEmitter from "node:events";
81
- import { Shard, ShardsManager } from "./gateway";
82
-
83
- export interface ClientEvents {
84
- hello: [];
85
- ready: [];
86
- resumed: [];
87
- reconnect: [];
88
- invalidSession: [];
89
- applicationCommandPermissionsUpdate: [
90
- applicationCommandPermissions: JSONGuildApplicationCommandPermissions
91
- ];
92
- autoModerationRuleCreate: [autoModerationRule: AutoModerationRule];
93
- autoModerationRuleUpdate: [autoModerationRule: AutoModerationRule];
94
- autoModerationRuleDelete: [autoModerationRule: JSONAutoModerationRule];
95
- autoModerationActionExecution: [
96
- autoModerationExecution: AutoModerationActionExecutionEventFields
97
- ];
98
- channelCreate: [channel: Channel];
99
- channelUpdate: [channel: Channel];
100
- channelDelete: [channel: JSONChannel];
101
- channelPinsUpdate: [pins: ChannelPinsUpdateEventFields];
102
- threadCreate: [thread: Channel];
103
- threadUpdate: [thread: Channel];
104
- threadDelete: [thread: JSONChannel];
105
- threadListSync: [sync: ThreadListSyncEventFields];
106
- threadMemberUpdate: [
107
- threadMember: JSONThreadMember & {
108
- guildId: string;
109
- }
110
- ];
111
- threadMembersUpdate: [thread: ThreadMembersUpdateEventFields];
112
- entitlementCreate: [entitlement: Entitlement];
113
- entitlementUpdate: [entitlement: Entitlement];
114
- entitlementDelete: [entitlement: JSONEntitlement];
115
- guildCreate: [guild: Guild | UnavailableGuild];
116
- guildUpdate: [guild: Guild];
117
- guildDelete: [guild: JSONUnavailableGuild];
118
- guildAuditLogEntryCreate: [auditLogEntry: JSONAuditLogEntry];
119
- guildBanAdd: [ban: GuildBanAddEventFields];
120
- guildBanRemove: [ban: GuildBanRemoveEventFields];
121
- guildEmojisUpdate: [emojis: Array<Emoji>, guildId: string];
122
- guildStickersUpdate: [stickers: Array<Sticker>, guildId: string];
123
- guildIntegrationsUpdate: [guildId: string];
124
- guildMemberAdd: [guildMember: GuildMember];
125
- guildMemberRemove: [guildMember: GuildMemberRemoveEventFields];
126
- guildMemberUpdate: [guildMember: GuildMemberUpdateEventFields];
127
- guildMembersChunk: [request: GuildMembersChunkEventFields];
128
- guildRoleCreate: [role: Role, guildId: string];
129
- guildRoleUpdate: [role: Role, guildId: string];
130
- guildRoleDelete: [roleId: string, guildId: string];
131
- guildScheduledEventCreate: [guildScheduledEvent: GuildScheduledEvent];
132
- guildScheduledEventUpdate: [guildScheduledEvent: GuildScheduledEvent];
133
- guildScheduledEventDelete: [guildScheduledEvent: JSONGuildScheduledEvent];
134
- guildScheduledEventUserAdd: [
135
- userId: string,
136
- guildScheduledEventId: string,
137
- guildId: string
138
- ];
139
- guildScheduledEventUserRemove: [
140
- userId: string,
141
- guildScheduledEventId: string,
142
- guildId: string
143
- ];
144
- integrationCreate: [integration: Integration];
145
- integrationUpdate: [integration: Integration];
146
- integrationDelete: [integration: IntegrationDeleteEventFields];
147
- interactionCreate: [interaction: Interaction];
148
- inviteCreate: [invite: InviteCreateEventFields];
149
- inviteDelete: [invite: InviteDeleteEventFields];
150
- messageCreate: [message: Message];
151
- messageUpdate: [
152
- message:
153
- | Message
154
- | {
155
- id: string;
156
- channelId: string;
157
- }
158
- ];
159
- messageDelete: [message: MessageDeleteEventFields];
160
- messageDeleteBulk: [bulk: MessageDeleteBulkEventFields];
161
- messageReactionAdd: [reaction: MessageReactionAddEventFields];
162
- messageReactionRemove: [reaction: MessageReactionRemoveEventFields];
163
- messageReactionRemoveAll: [reaction: MessageReactionRemoveAllEventFields];
164
- messageReactionRemoveEmoji: [reaction: MessageReactionRemoveEmojiEventFields];
165
- presenceUpdate: [presence: PresenceUpdateEventFields];
166
- stageInstanceCreate: [stageInstance: StageInstance];
167
- stageInstanceUpdate: [stageInstance: StageInstance];
168
- stageInstanceDelete: [stageInstance: JSONStageInstance];
169
- typingStart: [typing: TypingStartEventFields];
170
- userUpdate: [user: User];
171
- voiceStateUpdate: [voiceState: VoiceState];
172
- voiceServerUpdate: [voiceServer: VoiceServerUpdateEventFields];
173
- webhooksUpdate: [channelId: string, guildId: string];
174
- }
175
-
176
- export interface ClientOptions {
177
- intents?: number | Array<number>;
178
- shardsCount?: number | "auto";
179
- auth?: "Bot" | "Bearer";
180
- }
181
-
182
- export class Client extends EventEmitter {
183
- token: string;
184
- intents: GatewayIntents | number;
185
- shardsCount: number | "auto";
186
- auth: "Bot" | "Bearer";
187
- shards: ShardsManager;
188
- rest: REST;
189
- util: Util;
190
- user!: User;
191
- application!: ClientApplication;
192
- guildSharding: Record<string, number>;
193
-
194
- constructor(token: string, options?: ClientOptions) {
195
- super();
196
-
197
- this.token = token;
198
- this.intents =
199
- options?.intents !== undefined
200
- ? Array.isArray(options.intents)
201
- ? options.intents.reduce((sum, num) => sum + num, 0)
202
- : options.intents
203
- : GatewayIntents.AllNonPrivileged;
204
- this.shardsCount = options?.shardsCount ?? "auto";
205
- this.auth = options?.auth ?? "Bot";
206
- this.shards = new ShardsManager();
207
- this.rest = new REST(token, this.auth);
208
- this.util = new Util();
209
- this.guildSharding = {};
210
- }
211
-
212
- /** https://discord.com/developers/docs/resources/guild#create-guild */
213
- async createGuild(options: {
214
- name: string;
215
- region?: string | null;
216
- icon?: string;
217
- verificationLevel?: VerificationLevel;
218
- defaultMessageNotifications?: DefaultMessageNotificationLevel;
219
- explicitContentFilter?: ExplicitContentFilterLevel;
220
- roles?: Array<
221
- Partial<Omit<JSONRole, "id" | "position" | "tags" | "flags" | "managed">>
222
- >;
223
- channels?: Array<{
224
- name: string;
225
- type: ChannelTypes;
226
- id?: number;
227
- parentId?: number;
228
- }>;
229
- afkChannelId?: string;
230
- afkTimeout?: number;
231
- systemChannelId?: string;
232
- systemChannelFlags?: SystemChannelFlags;
233
- }): Promise<Guild> {
234
- return new Guild(
235
- await this.rest.post<RawGuild>(Endpoints.guilds(), {
236
- json: {
237
- name: options.name,
238
- region: options.region,
239
- icon: options.icon,
240
- verification_level: options.verificationLevel,
241
- default_message_notifications: options.defaultMessageNotifications,
242
- explicit_content_filter: options.explicitContentFilter,
243
- roles: options.roles?.map((role) => this.util.roleToRaw(role)),
244
- channels: options.channels?.map((channel) => ({
245
- id: channel.id,
246
- type: channel.name,
247
- parent_id: channel.parentId,
248
- name: channel.name,
249
- })),
250
- afk_channel_id: options.afkChannelId,
251
- afk_timeout: options.afkTimeout,
252
- system_channel_id: options.systemChannelId,
253
- system_channel_flags: options.systemChannelFlags,
254
- },
255
- }),
256
- this
257
- );
258
- }
259
-
260
- /** https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template */
261
- async createGuildFromTemplate(
262
- code: string,
263
- options: {
264
- name: string;
265
- icon?: string;
266
- }
267
- ): Promise<Guild> {
268
- return new Guild(
269
- await this.rest.post<RawGuild>(Endpoints.template(code), {
270
- json: {
271
- name: options.name,
272
- icon: options.icon,
273
- },
274
- }),
275
- this
276
- );
277
- }
278
-
279
- /** https://discord.com/developers/docs/resources/stage-instance#create-stage-instance */
280
- async createStageInstance(
281
- options: {
282
- channelId: string;
283
- topic: string;
284
- privacyLevel?: PrivacyLevel;
285
- sendStartNotifications?: boolean;
286
- guildScheduledEventId?: string;
287
- },
288
- reason?: string
289
- ): Promise<StageInstance> {
290
- return new StageInstance(
291
- await this.rest.post<RawStageInstance>(Endpoints.stageInstances(), {
292
- json: {
293
- channel_id: options.channelId,
294
- topic: options.topic,
295
- privacy_level: options.privacyLevel,
296
- send_start_notifications: options.sendStartNotifications,
297
- guild_scheduled_event_id: options.guildScheduledEventId,
298
- },
299
- reason,
300
- }),
301
- this
302
- );
303
- }
304
-
305
- /** https://discord.com/developers/docs/resources/application#get-current-application */
306
- async getApplication(): Promise<Application> {
307
- return new Application(
308
- await this.rest.get<RawApplication>(Endpoints.applicationCurrentUser()),
309
- this
310
- );
311
- }
312
-
313
- /** https://discord.com/developers/docs/resources/channel#get-channel */
314
- async getChannel(channelId: string): Promise<Channel> {
315
- return new Channel(
316
- await this.rest.get<RawChannel>(Endpoints.channel(channelId)),
317
- this
318
- );
319
- }
320
-
321
- /** https://discord.com/developers/docs/topics/gateway#get-gateway */
322
- async getGateway(): Promise<{ url: string }> {
323
- return this.rest.get<{ url: string }>(Endpoints.gateway());
324
- }
325
-
326
- /** https://discord.com/developers/docs/topics/gateway#get-gateway-bot */
327
- async getGatewayBot(): Promise<{
328
- url: string;
329
- shards: number;
330
- sessionStartLimit: {
331
- total: number;
332
- remaining: number;
333
- resetAfter: number;
334
- maxConcurrency: number;
335
- };
336
- }> {
337
- return this.rest
338
- .get<{
339
- url: string;
340
- shards: number;
341
- session_start_limit: {
342
- total: number;
343
- remaining: number;
344
- reset_after: number;
345
- max_concurrency: number;
346
- };
347
- }>(Endpoints.gatewayBot())
348
- .then((response) => ({
349
- url: response.url,
350
- shards: response.shards,
351
- sessionStartLimit: {
352
- total: response.session_start_limit.total,
353
- remaining: response.session_start_limit.remaining,
354
- resetAfter: response.session_start_limit.reset_after,
355
- maxConcurrency: response.session_start_limit.max_concurrency,
356
- },
357
- }));
358
- }
359
-
360
- /** https://discord.com/developers/docs/resources/guild#get-guild */
361
- async getGuild(
362
- guildId: string,
363
- options?: {
364
- withCounts?: boolean;
365
- }
366
- ): Promise<Guild> {
367
- return new Guild(
368
- await this.rest.get<RawGuild>(Endpoints.guild(guildId), {
369
- query: {
370
- with_counts: options?.withCounts,
371
- },
372
- }),
373
- this
374
- );
375
- }
376
-
377
- /** https://discord.com/developers/docs/resources/user#get-current-user-guilds */
378
- async getGuilds(options?: {
379
- before?: string;
380
- after?: string;
381
- limit?: number;
382
- withCounts?: boolean;
383
- }): Promise<Array<Guild>> {
384
- return this.rest
385
- .get<Array<RawGuild>>(Endpoints.userGuilds(), {
386
- query: {
387
- before: options?.before,
388
- after: options?.after,
389
- limit: options?.limit,
390
- with_counts: options?.withCounts,
391
- },
392
- })
393
- .then((response) => response.map((data) => new Guild(data, this)));
394
- }
395
-
396
- /** https://discord.com/developers/docs/resources/invite#get-invite */
397
- async getInvite(
398
- code: string,
399
- options?: {
400
- withCounts?: boolean;
401
- withExpiration?: boolean;
402
- guildScheduledEventId?: string;
403
- }
404
- ): Promise<Invite> {
405
- return new Invite(
406
- await this.rest.get<RawInvite>(Endpoints.invite(code), {
407
- query: {
408
- with_counts: options?.withCounts,
409
- with_expiration: options?.withExpiration,
410
- guild_scheduled_event_id: options?.guildScheduledEventId,
411
- },
412
- }),
413
- this
414
- );
415
- }
416
-
417
- /** https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information */
418
- async getOAuth2Application(): Promise<Application> {
419
- return new Application(
420
- await this.rest.get<RawApplication>(Endpoints.oauth2CurrentApplication()),
421
- this
422
- );
423
- }
424
-
425
- /** https://discord.com/developers/docs/topics/oauth2#get-current-authorization-information */
426
- async getOAuth2Authorization(): Promise<{
427
- application: Application;
428
- scopes: Array<OAuth2Scopes>;
429
- expires: string;
430
- user?: User;
431
- }> {
432
- return this.rest
433
- .get<{
434
- application: RawApplication;
435
- scopes: Array<OAuth2Scopes>;
436
- expires: string;
437
- user?: RawUser;
438
- }>(Endpoints.oauth2Authorization())
439
- .then((response) => ({
440
- application: new Application(response.application, this),
441
- scopes: response.scopes,
442
- expires: response.expires,
443
- user:
444
- response.user !== undefined
445
- ? new User(response.user, this)
446
- : undefined,
447
- }));
448
- }
449
-
450
- /** https://discord.com/developers/docs/resources/stage-instance#get-stage-instance */
451
- async getStageInstance(channelId: string): Promise<StageInstance> {
452
- return new StageInstance(
453
- await this.rest.get<RawStageInstance>(Endpoints.stageInstance(channelId)),
454
- this
455
- );
456
- }
457
-
458
- /** https://discord.com/developers/docs/resources/sticker#list-sticker-packs */
459
- async getStickerPacks(): Promise<{
460
- stickerPacks: Array<JSONStickerPack>;
461
- }> {
462
- return this.rest
463
- .get<{
464
- sticker_packs: Array<RawStickerPack>;
465
- }>(Endpoints.stickerPacks())
466
- .then((response) => ({
467
- stickerPacks: response.sticker_packs.map((stickerPack) => ({
468
- id: stickerPack.id,
469
- stickers: stickerPack.stickers.map((sticker) => ({
470
- id: sticker.id,
471
- packId: sticker.pack_id,
472
- name: sticker.name,
473
- description: sticker.description,
474
- tags: sticker.tags,
475
- asset: sticker.asset,
476
- type: sticker.type,
477
- formatType: sticker.format_type,
478
- available: sticker.available,
479
- guildId: sticker.guild_id,
480
- user:
481
- sticker.user !== undefined
482
- ? new User(sticker.user, this).toJSON()
483
- : undefined,
484
- sortValue: sticker.sort_value,
485
- })),
486
- name: stickerPack.name,
487
- skuId: stickerPack.sku_id,
488
- coverStickerId: stickerPack.cover_sticker_id,
489
- description: stickerPack.description,
490
- bannerAssetId: stickerPack.banner_asset_id,
491
- })),
492
- }));
493
- }
494
-
495
- /** https://discord.com/developers/docs/resources/user#get-user */
496
- async getUser(userId?: string): Promise<User> {
497
- return new User(await this.rest.get<RawUser>(Endpoints.user(userId)), this);
498
- }
499
-
500
- /** https://discord.com/developers/docs/resources/voice#list-voice-regions */
501
- async getVoiceRegions(): Promise<Array<JSONVoiceRegion>> {
502
- return this.rest
503
- .get<Array<RawVoiceRegion>>(Endpoints.voiceRegions())
504
- .then((response) =>
505
- response.map((data) => ({
506
- id: data.id,
507
- name: data.name,
508
- optimal: data.optimal,
509
- deprecated: data.deprecated,
510
- custom: data.custom,
511
- }))
512
- );
513
- }
514
-
515
- /** https://discord.com/developers/docs/topics/gateway-events#update-voice-state */
516
- joinVoiceChannel(
517
- guildId: string,
518
- channelId: string,
519
- options?: {
520
- selfMute?: boolean;
521
- selfDeaf?: boolean;
522
- }
523
- ): void {
524
- this.shards.get(this.guildSharding[guildId])?.ws.send(
525
- JSON.stringify({
526
- op: GatewayOPCodes.VoiceStateUpdate,
527
- d: {
528
- guild_id: guildId,
529
- channel_id: channelId,
530
- self_mute: !!options?.selfMute,
531
- self_deaf: !!options?.selfDeaf,
532
- },
533
- })
534
- );
535
- }
536
-
537
- /** https://discord.com/developers/docs/topics/gateway-events#update-voice-state */
538
- leaveVoiceChannel(guildId: string): void {
539
- this.shards.get(this.guildSharding[guildId])?.ws.send(
540
- JSON.stringify({
541
- op: GatewayOPCodes.VoiceStateUpdate,
542
- d: {
543
- guild_id: guildId,
544
- channel_id: null,
545
- self_mute: false,
546
- self_deaf: false,
547
- },
548
- })
549
- );
550
- }
551
-
552
- /** https://discord.com/developers/docs/topics/gateway-events#update-presence */
553
- setPresence(options: {
554
- activity?: Pick<Activity, "name" | "type" | "url" | "state">;
555
- status?: StatusTypes;
556
- afk?: boolean;
557
- }): void {
558
- for (const [id, shard] of this.shards) shard.setPresence(options);
559
- }
560
-
561
- /** https://discord.com/developers/docs/topics/gateway#connections */
562
- async connect(): Promise<void> {
563
- this.shardsCount =
564
- this.shardsCount === "auto"
565
- ? (await this.getGatewayBot()).shards
566
- : this.shardsCount;
567
-
568
- for (let i = 0; i < this.shardsCount; i++)
569
- this.shards.set(i, new Shard(i, this));
570
-
571
- this.shards.connect();
572
- }
573
-
574
- disconnect(): void {
575
- this.shards.disconnect();
576
- }
577
- }
578
-
579
- export declare interface Client extends EventEmitter {
580
- addListener<K extends keyof ClientEvents>(
581
- eventName: K,
582
- listener: (...args: ClientEvents[K]) => void
583
- ): this;
584
- emit<K extends keyof ClientEvents>(
585
- eventName: K,
586
- ...args: ClientEvents[K]
587
- ): boolean;
588
- listenerCount(eventName: keyof ClientEvents): number;
589
- listeners(eventName: keyof ClientEvents): Array<Function>;
590
- off<K extends keyof ClientEvents>(
591
- eventName: K,
592
- listener: (...args: ClientEvents[K]) => void
593
- ): this;
594
- on<K extends keyof ClientEvents>(
595
- eventName: K,
596
- listener: (...args: ClientEvents[K]) => void
597
- ): this;
598
- once<K extends keyof ClientEvents>(
599
- eventName: K,
600
- listener: (...args: ClientEvents[K]) => void
601
- ): this;
602
- prependListener<K extends keyof ClientEvents>(
603
- eventName: K,
604
- listener: (...args: ClientEvents[K]) => void
605
- ): this;
606
- prependOnceListener<K extends keyof ClientEvents>(
607
- eventName: K,
608
- listener: (...args: ClientEvents[K]) => void
609
- ): this;
610
- rawListeners(eventName: keyof ClientEvents): Array<Function>;
611
- removeAllListeners(event?: keyof ClientEvents): this;
612
- removeListener<K extends keyof ClientEvents>(
613
- eventName: K,
614
- listener: (...args: ClientEvents[K]) => void
615
- ): this;
616
- }