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
|
@@ -1,290 +1,290 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Base = require('./Base');
|
|
4
|
-
const { InteractionTypes, MessageComponentTypes, ApplicationCommandTypes } = require('../util/Constants');
|
|
5
|
-
const Permissions = require('../util/Permissions');
|
|
6
|
-
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Represents an interaction.
|
|
10
|
-
* @extends {Base}
|
|
11
|
-
*/
|
|
12
|
-
class Interaction extends Base {
|
|
13
|
-
constructor(client, data) {
|
|
14
|
-
super(client);
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* The interaction's type
|
|
18
|
-
* @type {InteractionType}
|
|
19
|
-
*/
|
|
20
|
-
this.type = InteractionTypes[data.type];
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* The interaction's id
|
|
24
|
-
* @type {Snowflake}
|
|
25
|
-
*/
|
|
26
|
-
this.id = data.id;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* The interaction's token
|
|
30
|
-
* @type {string}
|
|
31
|
-
* @name Interaction#token
|
|
32
|
-
* @readonly
|
|
33
|
-
*/
|
|
34
|
-
Object.defineProperty(this, 'token', { value: data.token });
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* The application's id
|
|
38
|
-
* @type {Snowflake}
|
|
39
|
-
*/
|
|
40
|
-
this.applicationId = data.application_id;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* The id of the channel this interaction was sent in
|
|
44
|
-
* @type {?Snowflake}
|
|
45
|
-
*/
|
|
46
|
-
this.channelId = data.channel_id ?? null;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* The id of the guild this interaction was sent in
|
|
50
|
-
* @type {?Snowflake}
|
|
51
|
-
*/
|
|
52
|
-
this.guildId = data.guild_id ?? null;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* The user which sent this interaction
|
|
56
|
-
* @type {User}
|
|
57
|
-
*/
|
|
58
|
-
this.user = this.client.users._add(data.user ?? data.member.user);
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* If this interaction was sent in a guild, the member which sent it
|
|
62
|
-
* @type {?(GuildMember|APIGuildMember)}
|
|
63
|
-
*/
|
|
64
|
-
this.member = data.member ? this.guild?.members._add(data.member) ?? data.member : null;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* The version
|
|
68
|
-
* @type {number}
|
|
69
|
-
*/
|
|
70
|
-
this.version = data.version;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Set of permissions the application or bot has within the channel the interaction was sent from
|
|
74
|
-
* @type {?Readonly<Permissions>}
|
|
75
|
-
*/
|
|
76
|
-
this.appPermissions = data.app_permissions ? new Permissions(data.app_permissions).freeze() : null;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* The permissions of the member, if one exists, in the channel this interaction was executed in
|
|
80
|
-
* @type {?Readonly<Permissions>}
|
|
81
|
-
*/
|
|
82
|
-
this.memberPermissions = data.member?.permissions ? new Permissions(data.member.permissions).freeze() : null;
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* A Discord locale string, possible values are:
|
|
86
|
-
* * en-US (English, US)
|
|
87
|
-
* * en-GB (English, UK)
|
|
88
|
-
* * bg (Bulgarian)
|
|
89
|
-
* * zh-CN (Chinese, China)
|
|
90
|
-
* * zh-TW (Chinese, Taiwan)
|
|
91
|
-
* * hr (Croatian)
|
|
92
|
-
* * cs (Czech)
|
|
93
|
-
* * da (Danish)
|
|
94
|
-
* * nl (Dutch)
|
|
95
|
-
* * fi (Finnish)
|
|
96
|
-
* * fr (French)
|
|
97
|
-
* * de (German)
|
|
98
|
-
* * el (Greek)
|
|
99
|
-
* * hi (Hindi)
|
|
100
|
-
* * hu (Hungarian)
|
|
101
|
-
* * it (Italian)
|
|
102
|
-
* * ja (Japanese)
|
|
103
|
-
* * ko (Korean)
|
|
104
|
-
* * lt (Lithuanian)
|
|
105
|
-
* * no (Norwegian)
|
|
106
|
-
* * pl (Polish)
|
|
107
|
-
* * pt-BR (Portuguese, Brazilian)
|
|
108
|
-
* * ro (Romanian, Romania)
|
|
109
|
-
* * ru (Russian)
|
|
110
|
-
* * es-ES (Spanish)
|
|
111
|
-
* * sv-SE (Swedish)
|
|
112
|
-
* * th (Thai)
|
|
113
|
-
* * tr (Turkish)
|
|
114
|
-
* * uk (Ukrainian)
|
|
115
|
-
* * vi (Vietnamese)
|
|
116
|
-
* @see {@link https://discord.com/developers/docs/reference#locales}
|
|
117
|
-
* @typedef {string} Locale
|
|
118
|
-
*/
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* The locale of the user who invoked this interaction
|
|
122
|
-
* @type {Locale}
|
|
123
|
-
*/
|
|
124
|
-
this.locale = data.locale;
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* The preferred locale from the guild this interaction was sent in
|
|
128
|
-
* @type {?Locale}
|
|
129
|
-
*/
|
|
130
|
-
this.guildLocale = data.guild_locale ?? null;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* The timestamp the interaction was created at
|
|
135
|
-
* @type {number}
|
|
136
|
-
* @readonly
|
|
137
|
-
*/
|
|
138
|
-
get createdTimestamp() {
|
|
139
|
-
return SnowflakeUtil.timestampFrom(this.id);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* The time the interaction was created at
|
|
144
|
-
* @type {Date}
|
|
145
|
-
* @readonly
|
|
146
|
-
*/
|
|
147
|
-
get createdAt() {
|
|
148
|
-
return new Date(this.createdTimestamp);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* The channel this interaction was sent in
|
|
153
|
-
* @type {?TextBasedChannels}
|
|
154
|
-
* @readonly
|
|
155
|
-
*/
|
|
156
|
-
get channel() {
|
|
157
|
-
return this.client.channels.cache.get(this.channelId) ?? null;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* The guild this interaction was sent in
|
|
162
|
-
* @type {?Guild}
|
|
163
|
-
* @readonly
|
|
164
|
-
*/
|
|
165
|
-
get guild() {
|
|
166
|
-
return this.client.guilds.cache.get(this.guildId) ?? null;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Indicates whether this interaction is received from a guild.
|
|
171
|
-
* @returns {boolean}
|
|
172
|
-
*/
|
|
173
|
-
inGuild() {
|
|
174
|
-
return Boolean(this.guildId && this.member);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Indicates whether or not this interaction is both cached and received from a guild.
|
|
179
|
-
* @returns {boolean}
|
|
180
|
-
*/
|
|
181
|
-
inCachedGuild() {
|
|
182
|
-
return Boolean(this.guild && this.member);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Indicates whether or not this interaction is received from an uncached guild.
|
|
187
|
-
* @returns {boolean}
|
|
188
|
-
*/
|
|
189
|
-
inRawGuild() {
|
|
190
|
-
return Boolean(this.guildId && !this.guild && this.member);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Indicates whether this interaction is a {@link BaseCommandInteraction}.
|
|
195
|
-
* @returns {boolean}
|
|
196
|
-
*/
|
|
197
|
-
isApplicationCommand() {
|
|
198
|
-
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Indicates whether this interaction is a {@link CommandInteraction}.
|
|
203
|
-
* @returns {boolean}
|
|
204
|
-
*/
|
|
205
|
-
isCommand() {
|
|
206
|
-
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND && typeof this.targetId === 'undefined';
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Indicates whether this interaction is a {@link ContextMenuInteraction}
|
|
211
|
-
* @returns {boolean}
|
|
212
|
-
*/
|
|
213
|
-
isContextMenu() {
|
|
214
|
-
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND && typeof this.targetId !== 'undefined';
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Indicates whether this interaction is a {@link ModalSubmitInteraction}
|
|
219
|
-
* @returns {boolean}
|
|
220
|
-
*/
|
|
221
|
-
isModalSubmit() {
|
|
222
|
-
return InteractionTypes[this.type] === InteractionTypes.MODAL_SUBMIT;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Indicates whether this interaction is a {@link UserContextMenuInteraction}
|
|
227
|
-
* @returns {boolean}
|
|
228
|
-
*/
|
|
229
|
-
isUserContextMenu() {
|
|
230
|
-
return this.isContextMenu() && ApplicationCommandTypes[this.targetType] === ApplicationCommandTypes.USER;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Indicates whether this interaction is a {@link MessageContextMenuInteraction}
|
|
235
|
-
* @returns {boolean}
|
|
236
|
-
*/
|
|
237
|
-
isMessageContextMenu() {
|
|
238
|
-
return this.isContextMenu() && ApplicationCommandTypes[this.targetType] === ApplicationCommandTypes.MESSAGE;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Indicates whether this interaction is an {@link AutocompleteInteraction}
|
|
243
|
-
* @returns {boolean}
|
|
244
|
-
*/
|
|
245
|
-
isAutocomplete() {
|
|
246
|
-
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Indicates whether this interaction is a {@link MessageComponentInteraction}.
|
|
251
|
-
* @returns {boolean}
|
|
252
|
-
*/
|
|
253
|
-
isMessageComponent() {
|
|
254
|
-
return InteractionTypes[this.type] === InteractionTypes.MESSAGE_COMPONENT;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Indicates whether this interaction is a {@link ButtonInteraction}.
|
|
259
|
-
* @returns {boolean}
|
|
260
|
-
*/
|
|
261
|
-
isButton() {
|
|
262
|
-
return (
|
|
263
|
-
InteractionTypes[this.type] === InteractionTypes.MESSAGE_COMPONENT &&
|
|
264
|
-
MessageComponentTypes[this.componentType] === MessageComponentTypes.BUTTON
|
|
265
|
-
);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Indicates whether this interaction is a {@link SelectMenuInteraction}.
|
|
270
|
-
* @returns {boolean}
|
|
271
|
-
*/
|
|
272
|
-
isSelectMenu() {
|
|
273
|
-
return (
|
|
274
|
-
InteractionTypes[this.type] === InteractionTypes.MESSAGE_COMPONENT &&
|
|
275
|
-
MessageComponentTypes[this.componentType] === MessageComponentTypes.SELECT_MENU
|
|
276
|
-
);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* Indicates whether this interaction can be replied to.
|
|
281
|
-
* @returns {boolean}
|
|
282
|
-
*/
|
|
283
|
-
isRepliable() {
|
|
284
|
-
return ![InteractionTypes.PING, InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE].includes(
|
|
285
|
-
InteractionTypes[this.type],
|
|
286
|
-
);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
module.exports = Interaction;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Base = require('./Base');
|
|
4
|
+
const { InteractionTypes, MessageComponentTypes, ApplicationCommandTypes } = require('../util/Constants');
|
|
5
|
+
const Permissions = require('../util/Permissions');
|
|
6
|
+
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents an interaction.
|
|
10
|
+
* @extends {Base}
|
|
11
|
+
*/
|
|
12
|
+
class Interaction extends Base {
|
|
13
|
+
constructor(client, data) {
|
|
14
|
+
super(client);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The interaction's type
|
|
18
|
+
* @type {InteractionType}
|
|
19
|
+
*/
|
|
20
|
+
this.type = InteractionTypes[data.type];
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The interaction's id
|
|
24
|
+
* @type {Snowflake}
|
|
25
|
+
*/
|
|
26
|
+
this.id = data.id;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The interaction's token
|
|
30
|
+
* @type {string}
|
|
31
|
+
* @name Interaction#token
|
|
32
|
+
* @readonly
|
|
33
|
+
*/
|
|
34
|
+
Object.defineProperty(this, 'token', { value: data.token });
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The application's id
|
|
38
|
+
* @type {Snowflake}
|
|
39
|
+
*/
|
|
40
|
+
this.applicationId = data.application_id;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The id of the channel this interaction was sent in
|
|
44
|
+
* @type {?Snowflake}
|
|
45
|
+
*/
|
|
46
|
+
this.channelId = data.channel_id ?? null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The id of the guild this interaction was sent in
|
|
50
|
+
* @type {?Snowflake}
|
|
51
|
+
*/
|
|
52
|
+
this.guildId = data.guild_id ?? null;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The user which sent this interaction
|
|
56
|
+
* @type {User}
|
|
57
|
+
*/
|
|
58
|
+
this.user = this.client.users._add(data.user ?? data.member.user);
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* If this interaction was sent in a guild, the member which sent it
|
|
62
|
+
* @type {?(GuildMember|APIGuildMember)}
|
|
63
|
+
*/
|
|
64
|
+
this.member = data.member ? this.guild?.members._add(data.member) ?? data.member : null;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* The version
|
|
68
|
+
* @type {number}
|
|
69
|
+
*/
|
|
70
|
+
this.version = data.version;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Set of permissions the application or bot has within the channel the interaction was sent from
|
|
74
|
+
* @type {?Readonly<Permissions>}
|
|
75
|
+
*/
|
|
76
|
+
this.appPermissions = data.app_permissions ? new Permissions(data.app_permissions).freeze() : null;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* The permissions of the member, if one exists, in the channel this interaction was executed in
|
|
80
|
+
* @type {?Readonly<Permissions>}
|
|
81
|
+
*/
|
|
82
|
+
this.memberPermissions = data.member?.permissions ? new Permissions(data.member.permissions).freeze() : null;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* A Discord locale string, possible values are:
|
|
86
|
+
* * en-US (English, US)
|
|
87
|
+
* * en-GB (English, UK)
|
|
88
|
+
* * bg (Bulgarian)
|
|
89
|
+
* * zh-CN (Chinese, China)
|
|
90
|
+
* * zh-TW (Chinese, Taiwan)
|
|
91
|
+
* * hr (Croatian)
|
|
92
|
+
* * cs (Czech)
|
|
93
|
+
* * da (Danish)
|
|
94
|
+
* * nl (Dutch)
|
|
95
|
+
* * fi (Finnish)
|
|
96
|
+
* * fr (French)
|
|
97
|
+
* * de (German)
|
|
98
|
+
* * el (Greek)
|
|
99
|
+
* * hi (Hindi)
|
|
100
|
+
* * hu (Hungarian)
|
|
101
|
+
* * it (Italian)
|
|
102
|
+
* * ja (Japanese)
|
|
103
|
+
* * ko (Korean)
|
|
104
|
+
* * lt (Lithuanian)
|
|
105
|
+
* * no (Norwegian)
|
|
106
|
+
* * pl (Polish)
|
|
107
|
+
* * pt-BR (Portuguese, Brazilian)
|
|
108
|
+
* * ro (Romanian, Romania)
|
|
109
|
+
* * ru (Russian)
|
|
110
|
+
* * es-ES (Spanish)
|
|
111
|
+
* * sv-SE (Swedish)
|
|
112
|
+
* * th (Thai)
|
|
113
|
+
* * tr (Turkish)
|
|
114
|
+
* * uk (Ukrainian)
|
|
115
|
+
* * vi (Vietnamese)
|
|
116
|
+
* @see {@link https://discord.com/developers/docs/reference#locales}
|
|
117
|
+
* @typedef {string} Locale
|
|
118
|
+
*/
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* The locale of the user who invoked this interaction
|
|
122
|
+
* @type {Locale}
|
|
123
|
+
*/
|
|
124
|
+
this.locale = data.locale;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* The preferred locale from the guild this interaction was sent in
|
|
128
|
+
* @type {?Locale}
|
|
129
|
+
*/
|
|
130
|
+
this.guildLocale = data.guild_locale ?? null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* The timestamp the interaction was created at
|
|
135
|
+
* @type {number}
|
|
136
|
+
* @readonly
|
|
137
|
+
*/
|
|
138
|
+
get createdTimestamp() {
|
|
139
|
+
return SnowflakeUtil.timestampFrom(this.id);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* The time the interaction was created at
|
|
144
|
+
* @type {Date}
|
|
145
|
+
* @readonly
|
|
146
|
+
*/
|
|
147
|
+
get createdAt() {
|
|
148
|
+
return new Date(this.createdTimestamp);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* The channel this interaction was sent in
|
|
153
|
+
* @type {?TextBasedChannels}
|
|
154
|
+
* @readonly
|
|
155
|
+
*/
|
|
156
|
+
get channel() {
|
|
157
|
+
return this.client.channels.cache.get(this.channelId) ?? null;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* The guild this interaction was sent in
|
|
162
|
+
* @type {?Guild}
|
|
163
|
+
* @readonly
|
|
164
|
+
*/
|
|
165
|
+
get guild() {
|
|
166
|
+
return this.client.guilds.cache.get(this.guildId) ?? null;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Indicates whether this interaction is received from a guild.
|
|
171
|
+
* @returns {boolean}
|
|
172
|
+
*/
|
|
173
|
+
inGuild() {
|
|
174
|
+
return Boolean(this.guildId && this.member);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Indicates whether or not this interaction is both cached and received from a guild.
|
|
179
|
+
* @returns {boolean}
|
|
180
|
+
*/
|
|
181
|
+
inCachedGuild() {
|
|
182
|
+
return Boolean(this.guild && this.member);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Indicates whether or not this interaction is received from an uncached guild.
|
|
187
|
+
* @returns {boolean}
|
|
188
|
+
*/
|
|
189
|
+
inRawGuild() {
|
|
190
|
+
return Boolean(this.guildId && !this.guild && this.member);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Indicates whether this interaction is a {@link BaseCommandInteraction}.
|
|
195
|
+
* @returns {boolean}
|
|
196
|
+
*/
|
|
197
|
+
isApplicationCommand() {
|
|
198
|
+
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Indicates whether this interaction is a {@link CommandInteraction}.
|
|
203
|
+
* @returns {boolean}
|
|
204
|
+
*/
|
|
205
|
+
isCommand() {
|
|
206
|
+
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND && typeof this.targetId === 'undefined';
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Indicates whether this interaction is a {@link ContextMenuInteraction}
|
|
211
|
+
* @returns {boolean}
|
|
212
|
+
*/
|
|
213
|
+
isContextMenu() {
|
|
214
|
+
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND && typeof this.targetId !== 'undefined';
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Indicates whether this interaction is a {@link ModalSubmitInteraction}
|
|
219
|
+
* @returns {boolean}
|
|
220
|
+
*/
|
|
221
|
+
isModalSubmit() {
|
|
222
|
+
return InteractionTypes[this.type] === InteractionTypes.MODAL_SUBMIT;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Indicates whether this interaction is a {@link UserContextMenuInteraction}
|
|
227
|
+
* @returns {boolean}
|
|
228
|
+
*/
|
|
229
|
+
isUserContextMenu() {
|
|
230
|
+
return this.isContextMenu() && ApplicationCommandTypes[this.targetType] === ApplicationCommandTypes.USER;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Indicates whether this interaction is a {@link MessageContextMenuInteraction}
|
|
235
|
+
* @returns {boolean}
|
|
236
|
+
*/
|
|
237
|
+
isMessageContextMenu() {
|
|
238
|
+
return this.isContextMenu() && ApplicationCommandTypes[this.targetType] === ApplicationCommandTypes.MESSAGE;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Indicates whether this interaction is an {@link AutocompleteInteraction}
|
|
243
|
+
* @returns {boolean}
|
|
244
|
+
*/
|
|
245
|
+
isAutocomplete() {
|
|
246
|
+
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Indicates whether this interaction is a {@link MessageComponentInteraction}.
|
|
251
|
+
* @returns {boolean}
|
|
252
|
+
*/
|
|
253
|
+
isMessageComponent() {
|
|
254
|
+
return InteractionTypes[this.type] === InteractionTypes.MESSAGE_COMPONENT;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Indicates whether this interaction is a {@link ButtonInteraction}.
|
|
259
|
+
* @returns {boolean}
|
|
260
|
+
*/
|
|
261
|
+
isButton() {
|
|
262
|
+
return (
|
|
263
|
+
InteractionTypes[this.type] === InteractionTypes.MESSAGE_COMPONENT &&
|
|
264
|
+
MessageComponentTypes[this.componentType] === MessageComponentTypes.BUTTON
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Indicates whether this interaction is a {@link SelectMenuInteraction}.
|
|
270
|
+
* @returns {boolean}
|
|
271
|
+
*/
|
|
272
|
+
isSelectMenu() {
|
|
273
|
+
return (
|
|
274
|
+
InteractionTypes[this.type] === InteractionTypes.MESSAGE_COMPONENT &&
|
|
275
|
+
MessageComponentTypes[this.componentType] === MessageComponentTypes.SELECT_MENU
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Indicates whether this interaction can be replied to.
|
|
281
|
+
* @returns {boolean}
|
|
282
|
+
*/
|
|
283
|
+
isRepliable() {
|
|
284
|
+
return ![InteractionTypes.PING, InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE].includes(
|
|
285
|
+
InteractionTypes[this.type],
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
module.exports = Interaction;
|