disgroove 1.3.3 → 1.3.4-dev.7ed5475

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 (88) 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/constants.d.ts +2 -2
  5. package/dist/lib/constants.js +36 -36
  6. package/dist/lib/constants.js.map +1 -1
  7. package/dist/lib/gateway/Shard.js +2 -2
  8. package/dist/lib/rest/RequestsManager.d.ts +1 -1
  9. package/dist/lib/rest/RequestsManager.js +3 -4
  10. package/dist/lib/rest/RequestsManager.js.map +1 -1
  11. package/dist/lib/structures/Application.d.ts +13 -13
  12. package/dist/lib/structures/ApplicationCommand.d.ts +5 -5
  13. package/dist/lib/structures/ApplicationCommand.js.map +1 -1
  14. package/dist/lib/structures/ClientApplication.d.ts +13 -13
  15. package/dist/lib/structures/Guild.d.ts +14 -14
  16. package/dist/lib/structures/Guild.js +2 -3
  17. package/dist/lib/structures/Guild.js.map +1 -1
  18. package/dist/lib/structures/User.d.ts +3 -3
  19. package/dist/lib/types/application-command.d.ts +11 -11
  20. package/dist/lib/types/application-role-connection-metadata.d.ts +5 -5
  21. package/dist/package.json +1 -2
  22. package/package.json +1 -2
  23. package/lib/Client.ts +0 -616
  24. package/lib/constants.ts +0 -1173
  25. package/lib/gateway/Shard.ts +0 -704
  26. package/lib/gateway/ShardsManager.ts +0 -11
  27. package/lib/gateway/index.ts +0 -2
  28. package/lib/index.ts +0 -7
  29. package/lib/rest/CDN.ts +0 -56
  30. package/lib/rest/Endpoints.ts +0 -241
  31. package/lib/rest/REST.ts +0 -45
  32. package/lib/rest/RequestsManager.ts +0 -134
  33. package/lib/rest/index.ts +0 -4
  34. package/lib/structures/Application.ts +0 -599
  35. package/lib/structures/ApplicationCommand.ts +0 -187
  36. package/lib/structures/AuditLog.ts +0 -112
  37. package/lib/structures/AutoModerationRule.ts +0 -127
  38. package/lib/structures/Base.ts +0 -39
  39. package/lib/structures/Channel.ts +0 -921
  40. package/lib/structures/ClientApplication.ts +0 -515
  41. package/lib/structures/Emoji.ts +0 -95
  42. package/lib/structures/Entitlement.ts +0 -65
  43. package/lib/structures/Guild.ts +0 -1842
  44. package/lib/structures/GuildMember.ts +0 -193
  45. package/lib/structures/GuildScheduledEvent.ts +0 -164
  46. package/lib/structures/GuildTemplate.ts +0 -103
  47. package/lib/structures/Integration.ts +0 -136
  48. package/lib/structures/Interaction.ts +0 -506
  49. package/lib/structures/Invite.ts +0 -108
  50. package/lib/structures/Message.ts +0 -421
  51. package/lib/structures/Role.ts +0 -116
  52. package/lib/structures/SKU.ts +0 -63
  53. package/lib/structures/StageInstance.ts +0 -74
  54. package/lib/structures/Sticker.ts +0 -100
  55. package/lib/structures/Team.ts +0 -41
  56. package/lib/structures/TestEntitlement.ts +0 -78
  57. package/lib/structures/UnavailableGuild.ts +0 -27
  58. package/lib/structures/User.ts +0 -233
  59. package/lib/structures/VoiceState.ts +0 -72
  60. package/lib/structures/Webhook.ts +0 -341
  61. package/lib/structures/index.ts +0 -27
  62. package/lib/types/application-command.ts +0 -118
  63. package/lib/types/application-role-connection-metadata.ts +0 -23
  64. package/lib/types/application.ts +0 -77
  65. package/lib/types/audit-log.ts +0 -105
  66. package/lib/types/auto-moderation.ts +0 -78
  67. package/lib/types/channel.ts +0 -534
  68. package/lib/types/emoji.ts +0 -24
  69. package/lib/types/entitlements.ts +0 -34
  70. package/lib/types/gateway-events.ts +0 -970
  71. package/lib/types/guild-scheduled-event.ts +0 -67
  72. package/lib/types/guild-template.ts +0 -30
  73. package/lib/types/guild.ts +0 -388
  74. package/lib/types/index.ts +0 -23
  75. package/lib/types/interaction.ts +0 -224
  76. package/lib/types/invite.ts +0 -78
  77. package/lib/types/message-components.ts +0 -127
  78. package/lib/types/role.ts +0 -51
  79. package/lib/types/sku.ts +0 -32
  80. package/lib/types/stage-instance.ts +0 -22
  81. package/lib/types/sticker.ts +0 -67
  82. package/lib/types/team.ts +0 -34
  83. package/lib/types/user.ts +0 -93
  84. package/lib/types/voice.ts +0 -51
  85. package/lib/types/webhook.ts +0 -40
  86. package/lib/utils/Util.ts +0 -600
  87. package/lib/utils/errors.ts +0 -23
  88. 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
- }