discord-sb.js 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 +674 -0
- package/README.md +2 -0
- package/package.json +91 -0
- package/src/WebSocket.js +39 -0
- package/src/client/BaseClient.js +86 -0
- package/src/client/Client.js +978 -0
- package/src/client/WebhookClient.js +61 -0
- package/src/client/actions/Action.js +116 -0
- package/src/client/actions/ActionsManager.js +80 -0
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
- package/src/client/actions/AutoModerationActionExecution.js +27 -0
- package/src/client/actions/AutoModerationRuleCreate.js +28 -0
- package/src/client/actions/AutoModerationRuleDelete.js +32 -0
- package/src/client/actions/AutoModerationRuleUpdate.js +30 -0
- package/src/client/actions/ChannelCreate.js +23 -0
- package/src/client/actions/ChannelDelete.js +39 -0
- package/src/client/actions/ChannelUpdate.js +43 -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 +65 -0
- package/src/client/actions/GuildEmojiCreate.js +20 -0
- package/src/client/actions/GuildEmojiDelete.js +21 -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 +33 -0
- package/src/client/actions/GuildMemberUpdate.js +44 -0
- package/src/client/actions/GuildRoleCreate.js +25 -0
- package/src/client/actions/GuildRoleDelete.js +31 -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 +21 -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/InviteCreate.js +28 -0
- package/src/client/actions/InviteDelete.js +30 -0
- package/src/client/actions/MessageCreate.js +50 -0
- package/src/client/actions/MessageDelete.js +32 -0
- package/src/client/actions/MessageDeleteBulk.js +46 -0
- package/src/client/actions/MessagePollVoteAdd.js +33 -0
- package/src/client/actions/MessagePollVoteRemove.js +33 -0
- package/src/client/actions/MessageReactionAdd.js +68 -0
- package/src/client/actions/MessageReactionRemove.js +50 -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 +50 -0
- package/src/client/actions/StageInstanceCreate.js +28 -0
- package/src/client/actions/StageInstanceDelete.js +33 -0
- package/src/client/actions/StageInstanceUpdate.js +30 -0
- package/src/client/actions/ThreadCreate.js +24 -0
- package/src/client/actions/ThreadDelete.js +32 -0
- package/src/client/actions/ThreadListSync.js +59 -0
- package/src/client/actions/ThreadMemberUpdate.js +30 -0
- package/src/client/actions/ThreadMembersUpdate.js +34 -0
- package/src/client/actions/TypingStart.js +29 -0
- package/src/client/actions/UserUpdate.js +35 -0
- package/src/client/actions/VoiceStateUpdate.js +50 -0
- package/src/client/actions/WebhooksUpdate.js +20 -0
- package/src/client/voice/ClientVoiceManager.js +151 -0
- package/src/client/voice/VoiceConnection.js +1249 -0
- package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
- package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
- package/src/client/voice/dispatcher/BaseDispatcher.js +459 -0
- package/src/client/voice/dispatcher/VPxDispatcher.js +54 -0
- package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
- package/src/client/voice/networking/VoiceUDPClient.js +173 -0
- package/src/client/voice/networking/VoiceWebSocket.js +286 -0
- package/src/client/voice/player/MediaPlayer.js +321 -0
- package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -0
- package/src/client/voice/player/processing/IvfSplitter.js +106 -0
- package/src/client/voice/player/processing/PCMInsertSilence.js +37 -0
- package/src/client/voice/receiver/PacketHandler.js +260 -0
- package/src/client/voice/receiver/Receiver.js +96 -0
- package/src/client/voice/receiver/Recorder.js +173 -0
- package/src/client/voice/util/Function.js +116 -0
- package/src/client/voice/util/PlayInterface.js +122 -0
- package/src/client/voice/util/Secretbox.js +64 -0
- package/src/client/voice/util/Silence.js +16 -0
- package/src/client/voice/util/Socket.js +62 -0
- package/src/client/voice/util/VolumeInterface.js +104 -0
- package/src/client/websocket/WebSocketManager.js +392 -0
- package/src/client/websocket/WebSocketShard.js +907 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -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/CALL_CREATE.js +14 -0
- package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
- package/src/client/websocket/handlers/CALL_UPDATE.js +11 -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_RECIPIENT_ADD.js +19 -0
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -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 +52 -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_MODAL_CREATE.js +12 -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_POLL_VOTE_ADD.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -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 +121 -0
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -0
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -0
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -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_GUILD_SETTINGS_UPDATE.js +6 -0
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -0
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -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 +84 -0
- package/src/errors/DJSError.js +61 -0
- package/src/errors/Messages.js +217 -0
- package/src/errors/index.js +4 -0
- package/src/index.js +172 -0
- package/src/managers/ApplicationCommandManager.js +264 -0
- package/src/managers/ApplicationCommandPermissionsManager.js +417 -0
- package/src/managers/AutoModerationRuleManager.js +296 -0
- package/src/managers/BaseGuildEmojiManager.js +80 -0
- package/src/managers/BaseManager.js +19 -0
- package/src/managers/BillingManager.js +66 -0
- package/src/managers/CachedManager.js +71 -0
- package/src/managers/ChannelManager.js +148 -0
- package/src/managers/ClientUserSettingManager.js +372 -0
- package/src/managers/DataManager.js +61 -0
- package/src/managers/DeveloperManager.js +254 -0
- package/src/managers/GuildBanManager.js +250 -0
- package/src/managers/GuildChannelManager.js +488 -0
- package/src/managers/GuildEmojiManager.js +171 -0
- package/src/managers/GuildEmojiRoleManager.js +118 -0
- package/src/managers/GuildForumThreadManager.js +108 -0
- package/src/managers/GuildInviteManager.js +213 -0
- package/src/managers/GuildManager.js +338 -0
- package/src/managers/GuildMemberManager.js +599 -0
- package/src/managers/GuildMemberRoleManager.js +195 -0
- package/src/managers/GuildScheduledEventManager.js +314 -0
- package/src/managers/GuildSettingManager.js +155 -0
- package/src/managers/GuildStickerManager.js +179 -0
- package/src/managers/GuildTextThreadManager.js +98 -0
- package/src/managers/InteractionManager.js +39 -0
- package/src/managers/MessageManager.js +423 -0
- package/src/managers/PermissionOverwriteManager.js +164 -0
- package/src/managers/PresenceManager.js +71 -0
- package/src/managers/QuestManager.js +353 -0
- package/src/managers/ReactionManager.js +67 -0
- package/src/managers/ReactionUserManager.js +73 -0
- package/src/managers/RelationshipManager.js +278 -0
- package/src/managers/RoleManager.js +448 -0
- package/src/managers/SessionManager.js +66 -0
- package/src/managers/StageInstanceManager.js +162 -0
- package/src/managers/ThreadManager.js +175 -0
- package/src/managers/ThreadMemberManager.js +186 -0
- package/src/managers/UserManager.js +136 -0
- package/src/managers/UserNoteManager.js +53 -0
- package/src/managers/VoiceStateManager.js +59 -0
- package/src/rest/APIRequest.js +154 -0
- package/src/rest/APIRouter.js +53 -0
- package/src/rest/DiscordAPIError.js +119 -0
- package/src/rest/HTTPError.js +62 -0
- package/src/rest/RESTManager.js +67 -0
- package/src/rest/RateLimitError.js +55 -0
- package/src/rest/RequestHandler.js +466 -0
- package/src/sharding/Shard.js +444 -0
- package/src/sharding/ShardClientUtil.js +279 -0
- package/src/sharding/ShardingManager.js +319 -0
- package/src/structures/AnonymousGuild.js +98 -0
- package/src/structures/ApplicationCommand.js +593 -0
- package/src/structures/ApplicationRoleConnectionMetadata.js +48 -0
- package/src/structures/AutoModerationActionExecution.js +89 -0
- package/src/structures/AutoModerationRule.js +294 -0
- package/src/structures/AutocompleteInteraction.js +107 -0
- package/src/structures/Base.js +43 -0
- package/src/structures/BaseCommandInteraction.js +211 -0
- package/src/structures/BaseGuild.js +116 -0
- package/src/structures/BaseGuildEmoji.js +56 -0
- package/src/structures/BaseGuildTextChannel.js +191 -0
- package/src/structures/BaseGuildVoiceChannel.js +241 -0
- package/src/structures/BaseMessageComponent.js +181 -0
- package/src/structures/ButtonInteraction.js +11 -0
- package/src/structures/CallState.js +63 -0
- package/src/structures/CategoryChannel.js +85 -0
- package/src/structures/Channel.js +284 -0
- package/src/structures/ClientPresence.js +77 -0
- package/src/structures/ClientUser.js +655 -0
- package/src/structures/CommandInteraction.js +41 -0
- package/src/structures/CommandInteractionOptionResolver.js +276 -0
- package/src/structures/ContainerComponent.js +68 -0
- package/src/structures/ContextMenuInteraction.js +65 -0
- package/src/structures/DMChannel.js +219 -0
- package/src/structures/DirectoryChannel.js +20 -0
- package/src/structures/Emoji.js +148 -0
- package/src/structures/FileComponent.js +49 -0
- package/src/structures/ForumChannel.js +31 -0
- package/src/structures/GroupDMChannel.js +394 -0
- package/src/structures/Guild.js +1791 -0
- package/src/structures/GuildAuditLogs.js +746 -0
- package/src/structures/GuildBan.js +59 -0
- package/src/structures/GuildBoost.js +108 -0
- package/src/structures/GuildChannel.js +470 -0
- package/src/structures/GuildEmoji.js +161 -0
- package/src/structures/GuildMember.js +636 -0
- package/src/structures/GuildPreview.js +191 -0
- package/src/structures/GuildPreviewEmoji.js +27 -0
- package/src/structures/GuildScheduledEvent.js +536 -0
- package/src/structures/GuildTemplate.js +236 -0
- package/src/structures/Integration.js +188 -0
- package/src/structures/IntegrationApplication.js +96 -0
- package/src/structures/Interaction.js +290 -0
- package/src/structures/InteractionCollector.js +248 -0
- package/src/structures/InteractionWebhook.js +43 -0
- package/src/structures/Invite.js +358 -0
- package/src/structures/InviteGuild.js +23 -0
- package/src/structures/InviteStageInstance.js +86 -0
- package/src/structures/MediaChannel.js +11 -0
- package/src/structures/MediaGalleryComponent.js +41 -0
- package/src/structures/MediaGalleryItem.js +47 -0
- package/src/structures/Message.js +1252 -0
- package/src/structures/MessageActionRow.js +105 -0
- package/src/structures/MessageAttachment.js +216 -0
- package/src/structures/MessageButton.js +166 -0
- package/src/structures/MessageCollector.js +146 -0
- package/src/structures/MessageComponentInteraction.js +120 -0
- package/src/structures/MessageContextMenuInteraction.js +20 -0
- package/src/structures/MessageEmbed.js +596 -0
- package/src/structures/MessageMentions.js +273 -0
- package/src/structures/MessagePayload.js +354 -0
- package/src/structures/MessageReaction.js +181 -0
- package/src/structures/MessageSelectMenu.js +141 -0
- package/src/structures/Modal.js +161 -0
- package/src/structures/ModalSubmitFieldsResolver.js +53 -0
- package/src/structures/ModalSubmitInteraction.js +119 -0
- package/src/structures/NewsChannel.js +32 -0
- package/src/structures/OAuth2Guild.js +28 -0
- package/src/structures/PermissionOverwrites.js +198 -0
- package/src/structures/Poll.js +108 -0
- package/src/structures/PollAnswer.js +88 -0
- package/src/structures/Presence.js +1157 -0
- package/src/structures/ReactionCollector.js +229 -0
- package/src/structures/ReactionEmoji.js +31 -0
- package/src/structures/Role.js +590 -0
- package/src/structures/SectionComponent.js +48 -0
- package/src/structures/SelectMenuInteraction.js +21 -0
- package/src/structures/SeparatorComponent.js +48 -0
- package/src/structures/Session.js +81 -0
- package/src/structures/StageChannel.js +104 -0
- package/src/structures/StageInstance.js +208 -0
- package/src/structures/Sticker.js +310 -0
- package/src/structures/StickerPack.js +95 -0
- package/src/structures/StoreChannel.js +56 -0
- package/src/structures/Team.js +118 -0
- package/src/structures/TeamMember.js +80 -0
- package/src/structures/TextChannel.js +33 -0
- package/src/structures/TextDisplayComponent.js +40 -0
- package/src/structures/TextInputComponent.js +132 -0
- package/src/structures/ThreadChannel.js +605 -0
- package/src/structures/ThreadMember.js +105 -0
- package/src/structures/ThreadOnlyChannel.js +249 -0
- package/src/structures/ThumbnailComponent.js +57 -0
- package/src/structures/Typing.js +74 -0
- package/src/structures/UnfurledMediaItem.js +29 -0
- package/src/structures/User.js +640 -0
- package/src/structures/UserContextMenuInteraction.js +29 -0
- package/src/structures/VoiceChannel.js +110 -0
- package/src/structures/VoiceChannelEffect.js +69 -0
- package/src/structures/VoiceRegion.js +53 -0
- package/src/structures/VoiceState.js +354 -0
- package/src/structures/WebEmbed.js +373 -0
- package/src/structures/Webhook.js +478 -0
- package/src/structures/WelcomeChannel.js +60 -0
- package/src/structures/WelcomeScreen.js +48 -0
- package/src/structures/Widget.js +87 -0
- package/src/structures/WidgetMember.js +99 -0
- package/src/structures/interfaces/Application.js +953 -0
- package/src/structures/interfaces/Collector.js +300 -0
- package/src/structures/interfaces/InteractionResponses.js +313 -0
- package/src/structures/interfaces/TextBasedChannel.js +821 -0
- package/src/util/APITypes.js +59 -0
- package/src/util/ActivityFlags.js +44 -0
- package/src/util/ApplicationFlags.js +76 -0
- package/src/util/AttachmentFlags.js +38 -0
- package/src/util/BitField.js +170 -0
- package/src/util/ChannelFlags.js +45 -0
- package/src/util/Constants.js +1914 -0
- package/src/util/DataResolver.js +146 -0
- package/src/util/Formatters.js +228 -0
- package/src/util/GuildMemberFlags.js +43 -0
- package/src/util/Intents.js +74 -0
- package/src/util/InviteFlags.js +34 -0
- package/src/util/LimitedCollection.js +131 -0
- package/src/util/MessageFlags.js +63 -0
- package/src/util/Options.js +358 -0
- package/src/util/Permissions.js +202 -0
- package/src/util/PremiumUsageFlags.js +31 -0
- package/src/util/PurchasedFlags.js +33 -0
- package/src/util/RemoteAuth.js +415 -0
- package/src/util/RoleFlags.js +37 -0
- package/src/util/SnowflakeUtil.js +92 -0
- package/src/util/Speaking.js +33 -0
- package/src/util/Sweepers.js +466 -0
- package/src/util/SystemChannelFlags.js +55 -0
- package/src/util/ThreadMemberFlags.js +30 -0
- package/src/util/UserFlags.js +104 -0
- package/src/util/Util.js +1048 -0
- package/typings/enums.d.ts +439 -0
- package/typings/index.d.ts +8505 -0
- package/typings/index.test-d.ts +0 -0
- package/typings/rawDataTypes.d.ts +403 -0
|
@@ -0,0 +1,536 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Base = require('./Base');
|
|
4
|
+
const { Error } = require('../errors');
|
|
5
|
+
const {
|
|
6
|
+
GuildScheduledEventEntityTypes,
|
|
7
|
+
GuildScheduledEventStatuses,
|
|
8
|
+
GuildScheduledEventPrivacyLevels,
|
|
9
|
+
Endpoints,
|
|
10
|
+
} = require('../util/Constants');
|
|
11
|
+
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Represents a scheduled event in a {@link Guild}.
|
|
15
|
+
* @extends {Base}
|
|
16
|
+
*/
|
|
17
|
+
class GuildScheduledEvent extends Base {
|
|
18
|
+
constructor(client, data) {
|
|
19
|
+
super(client);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The id of the guild scheduled event
|
|
23
|
+
* @type {Snowflake}
|
|
24
|
+
*/
|
|
25
|
+
this.id = data.id;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The id of the guild this guild scheduled event belongs to
|
|
29
|
+
* @type {Snowflake}
|
|
30
|
+
*/
|
|
31
|
+
this.guildId = data.guild_id;
|
|
32
|
+
|
|
33
|
+
this._patch(data);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
_patch(data) {
|
|
37
|
+
if ('channel_id' in data) {
|
|
38
|
+
/**
|
|
39
|
+
* The channel id in which the scheduled event will be hosted, or `null` if entity type is `EXTERNAL`
|
|
40
|
+
* @type {?Snowflake}
|
|
41
|
+
*/
|
|
42
|
+
this.channelId = data.channel_id;
|
|
43
|
+
} else {
|
|
44
|
+
this.channelId ??= null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if ('creator_id' in data) {
|
|
48
|
+
/**
|
|
49
|
+
* The id of the user that created this guild scheduled event
|
|
50
|
+
* @type {?Snowflake}
|
|
51
|
+
*/
|
|
52
|
+
this.creatorId = data.creator_id;
|
|
53
|
+
} else {
|
|
54
|
+
this.creatorId ??= null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if ('name' in data) {
|
|
58
|
+
/**
|
|
59
|
+
* The name of the guild scheduled event
|
|
60
|
+
* @type {?string}
|
|
61
|
+
*/
|
|
62
|
+
this.name = data.name;
|
|
63
|
+
} else {
|
|
64
|
+
// Only if partial.
|
|
65
|
+
this.name ??= null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if ('description' in data) {
|
|
69
|
+
/**
|
|
70
|
+
* The description of the guild scheduled event
|
|
71
|
+
* @type {?string}
|
|
72
|
+
*/
|
|
73
|
+
this.description = data.description;
|
|
74
|
+
} else {
|
|
75
|
+
this.description ??= null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if ('scheduled_start_time' in data) {
|
|
79
|
+
/**
|
|
80
|
+
* The timestamp the guild scheduled event will start at
|
|
81
|
+
* <info>This can be potentially `null` only when it's an {@link AuditLogEntryTarget}</info>
|
|
82
|
+
* @type {?number}
|
|
83
|
+
*/
|
|
84
|
+
this.scheduledStartTimestamp = Date.parse(data.scheduled_start_time);
|
|
85
|
+
} else {
|
|
86
|
+
this.scheduledStartTimestamp ??= null;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if ('scheduled_end_time' in data) {
|
|
90
|
+
/**
|
|
91
|
+
* The timestamp the guild scheduled event will end at
|
|
92
|
+
* or `null` if the event does not have a scheduled time to end
|
|
93
|
+
* @type {?number}
|
|
94
|
+
*/
|
|
95
|
+
this.scheduledEndTimestamp = data.scheduled_end_time ? Date.parse(data.scheduled_end_time) : null;
|
|
96
|
+
} else {
|
|
97
|
+
this.scheduledEndTimestamp ??= null;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if ('privacy_level' in data) {
|
|
101
|
+
/**
|
|
102
|
+
* The privacy level of the guild scheduled event
|
|
103
|
+
* @type {PrivacyLevel}
|
|
104
|
+
*/
|
|
105
|
+
this.privacyLevel = GuildScheduledEventPrivacyLevels[data.privacy_level];
|
|
106
|
+
} else {
|
|
107
|
+
// Only if partial.
|
|
108
|
+
this.privacyLevel ??= null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if ('status' in data) {
|
|
112
|
+
/**
|
|
113
|
+
* The status of the guild scheduled event
|
|
114
|
+
* @type {GuildScheduledEventStatus}
|
|
115
|
+
*/
|
|
116
|
+
this.status = GuildScheduledEventStatuses[data.status];
|
|
117
|
+
} else {
|
|
118
|
+
// Only if partial.
|
|
119
|
+
this.status ??= null;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if ('entity_type' in data) {
|
|
123
|
+
/**
|
|
124
|
+
* The type of hosting entity associated with the scheduled event
|
|
125
|
+
* @type {GuildScheduledEventEntityType}
|
|
126
|
+
*/
|
|
127
|
+
this.entityType = GuildScheduledEventEntityTypes[data.entity_type];
|
|
128
|
+
} else {
|
|
129
|
+
// Only if partial.
|
|
130
|
+
this.entityType ??= null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if ('entity_id' in data) {
|
|
134
|
+
/**
|
|
135
|
+
* The id of the hosting entity associated with the scheduled event
|
|
136
|
+
* @type {?Snowflake}
|
|
137
|
+
*/
|
|
138
|
+
this.entityId = data.entity_id;
|
|
139
|
+
} else {
|
|
140
|
+
this.entityId ??= null;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if ('user_count' in data) {
|
|
144
|
+
/**
|
|
145
|
+
* The number of users who are subscribed to this guild scheduled event
|
|
146
|
+
* @type {?number}
|
|
147
|
+
*/
|
|
148
|
+
this.userCount = data.user_count;
|
|
149
|
+
} else {
|
|
150
|
+
this.userCount ??= null;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if ('creator' in data) {
|
|
154
|
+
/**
|
|
155
|
+
* The user that created this guild scheduled event
|
|
156
|
+
* @type {?User}
|
|
157
|
+
*/
|
|
158
|
+
this.creator = this.client.users._add(data.creator);
|
|
159
|
+
} else {
|
|
160
|
+
this.creator ??= this.client.users.resolve(this.creatorId);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* eslint-disable max-len */
|
|
164
|
+
/**
|
|
165
|
+
* Represents the additional metadata for a {@link GuildScheduledEvent}
|
|
166
|
+
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata}
|
|
167
|
+
* @typedef {Object} GuildScheduledEventEntityMetadata
|
|
168
|
+
* @property {?string} location The location of the guild scheduled event
|
|
169
|
+
*/
|
|
170
|
+
/* eslint-enable max-len */
|
|
171
|
+
|
|
172
|
+
if ('entity_metadata' in data) {
|
|
173
|
+
if (data.entity_metadata) {
|
|
174
|
+
/**
|
|
175
|
+
* Additional metadata
|
|
176
|
+
* @type {?GuildScheduledEventEntityMetadata}
|
|
177
|
+
*/
|
|
178
|
+
this.entityMetadata = {
|
|
179
|
+
location: data.entity_metadata.location ?? this.entityMetadata?.location ?? null,
|
|
180
|
+
};
|
|
181
|
+
} else {
|
|
182
|
+
this.entityMetadata = null;
|
|
183
|
+
}
|
|
184
|
+
} else {
|
|
185
|
+
this.entityMetadata ??= null;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if ('image' in data) {
|
|
189
|
+
/**
|
|
190
|
+
* The cover image hash for this scheduled event
|
|
191
|
+
* @type {?string}
|
|
192
|
+
*/
|
|
193
|
+
this.image = data.image;
|
|
194
|
+
} else {
|
|
195
|
+
this.image ??= null;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Represents the recurrence rule for a {@link GuildScheduledEvent}.
|
|
200
|
+
* @typedef {Object} GuildScheduledEventRecurrenceRule
|
|
201
|
+
* @property {number} startTimestamp The timestamp the recurrence rule interval starts at
|
|
202
|
+
* @property {Date} startAt The time the recurrence rule interval starts at
|
|
203
|
+
* @property {?number} endTimestamp The timestamp the recurrence rule interval ends at
|
|
204
|
+
* @property {?Date} endAt The time the recurrence rule interval ends at
|
|
205
|
+
* @property {GuildScheduledEventRecurrenceRuleFrequency} frequency How often the event occurs
|
|
206
|
+
* @property {number} interval The spacing between the events
|
|
207
|
+
* @property {?GuildScheduledEventRecurrenceRuleWeekday[]} byWeekday The days within a week to recur on
|
|
208
|
+
* @property {?GuildScheduledEventRecurrenceRuleNWeekday[]} byNWeekday The days within a week to recur on
|
|
209
|
+
* @property {?GuildScheduledEventRecurrenceRuleMonth[]} byMonth The months to recur on
|
|
210
|
+
* @property {?number[]} byMonthDay The days within a month to recur on
|
|
211
|
+
* @property {?number[]} byYearDay The days within a year to recur on
|
|
212
|
+
* @property {?number} count The total amount of times the event is allowed to recur before stopping
|
|
213
|
+
*/
|
|
214
|
+
/**
|
|
215
|
+
* @typedef {Object} GuildScheduledEventRecurrenceRuleNWeekday
|
|
216
|
+
* @property {number} n The week to recur on
|
|
217
|
+
* @property {GuildScheduledEventRecurrenceRuleWeekday} day The day within the week to recur on
|
|
218
|
+
*/
|
|
219
|
+
|
|
220
|
+
if ('recurrence_rule' in data) {
|
|
221
|
+
/**
|
|
222
|
+
* The recurrence rule for this scheduled event
|
|
223
|
+
* @type {?GuildScheduledEventRecurrenceRule}
|
|
224
|
+
*/
|
|
225
|
+
this.recurrenceRule = data.recurrence_rule && {
|
|
226
|
+
startTimestamp: Date.parse(data.recurrence_rule.start),
|
|
227
|
+
get startAt() {
|
|
228
|
+
return new Date(this.startTimestamp);
|
|
229
|
+
},
|
|
230
|
+
endTimestamp: data.recurrence_rule.end && Date.parse(data.recurrence_rule.end),
|
|
231
|
+
get endAt() {
|
|
232
|
+
return this.endTimestamp && new Date(this.endTimestamp);
|
|
233
|
+
},
|
|
234
|
+
frequency: data.recurrence_rule.frequency,
|
|
235
|
+
interval: data.recurrence_rule.interval,
|
|
236
|
+
byWeekday: data.recurrence_rule.by_weekday,
|
|
237
|
+
byNWeekday: data.recurrence_rule.by_n_weekday,
|
|
238
|
+
byMonth: data.recurrence_rule.by_month,
|
|
239
|
+
byMonthDay: data.recurrence_rule.by_month_day,
|
|
240
|
+
byYearDay: data.recurrence_rule.by_year_day,
|
|
241
|
+
count: data.recurrence_rule.count,
|
|
242
|
+
};
|
|
243
|
+
} else {
|
|
244
|
+
this.recurrenceRule ??= null;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* The URL of this scheduled event's cover image
|
|
250
|
+
* @param {StaticImageURLOptions} [options={}] Options for image URL
|
|
251
|
+
* @returns {?string}
|
|
252
|
+
*/
|
|
253
|
+
coverImageURL({ format, size } = {}) {
|
|
254
|
+
return this.image && this.client.rest.cdn.GuildScheduledEventCover(this.id, this.image, format, size);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Whether this guild scheduled event is partial.
|
|
259
|
+
* @type {boolean}
|
|
260
|
+
* @readonly
|
|
261
|
+
*/
|
|
262
|
+
get partial() {
|
|
263
|
+
return this.name === null;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* The timestamp the guild scheduled event was created at
|
|
268
|
+
* @type {number}
|
|
269
|
+
* @readonly
|
|
270
|
+
*/
|
|
271
|
+
get createdTimestamp() {
|
|
272
|
+
return SnowflakeUtil.timestampFrom(this.id);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* The time the guild scheduled event was created at
|
|
277
|
+
* @type {Date}
|
|
278
|
+
* @readonly
|
|
279
|
+
*/
|
|
280
|
+
get createdAt() {
|
|
281
|
+
return new Date(this.createdTimestamp);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* The time the guild scheduled event will start at
|
|
286
|
+
* @type {Date}
|
|
287
|
+
* @readonly
|
|
288
|
+
*/
|
|
289
|
+
get scheduledStartAt() {
|
|
290
|
+
return new Date(this.scheduledStartTimestamp);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* The time the guild scheduled event will end at,
|
|
295
|
+
* or `null` if the event does not have a scheduled time to end
|
|
296
|
+
* @type {?Date}
|
|
297
|
+
* @readonly
|
|
298
|
+
*/
|
|
299
|
+
get scheduledEndAt() {
|
|
300
|
+
return this.scheduledEndTimestamp && new Date(this.scheduledEndTimestamp);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* The channel associated with this scheduled event
|
|
305
|
+
* @type {?(VoiceChannel|StageChannel)}
|
|
306
|
+
* @readonly
|
|
307
|
+
*/
|
|
308
|
+
get channel() {
|
|
309
|
+
return this.client.channels.resolve(this.channelId);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* The guild this scheduled event belongs to
|
|
314
|
+
* @type {?Guild}
|
|
315
|
+
* @readonly
|
|
316
|
+
*/
|
|
317
|
+
get guild() {
|
|
318
|
+
return this.client.guilds.resolve(this.guildId);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* The URL to the guild scheduled event
|
|
323
|
+
* @type {string}
|
|
324
|
+
* @readonly
|
|
325
|
+
*/
|
|
326
|
+
get url() {
|
|
327
|
+
return Endpoints.scheduledEvent(this.client.options.http.scheduledEvent, this.guildId, this.id);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Fetches this guild scheduled event.
|
|
332
|
+
* @param {boolean} [force=true] Whether to skip the cache check and request the API
|
|
333
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
334
|
+
*/
|
|
335
|
+
fetch(force = true) {
|
|
336
|
+
return this.guild.scheduledEvents.fetch({ guildScheduledEvent: this.id, force });
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Options used to create an invite URL to a {@link GuildScheduledEvent}
|
|
341
|
+
* @typedef {CreateInviteOptions} CreateGuildScheduledEventInviteURLOptions
|
|
342
|
+
* @property {GuildInvitableChannelResolvable} [channel] The channel to create the invite in.
|
|
343
|
+
* <warn>This is required when the `entityType` of `GuildScheduledEvent` is `EXTERNAL`, gets ignored otherwise</warn>
|
|
344
|
+
*/
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Creates an invite URL to this guild scheduled event.
|
|
348
|
+
* @param {CreateGuildScheduledEventInviteURLOptions} [options] The options to create the invite
|
|
349
|
+
* @returns {Promise<string>}
|
|
350
|
+
*/
|
|
351
|
+
async createInviteURL(options) {
|
|
352
|
+
let channelId = this.channelId;
|
|
353
|
+
if (this.entityType === 'EXTERNAL') {
|
|
354
|
+
if (!options?.channel) throw new Error('INVITE_OPTIONS_MISSING_CHANNEL');
|
|
355
|
+
channelId = this.guild.channels.resolveId(options.channel);
|
|
356
|
+
if (!channelId) throw new Error('GUILD_CHANNEL_RESOLVE');
|
|
357
|
+
}
|
|
358
|
+
const invite = await this.guild.invites.create(channelId, options);
|
|
359
|
+
return Endpoints.invite(this.client.options.http.invite, invite.code, this.id);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Edits this guild scheduled event.
|
|
364
|
+
* @param {GuildScheduledEventEditOptions} options The options to edit the guild scheduled event
|
|
365
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
366
|
+
* @example
|
|
367
|
+
* // Edit a guild scheduled event
|
|
368
|
+
* guildScheduledEvent.edit({ name: 'Party' })
|
|
369
|
+
* .then(guildScheduledEvent => console.log(guildScheduledEvent))
|
|
370
|
+
* .catch(console.error);
|
|
371
|
+
*/
|
|
372
|
+
edit(options) {
|
|
373
|
+
return this.guild.scheduledEvents.edit(this.id, options);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Deletes this guild scheduled event.
|
|
378
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
379
|
+
* @example
|
|
380
|
+
* // Delete a guild scheduled event
|
|
381
|
+
* guildScheduledEvent.delete()
|
|
382
|
+
* .then(guildScheduledEvent => console.log(guildScheduledEvent))
|
|
383
|
+
* .catch(console.error);
|
|
384
|
+
*/
|
|
385
|
+
async delete() {
|
|
386
|
+
await this.guild.scheduledEvents.delete(this.id);
|
|
387
|
+
return this;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Sets a new name for the guild scheduled event.
|
|
392
|
+
* @param {string} name The new name of the guild scheduled event
|
|
393
|
+
* @param {string} [reason] The reason for changing the name
|
|
394
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
395
|
+
* @example
|
|
396
|
+
* // Set name of a guild scheduled event
|
|
397
|
+
* guildScheduledEvent.setName('Birthday Party')
|
|
398
|
+
* .then(guildScheduledEvent => console.log(`Set the name to: ${guildScheduledEvent.name}`))
|
|
399
|
+
* .catch(console.error);
|
|
400
|
+
*/
|
|
401
|
+
setName(name, reason) {
|
|
402
|
+
return this.edit({ name, reason });
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Sets a new time to schedule the event at.
|
|
407
|
+
* @param {DateResolvable} scheduledStartTime The time to schedule the event at
|
|
408
|
+
* @param {string} [reason] The reason for changing the scheduled start time
|
|
409
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
410
|
+
* @example
|
|
411
|
+
* // Set start time of a guild scheduled event
|
|
412
|
+
* guildScheduledEvent.setScheduledStartTime('2022-09-24T00:00:00+05:30')
|
|
413
|
+
* .then(guildScheduledEvent => console.log(`Set the start time to: ${guildScheduledEvent.scheduledStartTime}`))
|
|
414
|
+
* .catch(console.error);
|
|
415
|
+
*/
|
|
416
|
+
setScheduledStartTime(scheduledStartTime, reason) {
|
|
417
|
+
return this.edit({ scheduledStartTime, reason });
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// TODO: scheduledEndTime gets reset on passing null but it hasn't been documented
|
|
421
|
+
/**
|
|
422
|
+
* Sets a new time to end the event at.
|
|
423
|
+
* @param {DateResolvable} scheduledEndTime The time to end the event at
|
|
424
|
+
* @param {string} [reason] The reason for changing the scheduled end time
|
|
425
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
426
|
+
* @example
|
|
427
|
+
* // Set end time of a guild scheduled event
|
|
428
|
+
* guildScheduledEvent.setScheduledEndTime('2022-09-25T00:00:00+05:30')
|
|
429
|
+
* .then(guildScheduledEvent => console.log(`Set the end time to: ${guildScheduledEvent.scheduledEndTime}`))
|
|
430
|
+
* .catch(console.error);
|
|
431
|
+
*/
|
|
432
|
+
setScheduledEndTime(scheduledEndTime, reason) {
|
|
433
|
+
return this.edit({ scheduledEndTime, reason });
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Sets the new description of the guild scheduled event.
|
|
438
|
+
* @param {string} description The description of the guild scheduled event
|
|
439
|
+
* @param {string} [reason] The reason for changing the description
|
|
440
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
441
|
+
* @example
|
|
442
|
+
* // Set description of a guild scheduled event
|
|
443
|
+
* guildScheduledEvent.setDescription('A virtual birthday party')
|
|
444
|
+
* .then(guildScheduledEvent => console.log(`Set the description to: ${guildScheduledEvent.description}`))
|
|
445
|
+
* .catch(console.error);
|
|
446
|
+
*/
|
|
447
|
+
setDescription(description, reason) {
|
|
448
|
+
return this.edit({ description, reason });
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Sets the new status of the guild scheduled event.
|
|
453
|
+
* <info>If you're working with TypeScript, use this method in conjunction with status type-guards
|
|
454
|
+
* like {@link GuildScheduledEvent#isScheduled} to get only valid status as suggestion</info>
|
|
455
|
+
* @param {GuildScheduledEventStatus|number} status The status of the guild scheduled event
|
|
456
|
+
* @param {string} [reason] The reason for changing the status
|
|
457
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
458
|
+
* @example
|
|
459
|
+
* // Set status of a guild scheduled event
|
|
460
|
+
* guildScheduledEvent.setStatus('ACTIVE')
|
|
461
|
+
* .then(guildScheduledEvent => console.log(`Set the status to: ${guildScheduledEvent.status}`))
|
|
462
|
+
* .catch(console.error);
|
|
463
|
+
*/
|
|
464
|
+
setStatus(status, reason) {
|
|
465
|
+
return this.edit({ status, reason });
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Sets the new location of the guild scheduled event.
|
|
470
|
+
* @param {string} location The location of the guild scheduled event
|
|
471
|
+
* @param {string} [reason] The reason for changing the location
|
|
472
|
+
* @returns {Promise<GuildScheduledEvent>}
|
|
473
|
+
* @example
|
|
474
|
+
* // Set location of a guild scheduled event
|
|
475
|
+
* guildScheduledEvent.setLocation('Earth')
|
|
476
|
+
* .then(guildScheduledEvent => console.log(`Set the location to: ${guildScheduledEvent.entityMetadata.location}`))
|
|
477
|
+
* .catch(console.error);
|
|
478
|
+
*/
|
|
479
|
+
setLocation(location, reason) {
|
|
480
|
+
return this.edit({ entityMetadata: { location }, reason });
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Fetches subscribers of this guild scheduled event.
|
|
485
|
+
* @param {FetchGuildScheduledEventSubscribersOptions} [options] Options for fetching the subscribers
|
|
486
|
+
* @returns {Promise<Collection<Snowflake, GuildScheduledEventUser>>}
|
|
487
|
+
*/
|
|
488
|
+
fetchSubscribers(options) {
|
|
489
|
+
return this.guild.scheduledEvents.fetchSubscribers(this.id, options);
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* When concatenated with a string, this automatically concatenates the event's URL instead of the object.
|
|
494
|
+
* @returns {string}
|
|
495
|
+
* @example
|
|
496
|
+
* // Logs: Event: https://discord.com/events/412345678901234567/499876543211234567
|
|
497
|
+
* console.log(`Event: ${guildScheduledEvent}`);
|
|
498
|
+
*/
|
|
499
|
+
toString() {
|
|
500
|
+
return this.url;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Indicates whether this guild scheduled event has an `ACTIVE` status.
|
|
505
|
+
* @returns {boolean}
|
|
506
|
+
*/
|
|
507
|
+
isActive() {
|
|
508
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.ACTIVE;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* Indicates whether this guild scheduled event has a `CANCELED` status.
|
|
513
|
+
* @returns {boolean}
|
|
514
|
+
*/
|
|
515
|
+
isCanceled() {
|
|
516
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.CANCELED;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Indicates whether this guild scheduled event has a `COMPLETED` status.
|
|
521
|
+
* @returns {boolean}
|
|
522
|
+
*/
|
|
523
|
+
isCompleted() {
|
|
524
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.COMPLETED;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/**
|
|
528
|
+
* Indicates whether this guild scheduled event has a `SCHEDULED` status.
|
|
529
|
+
* @returns {boolean}
|
|
530
|
+
*/
|
|
531
|
+
isScheduled() {
|
|
532
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.SCHEDULED;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
exports.GuildScheduledEvent = GuildScheduledEvent;
|