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
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const CachedManager = require('./CachedManager');
|
|
4
|
-
const GuildEmoji = require('../structures/GuildEmoji');
|
|
5
|
-
const ReactionEmoji = require('../structures/ReactionEmoji');
|
|
6
|
-
const { parseEmoji } = require('../util/Util');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Holds methods to resolve GuildEmojis and stores their cache.
|
|
10
|
-
* @extends {CachedManager}
|
|
11
|
-
*/
|
|
12
|
-
class BaseGuildEmojiManager extends CachedManager {
|
|
13
|
-
constructor(client, iterable) {
|
|
14
|
-
super(client, GuildEmoji, iterable);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* The cache of GuildEmojis
|
|
19
|
-
* @type {Collection<Snowflake, GuildEmoji>}
|
|
20
|
-
* @name BaseGuildEmojiManager#cache
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Data that can be resolved into a GuildEmoji object. This can be:
|
|
25
|
-
* * A Snowflake
|
|
26
|
-
* * A GuildEmoji object
|
|
27
|
-
* * A ReactionEmoji object
|
|
28
|
-
* @typedef {Snowflake|GuildEmoji|ReactionEmoji} EmojiResolvable
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Resolves an EmojiResolvable to an Emoji object.
|
|
33
|
-
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
34
|
-
* @returns {?GuildEmoji}
|
|
35
|
-
*/
|
|
36
|
-
resolve(emoji) {
|
|
37
|
-
if (emoji instanceof ReactionEmoji) return
|
|
38
|
-
return super.resolve(emoji);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Resolves an EmojiResolvable to an Emoji id string.
|
|
43
|
-
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
44
|
-
* @returns {?Snowflake}
|
|
45
|
-
*/
|
|
46
|
-
resolveId(emoji) {
|
|
47
|
-
if (emoji instanceof ReactionEmoji) return emoji.id;
|
|
48
|
-
return super.resolveId(emoji);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Data that can be resolved to give an emoji identifier. This can be:
|
|
53
|
-
* * An EmojiResolvable
|
|
54
|
-
* * The `<a:name:id>`, `<:name:id>`, `a:name:id` or `name:id` emoji identifier string of an emoji
|
|
55
|
-
* * The Unicode representation of an emoji
|
|
56
|
-
* @typedef {string|EmojiResolvable} EmojiIdentifierResolvable
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Resolves an EmojiResolvable to an emoji identifier.
|
|
61
|
-
* @param {EmojiIdentifierResolvable} emoji The emoji resolvable to resolve
|
|
62
|
-
* @returns {?string}
|
|
63
|
-
*/
|
|
64
|
-
resolveIdentifier(emoji) {
|
|
65
|
-
const emojiResolvable = this.resolve(emoji);
|
|
66
|
-
if (emojiResolvable) return emojiResolvable.identifier;
|
|
67
|
-
if (emoji instanceof ReactionEmoji) return emoji.identifier;
|
|
68
|
-
if (typeof emoji === 'string') {
|
|
69
|
-
const res = parseEmoji(emoji);
|
|
70
|
-
if (res?.name.length) {
|
|
71
|
-
emoji = `${res.animated ? 'a:' : ''}${res.name}${res.id ? `:${res.id}` : ''}`;
|
|
72
|
-
}
|
|
73
|
-
if (!emoji.includes('%')) return encodeURIComponent(emoji);
|
|
74
|
-
return emoji;
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
module.exports = BaseGuildEmojiManager;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const CachedManager = require('./CachedManager');
|
|
4
|
+
const GuildEmoji = require('../structures/GuildEmoji');
|
|
5
|
+
const ReactionEmoji = require('../structures/ReactionEmoji');
|
|
6
|
+
const { parseEmoji } = require('../util/Util');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Holds methods to resolve GuildEmojis and stores their cache.
|
|
10
|
+
* @extends {CachedManager}
|
|
11
|
+
*/
|
|
12
|
+
class BaseGuildEmojiManager extends CachedManager {
|
|
13
|
+
constructor(client, iterable) {
|
|
14
|
+
super(client, GuildEmoji, iterable);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The cache of GuildEmojis
|
|
19
|
+
* @type {Collection<Snowflake, GuildEmoji>}
|
|
20
|
+
* @name BaseGuildEmojiManager#cache
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Data that can be resolved into a GuildEmoji object. This can be:
|
|
25
|
+
* * A Snowflake
|
|
26
|
+
* * A GuildEmoji object
|
|
27
|
+
* * A ReactionEmoji object
|
|
28
|
+
* @typedef {Snowflake|GuildEmoji|ReactionEmoji} EmojiResolvable
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Resolves an EmojiResolvable to an Emoji object.
|
|
33
|
+
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
34
|
+
* @returns {?GuildEmoji}
|
|
35
|
+
*/
|
|
36
|
+
resolve(emoji) {
|
|
37
|
+
if (emoji instanceof ReactionEmoji) return this.cache.get(emoji.id) ?? null;
|
|
38
|
+
return super.resolve(emoji);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Resolves an EmojiResolvable to an Emoji id string.
|
|
43
|
+
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
44
|
+
* @returns {?Snowflake}
|
|
45
|
+
*/
|
|
46
|
+
resolveId(emoji) {
|
|
47
|
+
if (emoji instanceof ReactionEmoji) return emoji.id;
|
|
48
|
+
return super.resolveId(emoji);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Data that can be resolved to give an emoji identifier. This can be:
|
|
53
|
+
* * An EmojiResolvable
|
|
54
|
+
* * The `<a:name:id>`, `<:name:id>`, `a:name:id` or `name:id` emoji identifier string of an emoji
|
|
55
|
+
* * The Unicode representation of an emoji
|
|
56
|
+
* @typedef {string|EmojiResolvable} EmojiIdentifierResolvable
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Resolves an EmojiResolvable to an emoji identifier.
|
|
61
|
+
* @param {EmojiIdentifierResolvable} emoji The emoji resolvable to resolve
|
|
62
|
+
* @returns {?string}
|
|
63
|
+
*/
|
|
64
|
+
resolveIdentifier(emoji) {
|
|
65
|
+
const emojiResolvable = this.resolve(emoji);
|
|
66
|
+
if (emojiResolvable) return emojiResolvable.identifier;
|
|
67
|
+
if (emoji instanceof ReactionEmoji) return emoji.identifier;
|
|
68
|
+
if (typeof emoji === 'string') {
|
|
69
|
+
const res = parseEmoji(emoji);
|
|
70
|
+
if (res?.name.length) {
|
|
71
|
+
emoji = `${res.animated ? 'a:' : ''}${res.name}${res.id ? `:${res.id}` : ''}`;
|
|
72
|
+
}
|
|
73
|
+
if (!emoji.includes('%')) return encodeURIComponent(emoji);
|
|
74
|
+
return emoji;
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
module.exports = BaseGuildEmojiManager;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Manages the API methods of a data model.
|
|
5
|
-
* @abstract
|
|
6
|
-
*/
|
|
7
|
-
class BaseManager {
|
|
8
|
-
constructor(client) {
|
|
9
|
-
/**
|
|
10
|
-
* The client that instantiated this Manager
|
|
11
|
-
* @name BaseManager#client
|
|
12
|
-
* @type {Client}
|
|
13
|
-
* @readonly
|
|
14
|
-
*/
|
|
15
|
-
Object.defineProperty(this, 'client', { value: client });
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
module.exports = BaseManager;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Manages the API methods of a data model.
|
|
5
|
+
* @abstract
|
|
6
|
+
*/
|
|
7
|
+
class BaseManager {
|
|
8
|
+
constructor(client) {
|
|
9
|
+
/**
|
|
10
|
+
* The client that instantiated this Manager
|
|
11
|
+
* @name BaseManager#client
|
|
12
|
+
* @type {Client}
|
|
13
|
+
* @readonly
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(this, 'client', { value: client });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
module.exports = BaseManager;
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { Collection } = require('@discordjs/collection');
|
|
4
|
-
const BaseManager = require('./BaseManager');
|
|
5
|
-
const GuildBoost = require('../structures/GuildBoost');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Manages the API methods of a data model.
|
|
9
|
-
* @extends {CachedManager}
|
|
10
|
-
*/
|
|
11
|
-
class BillingManager extends BaseManager {
|
|
12
|
-
constructor(client) {
|
|
13
|
-
super(client);
|
|
14
|
-
/**
|
|
15
|
-
* All the payment sources of the client
|
|
16
|
-
* @type {Collection<Snowflake, Object>}
|
|
17
|
-
*/
|
|
18
|
-
this.paymentSources = new Collection();
|
|
19
|
-
/**
|
|
20
|
-
* All the guild boosts of the client
|
|
21
|
-
* @type {Collection<Snowflake, GuildBoost>}
|
|
22
|
-
*/
|
|
23
|
-
this.guildBoosts = new Collection();
|
|
24
|
-
/**
|
|
25
|
-
* The current subscription of the client
|
|
26
|
-
* @type {Collection<Snowflake, Object>}
|
|
27
|
-
*/
|
|
28
|
-
this.currentSubscription = new Collection();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Fetches all the payment sources of the client
|
|
33
|
-
* @returns {Collection<Snowflake, Object>}
|
|
34
|
-
*/
|
|
35
|
-
async fetchPaymentSources() {
|
|
36
|
-
// https://discord.com/api/v9/users/@me/billing/payment-sources
|
|
37
|
-
const d = await this.client.api.users('@me').billing['payment-sources'].get();
|
|
38
|
-
// ! TODO: Create a PaymentSource class
|
|
39
|
-
this.paymentSources = new Collection(d.map(s => [s.id, s]));
|
|
40
|
-
return this.paymentSources;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Fetches all the guild boosts of the client
|
|
45
|
-
* @returns {Collection<Snowflake, GuildBoost>}
|
|
46
|
-
*/
|
|
47
|
-
async fetchGuildBoosts() {
|
|
48
|
-
// https://discord.com/api/v9/users/@me/guilds/premium/subscription-slots
|
|
49
|
-
const d = await this.client.api.users('@me').guilds.premium['subscription-slots'].get();
|
|
50
|
-
this.guildBoosts = new Collection(d.map(s => [s.id, new GuildBoost(this.client, s)]));
|
|
51
|
-
return this.guildBoosts;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Fetches the current subscription of the client
|
|
56
|
-
* @returns {Collection<Snowflake, Object>}
|
|
57
|
-
*/
|
|
58
|
-
async fetchCurrentSubscription() {
|
|
59
|
-
// https://discord.com/api/v9/users/@me/billing/subscriptions
|
|
60
|
-
const d = await this.client.api.users('@me').billing.subscriptions.get();
|
|
61
|
-
this.currentSubscription = new Collection(d.map(s => [s.id, s]));
|
|
62
|
-
return this.currentSubscription;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
module.exports = BillingManager;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
|
4
|
+
const BaseManager = require('./BaseManager');
|
|
5
|
+
const GuildBoost = require('../structures/GuildBoost');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Manages the API methods of a data model.
|
|
9
|
+
* @extends {CachedManager}
|
|
10
|
+
*/
|
|
11
|
+
class BillingManager extends BaseManager {
|
|
12
|
+
constructor(client) {
|
|
13
|
+
super(client);
|
|
14
|
+
/**
|
|
15
|
+
* All the payment sources of the client
|
|
16
|
+
* @type {Collection<Snowflake, Object>}
|
|
17
|
+
*/
|
|
18
|
+
this.paymentSources = new Collection();
|
|
19
|
+
/**
|
|
20
|
+
* All the guild boosts of the client
|
|
21
|
+
* @type {Collection<Snowflake, GuildBoost>}
|
|
22
|
+
*/
|
|
23
|
+
this.guildBoosts = new Collection();
|
|
24
|
+
/**
|
|
25
|
+
* The current subscription of the client
|
|
26
|
+
* @type {Collection<Snowflake, Object>}
|
|
27
|
+
*/
|
|
28
|
+
this.currentSubscription = new Collection();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Fetches all the payment sources of the client
|
|
33
|
+
* @returns {Collection<Snowflake, Object>}
|
|
34
|
+
*/
|
|
35
|
+
async fetchPaymentSources() {
|
|
36
|
+
// https://discord.com/api/v9/users/@me/billing/payment-sources
|
|
37
|
+
const d = await this.client.api.users('@me').billing['payment-sources'].get();
|
|
38
|
+
// ! TODO: Create a PaymentSource class
|
|
39
|
+
this.paymentSources = new Collection(d.map(s => [s.id, s]));
|
|
40
|
+
return this.paymentSources;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Fetches all the guild boosts of the client
|
|
45
|
+
* @returns {Collection<Snowflake, GuildBoost>}
|
|
46
|
+
*/
|
|
47
|
+
async fetchGuildBoosts() {
|
|
48
|
+
// https://discord.com/api/v9/users/@me/guilds/premium/subscription-slots
|
|
49
|
+
const d = await this.client.api.users('@me').guilds.premium['subscription-slots'].get();
|
|
50
|
+
this.guildBoosts = new Collection(d.map(s => [s.id, new GuildBoost(this.client, s)]));
|
|
51
|
+
return this.guildBoosts;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Fetches the current subscription of the client
|
|
56
|
+
* @returns {Collection<Snowflake, Object>}
|
|
57
|
+
*/
|
|
58
|
+
async fetchCurrentSubscription() {
|
|
59
|
+
// https://discord.com/api/v9/users/@me/billing/subscriptions
|
|
60
|
+
const d = await this.client.api.users('@me').billing.subscriptions.get();
|
|
61
|
+
this.currentSubscription = new Collection(d.map(s => [s.id, s]));
|
|
62
|
+
return this.currentSubscription;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
module.exports = BillingManager;
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const DataManager = require('./DataManager');
|
|
4
|
-
const { _cleanupSymbol } = require('../util/Constants');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Manages the API methods of a data model with a mutable cache of instances.
|
|
8
|
-
* @extends {DataManager}
|
|
9
|
-
* @abstract
|
|
10
|
-
*/
|
|
11
|
-
class CachedManager extends DataManager {
|
|
12
|
-
constructor(client, holds, iterable) {
|
|
13
|
-
super(client, holds);
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* The private cache of items for this manager.
|
|
17
|
-
* @type {Collection}
|
|
18
|
-
* @private
|
|
19
|
-
* @readonly
|
|
20
|
-
* @name CachedManager#_cache
|
|
21
|
-
*/
|
|
22
|
-
Object.defineProperty(this, '_cache', { value: this.client.options.makeCache(this.constructor, this.holds) });
|
|
23
|
-
|
|
24
|
-
let cleanup = this._cache[_cleanupSymbol]?.();
|
|
25
|
-
if (cleanup) {
|
|
26
|
-
cleanup = cleanup.bind(this._cache);
|
|
27
|
-
client._cleanups.add(cleanup);
|
|
28
|
-
client._finalizers.register(this, {
|
|
29
|
-
cleanup,
|
|
30
|
-
message:
|
|
31
|
-
`Garbage collection completed on ${this.constructor.name}, ` +
|
|
32
|
-
`which had a ${this._cache.constructor.name} of ${this.holds.name}.`,
|
|
33
|
-
name: this.constructor.name,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (iterable) {
|
|
38
|
-
for (const item of iterable) {
|
|
39
|
-
this._add(item);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* The cache of items for this manager.
|
|
46
|
-
* @type {Collection}
|
|
47
|
-
* @abstract
|
|
48
|
-
*/
|
|
49
|
-
get cache() {
|
|
50
|
-
return this._cache;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
_add(data, cache = true, { id, extras = [] } = {}) {
|
|
54
|
-
const existing = this.cache.get(id ?? data.id);
|
|
55
|
-
if (existing) {
|
|
56
|
-
if (cache) {
|
|
57
|
-
existing._patch(data);
|
|
58
|
-
return existing;
|
|
59
|
-
}
|
|
60
|
-
const clone = existing._clone();
|
|
61
|
-
clone._patch(data);
|
|
62
|
-
return clone;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const entry = this.holds ? new this.holds(this.client, data, ...extras) : data;
|
|
66
|
-
if (cache) this.cache.set(id ?? entry.id, entry);
|
|
67
|
-
return entry;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
module.exports = CachedManager;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const DataManager = require('./DataManager');
|
|
4
|
+
const { _cleanupSymbol } = require('../util/Constants');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Manages the API methods of a data model with a mutable cache of instances.
|
|
8
|
+
* @extends {DataManager}
|
|
9
|
+
* @abstract
|
|
10
|
+
*/
|
|
11
|
+
class CachedManager extends DataManager {
|
|
12
|
+
constructor(client, holds, iterable) {
|
|
13
|
+
super(client, holds);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The private cache of items for this manager.
|
|
17
|
+
* @type {Collection}
|
|
18
|
+
* @private
|
|
19
|
+
* @readonly
|
|
20
|
+
* @name CachedManager#_cache
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(this, '_cache', { value: this.client.options.makeCache(this.constructor, this.holds) });
|
|
23
|
+
|
|
24
|
+
let cleanup = this._cache[_cleanupSymbol]?.();
|
|
25
|
+
if (cleanup) {
|
|
26
|
+
cleanup = cleanup.bind(this._cache);
|
|
27
|
+
client._cleanups.add(cleanup);
|
|
28
|
+
client._finalizers.register(this, {
|
|
29
|
+
cleanup,
|
|
30
|
+
message:
|
|
31
|
+
`Garbage collection completed on ${this.constructor.name}, ` +
|
|
32
|
+
`which had a ${this._cache.constructor.name} of ${this.holds.name}.`,
|
|
33
|
+
name: this.constructor.name,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (iterable) {
|
|
38
|
+
for (const item of iterable) {
|
|
39
|
+
this._add(item);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The cache of items for this manager.
|
|
46
|
+
* @type {Collection}
|
|
47
|
+
* @abstract
|
|
48
|
+
*/
|
|
49
|
+
get cache() {
|
|
50
|
+
return this._cache;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
_add(data, cache = true, { id, extras = [] } = {}) {
|
|
54
|
+
const existing = this.cache.get(id ?? data.id);
|
|
55
|
+
if (existing) {
|
|
56
|
+
if (cache) {
|
|
57
|
+
existing._patch(data);
|
|
58
|
+
return existing;
|
|
59
|
+
}
|
|
60
|
+
const clone = existing._clone();
|
|
61
|
+
clone._patch(data);
|
|
62
|
+
return clone;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const entry = this.holds ? new this.holds(this.client, data, ...extras) : data;
|
|
66
|
+
if (cache) this.cache.set(id ?? entry.id, entry);
|
|
67
|
+
return entry;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
module.exports = CachedManager;
|