@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,79 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { SelectMenuBuilder: BuildersSelectMenu, normalizeArray } = require('@discordjs/builders');
|
|
4
|
+
const { isJSONEncodable } = require('@discordjs/util');
|
|
5
|
+
const { toSnakeCase } = require('../util/Transformers');
|
|
6
|
+
const { resolvePartialEmoji } = require('../util/Util');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Class used to build select menu components to be sent through the API
|
|
10
|
+
* @extends {BuildersSelectMenu}
|
|
11
|
+
*/
|
|
12
|
+
class StringSelectMenuBuilder extends BuildersSelectMenu {
|
|
13
|
+
constructor({ options, ...data } = {}) {
|
|
14
|
+
super(
|
|
15
|
+
toSnakeCase({
|
|
16
|
+
...data,
|
|
17
|
+
options: options?.map(({ emoji, ...option }) => ({
|
|
18
|
+
...option,
|
|
19
|
+
emoji: emoji && typeof emoji === 'string' ? resolvePartialEmoji(emoji) : emoji,
|
|
20
|
+
})),
|
|
21
|
+
}),
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Normalizes a select menu option emoji
|
|
27
|
+
* @param {SelectMenuOptionData|APISelectMenuOption} selectMenuOption The option to normalize
|
|
28
|
+
* @returns {SelectMenuOptionBuilder|APISelectMenuOption}
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
static normalizeEmoji(selectMenuOption) {
|
|
32
|
+
if (isJSONEncodable(selectMenuOption)) {
|
|
33
|
+
return selectMenuOption;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const { emoji, ...option } = selectMenuOption;
|
|
37
|
+
return {
|
|
38
|
+
...option,
|
|
39
|
+
emoji: typeof emoji === 'string' ? resolvePartialEmoji(emoji) : emoji,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Adds options to this select menu
|
|
45
|
+
* @param {RestOrArray<APISelectMenuOption>} options The options to add to this select menu
|
|
46
|
+
* @returns {StringSelectMenuBuilder}
|
|
47
|
+
*/
|
|
48
|
+
addOptions(...options) {
|
|
49
|
+
return super.addOptions(normalizeArray(options).map(option => StringSelectMenuBuilder.normalizeEmoji(option)));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Sets the options on this select menu
|
|
54
|
+
* @param {RestOrArray<APISelectMenuOption>} options The options to set on this select menu
|
|
55
|
+
* @returns {StringSelectMenuBuilder}
|
|
56
|
+
*/
|
|
57
|
+
setOptions(...options) {
|
|
58
|
+
return super.setOptions(normalizeArray(options).map(option => StringSelectMenuBuilder.normalizeEmoji(option)));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Creates a new select menu builder from json data
|
|
63
|
+
* @param {StringSelectMenuBuilder|StringSelectMenuComponent|APIStringSelectComponent} other The other data
|
|
64
|
+
* @returns {StringSelectMenuBuilder}
|
|
65
|
+
*/
|
|
66
|
+
static from(other) {
|
|
67
|
+
if (isJSONEncodable(other)) {
|
|
68
|
+
return new this(other.toJSON());
|
|
69
|
+
}
|
|
70
|
+
return new this(other);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
module.exports = StringSelectMenuBuilder;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @external BuildersSelectMenu
|
|
78
|
+
* @see {@link https://discord.js.org/docs/packages/builders/stable/StringSelectMenuBuilder:Class}
|
|
79
|
+
*/
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseSelectMenuComponent = require('./BaseSelectMenuComponent');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a string select menu component
|
|
7
|
+
* @extends {BaseSelectMenuComponent}
|
|
8
|
+
*/
|
|
9
|
+
class StringSelectMenuComponent extends BaseSelectMenuComponent {
|
|
10
|
+
/**
|
|
11
|
+
* The options in this select menu
|
|
12
|
+
* @type {APISelectMenuOption[]}
|
|
13
|
+
* @readonly
|
|
14
|
+
*/
|
|
15
|
+
get options() {
|
|
16
|
+
return this.data.options;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = StringSelectMenuComponent;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const MessageComponentInteraction = require('./MessageComponentInteraction');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a {@link ComponentType.StringSelect} select menu interaction.
|
|
7
|
+
* @extends {MessageComponentInteraction}
|
|
8
|
+
*/
|
|
9
|
+
class StringSelectMenuInteraction extends MessageComponentInteraction {
|
|
10
|
+
constructor(client, data) {
|
|
11
|
+
super(client, data);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The values selected
|
|
15
|
+
* @type {string[]}
|
|
16
|
+
*/
|
|
17
|
+
this.values = data.data.values ?? [];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
module.exports = StringSelectMenuInteraction;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { SelectMenuOptionBuilder: BuildersSelectMenuOption } = require('@discordjs/builders');
|
|
4
|
+
const { isJSONEncodable } = require('@discordjs/util');
|
|
5
|
+
const { toSnakeCase } = require('../util/Transformers');
|
|
6
|
+
const { resolvePartialEmoji } = require('../util/Util');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents a select menu option builder.
|
|
10
|
+
* @extends {BuildersSelectMenuOption}
|
|
11
|
+
*/
|
|
12
|
+
class StringSelectMenuOptionBuilder extends BuildersSelectMenuOption {
|
|
13
|
+
constructor({ emoji, ...data } = {}) {
|
|
14
|
+
super(
|
|
15
|
+
toSnakeCase({
|
|
16
|
+
...data,
|
|
17
|
+
emoji: emoji && typeof emoji === 'string' ? resolvePartialEmoji(emoji) : emoji,
|
|
18
|
+
}),
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Sets the emoji to display on this option
|
|
24
|
+
* @param {ComponentEmojiResolvable} emoji The emoji to display on this option
|
|
25
|
+
* @returns {StringSelectMenuOptionBuilder}
|
|
26
|
+
*/
|
|
27
|
+
setEmoji(emoji) {
|
|
28
|
+
if (typeof emoji === 'string') {
|
|
29
|
+
return super.setEmoji(resolvePartialEmoji(emoji));
|
|
30
|
+
}
|
|
31
|
+
return super.setEmoji(emoji);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new select menu option builder from JSON data
|
|
36
|
+
* @param {StringSelectMenuOptionBuilder|APISelectMenuOption} other The other data
|
|
37
|
+
* @returns {StringSelectMenuOptionBuilder}
|
|
38
|
+
*/
|
|
39
|
+
static from(other) {
|
|
40
|
+
return new this(isJSONEncodable(other) ? other.toJSON() : other);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
module.exports = StringSelectMenuOptionBuilder;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @external BuildersSelectMenuOption
|
|
48
|
+
* @see {@link https://discord.js.org/docs/packages/builders/stable/SelectMenuOptionBuilder:Class}
|
|
49
|
+
*/
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
|
4
|
+
const { DiscordSnowflake } = require('@sapphire/snowflake');
|
|
5
|
+
const Base = require('./Base');
|
|
6
|
+
const TeamMember = require('./TeamMember');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents a Client OAuth2 Application Team.
|
|
10
|
+
* @extends {Base}
|
|
11
|
+
*/
|
|
12
|
+
class Team extends Base {
|
|
13
|
+
constructor(client, data) {
|
|
14
|
+
super(client);
|
|
15
|
+
this._patch(data);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
_patch(data) {
|
|
19
|
+
/**
|
|
20
|
+
* The Team's id
|
|
21
|
+
* @type {Snowflake}
|
|
22
|
+
*/
|
|
23
|
+
this.id = data.id;
|
|
24
|
+
|
|
25
|
+
if ('name' in data) {
|
|
26
|
+
/**
|
|
27
|
+
* The name of the Team
|
|
28
|
+
* @type {string}
|
|
29
|
+
*/
|
|
30
|
+
this.name = data.name;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if ('icon' in data) {
|
|
34
|
+
/**
|
|
35
|
+
* The Team's icon hash
|
|
36
|
+
* @type {?string}
|
|
37
|
+
*/
|
|
38
|
+
this.icon = data.icon;
|
|
39
|
+
} else {
|
|
40
|
+
this.icon ??= null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if ('owner_user_id' in data) {
|
|
44
|
+
/**
|
|
45
|
+
* The Team's owner id
|
|
46
|
+
* @type {?Snowflake}
|
|
47
|
+
*/
|
|
48
|
+
this.ownerId = data.owner_user_id;
|
|
49
|
+
} else {
|
|
50
|
+
this.ownerId ??= null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The Team's members
|
|
54
|
+
* @type {Collection<Snowflake, TeamMember>}
|
|
55
|
+
*/
|
|
56
|
+
this.members = new Collection();
|
|
57
|
+
|
|
58
|
+
for (const memberData of data.members) {
|
|
59
|
+
const member = new TeamMember(this, memberData);
|
|
60
|
+
this.members.set(member.id, member);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The owner of this team
|
|
66
|
+
* @type {?TeamMember}
|
|
67
|
+
* @readonly
|
|
68
|
+
*/
|
|
69
|
+
get owner() {
|
|
70
|
+
return this.members.get(this.ownerId) ?? null;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The timestamp the team was created at
|
|
75
|
+
* @type {number}
|
|
76
|
+
* @readonly
|
|
77
|
+
*/
|
|
78
|
+
get createdTimestamp() {
|
|
79
|
+
return DiscordSnowflake.timestampFrom(this.id);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* The time the team was created at
|
|
84
|
+
* @type {Date}
|
|
85
|
+
* @readonly
|
|
86
|
+
*/
|
|
87
|
+
get createdAt() {
|
|
88
|
+
return new Date(this.createdTimestamp);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* A link to the team's icon.
|
|
93
|
+
* @param {ImageURLOptions} [options={}] Options for the image URL
|
|
94
|
+
* @returns {?string}
|
|
95
|
+
*/
|
|
96
|
+
iconURL(options = {}) {
|
|
97
|
+
return this.icon && this.client.rest.cdn.teamIcon(this.id, this.icon, options);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* When concatenated with a string, this automatically returns the Team's name instead of the
|
|
102
|
+
* Team object.
|
|
103
|
+
* @returns {string}
|
|
104
|
+
* @example
|
|
105
|
+
* // Logs: Team name: My Team
|
|
106
|
+
* console.log(`Team name: ${team}`);
|
|
107
|
+
*/
|
|
108
|
+
toString() {
|
|
109
|
+
return this.name;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
toJSON() {
|
|
113
|
+
return super.toJSON({ createdTimestamp: true });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
module.exports = Team;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Base = require('./Base');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a Client OAuth2 Application Team Member.
|
|
7
|
+
* @extends {Base}
|
|
8
|
+
*/
|
|
9
|
+
class TeamMember extends Base {
|
|
10
|
+
constructor(team, data) {
|
|
11
|
+
super(team.client);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The Team this member is part of
|
|
15
|
+
* @type {Team}
|
|
16
|
+
*/
|
|
17
|
+
this.team = team;
|
|
18
|
+
|
|
19
|
+
this._patch(data);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
_patch(data) {
|
|
23
|
+
if ('permissions' in data) {
|
|
24
|
+
/**
|
|
25
|
+
* The permissions this Team Member has with regard to the team
|
|
26
|
+
* @type {string[]}
|
|
27
|
+
*/
|
|
28
|
+
this.permissions = data.permissions;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if ('membership_state' in data) {
|
|
32
|
+
/**
|
|
33
|
+
* The permissions this Team Member has with regard to the team
|
|
34
|
+
* @type {TeamMemberMembershipState}
|
|
35
|
+
*/
|
|
36
|
+
this.membershipState = data.membership_state;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if ('user' in data) {
|
|
40
|
+
/**
|
|
41
|
+
* The user for this Team Member
|
|
42
|
+
* @type {User}
|
|
43
|
+
*/
|
|
44
|
+
this.user = this.client.users._add(data.user);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The Team Member's id
|
|
50
|
+
* @type {Snowflake}
|
|
51
|
+
* @readonly
|
|
52
|
+
*/
|
|
53
|
+
get id() {
|
|
54
|
+
return this.user.id;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* When concatenated with a string, this automatically returns the team member's mention instead of the
|
|
59
|
+
* TeamMember object.
|
|
60
|
+
* @returns {string}
|
|
61
|
+
* @example
|
|
62
|
+
* // Logs: Team Member's mention: <@123456789012345678>
|
|
63
|
+
* console.log(`Team Member's mention: ${teamMember}`);
|
|
64
|
+
*/
|
|
65
|
+
toString() {
|
|
66
|
+
return this.user.toString();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module.exports = TeamMember;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseGuildTextChannel = require('./BaseGuildTextChannel');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a guild text channel on Discord.
|
|
7
|
+
* @extends {BaseGuildTextChannel}
|
|
8
|
+
*/
|
|
9
|
+
class TextChannel extends BaseGuildTextChannel {
|
|
10
|
+
_patch(data) {
|
|
11
|
+
super._patch(data);
|
|
12
|
+
|
|
13
|
+
if ('rate_limit_per_user' in data) {
|
|
14
|
+
/**
|
|
15
|
+
* The rate limit per user (slowmode) for this channel in seconds
|
|
16
|
+
* @type {number}
|
|
17
|
+
*/
|
|
18
|
+
this.rateLimitPerUser = data.rate_limit_per_user;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Sets the rate limit per user (slowmode) for this channel.
|
|
24
|
+
* @param {number} rateLimitPerUser The new rate limit in seconds
|
|
25
|
+
* @param {string} [reason] Reason for changing the channel's rate limit
|
|
26
|
+
* @returns {Promise<TextChannel>}
|
|
27
|
+
*/
|
|
28
|
+
setRateLimitPerUser(rateLimitPerUser, reason) {
|
|
29
|
+
return this.edit({ rateLimitPerUser, reason });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = TextChannel;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { TextInputBuilder: BuildersTextInput } = require('@discordjs/builders');
|
|
4
|
+
const { isJSONEncodable } = require('@discordjs/util');
|
|
5
|
+
const { toSnakeCase } = require('../util/Transformers');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Represents a text input builder.
|
|
9
|
+
* @extends {BuildersTextInput}
|
|
10
|
+
*/
|
|
11
|
+
class TextInputBuilder extends BuildersTextInput {
|
|
12
|
+
constructor(data) {
|
|
13
|
+
super(toSnakeCase(data));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new text input builder from JSON data
|
|
18
|
+
* @param {TextInputBuilder|TextInputComponent|APITextInputComponent} other The other data
|
|
19
|
+
* @returns {TextInputBuilder}
|
|
20
|
+
*/
|
|
21
|
+
static from(other) {
|
|
22
|
+
return new this(isJSONEncodable(other) ? other.toJSON() : other);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
module.exports = TextInputBuilder;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @external BuildersTextInput
|
|
30
|
+
* @see {@link https://discord.js.org/docs/packages/builders/stable/TextInputBuilder:Class}
|
|
31
|
+
*/
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Component = require('./Component');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a text input component.
|
|
7
|
+
* @extends {Component}
|
|
8
|
+
*/
|
|
9
|
+
class TextInputComponent extends Component {
|
|
10
|
+
/**
|
|
11
|
+
* The custom id of this text input
|
|
12
|
+
* @type {string}
|
|
13
|
+
* @readonly
|
|
14
|
+
*/
|
|
15
|
+
get customId() {
|
|
16
|
+
return this.data.custom_id;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The value for this text input
|
|
21
|
+
* @type {string}
|
|
22
|
+
* @readonly
|
|
23
|
+
*/
|
|
24
|
+
get value() {
|
|
25
|
+
return this.data.value;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = TextInputComponent;
|