discord.js-selfbot-dmallfriends-v13 0.0.1-security → 2.15.2
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-selfbot-dmallfriends-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 +170 -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 +189 -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,360 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const JSONBig = require('json-bigint');
|
4
|
+
const Intents = require('./Intents');
|
5
|
+
const { defaultUA } = require('../util/Constants');
|
6
|
+
/**
|
7
|
+
* Rate limit data
|
8
|
+
* @typedef {Object} RateLimitData
|
9
|
+
* @property {number} timeout Time until this rate limit ends, in milliseconds
|
10
|
+
* @property {number} limit The maximum amount of requests of this endpoint
|
11
|
+
* @property {string} method The HTTP method of this request
|
12
|
+
* @property {string} path The path of the request relative to the HTTP endpoint
|
13
|
+
* @property {string} route The route of the request relative to the HTTP endpoint
|
14
|
+
* @property {boolean} global Whether this is a global rate limit
|
15
|
+
*/
|
16
|
+
|
17
|
+
/**
|
18
|
+
* Whether this rate limit should throw an Error
|
19
|
+
* @typedef {Function} RateLimitQueueFilter
|
20
|
+
* @param {RateLimitData} rateLimitData The data of this rate limit
|
21
|
+
* @returns {boolean|Promise<boolean>}
|
22
|
+
*/
|
23
|
+
|
24
|
+
/**
|
25
|
+
* @typedef {Function} CacheFactory
|
26
|
+
* @param {Function} manager The manager class the cache is being requested from.
|
27
|
+
* @param {Function} holds The class that the cache will hold.
|
28
|
+
* @returns {Collection} A Collection used to store the cache of the manager.
|
29
|
+
*/
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Options for a client.
|
33
|
+
* @typedef {Object} ClientOptions
|
34
|
+
* @property {number|number[]|string} [shards] The shard's id to run, or an array of shard ids. If not specified,
|
35
|
+
* the client will spawn {@link ClientOptions#shardCount} shards. If set to `auto`, it will fetch the
|
36
|
+
* recommended amount of shards from Discord and spawn that amount
|
37
|
+
* @property {number} [closeTimeout=5000] The amount of time in milliseconds to wait for the close frame to be received
|
38
|
+
* from the WebSocket. Don't have this too high/low. Its best to have it between 2_000-6_000 ms.
|
39
|
+
* @property {boolean} [checkUpdate=true] Display module update information on the screen
|
40
|
+
* @property {boolean} [syncStatus=true] Sync state with Discord Client
|
41
|
+
* @property {boolean} [patchVoice=false] Automatically patch @discordjs/voice module (support for call)
|
42
|
+
* @property {string} [captchaService=null] Captcha service to use for solving captcha {@link captchaServices}
|
43
|
+
* @property {string} [captchaKey=null] Captcha service key
|
44
|
+
* @property {string} [captchaRetryLimit=3] Captcha retry limit
|
45
|
+
* @property {string} [password=null] Your Discord account password
|
46
|
+
* @property {boolean} [usingNewAttachmentAPI=true] Use new attachment API
|
47
|
+
* @property {string} [interactionTimeout=15000] The amount of time in milliseconds to wait for an interaction response, before rejecting
|
48
|
+
* @property {boolean} [autoRedeemNitro=false] Automaticlly redeems nitro codes <NOTE: there is no cooldown on the auto redeem>
|
49
|
+
* @property {string} [proxy] Proxy to use for the WebSocket + REST connection (proxy-agent uri type) {@link https://www.npmjs.com/package/proxy-agent}.
|
50
|
+
* @property {boolean} [DMSync=false] Automatically synchronize call status (DM and group) at startup (event synchronization) [Warning: May cause rate limit to gateway)
|
51
|
+
* @property {number} [shardCount=1] The total amount of shards used by all processes of this bot
|
52
|
+
* (e.g. recommended shard count, shard count of the ShardingManager)
|
53
|
+
* @property {CacheFactory} [makeCache] Function to create a cache.
|
54
|
+
* You can use your own function, or the {@link Options} class to customize the Collection used for the cache.
|
55
|
+
* <warn>Overriding the cache used in `GuildManager`, `ChannelManager`, `GuildChannelManager`, `RoleManager`,
|
56
|
+
* and `PermissionOverwriteManager` is unsupported and **will** break functionality</warn>
|
57
|
+
* @property {number} [messageCacheLifetime=0] DEPRECATED: Pass `lifetime` to `sweepers.messages` instead.
|
58
|
+
* How long a message should stay in the cache until it is considered sweepable (in seconds, 0 for forever)
|
59
|
+
* @property {number} [messageSweepInterval=0] DEPRECATED: Pass `interval` to `sweepers.messages` instead.
|
60
|
+
* How frequently to remove messages from the cache that are older than the message cache lifetime
|
61
|
+
* (in seconds, 0 for never)
|
62
|
+
* @property {MessageMentionOptions} [allowedMentions] Default value for {@link MessageOptions#allowedMentions}
|
63
|
+
* @property {number} [invalidRequestWarningInterval=0] The number of invalid REST requests (those that return
|
64
|
+
* 401, 403, or 429) in a 10 minute window between emitted warnings (0 for no warnings). That is, if set to 500,
|
65
|
+
* warnings will be emitted at invalid request number 500, 1000, 1500, and so on.
|
66
|
+
* @property {PartialType[]} [partials=['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT']] Structures allowed to be partial. This means events can be emitted even when
|
67
|
+
* they're missing all the data for a particular structure. See the "Partial Structures" topic on the
|
68
|
+
* [guide](https://discordjs.guide/popular-topics/partials.html) for some
|
69
|
+
* important usage information, as partials require you to put checks in place when handling data.
|
70
|
+
* @property {number} [restWsBridgeTimeout=5000] Maximum time permitted between REST responses and their
|
71
|
+
* corresponding WebSocket events
|
72
|
+
* @property {number} [restTimeOffset=500] Extra time in milliseconds to wait before continuing to make REST
|
73
|
+
* requests (higher values will reduce rate-limiting errors on bad connections)
|
74
|
+
* @property {number} [restRequestTimeout=15000] Time to wait before cancelling a REST request, in milliseconds
|
75
|
+
* @property {number} [restSweepInterval=60] How frequently to delete inactive request buckets, in seconds
|
76
|
+
* (or 0 for never)
|
77
|
+
* @property {number} [restGlobalRateLimit=0] How many requests to allow sending per second (0 for unlimited, 50 for
|
78
|
+
* the standard global limit used by Discord)
|
79
|
+
* @property {string[]|RateLimitQueueFilter} [rejectOnRateLimit] Decides how rate limits and pre-emptive throttles
|
80
|
+
* should be handled. If this option is an array containing the prefix of the request route (e.g. /channels to match any
|
81
|
+
* route starting with /channels, such as /channels/222197033908436994/messages) or a function returning true, a
|
82
|
+
* {@link RateLimitError} will be thrown. Otherwise the request will be queued for later
|
83
|
+
* @property {number} [retryLimit=1] How many times to retry on 5XX errors
|
84
|
+
* (Infinity for an indefinite amount of retries)
|
85
|
+
* @property {boolean} [failIfNotExists=true] Default value for {@link ReplyMessageOptions#failIfNotExists}
|
86
|
+
* @property {string[]} [userAgentSuffix] An array of additional bot info to be appended to the end of the required
|
87
|
+
* [User Agent](https://discord.com/developers/docs/reference#user-agent) header
|
88
|
+
* @property {PresenceData} [presence={}] Presence data to use upon login
|
89
|
+
* @property {IntentsResolvable} [intents=131071] Intents to enable for this connection (but not using)
|
90
|
+
* @property {number} [waitGuildTimeout=15000] Time in milliseconds that Clients with the GUILDS intent should wait for
|
91
|
+
* @property {number} [messageCreateEventGuildTimeout=100] Time in milliseconds that Clients to register for messages with each guild
|
92
|
+
* missing guilds to be received before starting the bot. If not specified, the default is 100 milliseconds.
|
93
|
+
* @property {SweeperOptions} [sweepers={}] Options for cache sweeping
|
94
|
+
* @property {WebsocketOptions} [ws] Options for the WebSocket
|
95
|
+
* @property {HTTPOptions} [http] HTTP options
|
96
|
+
* @property {CustomCaptchaSolver} [captchaSolver] Function to solve a captcha (custom)
|
97
|
+
*/
|
98
|
+
|
99
|
+
/**
|
100
|
+
* Function to solve a captcha
|
101
|
+
* @typedef {function} CustomCaptchaSolver
|
102
|
+
* @param {Captcha} captcha The captcha to solve
|
103
|
+
* @param {string} userAgent The user agent to use for the request
|
104
|
+
* @returns {Promise<string>} hcaptcha token
|
105
|
+
*/
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Options for {@link Sweepers} defining the behavior of cache sweeping
|
109
|
+
* @typedef {Object<SweeperKey, SweepOptions>} SweeperOptions
|
110
|
+
*/
|
111
|
+
|
112
|
+
/**
|
113
|
+
* Options for sweeping a single type of item from cache
|
114
|
+
* @typedef {Object} SweepOptions
|
115
|
+
* @property {number} interval The interval (in seconds) at which to perform sweeping of the item
|
116
|
+
* @property {number} [lifetime] How long an item should stay in cache until it is considered sweepable.
|
117
|
+
* <warn>This property is only valid for the `invites`, `messages`, and `threads` keys. The `filter` property
|
118
|
+
* is mutually exclusive to this property and takes priority</warn>
|
119
|
+
* @property {GlobalSweepFilter} filter The function used to determine the function passed to the sweep method
|
120
|
+
* <info>This property is optional when the key is `invites`, `messages`, or `threads` and `lifetime` is set</info>
|
121
|
+
*/
|
122
|
+
|
123
|
+
/**
|
124
|
+
* WebSocket options (these are left as snake_case to match the API)
|
125
|
+
* @typedef {Object} WebsocketOptions
|
126
|
+
* @property {boolean} [compress=false] Whether to compress data sent on the connection
|
127
|
+
* @property {WebSocketProperties} [properties] Properties to identify the client with
|
128
|
+
*/
|
129
|
+
|
130
|
+
/**
|
131
|
+
* HTTPS Agent options.
|
132
|
+
* @typedef {Object} AgentOptions
|
133
|
+
* @see {@link https://nodejs.org/api/https.html#https_class_https_agent}
|
134
|
+
* @see {@link https://nodejs.org/api/http.html#http_new_agent_options}
|
135
|
+
*/
|
136
|
+
|
137
|
+
/**
|
138
|
+
* HTTP options
|
139
|
+
* @typedef {Object} HTTPOptions
|
140
|
+
* @property {number} [version=9] API version to use
|
141
|
+
* @property {AgentOptions} [agent={}] HTTPS Agent options
|
142
|
+
* @property {string} [api='https://discord.com/api'] Base URL of the API
|
143
|
+
* @property {string} [cdn='https://cdn.discordapp.com'] Base URL of the CDN
|
144
|
+
* @property {string} [invite='https://discord.gg'] Base URL of invites
|
145
|
+
* @property {string} [template='https://discord.new'] Base URL of templates
|
146
|
+
* @property {Object} [headers] Additional headers to send for all API requests
|
147
|
+
* @property {string} [scheduledEvent='https://discord.com/events'] Base URL of guild scheduled events
|
148
|
+
*/
|
149
|
+
|
150
|
+
/**
|
151
|
+
* Contains various utilities for client options.
|
152
|
+
*/
|
153
|
+
class Options extends null {
|
154
|
+
/**
|
155
|
+
* The default client options.
|
156
|
+
* @returns {ClientOptions}
|
157
|
+
*/
|
158
|
+
static createDefault() {
|
159
|
+
return {
|
160
|
+
jsonTransformer: object => JSONBig.stringify(object),
|
161
|
+
captchaSolver: captcha => Promise.reject(new Error('CAPTCHA_SOLVER_NOT_IMPLEMENTED', captcha)),
|
162
|
+
closeTimeout: 5_000,
|
163
|
+
checkUpdate: true,
|
164
|
+
syncStatus: true,
|
165
|
+
autoRedeemNitro: false,
|
166
|
+
captchaService: '',
|
167
|
+
captchaKey: null,
|
168
|
+
captchaRetryLimit: 3,
|
169
|
+
DMSync: false,
|
170
|
+
patchVoice: false,
|
171
|
+
password: null,
|
172
|
+
usingNewAttachmentAPI: true,
|
173
|
+
interactionTimeout: 15_000,
|
174
|
+
waitGuildTimeout: 15_000,
|
175
|
+
messageCreateEventGuildTimeout: 100,
|
176
|
+
shardCount: 1,
|
177
|
+
makeCache: this.cacheWithLimits(this.defaultMakeCacheSettings),
|
178
|
+
messageCacheLifetime: 0,
|
179
|
+
messageSweepInterval: 0,
|
180
|
+
invalidRequestWarningInterval: 0,
|
181
|
+
intents: Intents.ALL,
|
182
|
+
partials: ['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT'], // Enable the partials
|
183
|
+
restWsBridgeTimeout: 5_000,
|
184
|
+
restRequestTimeout: 15_000,
|
185
|
+
restGlobalRateLimit: 0,
|
186
|
+
retryLimit: 1,
|
187
|
+
restTimeOffset: 500,
|
188
|
+
restSweepInterval: 60,
|
189
|
+
failIfNotExists: false,
|
190
|
+
userAgentSuffix: [],
|
191
|
+
presence: { status: 'online', since: 0, activities: [], afk: false },
|
192
|
+
sweepers: {},
|
193
|
+
proxy: '',
|
194
|
+
ws: {
|
195
|
+
compress: false,
|
196
|
+
properties: {
|
197
|
+
os: 'Windows',
|
198
|
+
browser: 'Discord Client',
|
199
|
+
release_channel: 'stable',
|
200
|
+
client_version: '1.0.9013',
|
201
|
+
os_version: '10.0.22621',
|
202
|
+
os_arch: 'x64',
|
203
|
+
system_locale: 'en-US',
|
204
|
+
browser_user_agent:
|
205
|
+
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/1.0.9013 Chrome/108.0.5359.215 Electron/22.3.2 Safari/537.36',
|
206
|
+
browser_version: '22.3.2',
|
207
|
+
client_build_number: 199933,
|
208
|
+
native_build_number: 32266,
|
209
|
+
client_event_source: null,
|
210
|
+
design_id: 0,
|
211
|
+
},
|
212
|
+
version: 9,
|
213
|
+
client_state: {
|
214
|
+
guild_versions: {},
|
215
|
+
highest_last_message_id: '0',
|
216
|
+
read_state_version: 0,
|
217
|
+
user_guild_settings_version: -1,
|
218
|
+
user_settings_version: -1,
|
219
|
+
private_channels_version: '0',
|
220
|
+
api_code_version: 0,
|
221
|
+
},
|
222
|
+
},
|
223
|
+
http: {
|
224
|
+
agent: {},
|
225
|
+
headers: {
|
226
|
+
'User-Agent': defaultUA,
|
227
|
+
},
|
228
|
+
version: 9,
|
229
|
+
api: 'https://discord.com/api',
|
230
|
+
cdn: 'https://cdn.discordapp.com',
|
231
|
+
invite: 'https://discord.gg',
|
232
|
+
template: 'https://discord.new',
|
233
|
+
scheduledEvent: 'https://discord.com/events',
|
234
|
+
},
|
235
|
+
};
|
236
|
+
}
|
237
|
+
|
238
|
+
/**
|
239
|
+
* Create a cache factory using predefined settings to sweep or limit.
|
240
|
+
* @param {Object<string, LimitedCollectionOptions|number>} [settings={}] Settings passed to the relevant constructor.
|
241
|
+
* If no setting is provided for a manager, it uses Collection.
|
242
|
+
* If a number is provided for a manager, it uses that number as the max size for a LimitedCollection.
|
243
|
+
* If LimitedCollectionOptions are provided for a manager, it uses those settings to form a LimitedCollection.
|
244
|
+
* @returns {CacheFactory}
|
245
|
+
* @example
|
246
|
+
* // Store up to 200 messages per channel and discard archived threads if they were archived more than 4 hours ago.
|
247
|
+
* // Note archived threads will remain in the guild and client caches with these settings
|
248
|
+
* Options.cacheWithLimits({
|
249
|
+
* MessageManager: 200,
|
250
|
+
* ThreadManager: {
|
251
|
+
* sweepInterval: 3600,
|
252
|
+
* sweepFilter: LimitedCollection.filterByLifetime({
|
253
|
+
* getComparisonTimestamp: e => e.archiveTimestamp,
|
254
|
+
* excludeFromSweep: e => !e.archived,
|
255
|
+
* }),
|
256
|
+
* },
|
257
|
+
* });
|
258
|
+
* @example
|
259
|
+
* // Sweep messages every 5 minutes, removing messages that have not been edited or created in the last 30 minutes
|
260
|
+
* Options.cacheWithLimits({
|
261
|
+
* // Keep default thread sweeping behavior
|
262
|
+
* ...Options.defaultMakeCacheSettings,
|
263
|
+
* // Override MessageManager
|
264
|
+
* MessageManager: {
|
265
|
+
* sweepInterval: 300,
|
266
|
+
* sweepFilter: LimitedCollection.filterByLifetime({
|
267
|
+
* lifetime: 1800,
|
268
|
+
* getComparisonTimestamp: e => e.editedTimestamp ?? e.createdTimestamp,
|
269
|
+
* })
|
270
|
+
* }
|
271
|
+
* });
|
272
|
+
*/
|
273
|
+
static cacheWithLimits(settings = {}) {
|
274
|
+
const { Collection } = require('@discordjs/collection');
|
275
|
+
const LimitedCollection = require('./LimitedCollection');
|
276
|
+
|
277
|
+
return manager => {
|
278
|
+
const setting = settings[manager.name];
|
279
|
+
/* eslint-disable-next-line eqeqeq */
|
280
|
+
if (setting == null) {
|
281
|
+
return new Collection();
|
282
|
+
}
|
283
|
+
if (typeof setting === 'number') {
|
284
|
+
if (setting === Infinity) {
|
285
|
+
return new Collection();
|
286
|
+
}
|
287
|
+
return new LimitedCollection({ maxSize: setting });
|
288
|
+
}
|
289
|
+
/* eslint-disable eqeqeq */
|
290
|
+
const noSweeping =
|
291
|
+
setting.sweepFilter == null ||
|
292
|
+
setting.sweepInterval == null ||
|
293
|
+
setting.sweepInterval <= 0 ||
|
294
|
+
setting.sweepInterval === Infinity;
|
295
|
+
const noLimit = setting.maxSize == null || setting.maxSize === Infinity;
|
296
|
+
/* eslint-enable eqeqeq */
|
297
|
+
if (noSweeping && noLimit) {
|
298
|
+
return new Collection();
|
299
|
+
}
|
300
|
+
return new LimitedCollection(setting);
|
301
|
+
};
|
302
|
+
}
|
303
|
+
|
304
|
+
/**
|
305
|
+
* Create a cache factory that always caches everything.
|
306
|
+
* @returns {CacheFactory}
|
307
|
+
*/
|
308
|
+
static cacheEverything() {
|
309
|
+
const { Collection } = require('@discordjs/collection');
|
310
|
+
return () => new Collection();
|
311
|
+
}
|
312
|
+
|
313
|
+
/**
|
314
|
+
* The default settings passed to {@link ClientOptions.makeCache}.
|
315
|
+
* The caches that this changes are:
|
316
|
+
* * `MessageManager` - Limit to 200 messages
|
317
|
+
* * `ChannelManager` - Sweep archived threads
|
318
|
+
* * `GuildChannelManager` - Sweep archived threads
|
319
|
+
* * `ThreadManager` - Sweep archived threads
|
320
|
+
* <info>If you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.
|
321
|
+
* `makeCache: Options.cacheWithLimits({ ...Options.defaultMakeCacheSettings, ReactionManager: 0 })`</info>
|
322
|
+
* @type {Object<string, LimitedCollectionOptions|number>}
|
323
|
+
*/
|
324
|
+
static get defaultMakeCacheSettings() {
|
325
|
+
return {
|
326
|
+
MessageManager: 200,
|
327
|
+
/*
|
328
|
+
ChannelManager: {
|
329
|
+
sweepInterval: 3600,
|
330
|
+
sweepFilter: require('./Util').archivedThreadSweepFilter(),
|
331
|
+
},
|
332
|
+
GuildChannelManager: {
|
333
|
+
sweepInterval: 3600,
|
334
|
+
sweepFilter: require('./Util').archivedThreadSweepFilter(),
|
335
|
+
},
|
336
|
+
ThreadManager: {
|
337
|
+
sweepInterval: 3600,
|
338
|
+
sweepFilter: require('./Util').archivedThreadSweepFilter(),
|
339
|
+
},
|
340
|
+
*/
|
341
|
+
};
|
342
|
+
}
|
343
|
+
}
|
344
|
+
|
345
|
+
/**
|
346
|
+
* The default settings passed to {@link ClientOptions.sweepers}.
|
347
|
+
* The sweepers that this changes are:
|
348
|
+
* * `threads` - Sweep archived threads every hour, removing those archived more than 4 hours ago
|
349
|
+
* <info>If you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.
|
350
|
+
* `sweepers: { ...Options.defaultSweeperSettings, messages: { interval: 300, lifetime: 600 } }`</info>
|
351
|
+
* @type {SweeperOptions}
|
352
|
+
*/
|
353
|
+
Options.defaultSweeperSettings = {
|
354
|
+
threads: {
|
355
|
+
interval: 3600,
|
356
|
+
lifetime: 14400,
|
357
|
+
},
|
358
|
+
};
|
359
|
+
|
360
|
+
module.exports = Options;
|
@@ -0,0 +1,187 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const BitField = require('./BitField');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Data structure that makes it easy to interact with a permission bitfield. All {@link GuildMember}s have a set of
|
7
|
+
* permissions in their guild, and each channel in the guild may also have {@link PermissionOverwrites} for the member
|
8
|
+
* that override their default permissions.
|
9
|
+
* @extends {BitField}
|
10
|
+
*/
|
11
|
+
class Permissions extends BitField {
|
12
|
+
/**
|
13
|
+
* Bitfield of the packed bits
|
14
|
+
* @type {bigint}
|
15
|
+
* @name Permissions#bitfield
|
16
|
+
*/
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Data that can be resolved to give a permission number. This can be:
|
20
|
+
* * A string (see {@link Permissions.FLAGS})
|
21
|
+
* * A permission number
|
22
|
+
* * An instance of Permissions
|
23
|
+
* * An Array of PermissionResolvable
|
24
|
+
* @typedef {string|bigint|Permissions|PermissionResolvable[]} PermissionResolvable
|
25
|
+
*/
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Gets all given bits that are missing from the bitfield.
|
29
|
+
* @param {BitFieldResolvable} bits Bit(s) to check for
|
30
|
+
* @param {boolean} [checkAdmin=true] Whether to allow the administrator permission to override
|
31
|
+
* @returns {string[]}
|
32
|
+
*/
|
33
|
+
missing(bits, checkAdmin = true) {
|
34
|
+
return checkAdmin && this.has(this.constructor.FLAGS.ADMINISTRATOR) ? [] : super.missing(bits);
|
35
|
+
}
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Checks whether the bitfield has a permission, or any of multiple permissions.
|
39
|
+
* @param {PermissionResolvable} permission Permission(s) to check for
|
40
|
+
* @param {boolean} [checkAdmin=true] Whether to allow the administrator permission to override
|
41
|
+
* @returns {boolean}
|
42
|
+
*/
|
43
|
+
any(permission, checkAdmin = true) {
|
44
|
+
return (checkAdmin && super.has(this.constructor.FLAGS.ADMINISTRATOR)) || super.any(permission);
|
45
|
+
}
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Checks whether the bitfield has a permission, or multiple permissions.
|
49
|
+
* @param {PermissionResolvable} permission Permission(s) to check for
|
50
|
+
* @param {boolean} [checkAdmin=true] Whether to allow the administrator permission to override
|
51
|
+
* @returns {boolean}
|
52
|
+
*/
|
53
|
+
has(permission, checkAdmin = true) {
|
54
|
+
return (checkAdmin && super.has(this.constructor.FLAGS.ADMINISTRATOR)) || super.has(permission);
|
55
|
+
}
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Gets an {@link Array} of bitfield names based on the permissions available.
|
59
|
+
* @returns {string[]}
|
60
|
+
*/
|
61
|
+
toArray() {
|
62
|
+
return super.toArray(false);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Numeric permission flags. All available properties:
|
68
|
+
* * `CREATE_INSTANT_INVITE` (create invitations to the guild)
|
69
|
+
* * `KICK_MEMBERS`
|
70
|
+
* * `BAN_MEMBERS`
|
71
|
+
* * `ADMINISTRATOR` (implicitly has *all* permissions, and bypasses all channel overwrites)
|
72
|
+
* * `MANAGE_CHANNELS` (edit and reorder channels)
|
73
|
+
* * `MANAGE_GUILD` (edit the guild information, region, etc.)
|
74
|
+
* * `ADD_REACTIONS` (add new reactions to messages)
|
75
|
+
* * `VIEW_AUDIT_LOG`
|
76
|
+
* * `PRIORITY_SPEAKER`
|
77
|
+
* * `STREAM`
|
78
|
+
* * `VIEW_CHANNEL`
|
79
|
+
* * `SEND_MESSAGES`
|
80
|
+
* * `SEND_TTS_MESSAGES`
|
81
|
+
* * `MANAGE_MESSAGES` (delete messages and reactions)
|
82
|
+
* * `EMBED_LINKS` (links posted will have a preview embedded)
|
83
|
+
* * `ATTACH_FILES`
|
84
|
+
* * `READ_MESSAGE_HISTORY` (view messages that were posted prior to opening Discord)
|
85
|
+
* * `MENTION_EVERYONE`
|
86
|
+
* * `USE_EXTERNAL_EMOJIS` (use emojis from different guilds)
|
87
|
+
* * `VIEW_GUILD_INSIGHTS`
|
88
|
+
* * `CONNECT` (connect to a voice channel)
|
89
|
+
* * `SPEAK` (speak in a voice channel)
|
90
|
+
* * `MUTE_MEMBERS` (mute members across all voice channels)
|
91
|
+
* * `DEAFEN_MEMBERS` (deafen members across all voice channels)
|
92
|
+
* * `MOVE_MEMBERS` (move members between voice channels)
|
93
|
+
* * `USE_VAD` (use voice activity detection)
|
94
|
+
* * `CHANGE_NICKNAME`
|
95
|
+
* * `MANAGE_NICKNAMES` (change other members' nicknames)
|
96
|
+
* * `MANAGE_ROLES`
|
97
|
+
* * `MANAGE_WEBHOOKS`
|
98
|
+
* * `MANAGE_EMOJIS_AND_STICKERS`
|
99
|
+
* * `USE_APPLICATION_COMMANDS`
|
100
|
+
* * `REQUEST_TO_SPEAK`
|
101
|
+
* * `MANAGE_EVENTS`
|
102
|
+
* * `MANAGE_THREADS`
|
103
|
+
* * `USE_PUBLIC_THREADS` (deprecated)
|
104
|
+
* * `CREATE_PUBLIC_THREADS`
|
105
|
+
* * `USE_PRIVATE_THREADS` (deprecated)
|
106
|
+
* * `CREATE_PRIVATE_THREADS`
|
107
|
+
* * `USE_EXTERNAL_STICKERS` (use stickers from different guilds)
|
108
|
+
* * `SEND_MESSAGES_IN_THREADS`
|
109
|
+
* * `START_EMBEDDED_ACTIVITIES`
|
110
|
+
* * `MODERATE_MEMBERS`
|
111
|
+
* * `VIEW_CREATOR_MONETIZATION_ANALYTICS`
|
112
|
+
* * `USE_SOUNDBOARD`
|
113
|
+
* @type {Object<string, bigint>}
|
114
|
+
* @see {@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags}
|
115
|
+
*/
|
116
|
+
Permissions.FLAGS = {
|
117
|
+
CREATE_INSTANT_INVITE: 1n << 0n,
|
118
|
+
KICK_MEMBERS: 1n << 1n,
|
119
|
+
BAN_MEMBERS: 1n << 2n,
|
120
|
+
ADMINISTRATOR: 1n << 3n,
|
121
|
+
MANAGE_CHANNELS: 1n << 4n,
|
122
|
+
MANAGE_GUILD: 1n << 5n,
|
123
|
+
ADD_REACTIONS: 1n << 6n,
|
124
|
+
VIEW_AUDIT_LOG: 1n << 7n,
|
125
|
+
PRIORITY_SPEAKER: 1n << 8n,
|
126
|
+
STREAM: 1n << 9n,
|
127
|
+
VIEW_CHANNEL: 1n << 10n,
|
128
|
+
SEND_MESSAGES: 1n << 11n,
|
129
|
+
SEND_TTS_MESSAGES: 1n << 12n,
|
130
|
+
MANAGE_MESSAGES: 1n << 13n,
|
131
|
+
EMBED_LINKS: 1n << 14n,
|
132
|
+
ATTACH_FILES: 1n << 15n,
|
133
|
+
READ_MESSAGE_HISTORY: 1n << 16n,
|
134
|
+
MENTION_EVERYONE: 1n << 17n,
|
135
|
+
USE_EXTERNAL_EMOJIS: 1n << 18n,
|
136
|
+
VIEW_GUILD_INSIGHTS: 1n << 19n,
|
137
|
+
CONNECT: 1n << 20n,
|
138
|
+
SPEAK: 1n << 21n,
|
139
|
+
MUTE_MEMBERS: 1n << 22n,
|
140
|
+
DEAFEN_MEMBERS: 1n << 23n,
|
141
|
+
MOVE_MEMBERS: 1n << 24n,
|
142
|
+
USE_VAD: 1n << 25n,
|
143
|
+
CHANGE_NICKNAME: 1n << 26n,
|
144
|
+
MANAGE_NICKNAMES: 1n << 27n,
|
145
|
+
MANAGE_ROLES: 1n << 28n,
|
146
|
+
MANAGE_WEBHOOKS: 1n << 29n,
|
147
|
+
MANAGE_EMOJIS_AND_STICKERS: 1n << 30n,
|
148
|
+
USE_APPLICATION_COMMANDS: 1n << 31n,
|
149
|
+
REQUEST_TO_SPEAK: 1n << 32n,
|
150
|
+
MANAGE_EVENTS: 1n << 33n,
|
151
|
+
MANAGE_THREADS: 1n << 34n,
|
152
|
+
// TODO: Remove deprecated USE_*_THREADS flags in v14
|
153
|
+
USE_PUBLIC_THREADS: 1n << 35n,
|
154
|
+
CREATE_PUBLIC_THREADS: 1n << 35n,
|
155
|
+
USE_PRIVATE_THREADS: 1n << 36n,
|
156
|
+
CREATE_PRIVATE_THREADS: 1n << 36n,
|
157
|
+
USE_EXTERNAL_STICKERS: 1n << 37n,
|
158
|
+
SEND_MESSAGES_IN_THREADS: 1n << 38n,
|
159
|
+
START_EMBEDDED_ACTIVITIES: 1n << 39n,
|
160
|
+
MODERATE_MEMBERS: 1n << 40n,
|
161
|
+
VIEW_CREATOR_MONETIZATION_ANALYTICS: 1n << 41n,
|
162
|
+
USE_SOUNDBOARD: 1n << 42n,
|
163
|
+
SEND_VOICE_MESSAGES: 1n << 46n,
|
164
|
+
};
|
165
|
+
|
166
|
+
/**
|
167
|
+
* Bitfield representing every permission combined
|
168
|
+
* @type {bigint}
|
169
|
+
*/
|
170
|
+
Permissions.ALL = Object.values(Permissions.FLAGS).reduce((all, p) => all | p, 0n);
|
171
|
+
|
172
|
+
/**
|
173
|
+
* Bitfield representing the default permissions for users
|
174
|
+
* @type {bigint}
|
175
|
+
*/
|
176
|
+
Permissions.DEFAULT = BigInt(104324673);
|
177
|
+
|
178
|
+
/**
|
179
|
+
* Bitfield representing the permissions required for moderators of stage channels
|
180
|
+
* @type {bigint}
|
181
|
+
*/
|
182
|
+
Permissions.STAGE_MODERATOR =
|
183
|
+
Permissions.FLAGS.MANAGE_CHANNELS | Permissions.FLAGS.MUTE_MEMBERS | Permissions.FLAGS.MOVE_MEMBERS;
|
184
|
+
|
185
|
+
Permissions.defaultBit = BigInt(0);
|
186
|
+
|
187
|
+
module.exports = Permissions;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const BitField = require('./BitField');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Data structure that makes it easy to interact with an {@link PremiumUsageFlags#flags} bitfield.
|
7
|
+
* @extends {BitField}
|
8
|
+
*/
|
9
|
+
class PremiumUsageFlags extends BitField {}
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @name PremiumUsageFlags
|
13
|
+
* @kind constructor
|
14
|
+
* @memberof PremiumUsageFlags
|
15
|
+
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
16
|
+
*/
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Numeric the Discord premium usage flags. All available properties:
|
20
|
+
* * `PREMIUM_DISCRIMINATOR`
|
21
|
+
* * `ANIMATED_AVATAR`
|
22
|
+
* * `PROFILE_BANNER`
|
23
|
+
* @type {Object}
|
24
|
+
*/
|
25
|
+
PremiumUsageFlags.FLAGS = {
|
26
|
+
PREMIUM_DISCRIMINATOR: 1 << 0,
|
27
|
+
ANIMATED_AVATAR: 1 << 1,
|
28
|
+
PROFILE_BANNER: 1 << 2,
|
29
|
+
};
|
30
|
+
|
31
|
+
module.exports = PremiumUsageFlags;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const BitField = require('./BitField');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Data structure that makes it easy to interact with an {@link PurchasedFlags#flags} bitfield.
|
7
|
+
* @extends {BitField}
|
8
|
+
*/
|
9
|
+
class PurchasedFlags extends BitField {}
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @name PurchasedFlags
|
13
|
+
* @kind constructor
|
14
|
+
* @memberof PurchasedFlags
|
15
|
+
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
16
|
+
*/
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Numeric the Discord purchased flags. All available properties:
|
20
|
+
* * `NITRO_CLASSIC`
|
21
|
+
* * `NITRO`
|
22
|
+
* * `GUILD_BOOST`
|
23
|
+
* @type {Object}
|
24
|
+
*/
|
25
|
+
PurchasedFlags.FLAGS = {
|
26
|
+
NITRO_CLASSIC: 1 << 0,
|
27
|
+
NITRO: 1 << 1,
|
28
|
+
GUILD_BOOST: 1 << 2,
|
29
|
+
};
|
30
|
+
|
31
|
+
module.exports = PurchasedFlags;
|