@velliajs/discord 1.0.0
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 +191 -0
- package/README.md +133 -0
- package/package.json +82 -0
- package/src/client/BaseClient.js +83 -0
- package/src/client/Client.js +591 -0
- package/src/client/WebhookClient.js +103 -0
- package/src/client/actions/Action.js +119 -0
- package/src/client/actions/ActionsManager.js +79 -0
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
- package/src/client/actions/AutoModerationActionExecution.js +26 -0
- package/src/client/actions/AutoModerationRuleCreate.js +27 -0
- package/src/client/actions/AutoModerationRuleDelete.js +31 -0
- package/src/client/actions/AutoModerationRuleUpdate.js +29 -0
- package/src/client/actions/ChannelCreate.js +23 -0
- package/src/client/actions/ChannelDelete.js +23 -0
- package/src/client/actions/ChannelUpdate.js +33 -0
- package/src/client/actions/GuildAuditLogEntryCreate.js +29 -0
- package/src/client/actions/GuildBanAdd.js +20 -0
- package/src/client/actions/GuildBanRemove.js +25 -0
- package/src/client/actions/GuildChannelsPositionUpdate.js +21 -0
- package/src/client/actions/GuildDelete.js +44 -0
- package/src/client/actions/GuildEmojiCreate.js +20 -0
- package/src/client/actions/GuildEmojiDelete.js +19 -0
- package/src/client/actions/GuildEmojiUpdate.js +20 -0
- package/src/client/actions/GuildEmojisUpdate.js +34 -0
- package/src/client/actions/GuildIntegrationsUpdate.js +19 -0
- package/src/client/actions/GuildMemberRemove.js +31 -0
- package/src/client/actions/GuildMemberUpdate.js +44 -0
- package/src/client/actions/GuildRoleCreate.js +25 -0
- package/src/client/actions/GuildRoleDelete.js +29 -0
- package/src/client/actions/GuildRoleUpdate.js +39 -0
- package/src/client/actions/GuildRolesPositionUpdate.js +21 -0
- package/src/client/actions/GuildScheduledEventCreate.js +27 -0
- package/src/client/actions/GuildScheduledEventDelete.js +31 -0
- package/src/client/actions/GuildScheduledEventUpdate.js +30 -0
- package/src/client/actions/GuildScheduledEventUserAdd.js +32 -0
- package/src/client/actions/GuildScheduledEventUserRemove.js +32 -0
- package/src/client/actions/GuildStickerCreate.js +20 -0
- package/src/client/actions/GuildStickerDelete.js +19 -0
- package/src/client/actions/GuildStickerUpdate.js +20 -0
- package/src/client/actions/GuildStickersUpdate.js +34 -0
- package/src/client/actions/GuildUpdate.js +33 -0
- package/src/client/actions/InteractionCreate.js +101 -0
- package/src/client/actions/InviteCreate.js +28 -0
- package/src/client/actions/InviteDelete.js +30 -0
- package/src/client/actions/MessageCreate.js +37 -0
- package/src/client/actions/MessageDelete.js +32 -0
- package/src/client/actions/MessageDeleteBulk.js +47 -0
- package/src/client/actions/MessageReactionAdd.js +55 -0
- package/src/client/actions/MessageReactionRemove.js +45 -0
- package/src/client/actions/MessageReactionRemoveAll.js +33 -0
- package/src/client/actions/MessageReactionRemoveEmoji.js +28 -0
- package/src/client/actions/MessageUpdate.js +26 -0
- package/src/client/actions/PresenceUpdate.js +42 -0
- package/src/client/actions/StageInstanceCreate.js +28 -0
- package/src/client/actions/StageInstanceDelete.js +31 -0
- package/src/client/actions/StageInstanceUpdate.js +30 -0
- package/src/client/actions/ThreadCreate.js +24 -0
- package/src/client/actions/ThreadDelete.js +26 -0
- package/src/client/actions/ThreadListSync.js +60 -0
- package/src/client/actions/ThreadMemberUpdate.js +30 -0
- package/src/client/actions/ThreadMembersUpdate.js +47 -0
- package/src/client/actions/TypingStart.js +29 -0
- package/src/client/actions/UserUpdate.js +36 -0
- package/src/client/actions/VoiceStateUpdate.js +43 -0
- package/src/client/actions/WebhooksUpdate.js +20 -0
- package/src/client/voice/ClientVoiceManager.js +44 -0
- package/src/client/websocket/WebSocketManager.js +393 -0
- package/src/client/websocket/WebSocketShard.js +231 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
- package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_CREATE.js +26 -0
- package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
- package/src/client/websocket/handlers/INTERACTION_CREATE.js +5 -0
- package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
- package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
- package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/READY.js +27 -0
- package/src/client/websocket/handlers/RESUMED.js +14 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
- package/src/client/websocket/handlers/TYPING_START.js +5 -0
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -0
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/index.js +64 -0
- package/src/errors/DJSError.js +48 -0
- package/src/errors/ErrorCodes.js +319 -0
- package/src/errors/Messages.js +170 -0
- package/src/errors/index.js +5 -0
- package/src/index.js +213 -0
- package/src/managers/ApplicationCommandManager.js +263 -0
- package/src/managers/ApplicationCommandPermissionsManager.js +434 -0
- package/src/managers/AutoModerationRuleManager.js +288 -0
- package/src/managers/BaseGuildEmojiManager.js +80 -0
- package/src/managers/BaseManager.js +19 -0
- package/src/managers/CachedManager.js +57 -0
- package/src/managers/CategoryChannelChildManager.js +77 -0
- package/src/managers/ChannelManager.js +128 -0
- package/src/managers/DataManager.js +61 -0
- package/src/managers/GuildApplicationCommandManager.js +28 -0
- package/src/managers/GuildBanManager.js +204 -0
- package/src/managers/GuildChannelManager.js +494 -0
- package/src/managers/GuildEmojiManager.js +174 -0
- package/src/managers/GuildEmojiRoleManager.js +118 -0
- package/src/managers/GuildForumThreadManager.js +83 -0
- package/src/managers/GuildInviteManager.js +213 -0
- package/src/managers/GuildManager.js +283 -0
- package/src/managers/GuildMemberManager.js +540 -0
- package/src/managers/GuildMemberRoleManager.js +204 -0
- package/src/managers/GuildScheduledEventManager.js +297 -0
- package/src/managers/GuildStickerManager.js +182 -0
- package/src/managers/GuildTextThreadManager.js +91 -0
- package/src/managers/MessageManager.js +259 -0
- package/src/managers/PermissionOverwriteManager.js +168 -0
- package/src/managers/PresenceManager.js +58 -0
- package/src/managers/ReactionManager.js +68 -0
- package/src/managers/ReactionUserManager.js +77 -0
- package/src/managers/RoleManager.js +360 -0
- package/src/managers/StageInstanceManager.js +154 -0
- package/src/managers/ThreadManager.js +204 -0
- package/src/managers/ThreadMemberManager.js +182 -0
- package/src/managers/UserManager.js +139 -0
- package/src/managers/VoiceStateManager.js +37 -0
- package/src/sharding/Shard.js +457 -0
- package/src/sharding/ShardClientUtil.js +285 -0
- package/src/sharding/ShardingManager.js +326 -0
- package/src/structures/ActionRow.js +46 -0
- package/src/structures/ActionRowBuilder.js +35 -0
- package/src/structures/AnonymousGuild.js +97 -0
- package/src/structures/ApplicationCommand.js +606 -0
- package/src/structures/ApplicationRoleConnectionMetadata.js +46 -0
- package/src/structures/Attachment.js +140 -0
- package/src/structures/AttachmentBuilder.js +116 -0
- package/src/structures/AutoModerationActionExecution.js +116 -0
- package/src/structures/AutoModerationRule.js +284 -0
- package/src/structures/AutocompleteInteraction.js +97 -0
- package/src/structures/Base.js +43 -0
- package/src/structures/BaseChannel.js +160 -0
- package/src/structures/BaseGuild.js +119 -0
- package/src/structures/BaseGuildEmoji.js +56 -0
- package/src/structures/BaseGuildTextChannel.js +186 -0
- package/src/structures/BaseGuildVoiceChannel.js +234 -0
- package/src/structures/BaseInteraction.js +344 -0
- package/src/structures/BaseSelectMenuComponent.js +56 -0
- package/src/structures/ButtonBuilder.js +44 -0
- package/src/structures/ButtonComponent.js +65 -0
- package/src/structures/ButtonInteraction.js +11 -0
- package/src/structures/CategoryChannel.js +45 -0
- package/src/structures/ChannelSelectMenuBuilder.js +31 -0
- package/src/structures/ChannelSelectMenuComponent.js +20 -0
- package/src/structures/ChannelSelectMenuInteraction.js +33 -0
- package/src/structures/ChatInputCommandInteraction.js +41 -0
- package/src/structures/ClientApplication.js +193 -0
- package/src/structures/ClientPresence.js +82 -0
- package/src/structures/ClientUser.js +185 -0
- package/src/structures/CommandInteraction.js +224 -0
- package/src/structures/CommandInteractionOptionResolver.js +308 -0
- package/src/structures/Component.js +47 -0
- package/src/structures/ContextMenuCommandInteraction.js +64 -0
- package/src/structures/DMChannel.js +129 -0
- package/src/structures/DirectoryChannel.js +36 -0
- package/src/structures/Embed.js +220 -0
- package/src/structures/EmbedBuilder.js +41 -0
- package/src/structures/Emoji.js +108 -0
- package/src/structures/ForumChannel.js +264 -0
- package/src/structures/Guild.js +1361 -0
- package/src/structures/GuildAuditLogs.js +91 -0
- package/src/structures/GuildAuditLogsEntry.js +527 -0
- package/src/structures/GuildBan.js +59 -0
- package/src/structures/GuildChannel.js +457 -0
- package/src/structures/GuildEmoji.js +148 -0
- package/src/structures/GuildMember.js +518 -0
- package/src/structures/GuildPreview.js +193 -0
- package/src/structures/GuildPreviewEmoji.js +27 -0
- package/src/structures/GuildScheduledEvent.js +439 -0
- package/src/structures/GuildTemplate.js +241 -0
- package/src/structures/Integration.js +220 -0
- package/src/structures/IntegrationApplication.js +85 -0
- package/src/structures/InteractionCollector.js +263 -0
- package/src/structures/InteractionResponse.js +102 -0
- package/src/structures/InteractionWebhook.js +59 -0
- package/src/structures/Invite.js +322 -0
- package/src/structures/InviteGuild.js +22 -0
- package/src/structures/InviteStageInstance.js +87 -0
- package/src/structures/MentionableSelectMenuBuilder.js +32 -0
- package/src/structures/MentionableSelectMenuComponent.js +11 -0
- package/src/structures/MentionableSelectMenuInteraction.js +71 -0
- package/src/structures/Message.js +997 -0
- package/src/structures/MessageCollector.js +146 -0
- package/src/structures/MessageComponentInteraction.js +107 -0
- package/src/structures/MessageContextMenuCommandInteraction.js +20 -0
- package/src/structures/MessageMentions.js +297 -0
- package/src/structures/MessagePayload.js +299 -0
- package/src/structures/MessageReaction.js +142 -0
- package/src/structures/ModalBuilder.js +34 -0
- package/src/structures/ModalSubmitFields.js +55 -0
- package/src/structures/ModalSubmitInteraction.js +121 -0
- package/src/structures/NewsChannel.js +32 -0
- package/src/structures/OAuth2Guild.js +28 -0
- package/src/structures/PartialGroupDMChannel.js +60 -0
- package/src/structures/PermissionOverwrites.js +196 -0
- package/src/structures/Presence.js +372 -0
- package/src/structures/ReactionCollector.js +229 -0
- package/src/structures/ReactionEmoji.js +31 -0
- package/src/structures/Role.js +458 -0
- package/src/structures/RoleSelectMenuBuilder.js +31 -0
- package/src/structures/RoleSelectMenuComponent.js +11 -0
- package/src/structures/RoleSelectMenuInteraction.js +33 -0
- package/src/structures/SelectMenuBuilder.js +26 -0
- package/src/structures/SelectMenuComponent.js +26 -0
- package/src/structures/SelectMenuInteraction.js +26 -0
- package/src/structures/SelectMenuOptionBuilder.js +26 -0
- package/src/structures/StageChannel.js +112 -0
- package/src/structures/StageInstance.js +167 -0
- package/src/structures/Sticker.js +272 -0
- package/src/structures/StickerPack.js +95 -0
- package/src/structures/StringSelectMenuBuilder.js +79 -0
- package/src/structures/StringSelectMenuComponent.js +20 -0
- package/src/structures/StringSelectMenuInteraction.js +21 -0
- package/src/structures/StringSelectMenuOptionBuilder.js +49 -0
- package/src/structures/Team.js +117 -0
- package/src/structures/TeamMember.js +70 -0
- package/src/structures/TextChannel.js +33 -0
- package/src/structures/TextInputBuilder.js +31 -0
- package/src/structures/TextInputComponent.js +29 -0
- package/src/structures/ThreadChannel.js +606 -0
- package/src/structures/ThreadMember.js +113 -0
- package/src/structures/Typing.js +74 -0
- package/src/structures/User.js +331 -0
- package/src/structures/UserContextMenuCommandInteraction.js +29 -0
- package/src/structures/UserSelectMenuBuilder.js +31 -0
- package/src/structures/UserSelectMenuComponent.js +11 -0
- package/src/structures/UserSelectMenuInteraction.js +51 -0
- package/src/structures/VoiceChannel.js +96 -0
- package/src/structures/VoiceRegion.js +46 -0
- package/src/structures/VoiceState.js +303 -0
- package/src/structures/Webhook.js +481 -0
- package/src/structures/WelcomeChannel.js +60 -0
- package/src/structures/WelcomeScreen.js +49 -0
- package/src/structures/Widget.js +88 -0
- package/src/structures/WidgetMember.js +99 -0
- package/src/structures/interfaces/Application.js +108 -0
- package/src/structures/interfaces/Collector.js +335 -0
- package/src/structures/interfaces/InteractionResponses.js +320 -0
- package/src/structures/interfaces/TextBasedChannel.js +413 -0
- package/src/util/APITypes.js +456 -0
- package/src/util/ActivityFlagsBitField.js +26 -0
- package/src/util/ApplicationFlagsBitField.js +26 -0
- package/src/util/BitField.js +176 -0
- package/src/util/ChannelFlagsBitField.js +41 -0
- package/src/util/Channels.js +150 -0
- package/src/util/Colors.js +73 -0
- package/src/util/Components.js +152 -0
- package/src/util/Constants.js +230 -0
- package/src/util/DataResolver.js +140 -0
- package/src/util/Enums.js +13 -0
- package/src/util/Events.js +160 -0
- package/src/util/Formatters.js +413 -0
- package/src/util/GuildMemberFlagsBitField.js +41 -0
- package/src/util/IntentsBitField.js +34 -0
- package/src/util/LimitedCollection.js +68 -0
- package/src/util/MessageFlagsBitField.js +32 -0
- package/src/util/Options.js +216 -0
- package/src/util/Partials.js +44 -0
- package/src/util/PermissionsBitField.js +104 -0
- package/src/util/ShardEvents.js +27 -0
- package/src/util/Status.js +33 -0
- package/src/util/Sweepers.js +467 -0
- package/src/util/SystemChannelFlagsBitField.js +43 -0
- package/src/util/ThreadMemberFlagsBitField.js +31 -0
- package/src/util/Transformers.js +36 -0
- package/src/util/UserFlagsBitField.js +32 -0
- package/src/util/Util.js +394 -0
- package/src/util/WebSocketShardEvents.js +25 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildIntegrationsUpdate extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
/**
|
|
11
|
+
* Emitted whenever a guild integration is updated
|
|
12
|
+
* @event Client#guildIntegrationsUpdate
|
|
13
|
+
* @param {Guild} guild The guild whose integrations were updated
|
|
14
|
+
*/
|
|
15
|
+
if (guild) client.emit(Events.GuildIntegrationsUpdate, guild);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
module.exports = GuildIntegrationsUpdate;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
const Status = require('../../util/Status');
|
|
6
|
+
|
|
7
|
+
class GuildMemberRemoveAction extends Action {
|
|
8
|
+
handle(data, shard) {
|
|
9
|
+
const client = this.client;
|
|
10
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
11
|
+
let member = null;
|
|
12
|
+
if (guild) {
|
|
13
|
+
member = this.getMember({ user: data.user }, guild);
|
|
14
|
+
guild.memberCount--;
|
|
15
|
+
if (member) {
|
|
16
|
+
guild.members.cache.delete(member.id);
|
|
17
|
+
/**
|
|
18
|
+
* Emitted whenever a member leaves a guild, or is kicked.
|
|
19
|
+
* @event Client#guildMemberRemove
|
|
20
|
+
* @param {GuildMember} member The member that has left/been kicked from the guild
|
|
21
|
+
*/
|
|
22
|
+
if (shard.status === Status.Ready) client.emit(Events.GuildMemberRemove, member);
|
|
23
|
+
}
|
|
24
|
+
guild.presences.cache.delete(data.user.id);
|
|
25
|
+
guild.voiceStates.cache.delete(data.user.id);
|
|
26
|
+
}
|
|
27
|
+
return { guild, member };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = GuildMemberRemoveAction;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
const Status = require('../../util/Status');
|
|
6
|
+
|
|
7
|
+
class GuildMemberUpdateAction extends Action {
|
|
8
|
+
handle(data, shard) {
|
|
9
|
+
const { client } = this;
|
|
10
|
+
if (data.user.username) {
|
|
11
|
+
const user = client.users.cache.get(data.user.id);
|
|
12
|
+
if (!user) {
|
|
13
|
+
client.users._add(data.user);
|
|
14
|
+
} else if (!user._equals(data.user)) {
|
|
15
|
+
client.actions.UserUpdate.handle(data.user);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
20
|
+
if (guild) {
|
|
21
|
+
const member = this.getMember({ user: data.user }, guild);
|
|
22
|
+
if (member) {
|
|
23
|
+
const old = member._update(data);
|
|
24
|
+
/**
|
|
25
|
+
* Emitted whenever a guild member changes - i.e. new role, removed role, nickname.
|
|
26
|
+
* @event Client#guildMemberUpdate
|
|
27
|
+
* @param {GuildMember} oldMember The member before the update
|
|
28
|
+
* @param {GuildMember} newMember The member after the update
|
|
29
|
+
*/
|
|
30
|
+
if (shard.status === Status.Ready && !member.equals(old)) client.emit(Events.GuildMemberUpdate, old, member);
|
|
31
|
+
} else {
|
|
32
|
+
const newMember = guild.members._add(data);
|
|
33
|
+
/**
|
|
34
|
+
* Emitted whenever a member becomes available.
|
|
35
|
+
* @event Client#guildMemberAvailable
|
|
36
|
+
* @param {GuildMember} member The member that became available
|
|
37
|
+
*/
|
|
38
|
+
this.client.emit(Events.GuildMemberAvailable, newMember);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
module.exports = GuildMemberUpdateAction;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildRoleCreate extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
let role;
|
|
11
|
+
if (guild) {
|
|
12
|
+
const already = guild.roles.cache.has(data.role.id);
|
|
13
|
+
role = guild.roles._add(data.role);
|
|
14
|
+
/**
|
|
15
|
+
* Emitted whenever a role is created.
|
|
16
|
+
* @event Client#roleCreate
|
|
17
|
+
* @param {Role} role The role that was created
|
|
18
|
+
*/
|
|
19
|
+
if (!already) client.emit(Events.GuildRoleCreate, role);
|
|
20
|
+
}
|
|
21
|
+
return { role };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = GuildRoleCreate;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildRoleDeleteAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
let role;
|
|
11
|
+
|
|
12
|
+
if (guild) {
|
|
13
|
+
role = guild.roles.cache.get(data.role_id);
|
|
14
|
+
if (role) {
|
|
15
|
+
guild.roles.cache.delete(data.role_id);
|
|
16
|
+
/**
|
|
17
|
+
* Emitted whenever a guild role is deleted.
|
|
18
|
+
* @event Client#roleDelete
|
|
19
|
+
* @param {Role} role The role that was deleted
|
|
20
|
+
*/
|
|
21
|
+
client.emit(Events.GuildRoleDelete, role);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return { role };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = GuildRoleDeleteAction;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildRoleUpdateAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
|
|
11
|
+
if (guild) {
|
|
12
|
+
let old = null;
|
|
13
|
+
|
|
14
|
+
const role = guild.roles.cache.get(data.role.id);
|
|
15
|
+
if (role) {
|
|
16
|
+
old = role._update(data.role);
|
|
17
|
+
/**
|
|
18
|
+
* Emitted whenever a guild role is updated.
|
|
19
|
+
* @event Client#roleUpdate
|
|
20
|
+
* @param {Role} oldRole The role before the update
|
|
21
|
+
* @param {Role} newRole The role after the update
|
|
22
|
+
*/
|
|
23
|
+
client.emit(Events.GuildRoleUpdate, old, role);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
old,
|
|
28
|
+
updated: role,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return {
|
|
33
|
+
old: null,
|
|
34
|
+
updated: null,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = GuildRoleUpdateAction;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
|
|
5
|
+
class GuildRolesPositionUpdate extends Action {
|
|
6
|
+
handle(data) {
|
|
7
|
+
const client = this.client;
|
|
8
|
+
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
if (guild) {
|
|
11
|
+
for (const partialRole of data.roles) {
|
|
12
|
+
const role = guild.roles.cache.get(partialRole.id);
|
|
13
|
+
if (role) role.rawPosition = partialRole.position;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return { guild };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
module.exports = GuildRolesPositionUpdate;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildScheduledEventCreateAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
if (guild) {
|
|
11
|
+
const guildScheduledEvent = guild.scheduledEvents._add(data);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Emitted whenever a guild scheduled event is created.
|
|
15
|
+
* @event Client#guildScheduledEventCreate
|
|
16
|
+
* @param {GuildScheduledEvent} guildScheduledEvent The created guild scheduled event
|
|
17
|
+
*/
|
|
18
|
+
client.emit(Events.GuildScheduledEventCreate, guildScheduledEvent);
|
|
19
|
+
|
|
20
|
+
return { guildScheduledEvent };
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
module.exports = GuildScheduledEventCreateAction;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildScheduledEventDeleteAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
|
|
11
|
+
if (guild) {
|
|
12
|
+
const guildScheduledEvent = this.getScheduledEvent(data, guild);
|
|
13
|
+
if (guildScheduledEvent) {
|
|
14
|
+
guild.scheduledEvents.cache.delete(guildScheduledEvent.id);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Emitted whenever a guild scheduled event is deleted.
|
|
18
|
+
* @event Client#guildScheduledEventDelete
|
|
19
|
+
* @param {GuildScheduledEvent} guildScheduledEvent The deleted guild scheduled event
|
|
20
|
+
*/
|
|
21
|
+
client.emit(Events.GuildScheduledEventDelete, guildScheduledEvent);
|
|
22
|
+
|
|
23
|
+
return { guildScheduledEvent };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = GuildScheduledEventDeleteAction;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildScheduledEventUpdateAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
|
|
11
|
+
if (guild) {
|
|
12
|
+
const oldGuildScheduledEvent = guild.scheduledEvents.cache.get(data.id)?._clone() ?? null;
|
|
13
|
+
const newGuildScheduledEvent = guild.scheduledEvents._add(data);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Emitted whenever a guild scheduled event gets updated.
|
|
17
|
+
* @event Client#guildScheduledEventUpdate
|
|
18
|
+
* @param {?GuildScheduledEvent} oldGuildScheduledEvent The guild scheduled event object before the update
|
|
19
|
+
* @param {GuildScheduledEvent} newGuildScheduledEvent The guild scheduled event object after the update
|
|
20
|
+
*/
|
|
21
|
+
client.emit(Events.GuildScheduledEventUpdate, oldGuildScheduledEvent, newGuildScheduledEvent);
|
|
22
|
+
|
|
23
|
+
return { oldGuildScheduledEvent, newGuildScheduledEvent };
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
module.exports = GuildScheduledEventUpdateAction;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildScheduledEventUserAddAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
|
|
11
|
+
if (guild) {
|
|
12
|
+
const guildScheduledEvent = this.getScheduledEvent(data, guild);
|
|
13
|
+
const user = this.getUser(data);
|
|
14
|
+
|
|
15
|
+
if (guildScheduledEvent && user) {
|
|
16
|
+
/**
|
|
17
|
+
* Emitted whenever a user subscribes to a guild scheduled event
|
|
18
|
+
* @event Client#guildScheduledEventUserAdd
|
|
19
|
+
* @param {GuildScheduledEvent} guildScheduledEvent The guild scheduled event
|
|
20
|
+
* @param {User} user The user who subscribed
|
|
21
|
+
*/
|
|
22
|
+
client.emit(Events.GuildScheduledEventUserAdd, guildScheduledEvent, user);
|
|
23
|
+
|
|
24
|
+
return { guildScheduledEvent, user };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = GuildScheduledEventUserAddAction;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildScheduledEventUserRemoveAction extends Action {
|
|
7
|
+
handle(data) {
|
|
8
|
+
const client = this.client;
|
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
10
|
+
|
|
11
|
+
if (guild) {
|
|
12
|
+
const guildScheduledEvent = this.getScheduledEvent(data, guild);
|
|
13
|
+
const user = this.getUser(data);
|
|
14
|
+
|
|
15
|
+
if (guildScheduledEvent && user) {
|
|
16
|
+
/**
|
|
17
|
+
* Emitted whenever a user unsubscribes from a guild scheduled event
|
|
18
|
+
* @event Client#guildScheduledEventUserRemove
|
|
19
|
+
* @param {GuildScheduledEvent} guildScheduledEvent The guild scheduled event
|
|
20
|
+
* @param {User} user The user who unsubscribed
|
|
21
|
+
*/
|
|
22
|
+
client.emit(Events.GuildScheduledEventUserRemove, guildScheduledEvent, user);
|
|
23
|
+
|
|
24
|
+
return { guildScheduledEvent, user };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = GuildScheduledEventUserRemoveAction;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildStickerCreateAction extends Action {
|
|
7
|
+
handle(guild, createdSticker) {
|
|
8
|
+
const already = guild.stickers.cache.has(createdSticker.id);
|
|
9
|
+
const sticker = guild.stickers._add(createdSticker);
|
|
10
|
+
/**
|
|
11
|
+
* Emitted whenever a custom sticker is created in a guild.
|
|
12
|
+
* @event Client#stickerCreate
|
|
13
|
+
* @param {Sticker} sticker The sticker that was created
|
|
14
|
+
*/
|
|
15
|
+
if (!already) this.client.emit(Events.GuildStickerCreate, sticker);
|
|
16
|
+
return { sticker };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = GuildStickerCreateAction;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildStickerDeleteAction extends Action {
|
|
7
|
+
handle(sticker) {
|
|
8
|
+
sticker.guild.stickers.cache.delete(sticker.id);
|
|
9
|
+
/**
|
|
10
|
+
* Emitted whenever a custom sticker is deleted in a guild.
|
|
11
|
+
* @event Client#stickerDelete
|
|
12
|
+
* @param {Sticker} sticker The sticker that was deleted
|
|
13
|
+
*/
|
|
14
|
+
this.client.emit(Events.GuildStickerDelete, sticker);
|
|
15
|
+
return { sticker };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
module.exports = GuildStickerDeleteAction;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
5
|
+
|
|
6
|
+
class GuildStickerUpdateAction extends Action {
|
|
7
|
+
handle(current, data) {
|
|
8
|
+
const old = current._update(data);
|
|
9
|
+
/**
|
|
10
|
+
* Emitted whenever a custom sticker is updated in a guild.
|
|
11
|
+
* @event Client#stickerUpdate
|
|
12
|
+
* @param {Sticker} oldSticker The old sticker
|
|
13
|
+
* @param {Sticker} newSticker The new sticker
|
|
14
|
+
*/
|
|
15
|
+
this.client.emit(Events.GuildStickerUpdate, old, current);
|
|
16
|
+
return { sticker: current };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = GuildStickerUpdateAction;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
|
|
5
|
+
class GuildStickersUpdateAction extends Action {
|
|
6
|
+
handle(data) {
|
|
7
|
+
const guild = this.client.guilds.cache.get(data.guild_id);
|
|
8
|
+
if (!guild?.stickers) return;
|
|
9
|
+
|
|
10
|
+
const deletions = new Map(guild.stickers.cache);
|
|
11
|
+
|
|
12
|
+
for (const sticker of data.stickers) {
|
|
13
|
+
// Determine type of sticker event
|
|
14
|
+
const cachedSticker = guild.stickers.cache.get(sticker.id);
|
|
15
|
+
if (cachedSticker) {
|
|
16
|
+
deletions.delete(sticker.id);
|
|
17
|
+
if (!cachedSticker.equals(sticker)) {
|
|
18
|
+
// Sticker updated
|
|
19
|
+
this.client.actions.GuildStickerUpdate.handle(cachedSticker, sticker);
|
|
20
|
+
}
|
|
21
|
+
} else {
|
|
22
|
+
// Sticker added
|
|
23
|
+
this.client.actions.GuildStickerCreate.handle(guild, sticker);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
for (const sticker of deletions.values()) {
|
|
28
|
+
// Sticker deleted
|
|
29
|
+
this.client.actions.GuildStickerDelete.handle(sticker);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
module.exports = GuildStickersUpdateAction;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
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.GuildUpdate, 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;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { InteractionType, ComponentType, ApplicationCommandType } = require('discord-api-types/v10');
|
|
4
|
+
const Action = require('./Action');
|
|
5
|
+
const AutocompleteInteraction = require('../../structures/AutocompleteInteraction');
|
|
6
|
+
const ButtonInteraction = require('../../structures/ButtonInteraction');
|
|
7
|
+
const ChannelSelectMenuInteraction = require('../../structures/ChannelSelectMenuInteraction');
|
|
8
|
+
const ChatInputCommandInteraction = require('../../structures/ChatInputCommandInteraction');
|
|
9
|
+
const MentionableSelectMenuInteraction = require('../../structures/MentionableSelectMenuInteraction');
|
|
10
|
+
const MessageContextMenuCommandInteraction = require('../../structures/MessageContextMenuCommandInteraction');
|
|
11
|
+
const ModalSubmitInteraction = require('../../structures/ModalSubmitInteraction');
|
|
12
|
+
const RoleSelectMenuInteraction = require('../../structures/RoleSelectMenuInteraction');
|
|
13
|
+
const StringSelectMenuInteraction = require('../../structures/StringSelectMenuInteraction');
|
|
14
|
+
const UserContextMenuCommandInteraction = require('../../structures/UserContextMenuCommandInteraction');
|
|
15
|
+
const UserSelectMenuInteraction = require('../../structures/UserSelectMenuInteraction');
|
|
16
|
+
const Events = require('../../util/Events');
|
|
17
|
+
|
|
18
|
+
class InteractionCreateAction extends Action {
|
|
19
|
+
handle(data) {
|
|
20
|
+
const client = this.client;
|
|
21
|
+
|
|
22
|
+
// Resolve and cache partial channels for Interaction#channel getter
|
|
23
|
+
const channel = data.channel && this.getChannel(data.channel);
|
|
24
|
+
|
|
25
|
+
// Do not emit this for interactions that cache messages that are non-text-based.
|
|
26
|
+
let InteractionClass;
|
|
27
|
+
|
|
28
|
+
switch (data.type) {
|
|
29
|
+
case InteractionType.ApplicationCommand:
|
|
30
|
+
switch (data.data.type) {
|
|
31
|
+
case ApplicationCommandType.ChatInput:
|
|
32
|
+
InteractionClass = ChatInputCommandInteraction;
|
|
33
|
+
break;
|
|
34
|
+
case ApplicationCommandType.User:
|
|
35
|
+
InteractionClass = UserContextMenuCommandInteraction;
|
|
36
|
+
break;
|
|
37
|
+
case ApplicationCommandType.Message:
|
|
38
|
+
if (channel && !channel.isTextBased()) return;
|
|
39
|
+
InteractionClass = MessageContextMenuCommandInteraction;
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
client.emit(
|
|
43
|
+
Events.Debug,
|
|
44
|
+
`[INTERACTION] Received application command interaction with unknown type: ${data.data.type}`,
|
|
45
|
+
);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
case InteractionType.MessageComponent:
|
|
50
|
+
if (channel && !channel.isTextBased()) return;
|
|
51
|
+
|
|
52
|
+
switch (data.data.component_type) {
|
|
53
|
+
case ComponentType.Button:
|
|
54
|
+
InteractionClass = ButtonInteraction;
|
|
55
|
+
break;
|
|
56
|
+
case ComponentType.StringSelect:
|
|
57
|
+
InteractionClass = StringSelectMenuInteraction;
|
|
58
|
+
break;
|
|
59
|
+
case ComponentType.UserSelect:
|
|
60
|
+
InteractionClass = UserSelectMenuInteraction;
|
|
61
|
+
break;
|
|
62
|
+
case ComponentType.RoleSelect:
|
|
63
|
+
InteractionClass = RoleSelectMenuInteraction;
|
|
64
|
+
break;
|
|
65
|
+
case ComponentType.MentionableSelect:
|
|
66
|
+
InteractionClass = MentionableSelectMenuInteraction;
|
|
67
|
+
break;
|
|
68
|
+
case ComponentType.ChannelSelect:
|
|
69
|
+
InteractionClass = ChannelSelectMenuInteraction;
|
|
70
|
+
break;
|
|
71
|
+
default:
|
|
72
|
+
client.emit(
|
|
73
|
+
Events.Debug,
|
|
74
|
+
`[INTERACTION] Received component interaction with unknown type: ${data.data.component_type}`,
|
|
75
|
+
);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
case InteractionType.ApplicationCommandAutocomplete:
|
|
80
|
+
InteractionClass = AutocompleteInteraction;
|
|
81
|
+
break;
|
|
82
|
+
case InteractionType.ModalSubmit:
|
|
83
|
+
InteractionClass = ModalSubmitInteraction;
|
|
84
|
+
break;
|
|
85
|
+
default:
|
|
86
|
+
client.emit(Events.Debug, `[INTERACTION] Received interaction with unknown type: ${data.type}`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const interaction = new InteractionClass(client, data);
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Emitted when an interaction is created.
|
|
94
|
+
* @event Client#interactionCreate
|
|
95
|
+
* @param {BaseInteraction} interaction The interaction which was created
|
|
96
|
+
*/
|
|
97
|
+
client.emit(Events.InteractionCreate, interaction);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
module.exports = InteractionCreateAction;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Events = require('../../util/Events');
|
|
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 requires either the {@link PermissionFlagsBits.ManageGuild} permission or the
|
|
19
|
+
* {@link PermissionFlagsBits.ManageChannels} permission for the channel.</info>
|
|
20
|
+
* @event Client#inviteCreate
|
|
21
|
+
* @param {Invite} invite The invite that was created
|
|
22
|
+
*/
|
|
23
|
+
client.emit(Events.InviteCreate, invite);
|
|
24
|
+
return { invite };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
module.exports = InviteCreateAction;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Action = require('./Action');
|
|
4
|
+
const Invite = require('../../structures/Invite');
|
|
5
|
+
const Events = require('../../util/Events');
|
|
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 requires either the {@link PermissionFlagsBits.ManageGuild} permission or the
|
|
21
|
+
* {@link PermissionFlagsBits.ManageChannels} permission for the channel.</info>
|
|
22
|
+
* @event Client#inviteDelete
|
|
23
|
+
* @param {Invite} invite The invite that was deleted
|
|
24
|
+
*/
|
|
25
|
+
client.emit(Events.InviteDelete, invite);
|
|
26
|
+
return { invite };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
module.exports = InviteDeleteAction;
|