djs-selfbot-v13 3.1.8 → 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/LICENSE +1 -1
- package/README.md +48 -37
- package/package.json +44 -26
- package/src/WebSocket.js +39 -39
- package/src/client/BaseClient.js +86 -86
- package/src/client/Client.js +934 -765
- 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 -33
- package/src/client/actions/GuildMemberUpdate.js +44 -44
- 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 -53
- 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 -20
- 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 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -0
- 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 -80
- 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 -81
- package/src/errors/DJSError.js +61 -61
- package/src/errors/Messages.js +217 -182
- package/src/errors/index.js +4 -4
- package/src/index.js +172 -158
- 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 -204
- package/src/managers/GuildChannelManager.js +488 -504
- 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 -593
- 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 -154
- 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 -88
- package/src/structures/ClientUser.js +479 -450
- 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 -1236
- 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 -316
- package/src/structures/MessageReaction.js +181 -171
- package/src/structures/MessageSelectMenu.js +141 -140
- package/src/structures/Modal.js +161 -174
- 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 -443
- 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 -509
- 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 -721
- 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 -1760
- 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 -342
- package/src/util/Permissions.js +202 -192
- 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 -803
- package/typings/enums.d.ts +439 -291
- package/typings/index.d.ts +8247 -7390
- package/typings/rawDataTypes.d.ts +403 -342
- package/src/structures/RichPresence.js +0 -702
|
@@ -1,165 +1,166 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const BaseMessageComponent = require('./BaseMessageComponent');
|
|
4
|
-
const { RangeError } = require('../errors');
|
|
5
|
-
const { MessageButtonStyles, MessageComponentTypes } = require('../util/Constants');
|
|
6
|
-
const Util = require('../util/Util');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Represents a button message component.
|
|
10
|
-
* @extends {BaseMessageComponent}
|
|
11
|
-
*/
|
|
12
|
-
class MessageButton extends BaseMessageComponent {
|
|
13
|
-
/**
|
|
14
|
-
* @typedef {BaseMessageComponentOptions} MessageButtonOptions
|
|
15
|
-
* @property {string} [label] The text to be displayed on this button
|
|
16
|
-
* @property {string} [customId] A unique string to be sent in the interaction when clicked
|
|
17
|
-
* @property {MessageButtonStyleResolvable} [style] The style of this button
|
|
18
|
-
* @property {EmojiIdentifierResolvable} [emoji] The emoji to be displayed to the left of the text
|
|
19
|
-
* @property {string} [url] Optional URL for link-style buttons
|
|
20
|
-
* @property {boolean} [disabled=false] Disables the button to prevent interactions
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @param {MessageButton|MessageButtonOptions} [data={}] MessageButton to clone or raw data
|
|
25
|
-
*/
|
|
26
|
-
constructor(data = {}) {
|
|
27
|
-
super({ type: 'BUTTON' });
|
|
28
|
-
|
|
29
|
-
this.setup(data);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
setup(data) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
*
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
*
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseMessageComponent = require('./BaseMessageComponent');
|
|
4
|
+
const { RangeError } = require('../errors');
|
|
5
|
+
const { MessageButtonStyles, MessageComponentTypes } = require('../util/Constants');
|
|
6
|
+
const Util = require('../util/Util');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents a button message component.
|
|
10
|
+
* @extends {BaseMessageComponent}
|
|
11
|
+
*/
|
|
12
|
+
class MessageButton extends BaseMessageComponent {
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {BaseMessageComponentOptions} MessageButtonOptions
|
|
15
|
+
* @property {string} [label] The text to be displayed on this button
|
|
16
|
+
* @property {string} [customId] A unique string to be sent in the interaction when clicked
|
|
17
|
+
* @property {MessageButtonStyleResolvable} [style] The style of this button
|
|
18
|
+
* @property {EmojiIdentifierResolvable} [emoji] The emoji to be displayed to the left of the text
|
|
19
|
+
* @property {string} [url] Optional URL for link-style buttons
|
|
20
|
+
* @property {boolean} [disabled=false] Disables the button to prevent interactions
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @param {MessageButton|MessageButtonOptions} [data={}] MessageButton to clone or raw data
|
|
25
|
+
*/
|
|
26
|
+
constructor(data = {}) {
|
|
27
|
+
super({ type: 'BUTTON' });
|
|
28
|
+
|
|
29
|
+
this.setup(data);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
setup(data) {
|
|
33
|
+
super.setup(data);
|
|
34
|
+
/**
|
|
35
|
+
* The text to be displayed on this button
|
|
36
|
+
* @type {?string}
|
|
37
|
+
*/
|
|
38
|
+
this.label = data.label ?? null;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* A unique string to be sent in the interaction when clicked
|
|
42
|
+
* @type {?string}
|
|
43
|
+
*/
|
|
44
|
+
this.customId = data.custom_id ?? data.customId ?? null;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The style of this button
|
|
48
|
+
* @type {?MessageButtonStyle}
|
|
49
|
+
*/
|
|
50
|
+
this.style = data.style ? MessageButton.resolveStyle(data.style) : null;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Emoji for this button
|
|
54
|
+
* @type {?RawEmoji}
|
|
55
|
+
*/
|
|
56
|
+
this.emoji = data.emoji ? Util.resolvePartialEmoji(data.emoji) : null;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The URL this button links to, if it is a Link style button
|
|
60
|
+
* @type {?string}
|
|
61
|
+
*/
|
|
62
|
+
this.url = data.url ?? null;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Whether this button is currently disabled
|
|
66
|
+
* @type {boolean}
|
|
67
|
+
*/
|
|
68
|
+
this.disabled = data.disabled ?? false;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Sets the custom id for this button
|
|
73
|
+
* @param {string} customId A unique string to be sent in the interaction when clicked
|
|
74
|
+
* @returns {MessageButton}
|
|
75
|
+
*/
|
|
76
|
+
setCustomId(customId) {
|
|
77
|
+
this.customId = Util.verifyString(customId, RangeError, 'BUTTON_CUSTOM_ID');
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Sets the interactive status of the button
|
|
83
|
+
* @param {boolean} [disabled=true] Whether this button should be disabled
|
|
84
|
+
* @returns {MessageButton}
|
|
85
|
+
*/
|
|
86
|
+
setDisabled(disabled = true) {
|
|
87
|
+
this.disabled = disabled;
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Set the emoji of this button
|
|
93
|
+
* @param {EmojiIdentifierResolvable} emoji The emoji to be displayed on this button
|
|
94
|
+
* @returns {MessageButton}
|
|
95
|
+
*/
|
|
96
|
+
setEmoji(emoji) {
|
|
97
|
+
this.emoji = Util.resolvePartialEmoji(emoji);
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Sets the label of this button
|
|
103
|
+
* @param {string} label The text to be displayed on this button
|
|
104
|
+
* @returns {MessageButton}
|
|
105
|
+
*/
|
|
106
|
+
setLabel(label) {
|
|
107
|
+
this.label = Util.verifyString(label, RangeError, 'BUTTON_LABEL');
|
|
108
|
+
return this;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Sets the style of this button
|
|
113
|
+
* @param {MessageButtonStyleResolvable} style The style of this button
|
|
114
|
+
* @returns {MessageButton}
|
|
115
|
+
*/
|
|
116
|
+
setStyle(style) {
|
|
117
|
+
this.style = MessageButton.resolveStyle(style);
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Sets the URL of this button.
|
|
123
|
+
* <info>MessageButton#style must be LINK when setting a URL</info>
|
|
124
|
+
* @param {string} url The URL of this button
|
|
125
|
+
* @returns {MessageButton}
|
|
126
|
+
*/
|
|
127
|
+
setURL(url) {
|
|
128
|
+
this.url = Util.verifyString(url, RangeError, 'BUTTON_URL');
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Transforms the button to a plain object.
|
|
134
|
+
* @returns {APIMessageButton} The raw data of this button
|
|
135
|
+
*/
|
|
136
|
+
toJSON() {
|
|
137
|
+
return {
|
|
138
|
+
custom_id: this.customId,
|
|
139
|
+
disabled: this.disabled,
|
|
140
|
+
emoji: this.emoji,
|
|
141
|
+
label: this.label,
|
|
142
|
+
style: MessageButtonStyles[this.style],
|
|
143
|
+
type: MessageComponentTypes[this.type],
|
|
144
|
+
url: this.url,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Data that can be resolved to a MessageButtonStyle. This can be
|
|
150
|
+
* * MessageButtonStyle
|
|
151
|
+
* * number
|
|
152
|
+
* @typedef {number|MessageButtonStyle} MessageButtonStyleResolvable
|
|
153
|
+
*/
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Resolves the style of a button
|
|
157
|
+
* @param {MessageButtonStyleResolvable} style The style to resolve
|
|
158
|
+
* @returns {MessageButtonStyle}
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
static resolveStyle(style) {
|
|
162
|
+
return typeof style === 'string' ? style : MessageButtonStyles[style];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
module.exports = MessageButton;
|
|
@@ -1,146 +1,146 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Collector = require('./interfaces/Collector');
|
|
4
|
-
const { Events } = require('../util/Constants');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @typedef {CollectorOptions} MessageCollectorOptions
|
|
8
|
-
* @property {number} max The maximum amount of messages to collect
|
|
9
|
-
* @property {number} maxProcessed The maximum amount of messages to process
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Collects messages on a channel.
|
|
14
|
-
* Will automatically stop if the channel ({@link Client#event:channelDelete channelDelete}),
|
|
15
|
-
* thread ({@link Client#event:threadDelete threadDelete}), or
|
|
16
|
-
* guild ({@link Client#event:guildDelete guildDelete}) is deleted.
|
|
17
|
-
* @extends {Collector}
|
|
18
|
-
*/
|
|
19
|
-
class MessageCollector extends Collector {
|
|
20
|
-
/**
|
|
21
|
-
* @param {TextBasedChannels} channel The channel
|
|
22
|
-
* @param {MessageCollectorOptions} options The options to be applied to this collector
|
|
23
|
-
* @emits MessageCollector#message
|
|
24
|
-
*/
|
|
25
|
-
constructor(channel, options = {}) {
|
|
26
|
-
super(channel.client, options);
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* The channel
|
|
30
|
-
* @type {TextBasedChannels}
|
|
31
|
-
*/
|
|
32
|
-
this.channel = channel;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Total number of messages that were received in the channel during message collection
|
|
36
|
-
* @type {number}
|
|
37
|
-
*/
|
|
38
|
-
this.received = 0;
|
|
39
|
-
|
|
40
|
-
const bulkDeleteListener = messages => {
|
|
41
|
-
for (const message of messages.values()) this.handleDispose(message);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
this._handleChannelDeletion = this._handleChannelDeletion.bind(this);
|
|
45
|
-
this._handleThreadDeletion = this._handleThreadDeletion.bind(this);
|
|
46
|
-
this._handleGuildDeletion = this._handleGuildDeletion.bind(this);
|
|
47
|
-
|
|
48
|
-
this.client.incrementMaxListeners();
|
|
49
|
-
this.client.on(Events.MESSAGE_CREATE, this.handleCollect);
|
|
50
|
-
this.client.on(Events.MESSAGE_DELETE, this.handleDispose);
|
|
51
|
-
this.client.on(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
52
|
-
this.client.on(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
53
|
-
this.client.on(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
54
|
-
this.client.on(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
55
|
-
|
|
56
|
-
this.once('end', () => {
|
|
57
|
-
this.client.removeListener(Events.MESSAGE_CREATE, this.handleCollect);
|
|
58
|
-
this.client.removeListener(Events.MESSAGE_DELETE, this.handleDispose);
|
|
59
|
-
this.client.removeListener(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
60
|
-
this.client.removeListener(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
61
|
-
this.client.removeListener(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
62
|
-
this.client.removeListener(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
63
|
-
this.client.decrementMaxListeners();
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Handles a message for possible collection.
|
|
69
|
-
* @param {Message} message The message that could be collected
|
|
70
|
-
* @returns {?Snowflake}
|
|
71
|
-
* @private
|
|
72
|
-
*/
|
|
73
|
-
collect(message) {
|
|
74
|
-
/**
|
|
75
|
-
* Emitted whenever a message is collected.
|
|
76
|
-
* @event MessageCollector#collect
|
|
77
|
-
* @param {Message} message The message that was collected
|
|
78
|
-
*/
|
|
79
|
-
if (message.channelId !== this.channel.id) return null;
|
|
80
|
-
this.received++;
|
|
81
|
-
return message.id;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Handles a message for possible disposal.
|
|
86
|
-
* @param {Message} message The message that could be disposed of
|
|
87
|
-
* @returns {?Snowflake}
|
|
88
|
-
*/
|
|
89
|
-
dispose(message) {
|
|
90
|
-
/**
|
|
91
|
-
* Emitted whenever a message is disposed of.
|
|
92
|
-
* @event MessageCollector#dispose
|
|
93
|
-
* @param {Message} message The message that was disposed of
|
|
94
|
-
*/
|
|
95
|
-
return message.channelId === this.channel.id ? message.id : null;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* The reason this collector has ended with, or null if it hasn't ended yet
|
|
100
|
-
* @type {?string}
|
|
101
|
-
* @readonly
|
|
102
|
-
*/
|
|
103
|
-
get endReason() {
|
|
104
|
-
if (this.options.max && this.collected.size >= this.options.max) return 'limit';
|
|
105
|
-
if (this.options.maxProcessed && this.received === this.options.maxProcessed) return 'processedLimit';
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.
|
|
111
|
-
* @private
|
|
112
|
-
* @param {GuildChannel} channel The channel that was deleted
|
|
113
|
-
* @returns {void}
|
|
114
|
-
*/
|
|
115
|
-
_handleChannelDeletion(channel) {
|
|
116
|
-
if (channel.id === this.channel.id || channel.id === this.channel.parentId) {
|
|
117
|
-
this.stop('channelDelete');
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.
|
|
123
|
-
* @private
|
|
124
|
-
* @param {ThreadChannel} thread The thread that was deleted
|
|
125
|
-
* @returns {void}
|
|
126
|
-
*/
|
|
127
|
-
_handleThreadDeletion(thread) {
|
|
128
|
-
if (thread.id === this.channel.id) {
|
|
129
|
-
this.stop('threadDelete');
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.
|
|
135
|
-
* @private
|
|
136
|
-
* @param {Guild} guild The guild that was deleted
|
|
137
|
-
* @returns {void}
|
|
138
|
-
*/
|
|
139
|
-
_handleGuildDeletion(guild) {
|
|
140
|
-
if (guild.id === this.channel.guild?.id) {
|
|
141
|
-
this.stop('guildDelete');
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
module.exports = MessageCollector;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Collector = require('./interfaces/Collector');
|
|
4
|
+
const { Events } = require('../util/Constants');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {CollectorOptions} MessageCollectorOptions
|
|
8
|
+
* @property {number} max The maximum amount of messages to collect
|
|
9
|
+
* @property {number} maxProcessed The maximum amount of messages to process
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Collects messages on a channel.
|
|
14
|
+
* Will automatically stop if the channel ({@link Client#event:channelDelete channelDelete}),
|
|
15
|
+
* thread ({@link Client#event:threadDelete threadDelete}), or
|
|
16
|
+
* guild ({@link Client#event:guildDelete guildDelete}) is deleted.
|
|
17
|
+
* @extends {Collector}
|
|
18
|
+
*/
|
|
19
|
+
class MessageCollector extends Collector {
|
|
20
|
+
/**
|
|
21
|
+
* @param {TextBasedChannels} channel The channel
|
|
22
|
+
* @param {MessageCollectorOptions} options The options to be applied to this collector
|
|
23
|
+
* @emits MessageCollector#message
|
|
24
|
+
*/
|
|
25
|
+
constructor(channel, options = {}) {
|
|
26
|
+
super(channel.client, options);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The channel
|
|
30
|
+
* @type {TextBasedChannels}
|
|
31
|
+
*/
|
|
32
|
+
this.channel = channel;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Total number of messages that were received in the channel during message collection
|
|
36
|
+
* @type {number}
|
|
37
|
+
*/
|
|
38
|
+
this.received = 0;
|
|
39
|
+
|
|
40
|
+
const bulkDeleteListener = messages => {
|
|
41
|
+
for (const message of messages.values()) this.handleDispose(message);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
this._handleChannelDeletion = this._handleChannelDeletion.bind(this);
|
|
45
|
+
this._handleThreadDeletion = this._handleThreadDeletion.bind(this);
|
|
46
|
+
this._handleGuildDeletion = this._handleGuildDeletion.bind(this);
|
|
47
|
+
|
|
48
|
+
this.client.incrementMaxListeners();
|
|
49
|
+
this.client.on(Events.MESSAGE_CREATE, this.handleCollect);
|
|
50
|
+
this.client.on(Events.MESSAGE_DELETE, this.handleDispose);
|
|
51
|
+
this.client.on(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
52
|
+
this.client.on(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
53
|
+
this.client.on(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
54
|
+
this.client.on(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
55
|
+
|
|
56
|
+
this.once('end', () => {
|
|
57
|
+
this.client.removeListener(Events.MESSAGE_CREATE, this.handleCollect);
|
|
58
|
+
this.client.removeListener(Events.MESSAGE_DELETE, this.handleDispose);
|
|
59
|
+
this.client.removeListener(Events.MESSAGE_BULK_DELETE, bulkDeleteListener);
|
|
60
|
+
this.client.removeListener(Events.CHANNEL_DELETE, this._handleChannelDeletion);
|
|
61
|
+
this.client.removeListener(Events.THREAD_DELETE, this._handleThreadDeletion);
|
|
62
|
+
this.client.removeListener(Events.GUILD_DELETE, this._handleGuildDeletion);
|
|
63
|
+
this.client.decrementMaxListeners();
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Handles a message for possible collection.
|
|
69
|
+
* @param {Message} message The message that could be collected
|
|
70
|
+
* @returns {?Snowflake}
|
|
71
|
+
* @private
|
|
72
|
+
*/
|
|
73
|
+
collect(message) {
|
|
74
|
+
/**
|
|
75
|
+
* Emitted whenever a message is collected.
|
|
76
|
+
* @event MessageCollector#collect
|
|
77
|
+
* @param {Message} message The message that was collected
|
|
78
|
+
*/
|
|
79
|
+
if (message.channelId !== this.channel.id) return null;
|
|
80
|
+
this.received++;
|
|
81
|
+
return message.id;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Handles a message for possible disposal.
|
|
86
|
+
* @param {Message} message The message that could be disposed of
|
|
87
|
+
* @returns {?Snowflake}
|
|
88
|
+
*/
|
|
89
|
+
dispose(message) {
|
|
90
|
+
/**
|
|
91
|
+
* Emitted whenever a message is disposed of.
|
|
92
|
+
* @event MessageCollector#dispose
|
|
93
|
+
* @param {Message} message The message that was disposed of
|
|
94
|
+
*/
|
|
95
|
+
return message.channelId === this.channel.id ? message.id : null;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* The reason this collector has ended with, or null if it hasn't ended yet
|
|
100
|
+
* @type {?string}
|
|
101
|
+
* @readonly
|
|
102
|
+
*/
|
|
103
|
+
get endReason() {
|
|
104
|
+
if (this.options.max && this.collected.size >= this.options.max) return 'limit';
|
|
105
|
+
if (this.options.maxProcessed && this.received === this.options.maxProcessed) return 'processedLimit';
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.
|
|
111
|
+
* @private
|
|
112
|
+
* @param {GuildChannel} channel The channel that was deleted
|
|
113
|
+
* @returns {void}
|
|
114
|
+
*/
|
|
115
|
+
_handleChannelDeletion(channel) {
|
|
116
|
+
if (channel.id === this.channel.id || channel.id === this.channel.parentId) {
|
|
117
|
+
this.stop('channelDelete');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.
|
|
123
|
+
* @private
|
|
124
|
+
* @param {ThreadChannel} thread The thread that was deleted
|
|
125
|
+
* @returns {void}
|
|
126
|
+
*/
|
|
127
|
+
_handleThreadDeletion(thread) {
|
|
128
|
+
if (thread.id === this.channel.id) {
|
|
129
|
+
this.stop('threadDelete');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.
|
|
135
|
+
* @private
|
|
136
|
+
* @param {Guild} guild The guild that was deleted
|
|
137
|
+
* @returns {void}
|
|
138
|
+
*/
|
|
139
|
+
_handleGuildDeletion(guild) {
|
|
140
|
+
if (guild.id === this.channel.guild?.id) {
|
|
141
|
+
this.stop('guildDelete');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
module.exports = MessageCollector;
|