@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,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Component = require('./Component');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a button component
|
|
7
|
+
* @extends {Component}
|
|
8
|
+
*/
|
|
9
|
+
class ButtonComponent extends Component {
|
|
10
|
+
/**
|
|
11
|
+
* The style of this button
|
|
12
|
+
* @type {ButtonStyle}
|
|
13
|
+
* @readonly
|
|
14
|
+
*/
|
|
15
|
+
get style() {
|
|
16
|
+
return this.data.style;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The label of this button
|
|
21
|
+
* @type {?string}
|
|
22
|
+
* @readonly
|
|
23
|
+
*/
|
|
24
|
+
get label() {
|
|
25
|
+
return this.data.label ?? null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The emoji used in this button
|
|
30
|
+
* @type {?APIMessageComponentEmoji}
|
|
31
|
+
* @readonly
|
|
32
|
+
*/
|
|
33
|
+
get emoji() {
|
|
34
|
+
return this.data.emoji ?? null;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Whether this button is disabled
|
|
39
|
+
* @type {boolean}
|
|
40
|
+
* @readonly
|
|
41
|
+
*/
|
|
42
|
+
get disabled() {
|
|
43
|
+
return this.data.disabled ?? false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The custom id of this button (only defined on non-link buttons)
|
|
48
|
+
* @type {?string}
|
|
49
|
+
* @readonly
|
|
50
|
+
*/
|
|
51
|
+
get customId() {
|
|
52
|
+
return this.data.custom_id ?? null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The URL of this button (only defined on link buttons)
|
|
57
|
+
* @type {?string}
|
|
58
|
+
* @readonly
|
|
59
|
+
*/
|
|
60
|
+
get url() {
|
|
61
|
+
return this.data.url ?? null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = ButtonComponent;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const MessageComponentInteraction = require('./MessageComponentInteraction');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a button interaction.
|
|
7
|
+
* @extends {MessageComponentInteraction}
|
|
8
|
+
*/
|
|
9
|
+
class ButtonInteraction extends MessageComponentInteraction {}
|
|
10
|
+
|
|
11
|
+
module.exports = ButtonInteraction;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const GuildChannel = require('./GuildChannel');
|
|
4
|
+
const CategoryChannelChildManager = require('../managers/CategoryChannelChildManager');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents a guild category channel on Discord.
|
|
8
|
+
* @extends {GuildChannel}
|
|
9
|
+
*/
|
|
10
|
+
class CategoryChannel extends GuildChannel {
|
|
11
|
+
/**
|
|
12
|
+
* The id of the parent of this channel.
|
|
13
|
+
* @name CategoryChannel#parentId
|
|
14
|
+
* @type {null}
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The parent of this channel.
|
|
19
|
+
* @name CategoryChannel#parent
|
|
20
|
+
* @type {null}
|
|
21
|
+
* @readonly
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Sets the category parent of this channel.
|
|
26
|
+
* <warn>It is not possible to set the parent of a CategoryChannel.</warn>
|
|
27
|
+
* @method setParent
|
|
28
|
+
* @memberof CategoryChannel
|
|
29
|
+
* @instance
|
|
30
|
+
* @param {?CategoryChannelResolvable} channel The channel to set as parent
|
|
31
|
+
* @param {SetParentOptions} [options={}] The options for setting the parent
|
|
32
|
+
* @returns {Promise<GuildChannel>}
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A manager of the channels belonging to this category
|
|
37
|
+
* @type {CategoryChannelChildManager}
|
|
38
|
+
* @readonly
|
|
39
|
+
*/
|
|
40
|
+
get children() {
|
|
41
|
+
return new CategoryChannelChildManager(this);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = CategoryChannel;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { ChannelSelectMenuBuilder: BuildersChannelSelectMenu } = require('@discordjs/builders');
|
|
4
|
+
const { isJSONEncodable } = require('@discordjs/util');
|
|
5
|
+
const { toSnakeCase } = require('../util/Transformers');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Class used to build select menu components to be sent through the API
|
|
9
|
+
* @extends {BuildersChannelSelectMenu}
|
|
10
|
+
*/
|
|
11
|
+
class ChannelSelectMenuBuilder extends BuildersChannelSelectMenu {
|
|
12
|
+
constructor(data = {}) {
|
|
13
|
+
super(toSnakeCase(data));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new select menu builder from JSON data
|
|
18
|
+
* @param {ChannelSelectMenuBuilder|ChannelSelectMenuComponent|APIChannelSelectComponent} other The other data
|
|
19
|
+
* @returns {ChannelSelectMenuBuilder}
|
|
20
|
+
*/
|
|
21
|
+
static from(other) {
|
|
22
|
+
return new this(isJSONEncodable(other) ? other.toJSON() : other);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
module.exports = ChannelSelectMenuBuilder;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @external BuildersChannelSelectMenu
|
|
30
|
+
* @see {@link https://discord.js.org/docs/packages/builders/stable/ChannelSelectMenuBuilder:Class}
|
|
31
|
+
*/
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseSelectMenuComponent = require('./BaseSelectMenuComponent');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a channel select menu component
|
|
7
|
+
* @extends {BaseSelectMenuComponent}
|
|
8
|
+
*/
|
|
9
|
+
class ChannelSelectMenuComponent extends BaseSelectMenuComponent {
|
|
10
|
+
/**
|
|
11
|
+
* The options in this select menu
|
|
12
|
+
* @type {?(ChannelType[])}
|
|
13
|
+
* @readonly
|
|
14
|
+
*/
|
|
15
|
+
get channelTypes() {
|
|
16
|
+
return this.data.channel_types ?? null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = ChannelSelectMenuComponent;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
|
4
|
+
const MessageComponentInteraction = require('./MessageComponentInteraction');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents a {@link ComponentType.ChannelSelect} select menu interaction.
|
|
8
|
+
* @extends {MessageComponentInteraction}
|
|
9
|
+
*/
|
|
10
|
+
class ChannelSelectMenuInteraction extends MessageComponentInteraction {
|
|
11
|
+
constructor(client, data) {
|
|
12
|
+
super(client, data);
|
|
13
|
+
const { resolved, values } = data.data;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* An array of the selected channel ids
|
|
17
|
+
* @type {Snowflake[]}
|
|
18
|
+
*/
|
|
19
|
+
this.values = values ?? [];
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Collection of the selected channels
|
|
23
|
+
* @type {Collection<Snowflake, Channel|APIChannel>}
|
|
24
|
+
*/
|
|
25
|
+
this.channels = new Collection();
|
|
26
|
+
|
|
27
|
+
for (const channel of Object.values(resolved?.channels ?? {})) {
|
|
28
|
+
this.channels.set(channel.id, this.client.channels._add(channel, this.guild) ?? channel);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = ChannelSelectMenuInteraction;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const CommandInteraction = require('./CommandInteraction');
|
|
4
|
+
const CommandInteractionOptionResolver = require('./CommandInteractionOptionResolver');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents a command interaction.
|
|
8
|
+
* @extends {CommandInteraction}
|
|
9
|
+
*/
|
|
10
|
+
class ChatInputCommandInteraction extends CommandInteraction {
|
|
11
|
+
constructor(client, data) {
|
|
12
|
+
super(client, data);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The options passed to the command.
|
|
16
|
+
* @type {CommandInteractionOptionResolver}
|
|
17
|
+
*/
|
|
18
|
+
this.options = new CommandInteractionOptionResolver(
|
|
19
|
+
this.client,
|
|
20
|
+
data.data.options?.map(option => this.transformOption(option, data.data.resolved)) ?? [],
|
|
21
|
+
this.transformResolved(data.data.resolved ?? {}),
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a string representation of the command interaction.
|
|
27
|
+
* This can then be copied by a user and executed again in a new command while keeping the option order.
|
|
28
|
+
* @returns {string}
|
|
29
|
+
*/
|
|
30
|
+
toString() {
|
|
31
|
+
const properties = [
|
|
32
|
+
this.commandName,
|
|
33
|
+
this.options._group,
|
|
34
|
+
this.options._subcommand,
|
|
35
|
+
...this.options._hoistedOptions.map(o => `${o.name}:${o.value}`),
|
|
36
|
+
];
|
|
37
|
+
return `/${properties.filter(Boolean).join(' ')}`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = ChatInputCommandInteraction;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Routes } = require('discord-api-types/v10');
|
|
4
|
+
const { ApplicationRoleConnectionMetadata } = require('./ApplicationRoleConnectionMetadata');
|
|
5
|
+
const Team = require('./Team');
|
|
6
|
+
const Application = require('./interfaces/Application');
|
|
7
|
+
const ApplicationCommandManager = require('../managers/ApplicationCommandManager');
|
|
8
|
+
const ApplicationFlagsBitField = require('../util/ApplicationFlagsBitField');
|
|
9
|
+
const PermissionsBitField = require('../util/PermissionsBitField');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {Object} ClientApplicationInstallParams
|
|
13
|
+
* @property {OAuth2Scopes[]} scopes The scopes to add the application to the server with
|
|
14
|
+
* @property {Readonly<PermissionsBitField>} permissions The permissions this bot will request upon joining
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Represents a Client OAuth2 Application.
|
|
19
|
+
* @extends {Application}
|
|
20
|
+
*/
|
|
21
|
+
class ClientApplication extends Application {
|
|
22
|
+
constructor(client, data) {
|
|
23
|
+
super(client, data);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The application command manager for this application
|
|
27
|
+
* @type {ApplicationCommandManager}
|
|
28
|
+
*/
|
|
29
|
+
this.commands = new ApplicationCommandManager(this.client);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
_patch(data) {
|
|
33
|
+
super._patch(data);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The tags this application has (max of 5)
|
|
37
|
+
* @type {string[]}
|
|
38
|
+
*/
|
|
39
|
+
this.tags = data.tags ?? [];
|
|
40
|
+
|
|
41
|
+
if ('install_params' in data) {
|
|
42
|
+
/**
|
|
43
|
+
* Settings for this application's default in-app authorization
|
|
44
|
+
* @type {?ClientApplicationInstallParams}
|
|
45
|
+
*/
|
|
46
|
+
this.installParams = {
|
|
47
|
+
scopes: data.install_params.scopes,
|
|
48
|
+
permissions: new PermissionsBitField(data.install_params.permissions).freeze(),
|
|
49
|
+
};
|
|
50
|
+
} else {
|
|
51
|
+
this.installParams ??= null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if ('custom_install_url' in data) {
|
|
55
|
+
/**
|
|
56
|
+
* This application's custom installation URL
|
|
57
|
+
* @type {?string}
|
|
58
|
+
*/
|
|
59
|
+
this.customInstallURL = data.custom_install_url;
|
|
60
|
+
} else {
|
|
61
|
+
this.customInstallURL = null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if ('flags' in data) {
|
|
65
|
+
/**
|
|
66
|
+
* The flags this application has
|
|
67
|
+
* @type {ApplicationFlagsBitField}
|
|
68
|
+
*/
|
|
69
|
+
this.flags = new ApplicationFlagsBitField(data.flags).freeze();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if ('cover_image' in data) {
|
|
73
|
+
/**
|
|
74
|
+
* The hash of the application's cover image
|
|
75
|
+
* @type {?string}
|
|
76
|
+
*/
|
|
77
|
+
this.cover = data.cover_image;
|
|
78
|
+
} else {
|
|
79
|
+
this.cover ??= null;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if ('rpc_origins' in data) {
|
|
83
|
+
/**
|
|
84
|
+
* The application's RPC origins, if enabled
|
|
85
|
+
* @type {string[]}
|
|
86
|
+
*/
|
|
87
|
+
this.rpcOrigins = data.rpc_origins;
|
|
88
|
+
} else {
|
|
89
|
+
this.rpcOrigins ??= [];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if ('bot_require_code_grant' in data) {
|
|
93
|
+
/**
|
|
94
|
+
* If this application's bot requires a code grant when using the OAuth2 flow
|
|
95
|
+
* @type {?boolean}
|
|
96
|
+
*/
|
|
97
|
+
this.botRequireCodeGrant = data.bot_require_code_grant;
|
|
98
|
+
} else {
|
|
99
|
+
this.botRequireCodeGrant ??= null;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if ('bot_public' in data) {
|
|
103
|
+
/**
|
|
104
|
+
* If this application's bot is public
|
|
105
|
+
* @type {?boolean}
|
|
106
|
+
*/
|
|
107
|
+
this.botPublic = data.bot_public;
|
|
108
|
+
} else {
|
|
109
|
+
this.botPublic ??= null;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if ('role_connections_verification_url' in data) {
|
|
113
|
+
/**
|
|
114
|
+
* This application's role connection verification entry point URL
|
|
115
|
+
* @type {?string}
|
|
116
|
+
*/
|
|
117
|
+
this.roleConnectionsVerificationURL = data.role_connections_verification_url;
|
|
118
|
+
} else {
|
|
119
|
+
this.roleConnectionsVerificationURL ??= null;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* The owner of this OAuth application
|
|
124
|
+
* @type {?(User|Team)}
|
|
125
|
+
*/
|
|
126
|
+
this.owner = data.team
|
|
127
|
+
? new Team(this.client, data.team)
|
|
128
|
+
: data.owner
|
|
129
|
+
? this.client.users._add(data.owner)
|
|
130
|
+
: this.owner ?? null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Whether this application is partial
|
|
135
|
+
* @type {boolean}
|
|
136
|
+
* @readonly
|
|
137
|
+
*/
|
|
138
|
+
get partial() {
|
|
139
|
+
return !this.name;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Obtains this application from Discord.
|
|
144
|
+
* @returns {Promise<ClientApplication>}
|
|
145
|
+
*/
|
|
146
|
+
async fetch() {
|
|
147
|
+
const app = await this.client.rest.get(Routes.oauth2CurrentApplication());
|
|
148
|
+
this._patch(app);
|
|
149
|
+
return this;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Gets this application's role connection metadata records
|
|
154
|
+
* @returns {Promise<ApplicationRoleConnectionMetadata[]>}
|
|
155
|
+
*/
|
|
156
|
+
async fetchRoleConnectionMetadataRecords() {
|
|
157
|
+
const metadata = await this.client.rest.get(Routes.applicationRoleConnectionMetadata(this.client.user.id));
|
|
158
|
+
return metadata.map(data => new ApplicationRoleConnectionMetadata(data));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Data for creating or editing an application role connection metadata.
|
|
163
|
+
* @typedef {Object} ApplicationRoleConnectionMetadataEditOptions
|
|
164
|
+
* @property {string} name The name of the metadata field
|
|
165
|
+
* @property {?Object<Locale, string>} [nameLocalizations] The name localizations for the metadata field
|
|
166
|
+
* @property {string} description The description of the metadata field
|
|
167
|
+
* @property {?Object<Locale, string>} [descriptionLocalizations] The description localizations for the metadata field
|
|
168
|
+
* @property {string} key The dictionary key of the metadata field
|
|
169
|
+
* @property {ApplicationRoleConnectionMetadataType} type The type of the metadata field
|
|
170
|
+
*/
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Updates this application's role connection metadata records
|
|
174
|
+
* @param {ApplicationRoleConnectionMetadataEditOptions[]} records The new role connection metadata records
|
|
175
|
+
* @returns {Promise<ApplicationRoleConnectionMetadata[]>}
|
|
176
|
+
*/
|
|
177
|
+
async editRoleConnectionMetadataRecords(records) {
|
|
178
|
+
const newRecords = await this.client.rest.put(Routes.applicationRoleConnectionMetadata(this.client.user.id), {
|
|
179
|
+
body: records.map(record => ({
|
|
180
|
+
type: record.type,
|
|
181
|
+
key: record.key,
|
|
182
|
+
name: record.name,
|
|
183
|
+
name_localizations: record.nameLocalizations,
|
|
184
|
+
description: record.description,
|
|
185
|
+
description_localizations: record.descriptionLocalizations,
|
|
186
|
+
})),
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
return newRecords.map(data => new ApplicationRoleConnectionMetadata(data));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
module.exports = ClientApplication;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { GatewayOpcodes } = require('discord-api-types/v10');
|
|
4
|
+
const { Presence } = require('./Presence');
|
|
5
|
+
const { DiscordjsTypeError, ErrorCodes } = require('../errors');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Represents the client's presence.
|
|
9
|
+
* @extends {Presence}
|
|
10
|
+
*/
|
|
11
|
+
class ClientPresence extends Presence {
|
|
12
|
+
constructor(client, data = {}) {
|
|
13
|
+
super(client, Object.assign(data, { status: data.status ?? 'online', user: { id: null } }));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Sets the client's presence
|
|
18
|
+
* @param {PresenceData} presence The data to set the presence to
|
|
19
|
+
* @returns {ClientPresence}
|
|
20
|
+
*/
|
|
21
|
+
set(presence) {
|
|
22
|
+
const packet = this._parse(presence);
|
|
23
|
+
this._patch(packet);
|
|
24
|
+
if (presence.shardId === undefined) {
|
|
25
|
+
this.client.ws.broadcast({ op: GatewayOpcodes.PresenceUpdate, d: packet });
|
|
26
|
+
} else if (Array.isArray(presence.shardId)) {
|
|
27
|
+
for (const shardId of presence.shardId) {
|
|
28
|
+
this.client.ws.shards.get(shardId).send({ op: GatewayOpcodes.PresenceUpdate, d: packet });
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
this.client.ws.shards.get(presence.shardId).send({ op: GatewayOpcodes.PresenceUpdate, d: packet });
|
|
32
|
+
}
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Parses presence data into a packet ready to be sent to Discord
|
|
38
|
+
* @param {PresenceData} presence The data to parse
|
|
39
|
+
* @returns {APIPresence}
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
_parse({ status, since, afk, activities }) {
|
|
43
|
+
const data = {
|
|
44
|
+
activities: [],
|
|
45
|
+
afk: typeof afk === 'boolean' ? afk : false,
|
|
46
|
+
since: typeof since === 'number' && !Number.isNaN(since) ? since : null,
|
|
47
|
+
status: status ?? this.status,
|
|
48
|
+
};
|
|
49
|
+
if (activities?.length) {
|
|
50
|
+
for (const [i, activity] of activities.entries()) {
|
|
51
|
+
if (typeof activity.name !== 'string') {
|
|
52
|
+
throw new DiscordjsTypeError(ErrorCodes.InvalidType, `activities[${i}].name`, 'string');
|
|
53
|
+
}
|
|
54
|
+
activity.type ??= 0;
|
|
55
|
+
|
|
56
|
+
data.activities.push({
|
|
57
|
+
type: activity.type,
|
|
58
|
+
name: activity.name,
|
|
59
|
+
url: activity.url,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
} else if (!activities && (status || afk || since) && this.activities.length) {
|
|
63
|
+
data.activities.push(
|
|
64
|
+
...this.activities.map(a => ({
|
|
65
|
+
name: a.name,
|
|
66
|
+
type: a.type,
|
|
67
|
+
url: a.url ?? undefined,
|
|
68
|
+
})),
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return data;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
module.exports = ClientPresence;
|
|
77
|
+
|
|
78
|
+
/* eslint-disable max-len */
|
|
79
|
+
/**
|
|
80
|
+
* @external APIPresence
|
|
81
|
+
* @see {@link https://discord.com/developers/docs/rich-presence/how-to#updating-presence-update-presence-payload-fields}
|
|
82
|
+
*/
|