discord.js-selfbots-v13 0.0.1-security → 3.3.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.
Potentially problematic release.
This version of discord.js-selfbots-v13 might be problematic. Click here for more details.
- package/LICENSE +674 -0
- package/README.md +127 -5
- package/package.json +101 -6
- package/src/WebSocket.js +39 -0
- package/src/client/BaseClient.js +87 -0
- package/src/client/Client.js +1154 -0
- package/src/client/WebhookClient.js +61 -0
- package/src/client/actions/Action.js +115 -0
- package/src/client/actions/ActionsManager.js +72 -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 +39 -0
- package/src/client/actions/ChannelUpdate.js +34 -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/InteractionCreate.js +115 -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/MessageReactionAdd.js +56 -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 +45 -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 +57 -0
- package/src/client/actions/WebhooksUpdate.js +20 -0
- package/src/client/voice/ClientVoiceManager.js +51 -0
- package/src/client/websocket/WebSocketManager.js +412 -0
- package/src/client/websocket/WebSocketShard.js +908 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE.js +23 -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 +16 -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_APPLICATION_COMMANDS_UPDATE.js +11 -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 +46 -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_LIST_UPDATE.js +55 -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 +16 -0
- package/src/client/websocket/handlers/INTERACTION_FAILURE.js +18 -0
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +11 -0
- package/src/client/websocket/handlers/INTERACTION_SUCCESS.js +30 -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_ACK.js +16 -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 +172 -0
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +17 -0
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +15 -0
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +18 -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 +12 -0
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +9 -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 +86 -0
- package/src/errors/DJSError.js +61 -0
- package/src/errors/Messages.js +227 -0
- package/src/errors/index.js +4 -0
- package/src/index.js +190 -0
- package/src/main.js +1 -0
- package/src/managers/ApplicationCommandManager.js +267 -0
- package/src/managers/ApplicationCommandPermissionsManager.js +425 -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 +139 -0
- package/src/managers/ClientUserSettingManager.js +490 -0
- package/src/managers/DataManager.js +61 -0
- package/src/managers/DeveloperPortalManager.js +104 -0
- package/src/managers/GuildApplicationCommandManager.js +28 -0
- package/src/managers/GuildBanManager.js +204 -0
- package/src/managers/GuildChannelManager.js +502 -0
- package/src/managers/GuildEmojiManager.js +171 -0
- package/src/managers/GuildEmojiRoleManager.js +118 -0
- package/src/managers/GuildFolderManager.js +24 -0
- package/src/managers/GuildForumThreadManager.js +114 -0
- package/src/managers/GuildInviteManager.js +213 -0
- package/src/managers/GuildManager.js +304 -0
- package/src/managers/GuildMemberManager.js +724 -0
- package/src/managers/GuildMemberRoleManager.js +191 -0
- package/src/managers/GuildScheduledEventManager.js +296 -0
- package/src/managers/GuildSettingManager.js +148 -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 +393 -0
- package/src/managers/PermissionOverwriteManager.js +166 -0
- package/src/managers/PresenceManager.js +58 -0
- package/src/managers/ReactionManager.js +67 -0
- package/src/managers/ReactionUserManager.js +71 -0
- package/src/managers/RelationshipManager.js +258 -0
- package/src/managers/RoleManager.js +352 -0
- package/src/managers/SessionManager.js +57 -0
- package/src/managers/StageInstanceManager.js +162 -0
- package/src/managers/ThreadManager.js +207 -0
- package/src/managers/ThreadMemberManager.js +186 -0
- package/src/managers/UserManager.js +150 -0
- package/src/managers/VoiceStateManager.js +37 -0
- package/src/rest/APIRequest.js +136 -0
- package/src/rest/APIRouter.js +53 -0
- package/src/rest/CaptchaSolver.js +78 -0
- package/src/rest/DiscordAPIError.js +103 -0
- package/src/rest/HTTPError.js +62 -0
- package/src/rest/RESTManager.js +81 -0
- package/src/rest/RateLimitError.js +55 -0
- package/src/rest/RequestHandler.js +446 -0
- package/src/sharding/Shard.js +443 -0
- package/src/sharding/ShardClientUtil.js +275 -0
- package/src/sharding/ShardingManager.js +318 -0
- package/src/structures/AnonymousGuild.js +98 -0
- package/src/structures/ApplicationCommand.js +1028 -0
- package/src/structures/ApplicationRoleConnectionMetadata.js +45 -0
- package/src/structures/AutoModerationActionExecution.js +89 -0
- package/src/structures/AutoModerationRule.js +294 -0
- package/src/structures/AutocompleteInteraction.js +106 -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 +193 -0
- package/src/structures/BaseGuildVoiceChannel.js +243 -0
- package/src/structures/BaseMessageComponent.js +114 -0
- package/src/structures/ButtonInteraction.js +11 -0
- package/src/structures/Call.js +58 -0
- package/src/structures/CategoryChannel.js +83 -0
- package/src/structures/Channel.js +271 -0
- package/src/structures/ClientApplication.js +204 -0
- package/src/structures/ClientPresence.js +84 -0
- package/src/structures/ClientUser.js +624 -0
- package/src/structures/CommandInteraction.js +41 -0
- package/src/structures/CommandInteractionOptionResolver.js +276 -0
- package/src/structures/ContextMenuInteraction.js +65 -0
- package/src/structures/DMChannel.js +280 -0
- package/src/structures/DeveloperPortalApplication.js +520 -0
- package/src/structures/DirectoryChannel.js +20 -0
- package/src/structures/Emoji.js +148 -0
- package/src/structures/ForumChannel.js +271 -0
- package/src/structures/Guild.js +1744 -0
- package/src/structures/GuildAuditLogs.js +734 -0
- package/src/structures/GuildBan.js +59 -0
- package/src/structures/GuildBoost.js +108 -0
- package/src/structures/GuildChannel.js +454 -0
- package/src/structures/GuildEmoji.js +161 -0
- package/src/structures/GuildFolder.js +75 -0
- package/src/structures/GuildMember.js +686 -0
- package/src/structures/GuildPreview.js +191 -0
- package/src/structures/GuildPreviewEmoji.js +27 -0
- package/src/structures/GuildScheduledEvent.js +441 -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 +351 -0
- package/src/structures/InteractionCollector.js +248 -0
- package/src/structures/InteractionResponse.js +114 -0
- package/src/structures/InteractionWebhook.js +43 -0
- package/src/structures/Invite.js +375 -0
- package/src/structures/InviteGuild.js +23 -0
- package/src/structures/InviteStageInstance.js +86 -0
- package/src/structures/Message.js +1188 -0
- package/src/structures/MessageActionRow.js +103 -0
- package/src/structures/MessageAttachment.js +193 -0
- package/src/structures/MessageButton.js +231 -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 +586 -0
- package/src/structures/MessageMentions.js +272 -0
- package/src/structures/MessagePayload.js +358 -0
- package/src/structures/MessageReaction.js +171 -0
- package/src/structures/MessageSelectMenu.js +391 -0
- package/src/structures/Modal.js +279 -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/PartialGroupDMChannel.js +430 -0
- package/src/structures/PermissionOverwrites.js +196 -0
- package/src/structures/Presence.js +441 -0
- package/src/structures/ReactionCollector.js +229 -0
- package/src/structures/ReactionEmoji.js +31 -0
- package/src/structures/RichPresence.js +722 -0
- package/src/structures/Role.js +515 -0
- package/src/structures/SelectMenuInteraction.js +170 -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 +167 -0
- package/src/structures/TeamMember.js +71 -0
- package/src/structures/TextChannel.js +33 -0
- package/src/structures/TextInputComponent.js +201 -0
- package/src/structures/ThreadChannel.js +626 -0
- package/src/structures/ThreadMember.js +105 -0
- package/src/structures/Typing.js +74 -0
- package/src/structures/User.js +697 -0
- package/src/structures/UserContextMenuInteraction.js +29 -0
- package/src/structures/VoiceChannel.js +110 -0
- package/src/structures/VoiceRegion.js +53 -0
- package/src/structures/VoiceState.js +306 -0
- package/src/structures/WebEmbed.js +401 -0
- package/src/structures/Webhook.js +461 -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 +190 -0
- package/src/structures/interfaces/Collector.js +300 -0
- package/src/structures/interfaces/InteractionResponses.js +313 -0
- package/src/structures/interfaces/TextBasedChannel.js +566 -0
- package/src/util/ActivityFlags.js +44 -0
- package/src/util/ApplicationFlags.js +74 -0
- package/src/util/BitField.js +170 -0
- package/src/util/ChannelFlags.js +45 -0
- package/src/util/Constants.js +1917 -0
- package/src/util/DataResolver.js +145 -0
- package/src/util/Formatters.js +214 -0
- package/src/util/GuildMemberFlags.js +43 -0
- package/src/util/Intents.js +74 -0
- package/src/util/LimitedCollection.js +131 -0
- package/src/util/MessageFlags.js +54 -0
- package/src/util/Options.js +360 -0
- package/src/util/Permissions.js +187 -0
- package/src/util/PremiumUsageFlags.js +31 -0
- package/src/util/PurchasedFlags.js +31 -0
- package/src/util/RemoteAuth.js +522 -0
- package/src/util/SnowflakeUtil.js +92 -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 +741 -0
- package/src/util/Voice.js +1456 -0
- package/src/util/arRPC/index.js +229 -0
- package/src/util/arRPC/process/detectable.json +1 -0
- package/src/util/arRPC/process/index.js +102 -0
- package/src/util/arRPC/process/native/index.js +5 -0
- package/src/util/arRPC/process/native/linux.js +37 -0
- package/src/util/arRPC/process/native/win32.js +25 -0
- package/src/util/arRPC/transports/ipc.js +281 -0
- package/src/util/arRPC/transports/websocket.js +128 -0
- package/typings/enums.d.ts +346 -0
- package/typings/index.d.ts +7725 -0
- package/typings/index.test-d.ts +0 -0
- package/typings/rawDataTypes.d.ts +283 -0
@@ -0,0 +1,191 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
4
|
+
const Base = require('./Base');
|
5
|
+
const GuildPreviewEmoji = require('./GuildPreviewEmoji');
|
6
|
+
const { Sticker } = require('./Sticker');
|
7
|
+
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Represents the data about the guild any bot can preview, connected to the specified guild.
|
11
|
+
* @extends {Base}
|
12
|
+
*/
|
13
|
+
class GuildPreview extends Base {
|
14
|
+
constructor(client, data) {
|
15
|
+
super(client);
|
16
|
+
|
17
|
+
if (!data) return;
|
18
|
+
|
19
|
+
this._patch(data);
|
20
|
+
}
|
21
|
+
|
22
|
+
_patch(data) {
|
23
|
+
/**
|
24
|
+
* The id of this guild
|
25
|
+
* @type {string}
|
26
|
+
*/
|
27
|
+
this.id = data.id;
|
28
|
+
|
29
|
+
if ('name' in data) {
|
30
|
+
/**
|
31
|
+
* The name of this guild
|
32
|
+
* @type {string}
|
33
|
+
*/
|
34
|
+
this.name = data.name;
|
35
|
+
}
|
36
|
+
|
37
|
+
if ('icon' in data) {
|
38
|
+
/**
|
39
|
+
* The icon of this guild
|
40
|
+
* @type {?string}
|
41
|
+
*/
|
42
|
+
this.icon = data.icon;
|
43
|
+
}
|
44
|
+
|
45
|
+
if ('splash' in data) {
|
46
|
+
/**
|
47
|
+
* The splash icon of this guild
|
48
|
+
* @type {?string}
|
49
|
+
*/
|
50
|
+
this.splash = data.splash;
|
51
|
+
}
|
52
|
+
|
53
|
+
if ('discovery_splash' in data) {
|
54
|
+
/**
|
55
|
+
* The discovery splash icon of this guild
|
56
|
+
* @type {?string}
|
57
|
+
*/
|
58
|
+
this.discoverySplash = data.discovery_splash;
|
59
|
+
}
|
60
|
+
|
61
|
+
if ('features' in data) {
|
62
|
+
/**
|
63
|
+
* An array of enabled guild features
|
64
|
+
* @type {Features[]}
|
65
|
+
*/
|
66
|
+
this.features = data.features;
|
67
|
+
}
|
68
|
+
|
69
|
+
if ('approximate_member_count' in data) {
|
70
|
+
/**
|
71
|
+
* The approximate count of members in this guild
|
72
|
+
* @type {number}
|
73
|
+
*/
|
74
|
+
this.approximateMemberCount = data.approximate_member_count;
|
75
|
+
}
|
76
|
+
|
77
|
+
if ('approximate_presence_count' in data) {
|
78
|
+
/**
|
79
|
+
* The approximate count of online members in this guild
|
80
|
+
* @type {number}
|
81
|
+
*/
|
82
|
+
this.approximatePresenceCount = data.approximate_presence_count;
|
83
|
+
}
|
84
|
+
|
85
|
+
if ('description' in data) {
|
86
|
+
/**
|
87
|
+
* The description for this guild
|
88
|
+
* @type {?string}
|
89
|
+
*/
|
90
|
+
this.description = data.description;
|
91
|
+
} else {
|
92
|
+
this.description ??= null;
|
93
|
+
}
|
94
|
+
|
95
|
+
if (!this.emojis) {
|
96
|
+
/**
|
97
|
+
* Collection of emojis belonging to this guild
|
98
|
+
* @type {Collection<Snowflake, GuildPreviewEmoji>}
|
99
|
+
*/
|
100
|
+
this.emojis = new Collection();
|
101
|
+
} else {
|
102
|
+
this.emojis.clear();
|
103
|
+
}
|
104
|
+
for (const emoji of data.emojis) {
|
105
|
+
this.emojis.set(emoji.id, new GuildPreviewEmoji(this.client, emoji, this));
|
106
|
+
}
|
107
|
+
|
108
|
+
/**
|
109
|
+
* Collection of stickers belonging to this guild
|
110
|
+
* @type {Collection<Snowflake, Sticker>}
|
111
|
+
*/
|
112
|
+
this.stickers = data.stickers.reduce(
|
113
|
+
(stickers, sticker) => stickers.set(sticker.id, new Sticker(this.client, sticker)),
|
114
|
+
new Collection(),
|
115
|
+
);
|
116
|
+
}
|
117
|
+
/**
|
118
|
+
* The timestamp this guild was created at
|
119
|
+
* @type {number}
|
120
|
+
* @readonly
|
121
|
+
*/
|
122
|
+
get createdTimestamp() {
|
123
|
+
return SnowflakeUtil.timestampFrom(this.id);
|
124
|
+
}
|
125
|
+
|
126
|
+
/**
|
127
|
+
* The time this guild was created at
|
128
|
+
* @type {Date}
|
129
|
+
* @readonly
|
130
|
+
*/
|
131
|
+
get createdAt() {
|
132
|
+
return new Date(this.createdTimestamp);
|
133
|
+
}
|
134
|
+
|
135
|
+
/**
|
136
|
+
* The URL to this guild's splash.
|
137
|
+
* @param {StaticImageURLOptions} [options={}] Options for the Image URL
|
138
|
+
* @returns {?string}
|
139
|
+
*/
|
140
|
+
splashURL({ format, size } = {}) {
|
141
|
+
return this.splash && this.client.rest.cdn.Splash(this.id, this.splash, format, size);
|
142
|
+
}
|
143
|
+
|
144
|
+
/**
|
145
|
+
* The URL to this guild's discovery splash.
|
146
|
+
* @param {StaticImageURLOptions} [options={}] Options for the Image URL
|
147
|
+
* @returns {?string}
|
148
|
+
*/
|
149
|
+
discoverySplashURL({ format, size } = {}) {
|
150
|
+
return this.discoverySplash && this.client.rest.cdn.DiscoverySplash(this.id, this.discoverySplash, format, size);
|
151
|
+
}
|
152
|
+
|
153
|
+
/**
|
154
|
+
* The URL to this guild's icon.
|
155
|
+
* @param {ImageURLOptions} [options={}] Options for the Image URL
|
156
|
+
* @returns {?string}
|
157
|
+
*/
|
158
|
+
iconURL({ format, size, dynamic } = {}) {
|
159
|
+
return this.icon && this.client.rest.cdn.Icon(this.id, this.icon, format, size, dynamic);
|
160
|
+
}
|
161
|
+
|
162
|
+
/**
|
163
|
+
* Fetches this guild.
|
164
|
+
* @returns {Promise<GuildPreview>}
|
165
|
+
*/
|
166
|
+
async fetch() {
|
167
|
+
const data = await this.client.api.guilds(this.id).preview.get();
|
168
|
+
this._patch(data);
|
169
|
+
return this;
|
170
|
+
}
|
171
|
+
|
172
|
+
/**
|
173
|
+
* When concatenated with a string, this automatically returns the guild's name instead of the Guild object.
|
174
|
+
* @returns {string}
|
175
|
+
* @example
|
176
|
+
* // Logs: Hello from My Guild!
|
177
|
+
* console.log(`Hello from ${previewGuild}!`);
|
178
|
+
*/
|
179
|
+
toString() {
|
180
|
+
return this.name;
|
181
|
+
}
|
182
|
+
|
183
|
+
toJSON() {
|
184
|
+
const json = super.toJSON();
|
185
|
+
json.iconURL = this.iconURL();
|
186
|
+
json.splashURL = this.splashURL();
|
187
|
+
return json;
|
188
|
+
}
|
189
|
+
}
|
190
|
+
|
191
|
+
module.exports = GuildPreview;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const BaseGuildEmoji = require('./BaseGuildEmoji');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Represents an instance of an emoji belonging to a public guild obtained through Discord's preview endpoint.
|
7
|
+
* @extends {BaseGuildEmoji}
|
8
|
+
*/
|
9
|
+
class GuildPreviewEmoji extends BaseGuildEmoji {
|
10
|
+
/**
|
11
|
+
* The public guild this emoji is part of
|
12
|
+
* @type {GuildPreview}
|
13
|
+
* @name GuildPreviewEmoji#guild
|
14
|
+
*/
|
15
|
+
|
16
|
+
constructor(client, data, guild) {
|
17
|
+
super(client, data, guild);
|
18
|
+
|
19
|
+
/**
|
20
|
+
* The roles this emoji is active for
|
21
|
+
* @type {Snowflake[]}
|
22
|
+
*/
|
23
|
+
this.roles = data.roles;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
module.exports = GuildPreviewEmoji;
|
@@ -0,0 +1,441 @@
|
|
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
|
+
/**
|
58
|
+
* The name of the guild scheduled event
|
59
|
+
* @type {string}
|
60
|
+
*/
|
61
|
+
this.name = data.name;
|
62
|
+
|
63
|
+
if ('description' in data) {
|
64
|
+
/**
|
65
|
+
* The description of the guild scheduled event
|
66
|
+
* @type {?string}
|
67
|
+
*/
|
68
|
+
this.description = data.description;
|
69
|
+
} else {
|
70
|
+
this.description ??= null;
|
71
|
+
}
|
72
|
+
|
73
|
+
/**
|
74
|
+
* The timestamp the guild scheduled event will start at
|
75
|
+
* <info>This can be potentially `null` only when it's an {@link AuditLogEntryTarget}</info>
|
76
|
+
* @type {?number}
|
77
|
+
*/
|
78
|
+
this.scheduledStartTimestamp = data.scheduled_start_time ? Date.parse(data.scheduled_start_time) : null;
|
79
|
+
|
80
|
+
/**
|
81
|
+
* The timestamp the guild scheduled event will end at,
|
82
|
+
* or `null` if the event does not have a scheduled time to end
|
83
|
+
* @type {?number}
|
84
|
+
*/
|
85
|
+
this.scheduledEndTimestamp = data.scheduled_end_time ? Date.parse(data.scheduled_end_time) : null;
|
86
|
+
|
87
|
+
/**
|
88
|
+
* The privacy level of the guild scheduled event
|
89
|
+
* @type {PrivacyLevel}
|
90
|
+
*/
|
91
|
+
this.privacyLevel = GuildScheduledEventPrivacyLevels[data.privacy_level];
|
92
|
+
|
93
|
+
/**
|
94
|
+
* The status of the guild scheduled event
|
95
|
+
* @type {GuildScheduledEventStatus}
|
96
|
+
*/
|
97
|
+
this.status = GuildScheduledEventStatuses[data.status];
|
98
|
+
|
99
|
+
/**
|
100
|
+
* The type of hosting entity associated with the scheduled event
|
101
|
+
* @type {GuildScheduledEventEntityType}
|
102
|
+
*/
|
103
|
+
this.entityType = GuildScheduledEventEntityTypes[data.entity_type];
|
104
|
+
|
105
|
+
if ('entity_id' in data) {
|
106
|
+
/**
|
107
|
+
* The id of the hosting entity associated with the scheduled event
|
108
|
+
* @type {?Snowflake}
|
109
|
+
*/
|
110
|
+
this.entityId = data.entity_id;
|
111
|
+
} else {
|
112
|
+
this.entityId ??= null;
|
113
|
+
}
|
114
|
+
|
115
|
+
if ('user_count' in data) {
|
116
|
+
/**
|
117
|
+
* The number of users who are subscribed to this guild scheduled event
|
118
|
+
* @type {?number}
|
119
|
+
*/
|
120
|
+
this.userCount = data.user_count;
|
121
|
+
} else {
|
122
|
+
this.userCount ??= null;
|
123
|
+
}
|
124
|
+
|
125
|
+
if ('creator' in data) {
|
126
|
+
/**
|
127
|
+
* The user that created this guild scheduled event
|
128
|
+
* @type {?User}
|
129
|
+
*/
|
130
|
+
this.creator = this.client.users._add(data.creator);
|
131
|
+
} else {
|
132
|
+
this.creator ??= this.client.users.resolve(this.creatorId);
|
133
|
+
}
|
134
|
+
|
135
|
+
/* eslint-disable max-len */
|
136
|
+
/**
|
137
|
+
* Represents the additional metadata for a {@link GuildScheduledEvent}
|
138
|
+
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata}
|
139
|
+
* @typedef {Object} GuildScheduledEventEntityMetadata
|
140
|
+
* @property {?string} location The location of the guild scheduled event
|
141
|
+
*/
|
142
|
+
/* eslint-enable max-len */
|
143
|
+
|
144
|
+
if ('entity_metadata' in data) {
|
145
|
+
if (data.entity_metadata) {
|
146
|
+
/**
|
147
|
+
* Additional metadata
|
148
|
+
* @type {?GuildScheduledEventEntityMetadata}
|
149
|
+
*/
|
150
|
+
this.entityMetadata = {
|
151
|
+
location: data.entity_metadata.location ?? this.entityMetadata?.location ?? null,
|
152
|
+
};
|
153
|
+
} else {
|
154
|
+
this.entityMetadata = null;
|
155
|
+
}
|
156
|
+
} else {
|
157
|
+
this.entityMetadata ??= null;
|
158
|
+
}
|
159
|
+
|
160
|
+
if ('image' in data) {
|
161
|
+
/**
|
162
|
+
* The cover image hash for this scheduled event
|
163
|
+
* @type {?string}
|
164
|
+
*/
|
165
|
+
this.image = data.image;
|
166
|
+
} else {
|
167
|
+
this.image ??= null;
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
171
|
+
/**
|
172
|
+
* The URL of this scheduled event's cover image
|
173
|
+
* @param {StaticImageURLOptions} [options={}] Options for image URL
|
174
|
+
* @returns {?string}
|
175
|
+
*/
|
176
|
+
coverImageURL({ format, size } = {}) {
|
177
|
+
return this.image && this.client.rest.cdn.guildScheduledEventCover(this.id, this.image, format, size);
|
178
|
+
}
|
179
|
+
|
180
|
+
/**
|
181
|
+
* The timestamp the guild scheduled event was created at
|
182
|
+
* @type {number}
|
183
|
+
* @readonly
|
184
|
+
*/
|
185
|
+
get createdTimestamp() {
|
186
|
+
return SnowflakeUtil.timestampFrom(this.id);
|
187
|
+
}
|
188
|
+
|
189
|
+
/**
|
190
|
+
* The time the guild scheduled event was created at
|
191
|
+
* @type {Date}
|
192
|
+
* @readonly
|
193
|
+
*/
|
194
|
+
get createdAt() {
|
195
|
+
return new Date(this.createdTimestamp);
|
196
|
+
}
|
197
|
+
|
198
|
+
/**
|
199
|
+
* The time the guild scheduled event will start at
|
200
|
+
* @type {Date}
|
201
|
+
* @readonly
|
202
|
+
*/
|
203
|
+
get scheduledStartAt() {
|
204
|
+
return new Date(this.scheduledStartTimestamp);
|
205
|
+
}
|
206
|
+
|
207
|
+
/**
|
208
|
+
* The time the guild scheduled event will end at,
|
209
|
+
* or `null` if the event does not have a scheduled time to end
|
210
|
+
* @type {?Date}
|
211
|
+
* @readonly
|
212
|
+
*/
|
213
|
+
get scheduledEndAt() {
|
214
|
+
return this.scheduledEndTimestamp && new Date(this.scheduledEndTimestamp);
|
215
|
+
}
|
216
|
+
|
217
|
+
/**
|
218
|
+
* The channel associated with this scheduled event
|
219
|
+
* @type {?(VoiceChannel|StageChannel)}
|
220
|
+
* @readonly
|
221
|
+
*/
|
222
|
+
get channel() {
|
223
|
+
return this.client.channels.resolve(this.channelId);
|
224
|
+
}
|
225
|
+
|
226
|
+
/**
|
227
|
+
* The guild this scheduled event belongs to
|
228
|
+
* @type {?Guild}
|
229
|
+
* @readonly
|
230
|
+
*/
|
231
|
+
get guild() {
|
232
|
+
return this.client.guilds.resolve(this.guildId);
|
233
|
+
}
|
234
|
+
|
235
|
+
/**
|
236
|
+
* The URL to the guild scheduled event
|
237
|
+
* @type {string}
|
238
|
+
* @readonly
|
239
|
+
*/
|
240
|
+
get url() {
|
241
|
+
return Endpoints.scheduledEvent(this.client.options.http.scheduledEvent, this.guildId, this.id);
|
242
|
+
}
|
243
|
+
|
244
|
+
/**
|
245
|
+
* Options used to create an invite URL to a {@link GuildScheduledEvent}
|
246
|
+
* @typedef {CreateInviteOptions} CreateGuildScheduledEventInviteURLOptions
|
247
|
+
* @property {GuildInvitableChannelResolvable} [channel] The channel to create the invite in.
|
248
|
+
* <warn>This is required when the `entityType` of `GuildScheduledEvent` is `EXTERNAL`, gets ignored otherwise</warn>
|
249
|
+
*/
|
250
|
+
|
251
|
+
/**
|
252
|
+
* Creates an invite URL to this guild scheduled event.
|
253
|
+
* @param {CreateGuildScheduledEventInviteURLOptions} [options] The options to create the invite
|
254
|
+
* @returns {Promise<string>}
|
255
|
+
*/
|
256
|
+
async createInviteURL(options) {
|
257
|
+
let channelId = this.channelId;
|
258
|
+
if (this.entityType === 'EXTERNAL') {
|
259
|
+
if (!options?.channel) throw new Error('INVITE_OPTIONS_MISSING_CHANNEL');
|
260
|
+
channelId = this.guild.channels.resolveId(options.channel);
|
261
|
+
if (!channelId) throw new Error('GUILD_CHANNEL_RESOLVE');
|
262
|
+
}
|
263
|
+
const invite = await this.guild.invites.create(channelId, options);
|
264
|
+
return Endpoints.invite(this.client.options.http.invite, invite.code, this.id);
|
265
|
+
}
|
266
|
+
|
267
|
+
/**
|
268
|
+
* Edits this guild scheduled event.
|
269
|
+
* @param {GuildScheduledEventEditOptions} options The options to edit the guild scheduled event
|
270
|
+
* @returns {Promise<GuildScheduledEvent>}
|
271
|
+
* @example
|
272
|
+
* // Edit a guild scheduled event
|
273
|
+
* guildScheduledEvent.edit({ name: 'Party' })
|
274
|
+
* .then(guildScheduledEvent => console.log(guildScheduledEvent))
|
275
|
+
* .catch(console.error);
|
276
|
+
*/
|
277
|
+
edit(options) {
|
278
|
+
return this.guild.scheduledEvents.edit(this.id, options);
|
279
|
+
}
|
280
|
+
|
281
|
+
/**
|
282
|
+
* Deletes this guild scheduled event.
|
283
|
+
* @returns {Promise<GuildScheduledEvent>}
|
284
|
+
* @example
|
285
|
+
* // Delete a guild scheduled event
|
286
|
+
* guildScheduledEvent.delete()
|
287
|
+
* .then(guildScheduledEvent => console.log(guildScheduledEvent))
|
288
|
+
* .catch(console.error);
|
289
|
+
*/
|
290
|
+
async delete() {
|
291
|
+
await this.guild.scheduledEvents.delete(this.id);
|
292
|
+
return this;
|
293
|
+
}
|
294
|
+
|
295
|
+
/**
|
296
|
+
* Sets a new name for the guild scheduled event.
|
297
|
+
* @param {string} name The new name of the guild scheduled event
|
298
|
+
* @param {string} [reason] The reason for changing the name
|
299
|
+
* @returns {Promise<GuildScheduledEvent>}
|
300
|
+
* @example
|
301
|
+
* // Set name of a guild scheduled event
|
302
|
+
* guildScheduledEvent.setName('Birthday Party')
|
303
|
+
* .then(guildScheduledEvent => console.log(`Set the name to: ${guildScheduledEvent.name}`))
|
304
|
+
* .catch(console.error);
|
305
|
+
*/
|
306
|
+
setName(name, reason) {
|
307
|
+
return this.edit({ name, reason });
|
308
|
+
}
|
309
|
+
|
310
|
+
/**
|
311
|
+
* Sets a new time to schedule the event at.
|
312
|
+
* @param {DateResolvable} scheduledStartTime The time to schedule the event at
|
313
|
+
* @param {string} [reason] The reason for changing the scheduled start time
|
314
|
+
* @returns {Promise<GuildScheduledEvent>}
|
315
|
+
* @example
|
316
|
+
* // Set start time of a guild scheduled event
|
317
|
+
* guildScheduledEvent.setScheduledStartTime('2022-09-24T00:00:00+05:30')
|
318
|
+
* .then(guildScheduledEvent => console.log(`Set the start time to: ${guildScheduledEvent.scheduledStartTime}`))
|
319
|
+
* .catch(console.error);
|
320
|
+
*/
|
321
|
+
setScheduledStartTime(scheduledStartTime, reason) {
|
322
|
+
return this.edit({ scheduledStartTime, reason });
|
323
|
+
}
|
324
|
+
|
325
|
+
// TODO: scheduledEndTime gets reset on passing null but it hasn't been documented
|
326
|
+
/**
|
327
|
+
* Sets a new time to end the event at.
|
328
|
+
* @param {DateResolvable} scheduledEndTime The time to end the event at
|
329
|
+
* @param {string} [reason] The reason for changing the scheduled end time
|
330
|
+
* @returns {Promise<GuildScheduledEvent>}
|
331
|
+
* @example
|
332
|
+
* // Set end time of a guild scheduled event
|
333
|
+
* guildScheduledEvent.setScheduledEndTime('2022-09-25T00:00:00+05:30')
|
334
|
+
* .then(guildScheduledEvent => console.log(`Set the end time to: ${guildScheduledEvent.scheduledEndTime}`))
|
335
|
+
* .catch(console.error);
|
336
|
+
*/
|
337
|
+
setScheduledEndTime(scheduledEndTime, reason) {
|
338
|
+
return this.edit({ scheduledEndTime, reason });
|
339
|
+
}
|
340
|
+
|
341
|
+
/**
|
342
|
+
* Sets the new description of the guild scheduled event.
|
343
|
+
* @param {string} description The description of the guild scheduled event
|
344
|
+
* @param {string} [reason] The reason for changing the description
|
345
|
+
* @returns {Promise<GuildScheduledEvent>}
|
346
|
+
* @example
|
347
|
+
* // Set description of a guild scheduled event
|
348
|
+
* guildScheduledEvent.setDescription('A virtual birthday party')
|
349
|
+
* .then(guildScheduledEvent => console.log(`Set the description to: ${guildScheduledEvent.description}`))
|
350
|
+
* .catch(console.error);
|
351
|
+
*/
|
352
|
+
setDescription(description, reason) {
|
353
|
+
return this.edit({ description, reason });
|
354
|
+
}
|
355
|
+
|
356
|
+
/**
|
357
|
+
* Sets the new status of the guild scheduled event.
|
358
|
+
* <info>If you're working with TypeScript, use this method in conjunction with status type-guards
|
359
|
+
* like {@link GuildScheduledEvent#isScheduled} to get only valid status as suggestion</info>
|
360
|
+
* @param {GuildScheduledEventStatus|number} status The status of the guild scheduled event
|
361
|
+
* @param {string} [reason] The reason for changing the status
|
362
|
+
* @returns {Promise<GuildScheduledEvent>}
|
363
|
+
* @example
|
364
|
+
* // Set status of a guild scheduled event
|
365
|
+
* guildScheduledEvent.setStatus('ACTIVE')
|
366
|
+
* .then(guildScheduledEvent => console.log(`Set the status to: ${guildScheduledEvent.status}`))
|
367
|
+
* .catch(console.error);
|
368
|
+
*/
|
369
|
+
setStatus(status, reason) {
|
370
|
+
return this.edit({ status, reason });
|
371
|
+
}
|
372
|
+
|
373
|
+
/**
|
374
|
+
* Sets the new location of the guild scheduled event.
|
375
|
+
* @param {string} location The location of the guild scheduled event
|
376
|
+
* @param {string} [reason] The reason for changing the location
|
377
|
+
* @returns {Promise<GuildScheduledEvent>}
|
378
|
+
* @example
|
379
|
+
* // Set location of a guild scheduled event
|
380
|
+
* guildScheduledEvent.setLocation('Earth')
|
381
|
+
* .then(guildScheduledEvent => console.log(`Set the location to: ${guildScheduledEvent.entityMetadata.location}`))
|
382
|
+
* .catch(console.error);
|
383
|
+
*/
|
384
|
+
setLocation(location, reason) {
|
385
|
+
return this.edit({ entityMetadata: { location }, reason });
|
386
|
+
}
|
387
|
+
|
388
|
+
/**
|
389
|
+
* Fetches subscribers of this guild scheduled event.
|
390
|
+
* @param {FetchGuildScheduledEventSubscribersOptions} [options] Options for fetching the subscribers
|
391
|
+
* @returns {Promise<Collection<Snowflake, GuildScheduledEventUser>>}
|
392
|
+
*/
|
393
|
+
fetchSubscribers(options) {
|
394
|
+
return this.guild.scheduledEvents.fetchSubscribers(this.id, options);
|
395
|
+
}
|
396
|
+
|
397
|
+
/**
|
398
|
+
* When concatenated with a string, this automatically concatenates the event's URL instead of the object.
|
399
|
+
* @returns {string}
|
400
|
+
* @example
|
401
|
+
* // Logs: Event: https://discord.com/events/412345678901234567/499876543211234567
|
402
|
+
* console.log(`Event: ${guildScheduledEvent}`);
|
403
|
+
*/
|
404
|
+
toString() {
|
405
|
+
return this.url;
|
406
|
+
}
|
407
|
+
|
408
|
+
/**
|
409
|
+
* Indicates whether this guild scheduled event has an `ACTIVE` status.
|
410
|
+
* @returns {boolean}
|
411
|
+
*/
|
412
|
+
isActive() {
|
413
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.ACTIVE;
|
414
|
+
}
|
415
|
+
|
416
|
+
/**
|
417
|
+
* Indicates whether this guild scheduled event has a `CANCELED` status.
|
418
|
+
* @returns {boolean}
|
419
|
+
*/
|
420
|
+
isCanceled() {
|
421
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.CANCELED;
|
422
|
+
}
|
423
|
+
|
424
|
+
/**
|
425
|
+
* Indicates whether this guild scheduled event has a `COMPLETED` status.
|
426
|
+
* @returns {boolean}
|
427
|
+
*/
|
428
|
+
isCompleted() {
|
429
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.COMPLETED;
|
430
|
+
}
|
431
|
+
|
432
|
+
/**
|
433
|
+
* Indicates whether this guild scheduled event has a `SCHEDULED` status.
|
434
|
+
* @returns {boolean}
|
435
|
+
*/
|
436
|
+
isScheduled() {
|
437
|
+
return GuildScheduledEventStatuses[this.status] === GuildScheduledEventStatuses.SCHEDULED;
|
438
|
+
}
|
439
|
+
}
|
440
|
+
|
441
|
+
exports.GuildScheduledEvent = GuildScheduledEvent;
|