djs-selfbot-v13 3.1.8 → 3.7.1
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 +1 -1
- package/README.md +48 -37
- package/package.json +44 -26
- package/src/WebSocket.js +39 -39
- package/src/client/BaseClient.js +86 -86
- package/src/client/Client.js +934 -765
- package/src/client/WebhookClient.js +61 -61
- package/src/client/actions/Action.js +116 -120
- package/src/client/actions/ActionsManager.js +80 -78
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -34
- package/src/client/actions/AutoModerationActionExecution.js +27 -27
- package/src/client/actions/AutoModerationRuleCreate.js +28 -28
- package/src/client/actions/AutoModerationRuleDelete.js +32 -32
- package/src/client/actions/AutoModerationRuleUpdate.js +30 -30
- package/src/client/actions/ChannelCreate.js +23 -23
- package/src/client/actions/ChannelDelete.js +39 -39
- package/src/client/actions/ChannelUpdate.js +43 -43
- package/src/client/actions/GuildAuditLogEntryCreate.js +29 -29
- package/src/client/actions/GuildBanAdd.js +20 -20
- package/src/client/actions/GuildBanRemove.js +25 -25
- package/src/client/actions/GuildChannelsPositionUpdate.js +21 -21
- package/src/client/actions/GuildDelete.js +65 -65
- package/src/client/actions/GuildEmojiCreate.js +20 -20
- package/src/client/actions/GuildEmojiDelete.js +21 -21
- package/src/client/actions/GuildEmojiUpdate.js +20 -20
- package/src/client/actions/GuildEmojisUpdate.js +34 -34
- package/src/client/actions/GuildIntegrationsUpdate.js +19 -19
- package/src/client/actions/GuildMemberRemove.js +33 -33
- package/src/client/actions/GuildMemberUpdate.js +44 -44
- package/src/client/actions/GuildRoleCreate.js +25 -25
- package/src/client/actions/GuildRoleDelete.js +31 -31
- package/src/client/actions/GuildRoleUpdate.js +39 -39
- package/src/client/actions/GuildRolesPositionUpdate.js +21 -21
- package/src/client/actions/GuildScheduledEventCreate.js +27 -27
- package/src/client/actions/GuildScheduledEventDelete.js +31 -31
- package/src/client/actions/GuildScheduledEventUpdate.js +30 -30
- package/src/client/actions/GuildScheduledEventUserAdd.js +32 -32
- package/src/client/actions/GuildScheduledEventUserRemove.js +32 -32
- package/src/client/actions/GuildStickerCreate.js +20 -20
- package/src/client/actions/GuildStickerDelete.js +21 -21
- package/src/client/actions/GuildStickerUpdate.js +20 -20
- package/src/client/actions/GuildStickersUpdate.js +34 -34
- package/src/client/actions/GuildUpdate.js +33 -33
- package/src/client/actions/InviteCreate.js +28 -28
- package/src/client/actions/InviteDelete.js +30 -30
- package/src/client/actions/MessageCreate.js +50 -46
- package/src/client/actions/MessageDelete.js +32 -32
- package/src/client/actions/MessageDeleteBulk.js +46 -46
- package/src/client/actions/MessagePollVoteAdd.js +33 -0
- package/src/client/actions/MessagePollVoteRemove.js +33 -0
- package/src/client/actions/MessageReactionAdd.js +68 -56
- package/src/client/actions/MessageReactionRemove.js +50 -45
- package/src/client/actions/MessageReactionRemoveAll.js +33 -33
- package/src/client/actions/MessageReactionRemoveEmoji.js +28 -28
- package/src/client/actions/MessageUpdate.js +26 -26
- package/src/client/actions/PresenceUpdate.js +50 -46
- package/src/client/actions/StageInstanceCreate.js +28 -28
- package/src/client/actions/StageInstanceDelete.js +33 -33
- package/src/client/actions/StageInstanceUpdate.js +30 -30
- package/src/client/actions/ThreadCreate.js +24 -24
- package/src/client/actions/ThreadDelete.js +32 -32
- package/src/client/actions/ThreadListSync.js +59 -59
- package/src/client/actions/ThreadMemberUpdate.js +30 -30
- package/src/client/actions/ThreadMembersUpdate.js +34 -34
- package/src/client/actions/TypingStart.js +29 -29
- package/src/client/actions/UserUpdate.js +35 -35
- package/src/client/actions/VoiceStateUpdate.js +50 -57
- package/src/client/actions/WebhooksUpdate.js +20 -20
- package/src/client/voice/ClientVoiceManager.js +151 -51
- 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 -392
- package/src/client/websocket/WebSocketShard.js +907 -906
- package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -18
- package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -20
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -20
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/CALL_CREATE.js +14 -14
- package/src/client/websocket/handlers/CALL_DELETE.js +11 -11
- package/src/client/websocket/handlers/CALL_UPDATE.js +11 -11
- package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -5
- package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -5
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -22
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -19
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -16
- package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -16
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -5
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_CREATE.js +52 -53
- package/src/client/websocket/handlers/GUILD_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -39
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -20
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -5
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -12
- package/src/client/websocket/handlers/INVITE_CREATE.js +5 -5
- package/src/client/websocket/handlers/INVITE_DELETE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -5
- 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 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -16
- package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/READY.js +121 -80
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -19
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -17
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -41
- package/src/client/websocket/handlers/RESUMED.js +14 -14
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -5
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -5
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_CREATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_DELETE.js +5 -5
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -5
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -16
- package/src/client/websocket/handlers/TYPING_START.js +5 -5
- package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -6
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -78
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -12
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -6
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/index.js +84 -81
- package/src/errors/DJSError.js +61 -61
- package/src/errors/Messages.js +217 -182
- package/src/errors/index.js +4 -4
- package/src/index.js +172 -158
- package/src/managers/ApplicationCommandManager.js +264 -264
- package/src/managers/ApplicationCommandPermissionsManager.js +417 -417
- package/src/managers/AutoModerationRuleManager.js +296 -296
- package/src/managers/BaseGuildEmojiManager.js +80 -80
- package/src/managers/BaseManager.js +19 -19
- package/src/managers/BillingManager.js +66 -66
- package/src/managers/CachedManager.js +71 -71
- package/src/managers/ChannelManager.js +148 -138
- package/src/managers/ClientUserSettingManager.js +372 -372
- package/src/managers/DataManager.js +61 -61
- package/src/managers/GuildBanManager.js +250 -204
- package/src/managers/GuildChannelManager.js +488 -504
- package/src/managers/GuildEmojiManager.js +171 -171
- package/src/managers/GuildEmojiRoleManager.js +118 -118
- package/src/managers/GuildForumThreadManager.js +108 -108
- package/src/managers/GuildInviteManager.js +213 -213
- package/src/managers/GuildManager.js +338 -304
- package/src/managers/GuildMemberManager.js +599 -593
- package/src/managers/GuildMemberRoleManager.js +195 -191
- package/src/managers/GuildScheduledEventManager.js +314 -296
- package/src/managers/GuildSettingManager.js +155 -155
- package/src/managers/GuildStickerManager.js +179 -179
- package/src/managers/GuildTextThreadManager.js +98 -98
- package/src/managers/InteractionManager.js +39 -39
- package/src/managers/MessageManager.js +423 -391
- package/src/managers/PermissionOverwriteManager.js +164 -166
- package/src/managers/PresenceManager.js +71 -58
- package/src/managers/ReactionManager.js +67 -67
- package/src/managers/ReactionUserManager.js +73 -71
- package/src/managers/RelationshipManager.js +278 -265
- package/src/managers/RoleManager.js +448 -352
- package/src/managers/SessionManager.js +66 -0
- package/src/managers/StageInstanceManager.js +162 -162
- package/src/managers/ThreadManager.js +175 -174
- package/src/managers/ThreadMemberManager.js +186 -186
- package/src/managers/UserManager.js +136 -146
- package/src/managers/UserNoteManager.js +53 -53
- package/src/managers/VoiceStateManager.js +59 -37
- package/src/rest/APIRequest.js +154 -154
- package/src/rest/APIRouter.js +53 -53
- package/src/rest/DiscordAPIError.js +119 -104
- package/src/rest/HTTPError.js +62 -62
- package/src/rest/RESTManager.js +67 -62
- package/src/rest/RateLimitError.js +55 -55
- package/src/rest/RequestHandler.js +466 -444
- package/src/sharding/Shard.js +444 -443
- package/src/sharding/ShardClientUtil.js +279 -275
- package/src/sharding/ShardingManager.js +319 -318
- package/src/structures/AnonymousGuild.js +98 -98
- package/src/structures/ApplicationCommand.js +593 -593
- package/src/structures/ApplicationRoleConnectionMetadata.js +48 -48
- package/src/structures/AutoModerationActionExecution.js +89 -89
- package/src/structures/AutoModerationRule.js +294 -294
- package/src/structures/AutocompleteInteraction.js +107 -107
- package/src/structures/Base.js +43 -43
- package/src/structures/BaseCommandInteraction.js +211 -211
- package/src/structures/BaseGuild.js +116 -116
- package/src/structures/BaseGuildEmoji.js +56 -56
- package/src/structures/BaseGuildTextChannel.js +191 -191
- package/src/structures/BaseGuildVoiceChannel.js +241 -241
- package/src/structures/BaseMessageComponent.js +181 -114
- package/src/structures/ButtonInteraction.js +11 -11
- package/src/structures/CallState.js +63 -63
- package/src/structures/CategoryChannel.js +85 -85
- package/src/structures/Channel.js +284 -270
- package/src/structures/ClientPresence.js +77 -88
- package/src/structures/ClientUser.js +479 -450
- package/src/structures/CommandInteraction.js +41 -41
- package/src/structures/CommandInteractionOptionResolver.js +276 -276
- package/src/structures/ContainerComponent.js +68 -0
- package/src/structures/ContextMenuInteraction.js +65 -65
- package/src/structures/DMChannel.js +219 -217
- package/src/structures/DirectoryChannel.js +20 -20
- package/src/structures/Emoji.js +148 -148
- package/src/structures/FileComponent.js +49 -0
- package/src/structures/ForumChannel.js +31 -261
- package/src/structures/GroupDMChannel.js +394 -387
- package/src/structures/Guild.js +1643 -1608
- package/src/structures/GuildAuditLogs.js +746 -729
- package/src/structures/GuildBan.js +59 -59
- package/src/structures/GuildBoost.js +108 -108
- package/src/structures/GuildChannel.js +470 -468
- package/src/structures/GuildEmoji.js +161 -161
- package/src/structures/GuildMember.js +636 -568
- package/src/structures/GuildPreview.js +191 -191
- package/src/structures/GuildPreviewEmoji.js +27 -27
- package/src/structures/GuildScheduledEvent.js +536 -441
- package/src/structures/GuildTemplate.js +236 -236
- package/src/structures/Integration.js +188 -188
- package/src/structures/IntegrationApplication.js +96 -96
- package/src/structures/Interaction.js +290 -290
- package/src/structures/InteractionCollector.js +248 -248
- package/src/structures/InteractionWebhook.js +43 -43
- package/src/structures/Invite.js +358 -358
- package/src/structures/InviteGuild.js +23 -23
- package/src/structures/InviteStageInstance.js +86 -86
- 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 -1236
- package/src/structures/MessageActionRow.js +105 -103
- package/src/structures/MessageAttachment.js +216 -204
- package/src/structures/MessageButton.js +166 -165
- package/src/structures/MessageCollector.js +146 -146
- package/src/structures/MessageComponentInteraction.js +120 -120
- package/src/structures/MessageContextMenuInteraction.js +20 -20
- package/src/structures/MessageEmbed.js +596 -586
- package/src/structures/MessageMentions.js +273 -273
- package/src/structures/MessagePayload.js +354 -316
- package/src/structures/MessageReaction.js +181 -171
- package/src/structures/MessageSelectMenu.js +141 -140
- package/src/structures/Modal.js +161 -174
- package/src/structures/ModalSubmitFieldsResolver.js +53 -53
- package/src/structures/ModalSubmitInteraction.js +119 -119
- package/src/structures/NewsChannel.js +32 -32
- package/src/structures/OAuth2Guild.js +28 -28
- package/src/structures/PermissionOverwrites.js +198 -196
- package/src/structures/Poll.js +108 -0
- package/src/structures/PollAnswer.js +88 -0
- package/src/structures/Presence.js +1105 -443
- package/src/structures/ReactionCollector.js +229 -229
- package/src/structures/ReactionEmoji.js +31 -31
- package/src/structures/Role.js +590 -531
- package/src/structures/SectionComponent.js +48 -0
- package/src/structures/SelectMenuInteraction.js +21 -21
- package/src/structures/SeparatorComponent.js +48 -0
- package/src/structures/Session.js +81 -0
- package/src/structures/StageChannel.js +104 -104
- package/src/structures/StageInstance.js +208 -208
- package/src/structures/Sticker.js +310 -310
- package/src/structures/StickerPack.js +95 -95
- package/src/structures/StoreChannel.js +56 -56
- package/src/structures/Team.js +118 -118
- package/src/structures/TeamMember.js +80 -71
- package/src/structures/TextChannel.js +33 -33
- package/src/structures/TextDisplayComponent.js +40 -0
- package/src/structures/TextInputComponent.js +132 -131
- package/src/structures/ThreadChannel.js +605 -607
- package/src/structures/ThreadMember.js +105 -105
- package/src/structures/ThreadOnlyChannel.js +249 -0
- package/src/structures/ThumbnailComponent.js +57 -0
- package/src/structures/Typing.js +74 -74
- package/src/structures/UnfurledMediaItem.js +29 -0
- package/src/structures/User.js +640 -509
- package/src/structures/UserContextMenuInteraction.js +29 -29
- package/src/structures/VoiceChannel.js +110 -110
- package/src/structures/VoiceChannelEffect.js +69 -0
- package/src/structures/VoiceRegion.js +53 -53
- package/src/structures/VoiceState.js +354 -341
- package/src/structures/WebEmbed.js +373 -373
- package/src/structures/Webhook.js +478 -467
- package/src/structures/WelcomeChannel.js +60 -60
- package/src/structures/WelcomeScreen.js +48 -48
- package/src/structures/Widget.js +87 -87
- package/src/structures/WidgetMember.js +99 -99
- package/src/structures/interfaces/Application.js +825 -313
- package/src/structures/interfaces/Collector.js +300 -300
- package/src/structures/interfaces/InteractionResponses.js +313 -313
- package/src/structures/interfaces/TextBasedChannel.js +759 -721
- package/src/util/APITypes.js +59 -0
- package/src/util/ActivityFlags.js +44 -44
- package/src/util/ApplicationFlags.js +76 -76
- package/src/util/AttachmentFlags.js +38 -38
- package/src/util/BitField.js +170 -170
- package/src/util/ChannelFlags.js +45 -45
- package/src/util/Constants.js +1914 -1760
- package/src/util/DataResolver.js +146 -145
- package/src/util/Formatters.js +228 -228
- package/src/util/GuildMemberFlags.js +43 -43
- package/src/util/Intents.js +74 -74
- package/src/util/InviteFlags.js +34 -29
- package/src/util/LimitedCollection.js +131 -131
- package/src/util/MessageFlags.js +63 -54
- package/src/util/Options.js +358 -342
- package/src/util/Permissions.js +202 -192
- package/src/util/PremiumUsageFlags.js +31 -31
- package/src/util/PurchasedFlags.js +33 -33
- package/src/util/RemoteAuth.js +382 -379
- package/src/util/RoleFlags.js +37 -37
- package/src/util/SnowflakeUtil.js +92 -92
- package/src/util/Speaking.js +33 -0
- package/src/util/Sweepers.js +466 -466
- package/src/util/SystemChannelFlags.js +55 -55
- package/src/util/ThreadMemberFlags.js +30 -30
- package/src/util/UserFlags.js +104 -104
- package/src/util/Util.js +1048 -803
- package/typings/enums.d.ts +439 -291
- package/typings/index.d.ts +8247 -7390
- package/typings/rawDataTypes.d.ts +403 -342
- package/src/structures/RichPresence.js +0 -702
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const CachedManager = require('./CachedManager');
|
|
4
|
+
const Session = require('../structures/Session');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Manages API methods for users and stores their cache.
|
|
8
|
+
* @extends {CachedManager}
|
|
9
|
+
*/
|
|
10
|
+
class SessionManager extends CachedManager {
|
|
11
|
+
constructor(client, iterable) {
|
|
12
|
+
super(client, Session, iterable);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The current session ID hash of the client.
|
|
16
|
+
* @type {string}
|
|
17
|
+
*/
|
|
18
|
+
this.currentSessionIdHash = null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The cache of Sessions
|
|
22
|
+
* @type {Collection<string, Session>}
|
|
23
|
+
* @name SessionManager#cache
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Fetch all sessions of the client.
|
|
28
|
+
* @returns {Promise<Collection<string, Session>>}
|
|
29
|
+
*/
|
|
30
|
+
fetch() {
|
|
31
|
+
return this.client.api.auth.sessions.get().then(data => {
|
|
32
|
+
const allData = data.user_sessions;
|
|
33
|
+
this.cache.clear();
|
|
34
|
+
for (const session of allData) {
|
|
35
|
+
this._add(session, true, { id: session.id_hash });
|
|
36
|
+
}
|
|
37
|
+
return this.cache;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Logout all client (remote).
|
|
43
|
+
* @returns {Promise<void>}
|
|
44
|
+
*/
|
|
45
|
+
logoutAllDevices() {
|
|
46
|
+
return this.client.api.auth.sessions.logout({
|
|
47
|
+
data: {
|
|
48
|
+
session_id_hashes: this.cache.map(session => session.id),
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Get the current session of the client.
|
|
55
|
+
* You must call `fetch()` first to populate the cache.
|
|
56
|
+
* @type {?Session}
|
|
57
|
+
*/
|
|
58
|
+
get currentSession() {
|
|
59
|
+
if (!this.currentSessionIdHash) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
return this.cache.get(this.currentSessionIdHash) || null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
module.exports = SessionManager;
|
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const CachedManager = require('./CachedManager');
|
|
4
|
-
const { TypeError, Error } = require('../errors');
|
|
5
|
-
const { StageInstance } = require('../structures/StageInstance');
|
|
6
|
-
const { PrivacyLevels } = require('../util/Constants');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Manages API methods for {@link StageInstance} objects and holds their cache.
|
|
10
|
-
* @extends {CachedManager}
|
|
11
|
-
*/
|
|
12
|
-
class StageInstanceManager extends CachedManager {
|
|
13
|
-
constructor(guild, iterable) {
|
|
14
|
-
super(guild.client, StageInstance, iterable);
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* The guild this manager belongs to
|
|
18
|
-
* @type {Guild}
|
|
19
|
-
*/
|
|
20
|
-
this.guild = guild;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* The cache of this Manager
|
|
25
|
-
* @type {Collection<Snowflake, StageInstance>}
|
|
26
|
-
* @name StageInstanceManager#cache
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Options used to create a stage instance.
|
|
31
|
-
* @typedef {Object} StageInstanceCreateOptions
|
|
32
|
-
* @property {string} topic The topic of the stage instance
|
|
33
|
-
* @property {PrivacyLevel|number} [privacyLevel] The privacy level of the stage instance
|
|
34
|
-
* @property {boolean} [sendStartNotification] Whether to notify `@everyone` that the stage instance has started
|
|
35
|
-
* @property {GuildScheduledEventResolvable} [guildScheduledEvent]
|
|
36
|
-
* The guild scheduled event associated with the stage instance
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Data that can be resolved to a Stage Channel object. This can be:
|
|
41
|
-
* * A StageChannel
|
|
42
|
-
* * A Snowflake
|
|
43
|
-
* @typedef {StageChannel|Snowflake} StageChannelResolvable
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Creates a new stage instance.
|
|
48
|
-
* @param {StageChannelResolvable} channel The stage channel to associate the created stage instance to
|
|
49
|
-
* @param {StageInstanceCreateOptions} options The options to create the stage instance
|
|
50
|
-
* @returns {Promise<StageInstance>}
|
|
51
|
-
* @example
|
|
52
|
-
* // Create a stage instance
|
|
53
|
-
* guild.stageInstances.create('1234567890123456789', {
|
|
54
|
-
* topic: 'A very creative topic',
|
|
55
|
-
* privacyLevel: 'GUILD_ONLY'
|
|
56
|
-
* })
|
|
57
|
-
* .then(stageInstance => console.log(stageInstance))
|
|
58
|
-
* .catch(console.error);
|
|
59
|
-
*/
|
|
60
|
-
async create(channel, options) {
|
|
61
|
-
const channelId = this.guild.channels.resolveId(channel);
|
|
62
|
-
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
63
|
-
if (typeof options !== 'object') throw new TypeError('INVALID_TYPE', 'options', 'object', true);
|
|
64
|
-
let { guildScheduledEvent, topic, privacyLevel, sendStartNotification } = options;
|
|
65
|
-
|
|
66
|
-
privacyLevel &&= typeof privacyLevel === 'number' ? privacyLevel : PrivacyLevels[privacyLevel];
|
|
67
|
-
const guildScheduledEventId = guildScheduledEvent && this.resolveId(guildScheduledEvent);
|
|
68
|
-
|
|
69
|
-
const data = await this.client.api['stage-instances'].post({
|
|
70
|
-
data: {
|
|
71
|
-
channel_id: channelId,
|
|
72
|
-
topic,
|
|
73
|
-
privacy_level: privacyLevel,
|
|
74
|
-
send_start_notification: sendStartNotification,
|
|
75
|
-
guild_scheduled_event_id: guildScheduledEventId,
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
return this._add(data);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Fetches the stage instance associated with a stage channel, if it exists.
|
|
84
|
-
* @param {StageChannelResolvable} channel The stage channel whose associated stage instance is to be fetched
|
|
85
|
-
* @param {BaseFetchOptions} [options] Additional options for this fetch
|
|
86
|
-
* @returns {Promise<StageInstance>}
|
|
87
|
-
* @example
|
|
88
|
-
* // Fetch a stage instance
|
|
89
|
-
* guild.stageInstances.fetch('1234567890123456789')
|
|
90
|
-
* .then(stageInstance => console.log(stageInstance))
|
|
91
|
-
* .catch(console.error);
|
|
92
|
-
*/
|
|
93
|
-
async fetch(channel, { cache = true, force = false } = {}) {
|
|
94
|
-
const channelId = this.guild.channels.resolveId(channel);
|
|
95
|
-
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
96
|
-
|
|
97
|
-
if (!force) {
|
|
98
|
-
const existing = this.cache.find(stageInstance => stageInstance.channelId === channelId);
|
|
99
|
-
if (existing) return existing;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const data = await this.client.api('stage-instances', channelId).get();
|
|
103
|
-
return this._add(data, cache);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Options used to edit an existing stage instance.
|
|
108
|
-
* @typedef {Object} StageInstanceEditOptions
|
|
109
|
-
* @property {string} [topic] The new topic of the stage instance
|
|
110
|
-
* @property {PrivacyLevel|number} [privacyLevel] The new privacy level of the stage instance
|
|
111
|
-
*/
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Edits an existing stage instance.
|
|
115
|
-
* @param {StageChannelResolvable} channel The stage channel whose associated stage instance is to be edited
|
|
116
|
-
* @param {StageInstanceEditOptions} options The options to edit the stage instance
|
|
117
|
-
* @returns {Promise<StageInstance>}
|
|
118
|
-
* @example
|
|
119
|
-
* // Edit a stage instance
|
|
120
|
-
* guild.stageInstances.edit('1234567890123456789', { topic: 'new topic' })
|
|
121
|
-
* .then(stageInstance => console.log(stageInstance))
|
|
122
|
-
* .catch(console.error);
|
|
123
|
-
*/
|
|
124
|
-
async edit(channel, options) {
|
|
125
|
-
if (typeof options !== 'object') throw new TypeError('INVALID_TYPE', 'options', 'object', true);
|
|
126
|
-
const channelId = this.guild.channels.resolveId(channel);
|
|
127
|
-
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
128
|
-
|
|
129
|
-
let { topic, privacyLevel } = options;
|
|
130
|
-
|
|
131
|
-
privacyLevel &&= typeof privacyLevel === 'number' ? privacyLevel : PrivacyLevels[privacyLevel];
|
|
132
|
-
|
|
133
|
-
const data = await this.client.api('stage-instances', channelId).patch({
|
|
134
|
-
data: {
|
|
135
|
-
topic,
|
|
136
|
-
privacy_level: privacyLevel,
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
if (this.cache.has(data.id)) {
|
|
141
|
-
const clone = this.cache.get(data.id)._clone();
|
|
142
|
-
clone._patch(data);
|
|
143
|
-
return clone;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return this._add(data);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Deletes an existing stage instance.
|
|
151
|
-
* @param {StageChannelResolvable} channel The stage channel whose associated stage instance is to be deleted
|
|
152
|
-
* @returns {Promise<void>}
|
|
153
|
-
*/
|
|
154
|
-
async delete(channel) {
|
|
155
|
-
const channelId = this.guild.channels.resolveId(channel);
|
|
156
|
-
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
157
|
-
|
|
158
|
-
await this.client.api('stage-instances', channelId).delete();
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
module.exports = StageInstanceManager;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const CachedManager = require('./CachedManager');
|
|
4
|
+
const { TypeError, Error } = require('../errors');
|
|
5
|
+
const { StageInstance } = require('../structures/StageInstance');
|
|
6
|
+
const { PrivacyLevels } = require('../util/Constants');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Manages API methods for {@link StageInstance} objects and holds their cache.
|
|
10
|
+
* @extends {CachedManager}
|
|
11
|
+
*/
|
|
12
|
+
class StageInstanceManager extends CachedManager {
|
|
13
|
+
constructor(guild, iterable) {
|
|
14
|
+
super(guild.client, StageInstance, iterable);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The guild this manager belongs to
|
|
18
|
+
* @type {Guild}
|
|
19
|
+
*/
|
|
20
|
+
this.guild = guild;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The cache of this Manager
|
|
25
|
+
* @type {Collection<Snowflake, StageInstance>}
|
|
26
|
+
* @name StageInstanceManager#cache
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Options used to create a stage instance.
|
|
31
|
+
* @typedef {Object} StageInstanceCreateOptions
|
|
32
|
+
* @property {string} topic The topic of the stage instance
|
|
33
|
+
* @property {PrivacyLevel|number} [privacyLevel] The privacy level of the stage instance
|
|
34
|
+
* @property {boolean} [sendStartNotification] Whether to notify `@everyone` that the stage instance has started
|
|
35
|
+
* @property {GuildScheduledEventResolvable} [guildScheduledEvent]
|
|
36
|
+
* The guild scheduled event associated with the stage instance
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Data that can be resolved to a Stage Channel object. This can be:
|
|
41
|
+
* * A StageChannel
|
|
42
|
+
* * A Snowflake
|
|
43
|
+
* @typedef {StageChannel|Snowflake} StageChannelResolvable
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Creates a new stage instance.
|
|
48
|
+
* @param {StageChannelResolvable} channel The stage channel to associate the created stage instance to
|
|
49
|
+
* @param {StageInstanceCreateOptions} options The options to create the stage instance
|
|
50
|
+
* @returns {Promise<StageInstance>}
|
|
51
|
+
* @example
|
|
52
|
+
* // Create a stage instance
|
|
53
|
+
* guild.stageInstances.create('1234567890123456789', {
|
|
54
|
+
* topic: 'A very creative topic',
|
|
55
|
+
* privacyLevel: 'GUILD_ONLY'
|
|
56
|
+
* })
|
|
57
|
+
* .then(stageInstance => console.log(stageInstance))
|
|
58
|
+
* .catch(console.error);
|
|
59
|
+
*/
|
|
60
|
+
async create(channel, options) {
|
|
61
|
+
const channelId = this.guild.channels.resolveId(channel);
|
|
62
|
+
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
63
|
+
if (typeof options !== 'object') throw new TypeError('INVALID_TYPE', 'options', 'object', true);
|
|
64
|
+
let { guildScheduledEvent, topic, privacyLevel, sendStartNotification } = options;
|
|
65
|
+
|
|
66
|
+
privacyLevel &&= typeof privacyLevel === 'number' ? privacyLevel : PrivacyLevels[privacyLevel];
|
|
67
|
+
const guildScheduledEventId = guildScheduledEvent && this.resolveId(guildScheduledEvent);
|
|
68
|
+
|
|
69
|
+
const data = await this.client.api['stage-instances'].post({
|
|
70
|
+
data: {
|
|
71
|
+
channel_id: channelId,
|
|
72
|
+
topic,
|
|
73
|
+
privacy_level: privacyLevel,
|
|
74
|
+
send_start_notification: sendStartNotification,
|
|
75
|
+
guild_scheduled_event_id: guildScheduledEventId,
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return this._add(data);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Fetches the stage instance associated with a stage channel, if it exists.
|
|
84
|
+
* @param {StageChannelResolvable} channel The stage channel whose associated stage instance is to be fetched
|
|
85
|
+
* @param {BaseFetchOptions} [options] Additional options for this fetch
|
|
86
|
+
* @returns {Promise<StageInstance>}
|
|
87
|
+
* @example
|
|
88
|
+
* // Fetch a stage instance
|
|
89
|
+
* guild.stageInstances.fetch('1234567890123456789')
|
|
90
|
+
* .then(stageInstance => console.log(stageInstance))
|
|
91
|
+
* .catch(console.error);
|
|
92
|
+
*/
|
|
93
|
+
async fetch(channel, { cache = true, force = false } = {}) {
|
|
94
|
+
const channelId = this.guild.channels.resolveId(channel);
|
|
95
|
+
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
96
|
+
|
|
97
|
+
if (!force) {
|
|
98
|
+
const existing = this.cache.find(stageInstance => stageInstance.channelId === channelId);
|
|
99
|
+
if (existing) return existing;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const data = await this.client.api('stage-instances', channelId).get();
|
|
103
|
+
return this._add(data, cache);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Options used to edit an existing stage instance.
|
|
108
|
+
* @typedef {Object} StageInstanceEditOptions
|
|
109
|
+
* @property {string} [topic] The new topic of the stage instance
|
|
110
|
+
* @property {PrivacyLevel|number} [privacyLevel] The new privacy level of the stage instance
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Edits an existing stage instance.
|
|
115
|
+
* @param {StageChannelResolvable} channel The stage channel whose associated stage instance is to be edited
|
|
116
|
+
* @param {StageInstanceEditOptions} options The options to edit the stage instance
|
|
117
|
+
* @returns {Promise<StageInstance>}
|
|
118
|
+
* @example
|
|
119
|
+
* // Edit a stage instance
|
|
120
|
+
* guild.stageInstances.edit('1234567890123456789', { topic: 'new topic' })
|
|
121
|
+
* .then(stageInstance => console.log(stageInstance))
|
|
122
|
+
* .catch(console.error);
|
|
123
|
+
*/
|
|
124
|
+
async edit(channel, options) {
|
|
125
|
+
if (typeof options !== 'object') throw new TypeError('INVALID_TYPE', 'options', 'object', true);
|
|
126
|
+
const channelId = this.guild.channels.resolveId(channel);
|
|
127
|
+
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
128
|
+
|
|
129
|
+
let { topic, privacyLevel } = options;
|
|
130
|
+
|
|
131
|
+
privacyLevel &&= typeof privacyLevel === 'number' ? privacyLevel : PrivacyLevels[privacyLevel];
|
|
132
|
+
|
|
133
|
+
const data = await this.client.api('stage-instances', channelId).patch({
|
|
134
|
+
data: {
|
|
135
|
+
topic,
|
|
136
|
+
privacy_level: privacyLevel,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
if (this.cache.has(data.id)) {
|
|
141
|
+
const clone = this.cache.get(data.id)._clone();
|
|
142
|
+
clone._patch(data);
|
|
143
|
+
return clone;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return this._add(data);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Deletes an existing stage instance.
|
|
151
|
+
* @param {StageChannelResolvable} channel The stage channel whose associated stage instance is to be deleted
|
|
152
|
+
* @returns {Promise<void>}
|
|
153
|
+
*/
|
|
154
|
+
async delete(channel) {
|
|
155
|
+
const channelId = this.guild.channels.resolveId(channel);
|
|
156
|
+
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
|
|
157
|
+
|
|
158
|
+
await this.client.api('stage-instances', channelId).delete();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
module.exports = StageInstanceManager;
|