djs-selfbot-v13 3.2.2 → 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/README.md +37 -36
- package/package.json +89 -85
- package/src/WebSocket.js +39 -39
- package/src/client/BaseClient.js +86 -86
- package/src/client/Client.js +934 -836
- 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 -32
- package/src/client/actions/GuildMemberUpdate.js +44 -43
- 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 -52
- 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 -19
- 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 -22
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -12
- 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 -120
- 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 -83
- package/src/errors/DJSError.js +61 -61
- package/src/errors/Messages.js +217 -183
- package/src/errors/index.js +4 -4
- package/src/index.js +172 -159
- 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 -250
- package/src/managers/GuildChannelManager.js +488 -488
- 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 -597
- 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 -160
- 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 -85
- package/src/structures/ClientUser.js +479 -448
- 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 -1227
- 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 -318
- package/src/structures/MessageReaction.js +181 -171
- package/src/structures/MessageSelectMenu.js +141 -140
- package/src/structures/Modal.js +161 -161
- 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 -1101
- 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 -543
- 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 -719
- 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 -1773
- 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 -336
- package/src/util/Permissions.js +202 -202
- 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 -889
- package/typings/enums.d.ts +439 -297
- package/typings/index.d.ts +8247 -7432
- package/typings/rawDataTypes.d.ts +403 -342
- package/src/structures/MessagePoll.js +0 -238
package/src/util/RoleFlags.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const BitField = require('./BitField');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Data structure that makes it easy to interact with an {@link GuildMember#flags} bitfield.
|
|
7
|
-
* @extends {BitField}
|
|
8
|
-
*/
|
|
9
|
-
class RoleFlags extends BitField {}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @name RoleFlags
|
|
13
|
-
* @kind constructor
|
|
14
|
-
* @memberof RoleFlags
|
|
15
|
-
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Numeric guild member flags. All available properties:
|
|
20
|
-
* * `IN_PROMPT`
|
|
21
|
-
* @type {Object}
|
|
22
|
-
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-flags}
|
|
23
|
-
*/
|
|
24
|
-
RoleFlags.FLAGS = {
|
|
25
|
-
IN_PROMPT: 1 << 0,
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Data that can be resolved to give a role flag bitfield. This can be:
|
|
30
|
-
* * A string (see {@link RoleFlags.FLAGS})
|
|
31
|
-
* * A role flag
|
|
32
|
-
* * An instance of RoleFlags
|
|
33
|
-
* * An Array of RoleFlagsResolvable
|
|
34
|
-
* @typedef {string|number|RoleFlags|RoleFlagsResolvable[]} RoleFlagsResolvable
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
module.exports = RoleFlags;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BitField = require('./BitField');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Data structure that makes it easy to interact with an {@link GuildMember#flags} bitfield.
|
|
7
|
+
* @extends {BitField}
|
|
8
|
+
*/
|
|
9
|
+
class RoleFlags extends BitField {}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @name RoleFlags
|
|
13
|
+
* @kind constructor
|
|
14
|
+
* @memberof RoleFlags
|
|
15
|
+
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Numeric guild member flags. All available properties:
|
|
20
|
+
* * `IN_PROMPT`
|
|
21
|
+
* @type {Object}
|
|
22
|
+
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-flags}
|
|
23
|
+
*/
|
|
24
|
+
RoleFlags.FLAGS = {
|
|
25
|
+
IN_PROMPT: 1 << 0,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Data that can be resolved to give a role flag bitfield. This can be:
|
|
30
|
+
* * A string (see {@link RoleFlags.FLAGS})
|
|
31
|
+
* * A role flag
|
|
32
|
+
* * An instance of RoleFlags
|
|
33
|
+
* * An Array of RoleFlagsResolvable
|
|
34
|
+
* @typedef {string|number|RoleFlags|RoleFlagsResolvable[]} RoleFlagsResolvable
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
module.exports = RoleFlags;
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// Discord epoch (2015-01-01T00:00:00.000Z)
|
|
4
|
-
const EPOCH = 1_420_070_400_000;
|
|
5
|
-
let INCREMENT = BigInt(0);
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* A container for useful snowflake-related methods.
|
|
9
|
-
*/
|
|
10
|
-
class SnowflakeUtil extends null {
|
|
11
|
-
/**
|
|
12
|
-
* A {@link https://
|
|
13
|
-
* except the epoch is 2015-01-01T00:00:00.000Z.
|
|
14
|
-
*
|
|
15
|
-
* If we have a snowflake '266241948824764416' we can represent it as binary:
|
|
16
|
-
* ```
|
|
17
|
-
* 64 22 17 12 0
|
|
18
|
-
* 000000111011000111100001101001000101000000 00001 00000 000000000000
|
|
19
|
-
* number of milliseconds since Discord epoch worker pid increment
|
|
20
|
-
* ```
|
|
21
|
-
* @typedef {string} Snowflake
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Generates a Discord snowflake.
|
|
26
|
-
* <info>This hardcodes the worker's id as 1 and the process's id as 0.</info>
|
|
27
|
-
* @param {number|Date} [timestamp=Date.now()] Timestamp or date of the snowflake to generate
|
|
28
|
-
* @returns {Snowflake} The generated snowflake
|
|
29
|
-
*/
|
|
30
|
-
static generate(timestamp = Date.now()) {
|
|
31
|
-
if (timestamp instanceof Date) timestamp = timestamp.getTime();
|
|
32
|
-
if (typeof timestamp !== 'number' || isNaN(timestamp)) {
|
|
33
|
-
throw new TypeError(
|
|
34
|
-
`"timestamp" argument must be a number (received ${isNaN(timestamp) ? 'NaN' : typeof timestamp})`,
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
if (INCREMENT >= 4095n) INCREMENT = BigInt(0);
|
|
38
|
-
|
|
39
|
-
// Assign WorkerId as 1 and ProcessId as 0:
|
|
40
|
-
return ((BigInt(timestamp - EPOCH) << 22n) | (1n << 17n) | INCREMENT++).toString();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* A deconstructed snowflake.
|
|
45
|
-
* @typedef {Object} DeconstructedSnowflake
|
|
46
|
-
* @property {number} timestamp Timestamp the snowflake was created
|
|
47
|
-
* @property {Date} date Date the snowflake was created
|
|
48
|
-
* @property {number} workerId The worker's id in the snowflake
|
|
49
|
-
* @property {number} processId The process's id in the snowflake
|
|
50
|
-
* @property {number} increment Increment in the snowflake
|
|
51
|
-
* @property {string} binary Binary representation of the snowflake
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Deconstructs a Discord snowflake.
|
|
56
|
-
* @param {Snowflake} snowflake Snowflake to deconstruct
|
|
57
|
-
* @returns {DeconstructedSnowflake}
|
|
58
|
-
*/
|
|
59
|
-
static deconstruct(snowflake) {
|
|
60
|
-
const bigIntSnowflake = BigInt(snowflake);
|
|
61
|
-
return {
|
|
62
|
-
timestamp: Number(bigIntSnowflake >> 22n) + EPOCH,
|
|
63
|
-
get date() {
|
|
64
|
-
return new Date(this.timestamp);
|
|
65
|
-
},
|
|
66
|
-
workerId: Number((bigIntSnowflake >> 17n) & 0b11111n),
|
|
67
|
-
processId: Number((bigIntSnowflake >> 12n) & 0b11111n),
|
|
68
|
-
increment: Number(bigIntSnowflake & 0b111111111111n),
|
|
69
|
-
binary: bigIntSnowflake.toString(2).padStart(64, '0'),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Retrieves the timestamp field's value from a Discord snowflake.
|
|
75
|
-
* @param {Snowflake} snowflake Snowflake to get the timestamp value from
|
|
76
|
-
* @returns {number}
|
|
77
|
-
*/
|
|
78
|
-
static timestampFrom(snowflake) {
|
|
79
|
-
return Number(BigInt(snowflake) >> 22n) + EPOCH;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Discord's epoch value (2015-01-01T00:00:00.000Z).
|
|
84
|
-
* @type {number}
|
|
85
|
-
* @readonly
|
|
86
|
-
*/
|
|
87
|
-
static get EPOCH() {
|
|
88
|
-
return EPOCH;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
module.exports = SnowflakeUtil;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Discord epoch (2015-01-01T00:00:00.000Z)
|
|
4
|
+
const EPOCH = 1_420_070_400_000;
|
|
5
|
+
let INCREMENT = BigInt(0);
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A container for useful snowflake-related methods.
|
|
9
|
+
*/
|
|
10
|
+
class SnowflakeUtil extends null {
|
|
11
|
+
/**
|
|
12
|
+
* A {@link https://docs.x.com/resources/fundamentals/x-ids Twitter snowflake},
|
|
13
|
+
* except the epoch is 2015-01-01T00:00:00.000Z.
|
|
14
|
+
*
|
|
15
|
+
* If we have a snowflake '266241948824764416' we can represent it as binary:
|
|
16
|
+
* ```
|
|
17
|
+
* 64 22 17 12 0
|
|
18
|
+
* 000000111011000111100001101001000101000000 00001 00000 000000000000
|
|
19
|
+
* number of milliseconds since Discord epoch worker pid increment
|
|
20
|
+
* ```
|
|
21
|
+
* @typedef {string} Snowflake
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Generates a Discord snowflake.
|
|
26
|
+
* <info>This hardcodes the worker's id as 1 and the process's id as 0.</info>
|
|
27
|
+
* @param {number|Date} [timestamp=Date.now()] Timestamp or date of the snowflake to generate
|
|
28
|
+
* @returns {Snowflake} The generated snowflake
|
|
29
|
+
*/
|
|
30
|
+
static generate(timestamp = Date.now()) {
|
|
31
|
+
if (timestamp instanceof Date) timestamp = timestamp.getTime();
|
|
32
|
+
if (typeof timestamp !== 'number' || isNaN(timestamp)) {
|
|
33
|
+
throw new TypeError(
|
|
34
|
+
`"timestamp" argument must be a number (received ${isNaN(timestamp) ? 'NaN' : typeof timestamp})`,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
if (INCREMENT >= 4095n) INCREMENT = BigInt(0);
|
|
38
|
+
|
|
39
|
+
// Assign WorkerId as 1 and ProcessId as 0:
|
|
40
|
+
return ((BigInt(timestamp - EPOCH) << 22n) | (1n << 17n) | INCREMENT++).toString();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* A deconstructed snowflake.
|
|
45
|
+
* @typedef {Object} DeconstructedSnowflake
|
|
46
|
+
* @property {number} timestamp Timestamp the snowflake was created
|
|
47
|
+
* @property {Date} date Date the snowflake was created
|
|
48
|
+
* @property {number} workerId The worker's id in the snowflake
|
|
49
|
+
* @property {number} processId The process's id in the snowflake
|
|
50
|
+
* @property {number} increment Increment in the snowflake
|
|
51
|
+
* @property {string} binary Binary representation of the snowflake
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Deconstructs a Discord snowflake.
|
|
56
|
+
* @param {Snowflake} snowflake Snowflake to deconstruct
|
|
57
|
+
* @returns {DeconstructedSnowflake}
|
|
58
|
+
*/
|
|
59
|
+
static deconstruct(snowflake) {
|
|
60
|
+
const bigIntSnowflake = BigInt(snowflake);
|
|
61
|
+
return {
|
|
62
|
+
timestamp: Number(bigIntSnowflake >> 22n) + EPOCH,
|
|
63
|
+
get date() {
|
|
64
|
+
return new Date(this.timestamp);
|
|
65
|
+
},
|
|
66
|
+
workerId: Number((bigIntSnowflake >> 17n) & 0b11111n),
|
|
67
|
+
processId: Number((bigIntSnowflake >> 12n) & 0b11111n),
|
|
68
|
+
increment: Number(bigIntSnowflake & 0b111111111111n),
|
|
69
|
+
binary: bigIntSnowflake.toString(2).padStart(64, '0'),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Retrieves the timestamp field's value from a Discord snowflake.
|
|
75
|
+
* @param {Snowflake} snowflake Snowflake to get the timestamp value from
|
|
76
|
+
* @returns {number}
|
|
77
|
+
*/
|
|
78
|
+
static timestampFrom(snowflake) {
|
|
79
|
+
return Number(BigInt(snowflake) >> 22n) + EPOCH;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Discord's epoch value (2015-01-01T00:00:00.000Z).
|
|
84
|
+
* @type {number}
|
|
85
|
+
* @readonly
|
|
86
|
+
*/
|
|
87
|
+
static get EPOCH() {
|
|
88
|
+
return EPOCH;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
module.exports = SnowflakeUtil;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BitField = require('./BitField');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Data structure that makes it easy to interact with a {@link VoiceConnection#speaking}
|
|
7
|
+
* and {@link guildMemberSpeaking} event bitfields.
|
|
8
|
+
* @extends {BitField}
|
|
9
|
+
*/
|
|
10
|
+
class Speaking extends BitField {}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @name Speaking
|
|
14
|
+
* @kind constructor
|
|
15
|
+
* @memberof Speaking
|
|
16
|
+
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Numeric speaking flags. All available properties:
|
|
21
|
+
* * `SPEAKING`
|
|
22
|
+
* * `SOUNDSHARE`
|
|
23
|
+
* * `PRIORITY_SPEAKING`
|
|
24
|
+
* @type {Object}
|
|
25
|
+
* @see {@link https://discord.com/developers/docs/topics/voice-connections#speaking}
|
|
26
|
+
*/
|
|
27
|
+
Speaking.FLAGS = {
|
|
28
|
+
SPEAKING: 1 << 0,
|
|
29
|
+
SOUNDSHARE: 1 << 1,
|
|
30
|
+
PRIORITY_SPEAKING: 1 << 2,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
module.exports = Speaking;
|