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,33 +1,33 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Action = require('./Action');
|
|
4
|
-
const { Events } = require('../../util/Constants');
|
|
5
|
-
|
|
6
|
-
class GuildUpdateAction extends Action {
|
|
7
|
-
handle(data) {
|
|
8
|
-
const client = this.client;
|
|
9
|
-
|
|
10
|
-
const guild = client.guilds.cache.get(data.id);
|
|
11
|
-
if (guild) {
|
|
12
|
-
const old = guild._update(data);
|
|
13
|
-
/**
|
|
14
|
-
* Emitted whenever a guild is updated - e.g. name change.
|
|
15
|
-
* @event Client#guildUpdate
|
|
16
|
-
* @param {Guild} oldGuild The guild before the update
|
|
17
|
-
* @param {Guild} newGuild The guild after the update
|
|
18
|
-
*/
|
|
19
|
-
client.emit(Events.GUILD_UPDATE, old, guild);
|
|
20
|
-
return {
|
|
21
|
-
old,
|
|
22
|
-
updated: guild,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
old: null,
|
|
28
|
-
updated: null,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
module.exports = GuildUpdateAction;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const { Events } = require('../../util/Constants');
|
|
5
|
+
|
|
6
|
+
class GuildUpdateAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
|
|
10
|
+
const guild = client.guilds.cache.get(data.id);
|
|
11
|
+
if (guild) {
|
|
12
|
+
const old = guild._update(data);
|
|
13
|
+
/**
|
|
14
|
+
* Emitted whenever a guild is updated - e.g. name change.
|
|
15
|
+
* @event Client#guildUpdate
|
|
16
|
+
* @param {Guild} oldGuild The guild before the update
|
|
17
|
+
* @param {Guild} newGuild The guild after the update
|
|
18
|
+
*/
|
|
19
|
+
client.emit(Events.GUILD_UPDATE, old, guild);
|
|
20
|
+
return {
|
|
21
|
+
old,
|
|
22
|
+
updated: guild,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
old: null,
|
|
28
|
+
updated: null,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = GuildUpdateAction;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Action = require('./Action');
|
|
4
|
-
const { Events } = require('../../util/Constants');
|
|
5
|
-
|
|
6
|
-
class InviteCreateAction extends Action {
|
|
7
|
-
handle(data) {
|
|
8
|
-
const client = this.client;
|
|
9
|
-
const channel = client.channels.cache.get(data.channel_id);
|
|
10
|
-
const guild = client.guilds.cache.get(data.guild_id);
|
|
11
|
-
if (!channel) return false;
|
|
12
|
-
|
|
13
|
-
const inviteData = Object.assign(data, { channel, guild });
|
|
14
|
-
const invite = guild.invites._add(inviteData);
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Emitted when an invite is created.
|
|
18
|
-
* <info> This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,
|
|
19
|
-
* or `MANAGE_CHANNELS` permissions for the channel.</info>
|
|
20
|
-
* @event Client#inviteCreate
|
|
21
|
-
* @param {Invite} invite The invite that was created
|
|
22
|
-
*/
|
|
23
|
-
client.emit(Events.INVITE_CREATE, invite);
|
|
24
|
-
return { invite };
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
module.exports = InviteCreateAction;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const { Events } = require('../../util/Constants');
|
|
5
|
+
|
|
6
|
+
class InviteCreateAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const channel = client.channels.cache.get(data.channel_id);
|
|
10
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
11
|
+
if (!channel) return false;
|
|
12
|
+
|
|
13
|
+
const inviteData = Object.assign(data, { channel, guild });
|
|
14
|
+
const invite = guild.invites._add(inviteData);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Emitted when an invite is created.
|
|
18
|
+
* <info> This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,
|
|
19
|
+
* or `MANAGE_CHANNELS` permissions for the channel.</info>
|
|
20
|
+
* @event Client#inviteCreate
|
|
21
|
+
* @param {Invite} invite The invite that was created
|
|
22
|
+
*/
|
|
23
|
+
client.emit(Events.INVITE_CREATE, invite);
|
|
24
|
+
return { invite };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
module.exports = InviteCreateAction;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Action = require('./Action');
|
|
4
|
-
const Invite = require('../../structures/Invite');
|
|
5
|
-
const { Events } = require('../../util/Constants');
|
|
6
|
-
|
|
7
|
-
class InviteDeleteAction extends Action {
|
|
8
|
-
handle(data) {
|
|
9
|
-
const client = this.client;
|
|
10
|
-
const channel = client.channels.cache.get(data.channel_id);
|
|
11
|
-
const guild = client.guilds.cache.get(data.guild_id);
|
|
12
|
-
if (!channel) return false;
|
|
13
|
-
|
|
14
|
-
const inviteData = Object.assign(data, { channel, guild });
|
|
15
|
-
const invite = new Invite(client, inviteData);
|
|
16
|
-
guild.invites.cache.delete(invite.code);
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Emitted when an invite is deleted.
|
|
20
|
-
* <info> This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,
|
|
21
|
-
* or `MANAGE_CHANNELS` permissions for the channel.</info>
|
|
22
|
-
* @event Client#inviteDelete
|
|
23
|
-
* @param {Invite} invite The invite that was deleted
|
|
24
|
-
*/
|
|
25
|
-
client.emit(Events.INVITE_DELETE, invite);
|
|
26
|
-
return { invite };
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
module.exports = InviteDeleteAction;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Invite = require('../../structures/Invite');
|
|
5
|
+
const { Events } = require('../../util/Constants');
|
|
6
|
+
|
|
7
|
+
class InviteDeleteAction extends Action {
|
|
8
|
+
handle(data) {
|
|
9
|
+
const client = this.client;
|
|
10
|
+
const channel = client.channels.cache.get(data.channel_id);
|
|
11
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
12
|
+
if (!channel) return false;
|
|
13
|
+
|
|
14
|
+
const inviteData = Object.assign(data, { channel, guild });
|
|
15
|
+
const invite = new Invite(client, inviteData);
|
|
16
|
+
guild.invites.cache.delete(invite.code);
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Emitted when an invite is deleted.
|
|
20
|
+
* <info> This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,
|
|
21
|
+
* or `MANAGE_CHANNELS` permissions for the channel.</info>
|
|
22
|
+
* @event Client#inviteDelete
|
|
23
|
+
* @param {Invite} invite The invite that was deleted
|
|
24
|
+
*/
|
|
25
|
+
client.emit(Events.INVITE_DELETE, invite);
|
|
26
|
+
return { invite };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
module.exports = InviteDeleteAction;
|
|
@@ -1,46 +1,50 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const process = require('node:process');
|
|
4
|
-
const Action = require('./Action');
|
|
5
|
-
const { Events } = require('../../util/Constants');
|
|
6
|
-
|
|
7
|
-
let deprecationEmitted = false;
|
|
8
|
-
|
|
9
|
-
class MessageCreateAction extends Action {
|
|
10
|
-
handle(data) {
|
|
11
|
-
const client = this.client;
|
|
12
|
-
const channel = this.getChannel(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const process = require('node:process');
|
|
4
|
+
const Action = require('./Action');
|
|
5
|
+
const { Events } = require('../../util/Constants');
|
|
6
|
+
|
|
7
|
+
let deprecationEmitted = false;
|
|
8
|
+
|
|
9
|
+
class MessageCreateAction extends Action {
|
|
10
|
+
handle(data) {
|
|
11
|
+
const client = this.client;
|
|
12
|
+
const channel = this.getChannel({
|
|
13
|
+
id: data.channel_id,
|
|
14
|
+
author: data.author,
|
|
15
|
+
...('guild_id' in data && { guild_id: data.guild_id }),
|
|
16
|
+
});
|
|
17
|
+
if (channel) {
|
|
18
|
+
if (!channel.isText()) return {};
|
|
19
|
+
|
|
20
|
+
const existing = channel.messages.cache.get(data.id);
|
|
21
|
+
if (existing && existing.author?.id !== this.client.user.id) return { message: existing };
|
|
22
|
+
const message = existing ?? channel.messages._add(data);
|
|
23
|
+
channel.lastMessageId = data.id;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Emitted whenever a message is created.
|
|
27
|
+
* @event Client#messageCreate
|
|
28
|
+
* @param {Message} message The created message
|
|
29
|
+
*/
|
|
30
|
+
client.emit(Events.MESSAGE_CREATE, message);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Emitted whenever a message is created.
|
|
34
|
+
* @event Client#message
|
|
35
|
+
* @param {Message} message The created message
|
|
36
|
+
* @deprecated Use {@link Client#event:messageCreate} instead
|
|
37
|
+
*/
|
|
38
|
+
if (client.emit('message', message) && !deprecationEmitted) {
|
|
39
|
+
deprecationEmitted = true;
|
|
40
|
+
process.emitWarning('The message event is deprecated. Use messageCreate instead', 'DeprecationWarning');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return { message };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return {};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
module.exports = MessageCreateAction;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Action = require('./Action');
|
|
4
|
-
const { deletedMessages } = require('../../structures/Message');
|
|
5
|
-
const { Events } = require('../../util/Constants');
|
|
6
|
-
|
|
7
|
-
class MessageDeleteAction extends Action {
|
|
8
|
-
handle(data) {
|
|
9
|
-
const client = this.client;
|
|
10
|
-
const channel = this.getChannel(data);
|
|
11
|
-
let message;
|
|
12
|
-
if (channel) {
|
|
13
|
-
if (!channel.isText()) return {};
|
|
14
|
-
|
|
15
|
-
message = this.getMessage(data, channel);
|
|
16
|
-
if (message) {
|
|
17
|
-
channel.messages.cache.delete(message.id);
|
|
18
|
-
deletedMessages.add(message);
|
|
19
|
-
/**
|
|
20
|
-
* Emitted whenever a message is deleted.
|
|
21
|
-
* @event Client#messageDelete
|
|
22
|
-
* @param {Message} message The deleted message
|
|
23
|
-
*/
|
|
24
|
-
client.emit(Events.MESSAGE_DELETE, message);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return { message };
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
module.exports = MessageDeleteAction;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const { deletedMessages } = require('../../structures/Message');
|
|
5
|
+
const { Events } = require('../../util/Constants');
|
|
6
|
+
|
|
7
|
+
class MessageDeleteAction extends Action {
|
|
8
|
+
handle(data) {
|
|
9
|
+
const client = this.client;
|
|
10
|
+
const channel = this.getChannel({ id: data.channel_id, ...('guild_id' in data && { guild_id: data.guild_id }) });
|
|
11
|
+
let message;
|
|
12
|
+
if (channel) {
|
|
13
|
+
if (!channel.isText()) return {};
|
|
14
|
+
|
|
15
|
+
message = this.getMessage(data, channel);
|
|
16
|
+
if (message) {
|
|
17
|
+
channel.messages.cache.delete(message.id);
|
|
18
|
+
deletedMessages.add(message);
|
|
19
|
+
/**
|
|
20
|
+
* Emitted whenever a message is deleted.
|
|
21
|
+
* @event Client#messageDelete
|
|
22
|
+
* @param {Message} message The deleted message
|
|
23
|
+
*/
|
|
24
|
+
client.emit(Events.MESSAGE_DELETE, message);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return { message };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = MessageDeleteAction;
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { Collection } = require('@discordjs/collection');
|
|
4
|
-
const Action = require('./Action');
|
|
5
|
-
const { deletedMessages } = require('../../structures/Message');
|
|
6
|
-
const { Events } = require('../../util/Constants');
|
|
7
|
-
|
|
8
|
-
class MessageDeleteBulkAction extends Action {
|
|
9
|
-
handle(data) {
|
|
10
|
-
const client = this.client;
|
|
11
|
-
const channel = client.channels.cache.get(data.channel_id);
|
|
12
|
-
|
|
13
|
-
if (channel) {
|
|
14
|
-
if (!channel.isText()) return {};
|
|
15
|
-
|
|
16
|
-
const ids = data.ids;
|
|
17
|
-
const messages = new Collection();
|
|
18
|
-
for (const id of ids) {
|
|
19
|
-
const message = this.getMessage(
|
|
20
|
-
{
|
|
21
|
-
id,
|
|
22
|
-
guild_id: data.guild_id,
|
|
23
|
-
},
|
|
24
|
-
channel,
|
|
25
|
-
false,
|
|
26
|
-
);
|
|
27
|
-
if (message) {
|
|
28
|
-
deletedMessages.add(message);
|
|
29
|
-
messages.set(message.id, message);
|
|
30
|
-
channel.messages.cache.delete(id);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Emitted whenever messages are deleted in bulk.
|
|
36
|
-
* @event Client#messageDeleteBulk
|
|
37
|
-
* @param {Collection<Snowflake, Message>} messages The deleted messages, mapped by their id
|
|
38
|
-
*/
|
|
39
|
-
if (messages.size > 0) client.emit(Events.MESSAGE_BULK_DELETE, messages);
|
|
40
|
-
return { messages };
|
|
41
|
-
}
|
|
42
|
-
return {};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
module.exports = MessageDeleteBulkAction;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
|
4
|
+
const Action = require('./Action');
|
|
5
|
+
const { deletedMessages } = require('../../structures/Message');
|
|
6
|
+
const { Events } = require('../../util/Constants');
|
|
7
|
+
|
|
8
|
+
class MessageDeleteBulkAction extends Action {
|
|
9
|
+
handle(data) {
|
|
10
|
+
const client = this.client;
|
|
11
|
+
const channel = client.channels.cache.get(data.channel_id);
|
|
12
|
+
|
|
13
|
+
if (channel) {
|
|
14
|
+
if (!channel.isText()) return {};
|
|
15
|
+
|
|
16
|
+
const ids = data.ids;
|
|
17
|
+
const messages = new Collection();
|
|
18
|
+
for (const id of ids) {
|
|
19
|
+
const message = this.getMessage(
|
|
20
|
+
{
|
|
21
|
+
id,
|
|
22
|
+
guild_id: data.guild_id,
|
|
23
|
+
},
|
|
24
|
+
channel,
|
|
25
|
+
false,
|
|
26
|
+
);
|
|
27
|
+
if (message) {
|
|
28
|
+
deletedMessages.add(message);
|
|
29
|
+
messages.set(message.id, message);
|
|
30
|
+
channel.messages.cache.delete(id);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Emitted whenever messages are deleted in bulk.
|
|
36
|
+
* @event Client#messageDeleteBulk
|
|
37
|
+
* @param {Collection<Snowflake, Message>} messages The deleted messages, mapped by their id
|
|
38
|
+
*/
|
|
39
|
+
if (messages.size > 0) client.emit(Events.MESSAGE_BULK_DELETE, messages);
|
|
40
|
+
return { messages };
|
|
41
|
+
}
|
|
42
|
+
return {};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
module.exports = MessageDeleteBulkAction;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const { Events } = require('../../util/Constants');
|
|
5
|
+
|
|
6
|
+
class MessagePollVoteAddAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const channel = this.getChannel(data);
|
|
9
|
+
if (!channel?.isText()) return false;
|
|
10
|
+
|
|
11
|
+
const message = this.getMessage(data, channel);
|
|
12
|
+
if (!message) return false;
|
|
13
|
+
|
|
14
|
+
const { poll } = message;
|
|
15
|
+
|
|
16
|
+
const answer = poll?.answers.get(data.answer_id);
|
|
17
|
+
if (!answer) return false;
|
|
18
|
+
|
|
19
|
+
answer.voteCount++;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Emitted whenever a user votes in a poll.
|
|
23
|
+
* @event Client#messagePollVoteAdd
|
|
24
|
+
* @param {PollAnswer} pollAnswer The answer that was voted on
|
|
25
|
+
* @param {Snowflake} userId The id of the user that voted
|
|
26
|
+
*/
|
|
27
|
+
this.client.emit(Events.MESSAGE_POLL_VOTE_ADD, answer, data.user_id);
|
|
28
|
+
|
|
29
|
+
return { poll };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = MessagePollVoteAddAction;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const { Events } = require('../../util/Constants');
|
|
5
|
+
|
|
6
|
+
class MessagePollVoteRemoveAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const channel = this.getChannel(data);
|
|
9
|
+
if (!channel?.isText()) return false;
|
|
10
|
+
|
|
11
|
+
const message = this.getMessage(data, channel);
|
|
12
|
+
if (!message) return false;
|
|
13
|
+
|
|
14
|
+
const { poll } = message;
|
|
15
|
+
|
|
16
|
+
const answer = poll?.answers.get(data.answer_id);
|
|
17
|
+
if (!answer) return false;
|
|
18
|
+
|
|
19
|
+
answer.voteCount--;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Emitted whenever a user removes their vote in a poll.
|
|
23
|
+
* @event Client#messagePollVoteRemove
|
|
24
|
+
* @param {PollAnswer} pollAnswer The answer where the vote was removed
|
|
25
|
+
* @param {Snowflake} userId The id of the user that removed their vote
|
|
26
|
+
*/
|
|
27
|
+
this.client.emit(Events.MESSAGE_POLL_VOTE_REMOVE, answer, data.user_id);
|
|
28
|
+
|
|
29
|
+
return { poll };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = MessagePollVoteRemoveAction;
|
|
@@ -1,56 +1,68 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Action = require('./Action');
|
|
4
|
-
const { Events } = require('../../util/Constants');
|
|
5
|
-
const { PartialTypes } = require('../../util/Constants');
|
|
6
|
-
|
|
7
|
-
/*
|
|
8
|
-
{ user_id: 'id',
|
|
9
|
-
message_id: 'id',
|
|
10
|
-
emoji: { name: '�', id: null },
|
|
11
|
-
channel_id: 'id',
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const { Events } = require('../../util/Constants');
|
|
5
|
+
const { PartialTypes } = require('../../util/Constants');
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
{ user_id: 'id',
|
|
9
|
+
message_id: 'id',
|
|
10
|
+
emoji: { name: '�', id: null },
|
|
11
|
+
channel_id: 'id',
|
|
12
|
+
burst: boolean
|
|
13
|
+
// If originating from a guild
|
|
14
|
+
guild_id: 'id',
|
|
15
|
+
member: { ..., user: { ... } } }
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
class MessageReactionAdd extends Action {
|
|
19
|
+
handle(data, fromStructure = false) {
|
|
20
|
+
if (!data.emoji) return false;
|
|
21
|
+
|
|
22
|
+
const user = this.getUserFromMember(data);
|
|
23
|
+
if (!user) return false;
|
|
24
|
+
|
|
25
|
+
// Verify channel
|
|
26
|
+
const channel = this.getChannel({
|
|
27
|
+
id: data.channel_id,
|
|
28
|
+
user_id: data.user_id,
|
|
29
|
+
...('guild_id' in data && { guild_id: data.guild_id }),
|
|
30
|
+
});
|
|
31
|
+
if (!channel || !channel.isText()) return false;
|
|
32
|
+
|
|
33
|
+
// Verify message
|
|
34
|
+
const message = this.getMessage(data, channel);
|
|
35
|
+
if (!message) return false;
|
|
36
|
+
|
|
37
|
+
// Verify reaction
|
|
38
|
+
const includePartial = this.client.options.partials.includes(PartialTypes.REACTION);
|
|
39
|
+
if (message.partial && !includePartial) return false;
|
|
40
|
+
const reaction = message.reactions._add({
|
|
41
|
+
emoji: data.emoji,
|
|
42
|
+
count: message.partial ? null : 0,
|
|
43
|
+
me: user.id === this.client.user.id,
|
|
44
|
+
...data,
|
|
45
|
+
});
|
|
46
|
+
if (!reaction) return false;
|
|
47
|
+
reaction._add(user, data.burst);
|
|
48
|
+
if (fromStructure) return { message, reaction, user };
|
|
49
|
+
/**
|
|
50
|
+
* Provides additional information about altered reaction
|
|
51
|
+
* @typedef {Object} MessageReactionEventDetails
|
|
52
|
+
* @property {ReactionType} type The type of the reaction
|
|
53
|
+
* @property {boolean} burst Determines whether a super reaction was used
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Emitted whenever a reaction is added to a cached message.
|
|
57
|
+
* @event Client#messageReactionAdd
|
|
58
|
+
* @param {MessageReaction} messageReaction The reaction object
|
|
59
|
+
* @param {User} user The user that applied the guild or reaction emoji
|
|
60
|
+
* @param {MessageReactionEventDetails} details Details of adding the reaction
|
|
61
|
+
*/
|
|
62
|
+
this.client.emit(Events.MESSAGE_REACTION_ADD, reaction, user, { type: data.type, burst: data.burst });
|
|
63
|
+
|
|
64
|
+
return { message, reaction, user };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
module.exports = MessageReactionAdd;
|