djs-selfbot-v13 3.2.2 → 3.7.1
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.
- package/README.md +37 -36
- package/package.json +89 -85
- package/src/WebSocket.js +39 -39
- package/src/client/BaseClient.js +86 -86
- package/src/client/Client.js +934 -836
- package/src/client/WebhookClient.js +61 -61
- package/src/client/actions/Action.js +116 -120
- package/src/client/actions/ActionsManager.js +80 -78
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -34
- package/src/client/actions/AutoModerationActionExecution.js +27 -27
- package/src/client/actions/AutoModerationRuleCreate.js +28 -28
- package/src/client/actions/AutoModerationRuleDelete.js +32 -32
- package/src/client/actions/AutoModerationRuleUpdate.js +30 -30
- package/src/client/actions/ChannelCreate.js +23 -23
- package/src/client/actions/ChannelDelete.js +39 -39
- package/src/client/actions/ChannelUpdate.js +43 -43
- package/src/client/actions/GuildAuditLogEntryCreate.js +29 -29
- package/src/client/actions/GuildBanAdd.js +20 -20
- package/src/client/actions/GuildBanRemove.js +25 -25
- package/src/client/actions/GuildChannelsPositionUpdate.js +21 -21
- package/src/client/actions/GuildDelete.js +65 -65
- package/src/client/actions/GuildEmojiCreate.js +20 -20
- package/src/client/actions/GuildEmojiDelete.js +21 -21
- package/src/client/actions/GuildEmojiUpdate.js +20 -20
- package/src/client/actions/GuildEmojisUpdate.js +34 -34
- package/src/client/actions/GuildIntegrationsUpdate.js +19 -19
- package/src/client/actions/GuildMemberRemove.js +33 -32
- package/src/client/actions/GuildMemberUpdate.js +44 -43
- package/src/client/actions/GuildRoleCreate.js +25 -25
- package/src/client/actions/GuildRoleDelete.js +31 -31
- package/src/client/actions/GuildRoleUpdate.js +39 -39
- package/src/client/actions/GuildRolesPositionUpdate.js +21 -21
- package/src/client/actions/GuildScheduledEventCreate.js +27 -27
- package/src/client/actions/GuildScheduledEventDelete.js +31 -31
- package/src/client/actions/GuildScheduledEventUpdate.js +30 -30
- package/src/client/actions/GuildScheduledEventUserAdd.js +32 -32
- package/src/client/actions/GuildScheduledEventUserRemove.js +32 -32
- package/src/client/actions/GuildStickerCreate.js +20 -20
- package/src/client/actions/GuildStickerDelete.js +21 -21
- package/src/client/actions/GuildStickerUpdate.js +20 -20
- package/src/client/actions/GuildStickersUpdate.js +34 -34
- package/src/client/actions/GuildUpdate.js +33 -33
- package/src/client/actions/InviteCreate.js +28 -28
- package/src/client/actions/InviteDelete.js +30 -30
- package/src/client/actions/MessageCreate.js +50 -46
- package/src/client/actions/MessageDelete.js +32 -32
- package/src/client/actions/MessageDeleteBulk.js +46 -46
- package/src/client/actions/MessagePollVoteAdd.js +33 -0
- package/src/client/actions/MessagePollVoteRemove.js +33 -0
- package/src/client/actions/MessageReactionAdd.js +68 -56
- package/src/client/actions/MessageReactionRemove.js +50 -45
- package/src/client/actions/MessageReactionRemoveAll.js +33 -33
- package/src/client/actions/MessageReactionRemoveEmoji.js +28 -28
- package/src/client/actions/MessageUpdate.js +26 -26
- package/src/client/actions/PresenceUpdate.js +50 -46
- package/src/client/actions/StageInstanceCreate.js +28 -28
- package/src/client/actions/StageInstanceDelete.js +33 -33
- package/src/client/actions/StageInstanceUpdate.js +30 -30
- package/src/client/actions/ThreadCreate.js +24 -24
- package/src/client/actions/ThreadDelete.js +32 -32
- package/src/client/actions/ThreadListSync.js +59 -59
- package/src/client/actions/ThreadMemberUpdate.js +30 -30
- package/src/client/actions/ThreadMembersUpdate.js +34 -34
- package/src/client/actions/TypingStart.js +29 -29
- package/src/client/actions/UserUpdate.js +35 -35
- package/src/client/actions/VoiceStateUpdate.js +50 -57
- package/src/client/actions/WebhooksUpdate.js +20 -20
- package/src/client/voice/ClientVoiceManager.js +151 -51
- package/src/client/voice/VoiceConnection.js +1249 -0
- package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
- package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
- package/src/client/voice/dispatcher/BaseDispatcher.js +459 -0
- package/src/client/voice/dispatcher/VPxDispatcher.js +54 -0
- package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
- package/src/client/voice/networking/VoiceUDPClient.js +173 -0
- package/src/client/voice/networking/VoiceWebSocket.js +286 -0
- package/src/client/voice/player/MediaPlayer.js +321 -0
- package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -0
- package/src/client/voice/player/processing/IvfSplitter.js +106 -0
- package/src/client/voice/player/processing/PCMInsertSilence.js +37 -0
- package/src/client/voice/receiver/PacketHandler.js +260 -0
- package/src/client/voice/receiver/Receiver.js +96 -0
- package/src/client/voice/receiver/Recorder.js +173 -0
- package/src/client/voice/util/Function.js +116 -0
- package/src/client/voice/util/PlayInterface.js +122 -0
- package/src/client/voice/util/Secretbox.js +64 -0
- package/src/client/voice/util/Silence.js +16 -0
- package/src/client/voice/util/Socket.js +62 -0
- package/src/client/voice/util/VolumeInterface.js +104 -0
- package/src/client/websocket/WebSocketManager.js +392 -392
- package/src/client/websocket/WebSocketShard.js +907 -906
- package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -18
- package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -20
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -20
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/CALL_CREATE.js +14 -14
- package/src/client/websocket/handlers/CALL_DELETE.js +11 -11
- package/src/client/websocket/handlers/CALL_UPDATE.js +11 -11
- package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -5
- package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -5
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -22
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -19
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -16
- package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -16
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -5
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_CREATE.js +52 -52
- package/src/client/websocket/handlers/GUILD_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -39
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -19
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -5
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -12
- package/src/client/websocket/handlers/INVITE_CREATE.js +5 -5
- package/src/client/websocket/handlers/INVITE_DELETE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +5 -22
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -12
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -16
- package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/READY.js +121 -120
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -19
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -17
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -41
- package/src/client/websocket/handlers/RESUMED.js +14 -14
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -5
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -5
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_CREATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_DELETE.js +5 -5
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -5
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -16
- package/src/client/websocket/handlers/TYPING_START.js +5 -5
- package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -6
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -78
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -12
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -6
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/index.js +84 -83
- package/src/errors/DJSError.js +61 -61
- package/src/errors/Messages.js +217 -183
- package/src/errors/index.js +4 -4
- package/src/index.js +172 -159
- package/src/managers/ApplicationCommandManager.js +264 -264
- package/src/managers/ApplicationCommandPermissionsManager.js +417 -417
- package/src/managers/AutoModerationRuleManager.js +296 -296
- package/src/managers/BaseGuildEmojiManager.js +80 -80
- package/src/managers/BaseManager.js +19 -19
- package/src/managers/BillingManager.js +66 -66
- package/src/managers/CachedManager.js +71 -71
- package/src/managers/ChannelManager.js +148 -138
- package/src/managers/ClientUserSettingManager.js +372 -372
- package/src/managers/DataManager.js +61 -61
- package/src/managers/GuildBanManager.js +250 -250
- package/src/managers/GuildChannelManager.js +488 -488
- package/src/managers/GuildEmojiManager.js +171 -171
- package/src/managers/GuildEmojiRoleManager.js +118 -118
- package/src/managers/GuildForumThreadManager.js +108 -108
- package/src/managers/GuildInviteManager.js +213 -213
- package/src/managers/GuildManager.js +338 -304
- package/src/managers/GuildMemberManager.js +599 -597
- package/src/managers/GuildMemberRoleManager.js +195 -191
- package/src/managers/GuildScheduledEventManager.js +314 -296
- package/src/managers/GuildSettingManager.js +155 -155
- package/src/managers/GuildStickerManager.js +179 -179
- package/src/managers/GuildTextThreadManager.js +98 -98
- package/src/managers/InteractionManager.js +39 -39
- package/src/managers/MessageManager.js +423 -391
- package/src/managers/PermissionOverwriteManager.js +164 -166
- package/src/managers/PresenceManager.js +71 -58
- package/src/managers/ReactionManager.js +67 -67
- package/src/managers/ReactionUserManager.js +73 -71
- package/src/managers/RelationshipManager.js +278 -265
- package/src/managers/RoleManager.js +448 -352
- package/src/managers/SessionManager.js +66 -0
- package/src/managers/StageInstanceManager.js +162 -162
- package/src/managers/ThreadManager.js +175 -174
- package/src/managers/ThreadMemberManager.js +186 -186
- package/src/managers/UserManager.js +136 -146
- package/src/managers/UserNoteManager.js +53 -53
- package/src/managers/VoiceStateManager.js +59 -37
- package/src/rest/APIRequest.js +154 -160
- package/src/rest/APIRouter.js +53 -53
- package/src/rest/DiscordAPIError.js +119 -104
- package/src/rest/HTTPError.js +62 -62
- package/src/rest/RESTManager.js +67 -62
- package/src/rest/RateLimitError.js +55 -55
- package/src/rest/RequestHandler.js +466 -444
- package/src/sharding/Shard.js +444 -443
- package/src/sharding/ShardClientUtil.js +279 -275
- package/src/sharding/ShardingManager.js +319 -318
- package/src/structures/AnonymousGuild.js +98 -98
- package/src/structures/ApplicationCommand.js +593 -593
- package/src/structures/ApplicationRoleConnectionMetadata.js +48 -48
- package/src/structures/AutoModerationActionExecution.js +89 -89
- package/src/structures/AutoModerationRule.js +294 -294
- package/src/structures/AutocompleteInteraction.js +107 -107
- package/src/structures/Base.js +43 -43
- package/src/structures/BaseCommandInteraction.js +211 -211
- package/src/structures/BaseGuild.js +116 -116
- package/src/structures/BaseGuildEmoji.js +56 -56
- package/src/structures/BaseGuildTextChannel.js +191 -191
- package/src/structures/BaseGuildVoiceChannel.js +241 -241
- package/src/structures/BaseMessageComponent.js +181 -114
- package/src/structures/ButtonInteraction.js +11 -11
- package/src/structures/CallState.js +63 -63
- package/src/structures/CategoryChannel.js +85 -85
- package/src/structures/Channel.js +284 -270
- package/src/structures/ClientPresence.js +77 -85
- package/src/structures/ClientUser.js +479 -448
- package/src/structures/CommandInteraction.js +41 -41
- package/src/structures/CommandInteractionOptionResolver.js +276 -276
- package/src/structures/ContainerComponent.js +68 -0
- package/src/structures/ContextMenuInteraction.js +65 -65
- package/src/structures/DMChannel.js +219 -217
- package/src/structures/DirectoryChannel.js +20 -20
- package/src/structures/Emoji.js +148 -148
- package/src/structures/FileComponent.js +49 -0
- package/src/structures/ForumChannel.js +31 -261
- package/src/structures/GroupDMChannel.js +394 -387
- package/src/structures/Guild.js +1643 -1608
- package/src/structures/GuildAuditLogs.js +746 -729
- package/src/structures/GuildBan.js +59 -59
- package/src/structures/GuildBoost.js +108 -108
- package/src/structures/GuildChannel.js +470 -468
- package/src/structures/GuildEmoji.js +161 -161
- package/src/structures/GuildMember.js +636 -568
- package/src/structures/GuildPreview.js +191 -191
- package/src/structures/GuildPreviewEmoji.js +27 -27
- package/src/structures/GuildScheduledEvent.js +536 -441
- package/src/structures/GuildTemplate.js +236 -236
- package/src/structures/Integration.js +188 -188
- package/src/structures/IntegrationApplication.js +96 -96
- package/src/structures/Interaction.js +290 -290
- package/src/structures/InteractionCollector.js +248 -248
- package/src/structures/InteractionWebhook.js +43 -43
- package/src/structures/Invite.js +358 -358
- package/src/structures/InviteGuild.js +23 -23
- package/src/structures/InviteStageInstance.js +86 -86
- package/src/structures/MediaChannel.js +11 -0
- package/src/structures/MediaGalleryComponent.js +41 -0
- package/src/structures/MediaGalleryItem.js +47 -0
- package/src/structures/Message.js +1252 -1227
- package/src/structures/MessageActionRow.js +105 -103
- package/src/structures/MessageAttachment.js +216 -204
- package/src/structures/MessageButton.js +166 -165
- package/src/structures/MessageCollector.js +146 -146
- package/src/structures/MessageComponentInteraction.js +120 -120
- package/src/structures/MessageContextMenuInteraction.js +20 -20
- package/src/structures/MessageEmbed.js +596 -586
- package/src/structures/MessageMentions.js +273 -273
- package/src/structures/MessagePayload.js +354 -318
- package/src/structures/MessageReaction.js +181 -171
- package/src/structures/MessageSelectMenu.js +141 -140
- package/src/structures/Modal.js +161 -161
- package/src/structures/ModalSubmitFieldsResolver.js +53 -53
- package/src/structures/ModalSubmitInteraction.js +119 -119
- package/src/structures/NewsChannel.js +32 -32
- package/src/structures/OAuth2Guild.js +28 -28
- package/src/structures/PermissionOverwrites.js +198 -196
- package/src/structures/Poll.js +108 -0
- package/src/structures/PollAnswer.js +88 -0
- package/src/structures/Presence.js +1105 -1101
- package/src/structures/ReactionCollector.js +229 -229
- package/src/structures/ReactionEmoji.js +31 -31
- package/src/structures/Role.js +590 -531
- package/src/structures/SectionComponent.js +48 -0
- package/src/structures/SelectMenuInteraction.js +21 -21
- package/src/structures/SeparatorComponent.js +48 -0
- package/src/structures/Session.js +81 -0
- package/src/structures/StageChannel.js +104 -104
- package/src/structures/StageInstance.js +208 -208
- package/src/structures/Sticker.js +310 -310
- package/src/structures/StickerPack.js +95 -95
- package/src/structures/StoreChannel.js +56 -56
- package/src/structures/Team.js +118 -118
- package/src/structures/TeamMember.js +80 -71
- package/src/structures/TextChannel.js +33 -33
- package/src/structures/TextDisplayComponent.js +40 -0
- package/src/structures/TextInputComponent.js +132 -131
- package/src/structures/ThreadChannel.js +605 -607
- package/src/structures/ThreadMember.js +105 -105
- package/src/structures/ThreadOnlyChannel.js +249 -0
- package/src/structures/ThumbnailComponent.js +57 -0
- package/src/structures/Typing.js +74 -74
- package/src/structures/UnfurledMediaItem.js +29 -0
- package/src/structures/User.js +640 -543
- package/src/structures/UserContextMenuInteraction.js +29 -29
- package/src/structures/VoiceChannel.js +110 -110
- package/src/structures/VoiceChannelEffect.js +69 -0
- package/src/structures/VoiceRegion.js +53 -53
- package/src/structures/VoiceState.js +354 -341
- package/src/structures/WebEmbed.js +373 -373
- package/src/structures/Webhook.js +478 -467
- package/src/structures/WelcomeChannel.js +60 -60
- package/src/structures/WelcomeScreen.js +48 -48
- package/src/structures/Widget.js +87 -87
- package/src/structures/WidgetMember.js +99 -99
- package/src/structures/interfaces/Application.js +825 -313
- package/src/structures/interfaces/Collector.js +300 -300
- package/src/structures/interfaces/InteractionResponses.js +313 -313
- package/src/structures/interfaces/TextBasedChannel.js +759 -719
- package/src/util/APITypes.js +59 -0
- package/src/util/ActivityFlags.js +44 -44
- package/src/util/ApplicationFlags.js +76 -76
- package/src/util/AttachmentFlags.js +38 -38
- package/src/util/BitField.js +170 -170
- package/src/util/ChannelFlags.js +45 -45
- package/src/util/Constants.js +1914 -1773
- package/src/util/DataResolver.js +146 -145
- package/src/util/Formatters.js +228 -228
- package/src/util/GuildMemberFlags.js +43 -43
- package/src/util/Intents.js +74 -74
- package/src/util/InviteFlags.js +34 -29
- package/src/util/LimitedCollection.js +131 -131
- package/src/util/MessageFlags.js +63 -54
- package/src/util/Options.js +358 -336
- package/src/util/Permissions.js +202 -202
- package/src/util/PremiumUsageFlags.js +31 -31
- package/src/util/PurchasedFlags.js +33 -33
- package/src/util/RemoteAuth.js +382 -379
- package/src/util/RoleFlags.js +37 -37
- package/src/util/SnowflakeUtil.js +92 -92
- package/src/util/Speaking.js +33 -0
- package/src/util/Sweepers.js +466 -466
- package/src/util/SystemChannelFlags.js +55 -55
- package/src/util/ThreadMemberFlags.js +30 -30
- package/src/util/UserFlags.js +104 -104
- package/src/util/Util.js +1048 -889
- package/typings/enums.d.ts +439 -297
- package/typings/index.d.ts +8247 -7432
- package/typings/rawDataTypes.d.ts +403 -342
- package/src/structures/MessagePoll.js +0 -238
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseMessageComponent = require('./BaseMessageComponent');
|
|
4
|
+
const { MessageComponentTypes } = require('../util/Constants');
|
|
5
|
+
|
|
6
|
+
class ContainerComponent extends BaseMessageComponent {
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {MessageActionRow|TextDisplayComponent|SectionComponent|MediaGalleryComponent|SeparatorComponent|FileComponent} ContainerComponents
|
|
9
|
+
* @property {ContainerComponents[]} [components] Components of the type action row, text display, section, media gallery, separator, or file
|
|
10
|
+
* @property {Number} [accent_color] Color for the accent on the container as RGB from 0x000000 to 0xFFFFFF
|
|
11
|
+
* @property {Boolean} [spoiler] Whether the container should be a spoiler (or blurred out). Defaults to false.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @param {ContainerComponent | APIContainerComponent} [data={}] The data
|
|
16
|
+
*/
|
|
17
|
+
constructor(data = {}) {
|
|
18
|
+
super({ type: 'CONTAINER' });
|
|
19
|
+
|
|
20
|
+
this.setup(data);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
setup(data) {
|
|
24
|
+
super.setup(data);
|
|
25
|
+
/**
|
|
26
|
+
* Components of the type action row, text display, section, media gallery, separator, or file
|
|
27
|
+
* @type {ContainerComponents[]}
|
|
28
|
+
*/
|
|
29
|
+
this.components = data.components?.map(c => BaseMessageComponent.create(c)) ?? [];
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Color for the accent on the container as RGB from 0x000000 to 0xFFFFFF
|
|
33
|
+
* @type {Number}
|
|
34
|
+
*/
|
|
35
|
+
this.accentColor = data.accent_color ?? null;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Whether the container should be a spoiler (or blurred out). Defaults to false.
|
|
39
|
+
* @type {Boolean}
|
|
40
|
+
*/
|
|
41
|
+
this.spoiler = data.spoiler ?? false;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The hex accent color of this container
|
|
46
|
+
* @type {?string}
|
|
47
|
+
* @readonly
|
|
48
|
+
*/
|
|
49
|
+
get hexAccentColor() {
|
|
50
|
+
return typeof this.accentColor === 'number'
|
|
51
|
+
? `#${this.accentColor.toString(16).padStart(6, '0')}`
|
|
52
|
+
: this.accentColor ?? null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @returns {APIContainerComponent}
|
|
57
|
+
*/
|
|
58
|
+
toJSON() {
|
|
59
|
+
return {
|
|
60
|
+
type: MessageComponentTypes[this.type],
|
|
61
|
+
components: this.components.map(c => c.toJSON()),
|
|
62
|
+
accent_color: this.accent_color,
|
|
63
|
+
spoiler: this.spoiler,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
module.exports = ContainerComponent;
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const BaseCommandInteraction = require('./BaseCommandInteraction');
|
|
4
|
-
const CommandInteractionOptionResolver = require('./CommandInteractionOptionResolver');
|
|
5
|
-
const { ApplicationCommandOptionTypes, ApplicationCommandTypes } = require('../util/Constants');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Represents a context menu interaction.
|
|
9
|
-
* @extends {BaseCommandInteraction}
|
|
10
|
-
*/
|
|
11
|
-
class ContextMenuInteraction extends BaseCommandInteraction {
|
|
12
|
-
constructor(client, data) {
|
|
13
|
-
super(client, data);
|
|
14
|
-
/**
|
|
15
|
-
* The target of the interaction, parsed into options
|
|
16
|
-
* @type {CommandInteractionOptionResolver}
|
|
17
|
-
*/
|
|
18
|
-
this.options = new CommandInteractionOptionResolver(
|
|
19
|
-
this.client,
|
|
20
|
-
this.resolveContextMenuOptions(data.data),
|
|
21
|
-
this.transformResolved(data.data.resolved),
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* The id of the target of this interaction
|
|
26
|
-
* @type {Snowflake}
|
|
27
|
-
*/
|
|
28
|
-
this.targetId = data.data.target_id;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* The type of the target of the interaction; either USER or MESSAGE
|
|
32
|
-
* @type {ApplicationCommandType}
|
|
33
|
-
*/
|
|
34
|
-
this.targetType = ApplicationCommandTypes[data.data.type];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Resolves and transforms options received from the API for a context menu interaction.
|
|
39
|
-
* @param {APIApplicationCommandInteractionData} data The interaction data
|
|
40
|
-
* @returns {CommandInteractionOption[]}
|
|
41
|
-
* @private
|
|
42
|
-
*/
|
|
43
|
-
resolveContextMenuOptions({ target_id, resolved }) {
|
|
44
|
-
const result = [];
|
|
45
|
-
|
|
46
|
-
if (resolved.users?.[target_id]) {
|
|
47
|
-
result.push(
|
|
48
|
-
this.transformOption({ name: 'user', type: ApplicationCommandOptionTypes.USER, value: target_id }, resolved),
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (resolved.messages?.[target_id]) {
|
|
53
|
-
result.push({
|
|
54
|
-
name: 'message',
|
|
55
|
-
type: '_MESSAGE',
|
|
56
|
-
value: target_id,
|
|
57
|
-
message: this.channel?.messages._add(resolved.messages[target_id]) ?? resolved.messages[target_id],
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
module.exports = ContextMenuInteraction;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseCommandInteraction = require('./BaseCommandInteraction');
|
|
4
|
+
const CommandInteractionOptionResolver = require('./CommandInteractionOptionResolver');
|
|
5
|
+
const { ApplicationCommandOptionTypes, ApplicationCommandTypes } = require('../util/Constants');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Represents a context menu interaction.
|
|
9
|
+
* @extends {BaseCommandInteraction}
|
|
10
|
+
*/
|
|
11
|
+
class ContextMenuInteraction extends BaseCommandInteraction {
|
|
12
|
+
constructor(client, data) {
|
|
13
|
+
super(client, data);
|
|
14
|
+
/**
|
|
15
|
+
* The target of the interaction, parsed into options
|
|
16
|
+
* @type {CommandInteractionOptionResolver}
|
|
17
|
+
*/
|
|
18
|
+
this.options = new CommandInteractionOptionResolver(
|
|
19
|
+
this.client,
|
|
20
|
+
this.resolveContextMenuOptions(data.data),
|
|
21
|
+
this.transformResolved(data.data.resolved),
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The id of the target of this interaction
|
|
26
|
+
* @type {Snowflake}
|
|
27
|
+
*/
|
|
28
|
+
this.targetId = data.data.target_id;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The type of the target of the interaction; either USER or MESSAGE
|
|
32
|
+
* @type {ApplicationCommandType}
|
|
33
|
+
*/
|
|
34
|
+
this.targetType = ApplicationCommandTypes[data.data.type];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Resolves and transforms options received from the API for a context menu interaction.
|
|
39
|
+
* @param {APIApplicationCommandInteractionData} data The interaction data
|
|
40
|
+
* @returns {CommandInteractionOption[]}
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
resolveContextMenuOptions({ target_id, resolved }) {
|
|
44
|
+
const result = [];
|
|
45
|
+
|
|
46
|
+
if (resolved.users?.[target_id]) {
|
|
47
|
+
result.push(
|
|
48
|
+
this.transformOption({ name: 'user', type: ApplicationCommandOptionTypes.USER, value: target_id }, resolved),
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (resolved.messages?.[target_id]) {
|
|
53
|
+
result.push({
|
|
54
|
+
name: 'message',
|
|
55
|
+
type: '_MESSAGE',
|
|
56
|
+
value: target_id,
|
|
57
|
+
message: this.channel?.messages._add(resolved.messages[target_id]) ?? resolved.messages[target_id],
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = ContextMenuInteraction;
|
|
@@ -1,217 +1,219 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { Collection } = require('@discordjs/collection');
|
|
4
|
-
const { Channel } = require('./Channel');
|
|
5
|
-
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
|
6
|
-
const MessageManager = require('../managers/MessageManager');
|
|
7
|
-
const { Opcodes, Status } = require('../util/Constants');
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Represents a direct message channel between two users.
|
|
11
|
-
* @extends {Channel}
|
|
12
|
-
* @implements {TextBasedChannel}
|
|
13
|
-
*/
|
|
14
|
-
class DMChannel extends Channel {
|
|
15
|
-
constructor(client, data) {
|
|
16
|
-
super(client, data);
|
|
17
|
-
|
|
18
|
-
// Override the channel type so partials have a known type
|
|
19
|
-
this.type = 'DM';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A manager of the messages belonging to this channel
|
|
23
|
-
* @type {MessageManager}
|
|
24
|
-
*/
|
|
25
|
-
this.messages = new MessageManager(this);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
_patch(data) {
|
|
29
|
-
super._patch(data);
|
|
30
|
-
|
|
31
|
-
if (data.recipients) {
|
|
32
|
-
/**
|
|
33
|
-
* The recipient on the other end of the DM
|
|
34
|
-
* @type {User}
|
|
35
|
-
*/
|
|
36
|
-
this.recipient = this.client.users._add(data.recipients[0]);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if ('last_message_id' in data) {
|
|
40
|
-
/**
|
|
41
|
-
* The channel's last message id, if one was sent
|
|
42
|
-
* @type {?Snowflake}
|
|
43
|
-
*/
|
|
44
|
-
this.lastMessageId = data.last_message_id;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if ('last_pin_timestamp' in data) {
|
|
48
|
-
/**
|
|
49
|
-
* The timestamp when the last pinned message was pinned, if there was one
|
|
50
|
-
* @type {?number}
|
|
51
|
-
*/
|
|
52
|
-
this.lastPinTimestamp =
|
|
53
|
-
} else {
|
|
54
|
-
this.lastPinTimestamp ??= null;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if ('is_message_request' in data) {
|
|
58
|
-
/**
|
|
59
|
-
* Whether the channel is a message request
|
|
60
|
-
* @type {?boolean}
|
|
61
|
-
*/
|
|
62
|
-
this.messageRequest = data.is_message_request;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if ('is_message_request_timestamp' in data) {
|
|
66
|
-
/**
|
|
67
|
-
* The timestamp when the message request was created
|
|
68
|
-
* @type {?number}
|
|
69
|
-
*/
|
|
70
|
-
this.messageRequestTimestamp =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
*
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
*
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
*
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
*
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
* @
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
|
4
|
+
const { Channel } = require('./Channel');
|
|
5
|
+
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
|
6
|
+
const MessageManager = require('../managers/MessageManager');
|
|
7
|
+
const { Opcodes, Status } = require('../util/Constants');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents a direct message channel between two users.
|
|
11
|
+
* @extends {Channel}
|
|
12
|
+
* @implements {TextBasedChannel}
|
|
13
|
+
*/
|
|
14
|
+
class DMChannel extends Channel {
|
|
15
|
+
constructor(client, data) {
|
|
16
|
+
super(client, data);
|
|
17
|
+
|
|
18
|
+
// Override the channel type so partials have a known type
|
|
19
|
+
this.type = 'DM';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A manager of the messages belonging to this channel
|
|
23
|
+
* @type {MessageManager}
|
|
24
|
+
*/
|
|
25
|
+
this.messages = new MessageManager(this);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
_patch(data) {
|
|
29
|
+
super._patch(data);
|
|
30
|
+
|
|
31
|
+
if (data.recipients) {
|
|
32
|
+
/**
|
|
33
|
+
* The recipient on the other end of the DM
|
|
34
|
+
* @type {User}
|
|
35
|
+
*/
|
|
36
|
+
this.recipient = this.client.users._add(data.recipients[0]);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if ('last_message_id' in data) {
|
|
40
|
+
/**
|
|
41
|
+
* The channel's last message id, if one was sent
|
|
42
|
+
* @type {?Snowflake}
|
|
43
|
+
*/
|
|
44
|
+
this.lastMessageId = data.last_message_id;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if ('last_pin_timestamp' in data) {
|
|
48
|
+
/**
|
|
49
|
+
* The timestamp when the last pinned message was pinned, if there was one
|
|
50
|
+
* @type {?number}
|
|
51
|
+
*/
|
|
52
|
+
this.lastPinTimestamp = data.last_pin_timestamp ? Date.parse(data.last_pin_timestamp) : null;
|
|
53
|
+
} else {
|
|
54
|
+
this.lastPinTimestamp ??= null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if ('is_message_request' in data) {
|
|
58
|
+
/**
|
|
59
|
+
* Whether the channel is a message request
|
|
60
|
+
* @type {?boolean}
|
|
61
|
+
*/
|
|
62
|
+
this.messageRequest = data.is_message_request;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if ('is_message_request_timestamp' in data) {
|
|
66
|
+
/**
|
|
67
|
+
* The timestamp when the message request was created
|
|
68
|
+
* @type {?number}
|
|
69
|
+
*/
|
|
70
|
+
this.messageRequestTimestamp = data.is_message_request_timestamp
|
|
71
|
+
? Date.parse(data.is_message_request_timestamp)
|
|
72
|
+
: null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Accept this DMChannel.
|
|
78
|
+
* @returns {Promise<DMChannel>}
|
|
79
|
+
*/
|
|
80
|
+
async acceptMessageRequest() {
|
|
81
|
+
if (!this.messageRequest) {
|
|
82
|
+
throw new Error('NOT_MESSAGE_REQUEST', 'This channel is not a message request');
|
|
83
|
+
}
|
|
84
|
+
const c = await this.client.api.channels[this.id].recipients['@me'].put({
|
|
85
|
+
data: {
|
|
86
|
+
consent_status: 2,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
this.messageRequest = false;
|
|
90
|
+
return this.client.channels._add(c);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Cancel this DMChannel.
|
|
95
|
+
* @returns {Promise<DMChannel>}
|
|
96
|
+
*/
|
|
97
|
+
async cancelMessageRequest() {
|
|
98
|
+
if (!this.messageRequest) {
|
|
99
|
+
throw new Error('NOT_MESSAGE_REQUEST', 'This channel is not a message request');
|
|
100
|
+
}
|
|
101
|
+
await this.client.api.channels[this.id].recipients['@me'].delete();
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Whether this DMChannel is a partial
|
|
107
|
+
* @type {boolean}
|
|
108
|
+
* @readonly
|
|
109
|
+
*/
|
|
110
|
+
get partial() {
|
|
111
|
+
return typeof this.lastMessageId === 'undefined';
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Fetch this DMChannel.
|
|
116
|
+
* @param {boolean} [force=true] Whether to skip the cache check and request the API
|
|
117
|
+
* @returns {Promise<DMChannel>}
|
|
118
|
+
*/
|
|
119
|
+
fetch(force = true) {
|
|
120
|
+
return this.recipient.createDM(force);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* When concatenated with a string, this automatically returns the recipient's mention instead of the
|
|
125
|
+
* DMChannel object.
|
|
126
|
+
* @returns {string}
|
|
127
|
+
* @example
|
|
128
|
+
* // Logs: Hello from <@123456789012345678>!
|
|
129
|
+
* console.log(`Hello from ${channel}!`);
|
|
130
|
+
*/
|
|
131
|
+
toString() {
|
|
132
|
+
return this.recipient.toString();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Sync VoiceState of this DMChannel.
|
|
137
|
+
* @returns {undefined}
|
|
138
|
+
*/
|
|
139
|
+
sync() {
|
|
140
|
+
this.client.ws.broadcast({
|
|
141
|
+
op: Opcodes.DM_UPDATE,
|
|
142
|
+
d: {
|
|
143
|
+
channel_id: this.id,
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Ring the user's phone / PC (call)
|
|
150
|
+
* @returns {Promise<void>}
|
|
151
|
+
*/
|
|
152
|
+
ring() {
|
|
153
|
+
return this.client.api.channels(this.id).call.ring.post({
|
|
154
|
+
data: {
|
|
155
|
+
recipients: null,
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* The user in this voice-based channel
|
|
162
|
+
* @type {Collection<Snowflake, User>}
|
|
163
|
+
* @readonly
|
|
164
|
+
*/
|
|
165
|
+
get voiceUsers() {
|
|
166
|
+
const coll = new Collection();
|
|
167
|
+
for (const state of this.client.voiceStates.cache.values()) {
|
|
168
|
+
if (state.channelId === this.id && state.user) {
|
|
169
|
+
coll.set(state.id, state.user);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return coll;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Get current shard
|
|
177
|
+
* @type {WebSocketShard}
|
|
178
|
+
* @readonly
|
|
179
|
+
*/
|
|
180
|
+
get shard() {
|
|
181
|
+
return this.client.ws.shards.first();
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* The voice state adapter for this client that can be used with @discordjs/voice to play audio in DM / Group DM channels.
|
|
186
|
+
* @type {?Function}
|
|
187
|
+
* @readonly
|
|
188
|
+
*/
|
|
189
|
+
get voiceAdapterCreator() {
|
|
190
|
+
return methods => {
|
|
191
|
+
this.client.voice.adapters.set(this.id, methods);
|
|
192
|
+
return {
|
|
193
|
+
sendPayload: data => {
|
|
194
|
+
if (this.shard.status !== Status.READY) return false;
|
|
195
|
+
this.shard.send(data);
|
|
196
|
+
return true;
|
|
197
|
+
},
|
|
198
|
+
destroy: () => {
|
|
199
|
+
this.client.voice.adapters.delete(this.id);
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// These are here only for documentation purposes - they are implemented by TextBasedChannel
|
|
206
|
+
/* eslint-disable no-empty-function */
|
|
207
|
+
get lastMessage() {}
|
|
208
|
+
get lastPinAt() {}
|
|
209
|
+
send() {}
|
|
210
|
+
sendTyping() {}
|
|
211
|
+
createMessageCollector() {}
|
|
212
|
+
awaitMessages() {}
|
|
213
|
+
// Doesn't work on DM channels; setRateLimitPerUser() {}
|
|
214
|
+
// Doesn't work on DM channels; setNSFW() {}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
TextBasedChannel.applyToClass(DMChannel, true, ['fetchWebhooks', 'createWebhook', 'setRateLimitPerUser', 'setNSFW']);
|
|
218
|
+
|
|
219
|
+
module.exports = DMChannel;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { Channel } = require('./Channel');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Represents a channel that displays a directory of guilds.
|
|
7
|
-
* @extends {Channel}
|
|
8
|
-
*/
|
|
9
|
-
class DirectoryChannel extends Channel {
|
|
10
|
-
_patch(data) {
|
|
11
|
-
super._patch(data);
|
|
12
|
-
/**
|
|
13
|
-
* The channel's name
|
|
14
|
-
* @type {string}
|
|
15
|
-
*/
|
|
16
|
-
this.name = data.name;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
module.exports = DirectoryChannel;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Channel } = require('./Channel');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a channel that displays a directory of guilds.
|
|
7
|
+
* @extends {Channel}
|
|
8
|
+
*/
|
|
9
|
+
class DirectoryChannel extends Channel {
|
|
10
|
+
_patch(data) {
|
|
11
|
+
super._patch(data);
|
|
12
|
+
/**
|
|
13
|
+
* The channel's name
|
|
14
|
+
* @type {string}
|
|
15
|
+
*/
|
|
16
|
+
this.name = data.name;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = DirectoryChannel;
|