djs-selfbot-v13 3.2.2 → 3.7.2
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 +63 -36
- package/package.json +89 -85
- package/src/WebSocket.js +39 -39
- package/src/client/BaseClient.js +86 -86
- package/src/client/Client.js +941 -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/QuestManager.js +376 -0
- 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 +653 -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 +1697 -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 +1137 -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 +8392 -7432
- package/typings/rawDataTypes.d.ts +403 -342
- package/src/structures/MessagePoll.js +0 -238
|
@@ -1,248 +1,248 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { Collection } = require('@discordjs/collection');
|
|
4
|
-
const Collector = require('./interfaces/Collector');
|
|
5
|
-
const { Events } = require('../util/Constants');
|
|
6
|
-
const { InteractionTypes, MessageComponentTypes } = require('../util/Constants');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @typedef {CollectorOptions} InteractionCollectorOptions
|
|
10
|
-
* @property {TextBasedChannelsResolvable} [channel] The channel to listen to interactions from
|
|
11
|
-
* @property {MessageComponentType} [componentType] The type of component to listen for
|
|
12
|
-
* @property {GuildResolvable} [guild] The guild to listen to interactions from
|
|
13
|
-
* @property {InteractionType} [interactionType] The type of interaction to listen for
|
|
14
|
-
* @property {number} [max] The maximum total amount of interactions to collect
|
|
15
|
-
* @property {number} [maxComponents] The maximum number of components to collect
|
|
16
|
-
* @property {number} [maxUsers] The maximum number of users to interact
|
|
17
|
-
* @property {Message|APIMessage} [message] The message to listen to interactions from
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Collects interactions.
|
|
22
|
-
* Will automatically stop if the message ({@link Client#event:messageDelete messageDelete} or
|
|
23
|
-
* {@link Client#event:messageDeleteBulk messageDeleteBulk}),
|
|
24
|
-
* channel ({@link Client#event:channelDelete channelDelete}), or
|
|
25
|
-
* guild ({@link Client#event:guildDelete guildDelete}) is deleted.
|
|
26
|
-
* <info>Interaction collectors that do not specify `time` or `idle` may be prone to always running.
|
|
27
|
-
* Ensure your interaction collectors end via either of these options or manual cancellation.</info>
|
|
28
|
-
* @extends {Collector}
|
|
29
|
-
*/
|
|
30
|
-
class InteractionCollector extends Collector {
|
|
31
|
-
/**
|
|
32
|
-
* @param {Client} client The client on which to collect interactions
|
|
33
|
-
* @param {InteractionCollectorOptions} [options={}] The options to apply to this collector
|
|
34
|
-
*/
|
|
35
|
-
constructor(client, options = {}) {
|
|
36
|
-
super(client, options);
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* The message from which to collect interactions, if provided
|
|
40
|
-
* @type {?Snowflake}
|
|
41
|
-
*/
|
|
42
|
-
this.messageId = options.message?.id ?? null;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* The channel from which to collect interactions, if provided
|
|
46
|
-
* @type {?Snowflake}
|
|
47
|
-
*/
|
|
48
|
-
this.channelId =
|
|
49
|
-
this.client.channels.resolveId(options.message?.channel) ??
|
|
50
|
-
options.message?.channel_id ??
|
|
51
|
-
this.client.channels.resolveId(options.channel);
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* The guild from which to collect interactions, if provided
|
|
55
|
-
* @type {?Snowflake}
|
|
56
|
-
*/
|
|
57
|
-
this.guildId =
|
|
58
|
-
this.client.guilds.resolveId(options.message?.guild) ??
|
|
59
|
-
options.message?.guild_id ??
|
|
60
|
-
this.client.guilds.resolveId(options.channel?.guild) ??
|
|
61
|
-
this.client.guilds.resolveId(options.guild);
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* The type of interaction to collect
|
|
65
|
-
* @type {?InteractionType}
|
|
66
|
-
*/
|
|
67
|
-
this.interactionType =
|
|
68
|
-
typeof options.interactionType === 'number'
|
|
69
|
-
? InteractionTypes[options.interactionType]
|
|
70
|
-
: options.interactionType ?? null;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* The type of component to collect
|
|
74
|
-
* @type {?MessageComponentType}
|
|
75
|
-
*/
|
|
76
|
-
this.componentType =
|
|
77
|
-
typeof options.componentType === 'number'
|
|
78
|
-
? MessageComponentTypes[options.componentType]
|
|
79
|
-
: options.componentType ?? null;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* The users that have interacted with this collector
|
|
83
|
-
* @type {Collection<Snowflake, User>}
|
|
84
|
-
*/
|
|
85
|
-
this.users = new Collection();
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* The total number of interactions collected
|
|
89
|
-
* @type {number}
|
|
90
|
-
*/
|
|
91
|
-
this.total = 0;
|
|
92
|
-
|
|
93
|
-
this.empty = this.empty.bind(this);
|
|
94
|
-
this.client.incrementMaxListeners();
|
|
95
|
-
|
|
96
|
-
const bulkDeleteListener = messages => {
|
|
97
|
-
if (messages.has(this.messageId)) this.stop('messageDelete');
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
if (this.messageId) {
|
|
101
|
-
this._handleMessageDeletion = this._handleMessageDeletion.bind(this);
|
|
102
|
-
this.client.on(Events.MESSAGE_DELETE, this._handleMessageDeletion);
|
|
103
|
-
this.client.on(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (this.channelId) {
|
|
107
|
-
this._handleChannelDeletion = this._handleChannelDeletion.bind(this);
|
|
108
|
-
this._handleThreadDeletion = this._handleThreadDeletion.bind(this);
|
|
109
|
-
this.client.on(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
110
|
-
this.client.on(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (this.guildId) {
|
|
114
|
-
this._handleGuildDeletion = this._handleGuildDeletion.bind(this);
|
|
115
|
-
this.client.on(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
this.client.on(Events.INTERACTION_CREATE, this.handleCollect);
|
|
119
|
-
|
|
120
|
-
this.once('end', () => {
|
|
121
|
-
this.client.removeListener(Events.INTERACTION_CREATE, this.handleCollect);
|
|
122
|
-
this.client.removeListener(Events.MESSAGE_DELETE, this._handleMessageDeletion);
|
|
123
|
-
this.client.removeListener(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
124
|
-
this.client.removeListener(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
125
|
-
this.client.removeListener(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
126
|
-
this.client.removeListener(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
127
|
-
this.client.decrementMaxListeners();
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
this.on('collect', interaction => {
|
|
131
|
-
this.total++;
|
|
132
|
-
this.users.set(interaction.user.id, interaction.user);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Handles an incoming interaction for possible collection.
|
|
138
|
-
* @param {Interaction} interaction The interaction to possibly collect
|
|
139
|
-
* @returns {?Snowflake}
|
|
140
|
-
* @private
|
|
141
|
-
*/
|
|
142
|
-
collect(interaction) {
|
|
143
|
-
/**
|
|
144
|
-
* Emitted whenever an interaction is collected.
|
|
145
|
-
* @event InteractionCollector#collect
|
|
146
|
-
* @param {Interaction} interaction The interaction that was collected
|
|
147
|
-
*/
|
|
148
|
-
if (this.interactionType && interaction.type !== this.interactionType) return null;
|
|
149
|
-
if (this.componentType && interaction.componentType !== this.componentType) return null;
|
|
150
|
-
if (this.messageId && interaction.message?.id !== this.messageId) return null;
|
|
151
|
-
if (this.channelId && interaction.channelId !== this.channelId) return null;
|
|
152
|
-
if (this.guildId && interaction.guildId !== this.guildId) return null;
|
|
153
|
-
|
|
154
|
-
return interaction.id;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Handles an interaction for possible disposal.
|
|
159
|
-
* @param {Interaction} interaction The interaction that could be disposed of
|
|
160
|
-
* @returns {?Snowflake}
|
|
161
|
-
*/
|
|
162
|
-
dispose(interaction) {
|
|
163
|
-
/**
|
|
164
|
-
* Emitted whenever an interaction is disposed of.
|
|
165
|
-
* @event InteractionCollector#dispose
|
|
166
|
-
* @param {Interaction} interaction The interaction that was disposed of
|
|
167
|
-
*/
|
|
168
|
-
if (this.type && interaction.type !== this.type) return null;
|
|
169
|
-
if (this.componentType && interaction.componentType !== this.componentType) return null;
|
|
170
|
-
if (this.messageId && interaction.message?.id !== this.messageId) return null;
|
|
171
|
-
if (this.channelId && interaction.channelId !== this.channelId) return null;
|
|
172
|
-
if (this.guildId && interaction.guildId !== this.guildId) return null;
|
|
173
|
-
|
|
174
|
-
return interaction.id;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Empties this interaction collector.
|
|
179
|
-
*/
|
|
180
|
-
empty() {
|
|
181
|
-
this.total = 0;
|
|
182
|
-
this.collected.clear();
|
|
183
|
-
this.users.clear();
|
|
184
|
-
this.checkEnd();
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* The reason this collector has ended with, or null if it hasn't ended yet
|
|
189
|
-
* @type {?string}
|
|
190
|
-
* @readonly
|
|
191
|
-
*/
|
|
192
|
-
get endReason() {
|
|
193
|
-
if (this.options.max && this.total >= this.options.max) return 'limit';
|
|
194
|
-
if (this.options.maxComponents && this.collected.size >= this.options.maxComponents) return 'componentLimit';
|
|
195
|
-
if (this.options.maxUsers && this.users.size >= this.options.maxUsers) return 'userLimit';
|
|
196
|
-
return null;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Handles checking if the message has been deleted, and if so, stops the collector with the reason 'messageDelete'.
|
|
201
|
-
* @private
|
|
202
|
-
* @param {Message} message The message that was deleted
|
|
203
|
-
* @returns {void}
|
|
204
|
-
*/
|
|
205
|
-
_handleMessageDeletion(message) {
|
|
206
|
-
if (message.id === this.messageId) {
|
|
207
|
-
this.stop('messageDelete');
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.
|
|
213
|
-
* @private
|
|
214
|
-
* @param {GuildChannel} channel The channel that was deleted
|
|
215
|
-
* @returns {void}
|
|
216
|
-
*/
|
|
217
|
-
_handleChannelDeletion(channel) {
|
|
218
|
-
if (channel.id === this.channelId || channel.threads?.cache.has(this.channelId)) {
|
|
219
|
-
this.stop('channelDelete');
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.
|
|
225
|
-
* @private
|
|
226
|
-
* @param {ThreadChannel} thread The thread that was deleted
|
|
227
|
-
* @returns {void}
|
|
228
|
-
*/
|
|
229
|
-
_handleThreadDeletion(thread) {
|
|
230
|
-
if (thread.id === this.channelId) {
|
|
231
|
-
this.stop('threadDelete');
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.
|
|
237
|
-
* @private
|
|
238
|
-
* @param {Guild} guild The guild that was deleted
|
|
239
|
-
* @returns {void}
|
|
240
|
-
*/
|
|
241
|
-
_handleGuildDeletion(guild) {
|
|
242
|
-
if (guild.id === this.guildId) {
|
|
243
|
-
this.stop('guildDelete');
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
module.exports = InteractionCollector;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
|
4
|
+
const Collector = require('./interfaces/Collector');
|
|
5
|
+
const { Events } = require('../util/Constants');
|
|
6
|
+
const { InteractionTypes, MessageComponentTypes } = require('../util/Constants');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {CollectorOptions} InteractionCollectorOptions
|
|
10
|
+
* @property {TextBasedChannelsResolvable} [channel] The channel to listen to interactions from
|
|
11
|
+
* @property {MessageComponentType} [componentType] The type of component to listen for
|
|
12
|
+
* @property {GuildResolvable} [guild] The guild to listen to interactions from
|
|
13
|
+
* @property {InteractionType} [interactionType] The type of interaction to listen for
|
|
14
|
+
* @property {number} [max] The maximum total amount of interactions to collect
|
|
15
|
+
* @property {number} [maxComponents] The maximum number of components to collect
|
|
16
|
+
* @property {number} [maxUsers] The maximum number of users to interact
|
|
17
|
+
* @property {Message|APIMessage} [message] The message to listen to interactions from
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Collects interactions.
|
|
22
|
+
* Will automatically stop if the message ({@link Client#event:messageDelete messageDelete} or
|
|
23
|
+
* {@link Client#event:messageDeleteBulk messageDeleteBulk}),
|
|
24
|
+
* channel ({@link Client#event:channelDelete channelDelete}), or
|
|
25
|
+
* guild ({@link Client#event:guildDelete guildDelete}) is deleted.
|
|
26
|
+
* <info>Interaction collectors that do not specify `time` or `idle` may be prone to always running.
|
|
27
|
+
* Ensure your interaction collectors end via either of these options or manual cancellation.</info>
|
|
28
|
+
* @extends {Collector}
|
|
29
|
+
*/
|
|
30
|
+
class InteractionCollector extends Collector {
|
|
31
|
+
/**
|
|
32
|
+
* @param {Client} client The client on which to collect interactions
|
|
33
|
+
* @param {InteractionCollectorOptions} [options={}] The options to apply to this collector
|
|
34
|
+
*/
|
|
35
|
+
constructor(client, options = {}) {
|
|
36
|
+
super(client, options);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The message from which to collect interactions, if provided
|
|
40
|
+
* @type {?Snowflake}
|
|
41
|
+
*/
|
|
42
|
+
this.messageId = options.message?.id ?? null;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The channel from which to collect interactions, if provided
|
|
46
|
+
* @type {?Snowflake}
|
|
47
|
+
*/
|
|
48
|
+
this.channelId =
|
|
49
|
+
this.client.channels.resolveId(options.message?.channel) ??
|
|
50
|
+
options.message?.channel_id ??
|
|
51
|
+
this.client.channels.resolveId(options.channel);
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The guild from which to collect interactions, if provided
|
|
55
|
+
* @type {?Snowflake}
|
|
56
|
+
*/
|
|
57
|
+
this.guildId =
|
|
58
|
+
this.client.guilds.resolveId(options.message?.guild) ??
|
|
59
|
+
options.message?.guild_id ??
|
|
60
|
+
this.client.guilds.resolveId(options.channel?.guild) ??
|
|
61
|
+
this.client.guilds.resolveId(options.guild);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The type of interaction to collect
|
|
65
|
+
* @type {?InteractionType}
|
|
66
|
+
*/
|
|
67
|
+
this.interactionType =
|
|
68
|
+
typeof options.interactionType === 'number'
|
|
69
|
+
? InteractionTypes[options.interactionType]
|
|
70
|
+
: options.interactionType ?? null;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The type of component to collect
|
|
74
|
+
* @type {?MessageComponentType}
|
|
75
|
+
*/
|
|
76
|
+
this.componentType =
|
|
77
|
+
typeof options.componentType === 'number'
|
|
78
|
+
? MessageComponentTypes[options.componentType]
|
|
79
|
+
: options.componentType ?? null;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The users that have interacted with this collector
|
|
83
|
+
* @type {Collection<Snowflake, User>}
|
|
84
|
+
*/
|
|
85
|
+
this.users = new Collection();
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The total number of interactions collected
|
|
89
|
+
* @type {number}
|
|
90
|
+
*/
|
|
91
|
+
this.total = 0;
|
|
92
|
+
|
|
93
|
+
this.empty = this.empty.bind(this);
|
|
94
|
+
this.client.incrementMaxListeners();
|
|
95
|
+
|
|
96
|
+
const bulkDeleteListener = messages => {
|
|
97
|
+
if (messages.has(this.messageId)) this.stop('messageDelete');
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
if (this.messageId) {
|
|
101
|
+
this._handleMessageDeletion = this._handleMessageDeletion.bind(this);
|
|
102
|
+
this.client.on(Events.MESSAGE_DELETE, this._handleMessageDeletion);
|
|
103
|
+
this.client.on(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (this.channelId) {
|
|
107
|
+
this._handleChannelDeletion = this._handleChannelDeletion.bind(this);
|
|
108
|
+
this._handleThreadDeletion = this._handleThreadDeletion.bind(this);
|
|
109
|
+
this.client.on(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
110
|
+
this.client.on(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (this.guildId) {
|
|
114
|
+
this._handleGuildDeletion = this._handleGuildDeletion.bind(this);
|
|
115
|
+
this.client.on(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
this.client.on(Events.INTERACTION_CREATE, this.handleCollect);
|
|
119
|
+
|
|
120
|
+
this.once('end', () => {
|
|
121
|
+
this.client.removeListener(Events.INTERACTION_CREATE, this.handleCollect);
|
|
122
|
+
this.client.removeListener(Events.MESSAGE_DELETE, this._handleMessageDeletion);
|
|
123
|
+
this.client.removeListener(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
124
|
+
this.client.removeListener(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
125
|
+
this.client.removeListener(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
126
|
+
this.client.removeListener(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
127
|
+
this.client.decrementMaxListeners();
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
this.on('collect', interaction => {
|
|
131
|
+
this.total++;
|
|
132
|
+
this.users.set(interaction.user.id, interaction.user);
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Handles an incoming interaction for possible collection.
|
|
138
|
+
* @param {Interaction} interaction The interaction to possibly collect
|
|
139
|
+
* @returns {?Snowflake}
|
|
140
|
+
* @private
|
|
141
|
+
*/
|
|
142
|
+
collect(interaction) {
|
|
143
|
+
/**
|
|
144
|
+
* Emitted whenever an interaction is collected.
|
|
145
|
+
* @event InteractionCollector#collect
|
|
146
|
+
* @param {Interaction} interaction The interaction that was collected
|
|
147
|
+
*/
|
|
148
|
+
if (this.interactionType && interaction.type !== this.interactionType) return null;
|
|
149
|
+
if (this.componentType && interaction.componentType !== this.componentType) return null;
|
|
150
|
+
if (this.messageId && interaction.message?.id !== this.messageId) return null;
|
|
151
|
+
if (this.channelId && interaction.channelId !== this.channelId) return null;
|
|
152
|
+
if (this.guildId && interaction.guildId !== this.guildId) return null;
|
|
153
|
+
|
|
154
|
+
return interaction.id;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Handles an interaction for possible disposal.
|
|
159
|
+
* @param {Interaction} interaction The interaction that could be disposed of
|
|
160
|
+
* @returns {?Snowflake}
|
|
161
|
+
*/
|
|
162
|
+
dispose(interaction) {
|
|
163
|
+
/**
|
|
164
|
+
* Emitted whenever an interaction is disposed of.
|
|
165
|
+
* @event InteractionCollector#dispose
|
|
166
|
+
* @param {Interaction} interaction The interaction that was disposed of
|
|
167
|
+
*/
|
|
168
|
+
if (this.type && interaction.type !== this.type) return null;
|
|
169
|
+
if (this.componentType && interaction.componentType !== this.componentType) return null;
|
|
170
|
+
if (this.messageId && interaction.message?.id !== this.messageId) return null;
|
|
171
|
+
if (this.channelId && interaction.channelId !== this.channelId) return null;
|
|
172
|
+
if (this.guildId && interaction.guildId !== this.guildId) return null;
|
|
173
|
+
|
|
174
|
+
return interaction.id;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Empties this interaction collector.
|
|
179
|
+
*/
|
|
180
|
+
empty() {
|
|
181
|
+
this.total = 0;
|
|
182
|
+
this.collected.clear();
|
|
183
|
+
this.users.clear();
|
|
184
|
+
this.checkEnd();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* The reason this collector has ended with, or null if it hasn't ended yet
|
|
189
|
+
* @type {?string}
|
|
190
|
+
* @readonly
|
|
191
|
+
*/
|
|
192
|
+
get endReason() {
|
|
193
|
+
if (this.options.max && this.total >= this.options.max) return 'limit';
|
|
194
|
+
if (this.options.maxComponents && this.collected.size >= this.options.maxComponents) return 'componentLimit';
|
|
195
|
+
if (this.options.maxUsers && this.users.size >= this.options.maxUsers) return 'userLimit';
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Handles checking if the message has been deleted, and if so, stops the collector with the reason 'messageDelete'.
|
|
201
|
+
* @private
|
|
202
|
+
* @param {Message} message The message that was deleted
|
|
203
|
+
* @returns {void}
|
|
204
|
+
*/
|
|
205
|
+
_handleMessageDeletion(message) {
|
|
206
|
+
if (message.id === this.messageId) {
|
|
207
|
+
this.stop('messageDelete');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.
|
|
213
|
+
* @private
|
|
214
|
+
* @param {GuildChannel} channel The channel that was deleted
|
|
215
|
+
* @returns {void}
|
|
216
|
+
*/
|
|
217
|
+
_handleChannelDeletion(channel) {
|
|
218
|
+
if (channel.id === this.channelId || channel.threads?.cache.has(this.channelId)) {
|
|
219
|
+
this.stop('channelDelete');
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.
|
|
225
|
+
* @private
|
|
226
|
+
* @param {ThreadChannel} thread The thread that was deleted
|
|
227
|
+
* @returns {void}
|
|
228
|
+
*/
|
|
229
|
+
_handleThreadDeletion(thread) {
|
|
230
|
+
if (thread.id === this.channelId) {
|
|
231
|
+
this.stop('threadDelete');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.
|
|
237
|
+
* @private
|
|
238
|
+
* @param {Guild} guild The guild that was deleted
|
|
239
|
+
* @returns {void}
|
|
240
|
+
*/
|
|
241
|
+
_handleGuildDeletion(guild) {
|
|
242
|
+
if (guild.id === this.guildId) {
|
|
243
|
+
this.stop('guildDelete');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
module.exports = InteractionCollector;
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Webhook = require('./Webhook');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Represents a webhook for an Interaction
|
|
7
|
-
* @implements {Webhook}
|
|
8
|
-
*/
|
|
9
|
-
class InteractionWebhook {
|
|
10
|
-
/**
|
|
11
|
-
* @param {Client} client The instantiating client
|
|
12
|
-
* @param {Snowflake} id The application's id
|
|
13
|
-
* @param {string} token The interaction's token
|
|
14
|
-
*/
|
|
15
|
-
constructor(client, id, token) {
|
|
16
|
-
/**
|
|
17
|
-
* The client that instantiated the interaction webhook
|
|
18
|
-
* @name InteractionWebhook#client
|
|
19
|
-
* @type {Client}
|
|
20
|
-
* @readonly
|
|
21
|
-
*/
|
|
22
|
-
Object.defineProperty(this, 'client', { value: client });
|
|
23
|
-
this.id = id;
|
|
24
|
-
Object.defineProperty(this, 'token', { value: token, writable: true, configurable: true });
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// These are here only for documentation purposes - they are implemented by Webhook
|
|
28
|
-
/* eslint-disable no-empty-function, valid-jsdoc */
|
|
29
|
-
/**
|
|
30
|
-
* Sends a message with this webhook.
|
|
31
|
-
* @param {string|MessagePayload|InteractionReplyOptions} options The content for the reply
|
|
32
|
-
* @returns {Promise<Message|APIMessage>}
|
|
33
|
-
*/
|
|
34
|
-
send() {}
|
|
35
|
-
fetchMessage() {}
|
|
36
|
-
editMessage() {}
|
|
37
|
-
deleteMessage() {}
|
|
38
|
-
get url() {}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
Webhook.applyToClass(InteractionWebhook, ['sendSlackMessage', 'edit', 'delete', 'createdTimestamp', 'createdAt']);
|
|
42
|
-
|
|
43
|
-
module.exports = InteractionWebhook;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Webhook = require('./Webhook');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a webhook for an Interaction
|
|
7
|
+
* @implements {Webhook}
|
|
8
|
+
*/
|
|
9
|
+
class InteractionWebhook {
|
|
10
|
+
/**
|
|
11
|
+
* @param {Client} client The instantiating client
|
|
12
|
+
* @param {Snowflake} id The application's id
|
|
13
|
+
* @param {string} token The interaction's token
|
|
14
|
+
*/
|
|
15
|
+
constructor(client, id, token) {
|
|
16
|
+
/**
|
|
17
|
+
* The client that instantiated the interaction webhook
|
|
18
|
+
* @name InteractionWebhook#client
|
|
19
|
+
* @type {Client}
|
|
20
|
+
* @readonly
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(this, 'client', { value: client });
|
|
23
|
+
this.id = id;
|
|
24
|
+
Object.defineProperty(this, 'token', { value: token, writable: true, configurable: true });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// These are here only for documentation purposes - they are implemented by Webhook
|
|
28
|
+
/* eslint-disable no-empty-function, valid-jsdoc */
|
|
29
|
+
/**
|
|
30
|
+
* Sends a message with this webhook.
|
|
31
|
+
* @param {string|MessagePayload|InteractionReplyOptions} options The content for the reply
|
|
32
|
+
* @returns {Promise<Message|APIMessage>}
|
|
33
|
+
*/
|
|
34
|
+
send() {}
|
|
35
|
+
fetchMessage() {}
|
|
36
|
+
editMessage() {}
|
|
37
|
+
deleteMessage() {}
|
|
38
|
+
get url() {}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
Webhook.applyToClass(InteractionWebhook, ['sendSlackMessage', 'edit', 'delete', 'createdTimestamp', 'createdAt']);
|
|
42
|
+
|
|
43
|
+
module.exports = InteractionWebhook;
|