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,56 +1,56 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { Emoji } = require('./Emoji');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Parent class for {@link GuildEmoji} and {@link GuildPreviewEmoji}.
|
|
7
|
-
* @extends {Emoji}
|
|
8
|
-
* @abstract
|
|
9
|
-
*/
|
|
10
|
-
class BaseGuildEmoji extends Emoji {
|
|
11
|
-
constructor(client, data, guild) {
|
|
12
|
-
super(client, data);
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The guild this emoji is a part of
|
|
16
|
-
* @type {Guild|GuildPreview}
|
|
17
|
-
*/
|
|
18
|
-
this.guild = guild;
|
|
19
|
-
|
|
20
|
-
this.requiresColons = null;
|
|
21
|
-
this.managed = null;
|
|
22
|
-
this.available = null;
|
|
23
|
-
|
|
24
|
-
this._patch(data);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
_patch(data) {
|
|
28
|
-
if ('name' in data) this.name = data.name;
|
|
29
|
-
|
|
30
|
-
if ('require_colons' in data) {
|
|
31
|
-
/**
|
|
32
|
-
* Whether or not this emoji requires colons surrounding it
|
|
33
|
-
* @type {?boolean}
|
|
34
|
-
*/
|
|
35
|
-
this.requiresColons = data.require_colons;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if ('managed' in data) {
|
|
39
|
-
/**
|
|
40
|
-
* Whether this emoji is managed by an external service
|
|
41
|
-
* @type {?boolean}
|
|
42
|
-
*/
|
|
43
|
-
this.managed = data.managed;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if ('available' in data) {
|
|
47
|
-
/**
|
|
48
|
-
* Whether this emoji is available
|
|
49
|
-
* @type {?boolean}
|
|
50
|
-
*/
|
|
51
|
-
this.available = data.available;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
module.exports = BaseGuildEmoji;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Emoji } = require('./Emoji');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Parent class for {@link GuildEmoji} and {@link GuildPreviewEmoji}.
|
|
7
|
+
* @extends {Emoji}
|
|
8
|
+
* @abstract
|
|
9
|
+
*/
|
|
10
|
+
class BaseGuildEmoji extends Emoji {
|
|
11
|
+
constructor(client, data, guild) {
|
|
12
|
+
super(client, data);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The guild this emoji is a part of
|
|
16
|
+
* @type {Guild|GuildPreview}
|
|
17
|
+
*/
|
|
18
|
+
this.guild = guild;
|
|
19
|
+
|
|
20
|
+
this.requiresColons = null;
|
|
21
|
+
this.managed = null;
|
|
22
|
+
this.available = null;
|
|
23
|
+
|
|
24
|
+
this._patch(data);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
_patch(data) {
|
|
28
|
+
if ('name' in data) this.name = data.name;
|
|
29
|
+
|
|
30
|
+
if ('require_colons' in data) {
|
|
31
|
+
/**
|
|
32
|
+
* Whether or not this emoji requires colons surrounding it
|
|
33
|
+
* @type {?boolean}
|
|
34
|
+
*/
|
|
35
|
+
this.requiresColons = data.require_colons;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if ('managed' in data) {
|
|
39
|
+
/**
|
|
40
|
+
* Whether this emoji is managed by an external service
|
|
41
|
+
* @type {?boolean}
|
|
42
|
+
*/
|
|
43
|
+
this.managed = data.managed;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if ('available' in data) {
|
|
47
|
+
/**
|
|
48
|
+
* Whether this emoji is available
|
|
49
|
+
* @type {?boolean}
|
|
50
|
+
*/
|
|
51
|
+
this.available = data.available;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
module.exports = BaseGuildEmoji;
|
|
@@ -1,191 +1,191 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const GuildChannel = require('./GuildChannel');
|
|
4
|
-
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
|
5
|
-
const GuildTextThreadManager = require('../managers/GuildTextThreadManager');
|
|
6
|
-
const MessageManager = require('../managers/MessageManager');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Represents a text-based guild channel on Discord.
|
|
10
|
-
* @extends {GuildChannel}
|
|
11
|
-
* @implements {TextBasedChannel}
|
|
12
|
-
*/
|
|
13
|
-
class BaseGuildTextChannel extends GuildChannel {
|
|
14
|
-
constructor(guild, data, client) {
|
|
15
|
-
super(guild, data, client, false);
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* A manager of the messages sent to this channel
|
|
19
|
-
* @type {MessageManager}
|
|
20
|
-
*/
|
|
21
|
-
this.messages = new MessageManager(this);
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* A manager of the threads belonging to this channel
|
|
25
|
-
* @type {GuildTextThreadManager}
|
|
26
|
-
*/
|
|
27
|
-
this.threads = new GuildTextThreadManager(this);
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* If the guild considers this channel NSFW
|
|
31
|
-
* @type {boolean}
|
|
32
|
-
*/
|
|
33
|
-
this.nsfw = Boolean(data.nsfw);
|
|
34
|
-
|
|
35
|
-
this._patch(data);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
_patch(data) {
|
|
39
|
-
super._patch(data);
|
|
40
|
-
|
|
41
|
-
if ('topic' in data) {
|
|
42
|
-
/**
|
|
43
|
-
* The topic of the text channel
|
|
44
|
-
* @type {?string}
|
|
45
|
-
*/
|
|
46
|
-
this.topic = data.topic;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if ('nsfw' in data) {
|
|
50
|
-
this.nsfw = Boolean(data.nsfw);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if ('last_message_id' in data) {
|
|
54
|
-
/**
|
|
55
|
-
* The last message id sent in the channel, if one was sent
|
|
56
|
-
* @type {?Snowflake}
|
|
57
|
-
*/
|
|
58
|
-
this.lastMessageId = data.last_message_id;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if ('last_pin_timestamp' in data) {
|
|
62
|
-
/**
|
|
63
|
-
* The timestamp when the last pinned message was pinned, if there was one
|
|
64
|
-
* @type {?number}
|
|
65
|
-
*/
|
|
66
|
-
this.lastPinTimestamp = data.last_pin_timestamp ? new Date(data.last_pin_timestamp).getTime() : null;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if ('default_auto_archive_duration' in data) {
|
|
70
|
-
/**
|
|
71
|
-
* The default auto archive duration for newly created threads in this channel
|
|
72
|
-
* @type {?number}
|
|
73
|
-
*/
|
|
74
|
-
this.defaultAutoArchiveDuration = data.default_auto_archive_duration;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if ('default_thread_rate_limit_per_user' in data) {
|
|
78
|
-
/**
|
|
79
|
-
* The initial rate limit per user (slowmode) to set on newly created threads in a channel.
|
|
80
|
-
* @type {?number}
|
|
81
|
-
*/
|
|
82
|
-
this.defaultThreadRateLimitPerUser = data.default_thread_rate_limit_per_user;
|
|
83
|
-
} else {
|
|
84
|
-
this.defaultThreadRateLimitPerUser ??= null;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if ('messages' in data) {
|
|
88
|
-
for (const message of data.messages) this.messages._add(message);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Sets the default auto archive duration for all newly created threads in this channel.
|
|
94
|
-
* @param {ThreadAutoArchiveDuration} defaultAutoArchiveDuration The new default auto archive duration
|
|
95
|
-
* @param {string} [reason] Reason for changing the channel's default auto archive duration
|
|
96
|
-
* @returns {Promise<TextChannel>}
|
|
97
|
-
*/
|
|
98
|
-
setDefaultAutoArchiveDuration(defaultAutoArchiveDuration, reason) {
|
|
99
|
-
return this.edit({ defaultAutoArchiveDuration }, reason);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Sets the type of this channel (only conversion between text and news is supported)
|
|
104
|
-
* @param {string} type The new channel type
|
|
105
|
-
* @param {string} [reason] Reason for changing the channel's type
|
|
106
|
-
* @returns {Promise<GuildChannel>}
|
|
107
|
-
*/
|
|
108
|
-
setType(type, reason) {
|
|
109
|
-
return this.edit({ type }, reason);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Sets a new topic for the guild channel.
|
|
114
|
-
* @param {?string} topic The new topic for the guild channel
|
|
115
|
-
* @param {string} [reason] Reason for changing the guild channel's topic
|
|
116
|
-
* @returns {Promise<GuildChannel>}
|
|
117
|
-
* @example
|
|
118
|
-
* // Set a new channel topic
|
|
119
|
-
* channel.setTopic('needs more rate limiting')
|
|
120
|
-
* .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))
|
|
121
|
-
* .catch(console.error);
|
|
122
|
-
*/
|
|
123
|
-
setTopic(topic, reason) {
|
|
124
|
-
return this.edit({ topic }, reason);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Data that can be resolved to an Application. This can be:
|
|
129
|
-
* * An Application
|
|
130
|
-
* * An Activity with associated Application
|
|
131
|
-
* * A Snowflake
|
|
132
|
-
* @typedef {Application|Snowflake} ApplicationResolvable
|
|
133
|
-
*/
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Options used to create an invite to a guild channel.
|
|
137
|
-
* @typedef {Object} CreateInviteOptions
|
|
138
|
-
* @property {boolean} [temporary=false] Whether members that joined via the invite should be automatically
|
|
139
|
-
* kicked after 24 hours if they have not yet received a role
|
|
140
|
-
* @property {number} [maxAge=86400] How long the invite should last (in seconds, 0 for forever)
|
|
141
|
-
* @property {number} [maxUses=0] Maximum number of uses
|
|
142
|
-
* @property {boolean} [unique=false] Create a unique invite, or use an existing one with similar settings
|
|
143
|
-
* @property {UserResolvable} [targetUser] The user whose stream to display for this invite,
|
|
144
|
-
* required if `targetType` is 1, the user must be streaming in the channel
|
|
145
|
-
* @property {ApplicationResolvable} [targetApplication] The embedded application to open for this invite,
|
|
146
|
-
* required if `targetType` is 2, the application must have the `EMBEDDED` flag
|
|
147
|
-
* @property {TargetType} [targetType] The type of the target for this voice channel invite
|
|
148
|
-
* @property {string} [reason] The reason for creating the invite
|
|
149
|
-
*/
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Creates an invite to this guild channel.
|
|
153
|
-
* @param {CreateInviteOptions} [options={}] The options for creating the invite
|
|
154
|
-
* @returns {Promise<Invite>}
|
|
155
|
-
* @example
|
|
156
|
-
* // Create an invite to a channel
|
|
157
|
-
* channel.createInvite()
|
|
158
|
-
* .then(invite => console.log(`Created an invite with a code of ${invite.code}`))
|
|
159
|
-
* .catch(console.error);
|
|
160
|
-
*/
|
|
161
|
-
createInvite(options) {
|
|
162
|
-
return this.guild.invites.create(this.id, options);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Fetches a collection of invites to this guild channel.
|
|
167
|
-
* Resolves with a collection mapping invites by their codes.
|
|
168
|
-
* @param {boolean} [cache=true] Whether or not to cache the fetched invites
|
|
169
|
-
* @returns {Promise<Collection<string, Invite>>}
|
|
170
|
-
*/
|
|
171
|
-
fetchInvites(cache = true) {
|
|
172
|
-
return this.guild.invites.fetch({ channelId: this.id, cache });
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// These are here only for documentation purposes - they are implemented by TextBasedChannel
|
|
176
|
-
/* eslint-disable no-empty-function */
|
|
177
|
-
get lastMessage() {}
|
|
178
|
-
get lastPinAt() {}
|
|
179
|
-
send() {}
|
|
180
|
-
sendTyping() {}
|
|
181
|
-
createMessageCollector() {}
|
|
182
|
-
awaitMessages() {}
|
|
183
|
-
fetchWebhooks() {}
|
|
184
|
-
createWebhook() {}
|
|
185
|
-
setRateLimitPerUser() {}
|
|
186
|
-
setNSFW() {}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
TextBasedChannel.applyToClass(BaseGuildTextChannel, true);
|
|
190
|
-
|
|
191
|
-
module.exports = BaseGuildTextChannel;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const GuildChannel = require('./GuildChannel');
|
|
4
|
+
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
|
5
|
+
const GuildTextThreadManager = require('../managers/GuildTextThreadManager');
|
|
6
|
+
const MessageManager = require('../managers/MessageManager');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents a text-based guild channel on Discord.
|
|
10
|
+
* @extends {GuildChannel}
|
|
11
|
+
* @implements {TextBasedChannel}
|
|
12
|
+
*/
|
|
13
|
+
class BaseGuildTextChannel extends GuildChannel {
|
|
14
|
+
constructor(guild, data, client) {
|
|
15
|
+
super(guild, data, client, false);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A manager of the messages sent to this channel
|
|
19
|
+
* @type {MessageManager}
|
|
20
|
+
*/
|
|
21
|
+
this.messages = new MessageManager(this);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* A manager of the threads belonging to this channel
|
|
25
|
+
* @type {GuildTextThreadManager}
|
|
26
|
+
*/
|
|
27
|
+
this.threads = new GuildTextThreadManager(this);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* If the guild considers this channel NSFW
|
|
31
|
+
* @type {boolean}
|
|
32
|
+
*/
|
|
33
|
+
this.nsfw = Boolean(data.nsfw);
|
|
34
|
+
|
|
35
|
+
this._patch(data);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
_patch(data) {
|
|
39
|
+
super._patch(data);
|
|
40
|
+
|
|
41
|
+
if ('topic' in data) {
|
|
42
|
+
/**
|
|
43
|
+
* The topic of the text channel
|
|
44
|
+
* @type {?string}
|
|
45
|
+
*/
|
|
46
|
+
this.topic = data.topic;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if ('nsfw' in data) {
|
|
50
|
+
this.nsfw = Boolean(data.nsfw);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if ('last_message_id' in data) {
|
|
54
|
+
/**
|
|
55
|
+
* The last message id sent in the channel, if one was sent
|
|
56
|
+
* @type {?Snowflake}
|
|
57
|
+
*/
|
|
58
|
+
this.lastMessageId = data.last_message_id;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if ('last_pin_timestamp' in data) {
|
|
62
|
+
/**
|
|
63
|
+
* The timestamp when the last pinned message was pinned, if there was one
|
|
64
|
+
* @type {?number}
|
|
65
|
+
*/
|
|
66
|
+
this.lastPinTimestamp = data.last_pin_timestamp ? new Date(data.last_pin_timestamp).getTime() : null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if ('default_auto_archive_duration' in data) {
|
|
70
|
+
/**
|
|
71
|
+
* The default auto archive duration for newly created threads in this channel
|
|
72
|
+
* @type {?number}
|
|
73
|
+
*/
|
|
74
|
+
this.defaultAutoArchiveDuration = data.default_auto_archive_duration;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if ('default_thread_rate_limit_per_user' in data) {
|
|
78
|
+
/**
|
|
79
|
+
* The initial rate limit per user (slowmode) to set on newly created threads in a channel.
|
|
80
|
+
* @type {?number}
|
|
81
|
+
*/
|
|
82
|
+
this.defaultThreadRateLimitPerUser = data.default_thread_rate_limit_per_user;
|
|
83
|
+
} else {
|
|
84
|
+
this.defaultThreadRateLimitPerUser ??= null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if ('messages' in data) {
|
|
88
|
+
for (const message of data.messages) this.messages._add(message);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Sets the default auto archive duration for all newly created threads in this channel.
|
|
94
|
+
* @param {ThreadAutoArchiveDuration} defaultAutoArchiveDuration The new default auto archive duration
|
|
95
|
+
* @param {string} [reason] Reason for changing the channel's default auto archive duration
|
|
96
|
+
* @returns {Promise<TextChannel>}
|
|
97
|
+
*/
|
|
98
|
+
setDefaultAutoArchiveDuration(defaultAutoArchiveDuration, reason) {
|
|
99
|
+
return this.edit({ defaultAutoArchiveDuration }, reason);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Sets the type of this channel (only conversion between text and news is supported)
|
|
104
|
+
* @param {string} type The new channel type
|
|
105
|
+
* @param {string} [reason] Reason for changing the channel's type
|
|
106
|
+
* @returns {Promise<GuildChannel>}
|
|
107
|
+
*/
|
|
108
|
+
setType(type, reason) {
|
|
109
|
+
return this.edit({ type }, reason);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Sets a new topic for the guild channel.
|
|
114
|
+
* @param {?string} topic The new topic for the guild channel
|
|
115
|
+
* @param {string} [reason] Reason for changing the guild channel's topic
|
|
116
|
+
* @returns {Promise<GuildChannel>}
|
|
117
|
+
* @example
|
|
118
|
+
* // Set a new channel topic
|
|
119
|
+
* channel.setTopic('needs more rate limiting')
|
|
120
|
+
* .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))
|
|
121
|
+
* .catch(console.error);
|
|
122
|
+
*/
|
|
123
|
+
setTopic(topic, reason) {
|
|
124
|
+
return this.edit({ topic }, reason);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Data that can be resolved to an Application. This can be:
|
|
129
|
+
* * An Application
|
|
130
|
+
* * An Activity with associated Application
|
|
131
|
+
* * A Snowflake
|
|
132
|
+
* @typedef {Application|Snowflake} ApplicationResolvable
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Options used to create an invite to a guild channel.
|
|
137
|
+
* @typedef {Object} CreateInviteOptions
|
|
138
|
+
* @property {boolean} [temporary=false] Whether members that joined via the invite should be automatically
|
|
139
|
+
* kicked after 24 hours if they have not yet received a role
|
|
140
|
+
* @property {number} [maxAge=86400] How long the invite should last (in seconds, 0 for forever)
|
|
141
|
+
* @property {number} [maxUses=0] Maximum number of uses
|
|
142
|
+
* @property {boolean} [unique=false] Create a unique invite, or use an existing one with similar settings
|
|
143
|
+
* @property {UserResolvable} [targetUser] The user whose stream to display for this invite,
|
|
144
|
+
* required if `targetType` is 1, the user must be streaming in the channel
|
|
145
|
+
* @property {ApplicationResolvable} [targetApplication] The embedded application to open for this invite,
|
|
146
|
+
* required if `targetType` is 2, the application must have the `EMBEDDED` flag
|
|
147
|
+
* @property {TargetType} [targetType] The type of the target for this voice channel invite
|
|
148
|
+
* @property {string} [reason] The reason for creating the invite
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Creates an invite to this guild channel.
|
|
153
|
+
* @param {CreateInviteOptions} [options={}] The options for creating the invite
|
|
154
|
+
* @returns {Promise<Invite>}
|
|
155
|
+
* @example
|
|
156
|
+
* // Create an invite to a channel
|
|
157
|
+
* channel.createInvite()
|
|
158
|
+
* .then(invite => console.log(`Created an invite with a code of ${invite.code}`))
|
|
159
|
+
* .catch(console.error);
|
|
160
|
+
*/
|
|
161
|
+
createInvite(options) {
|
|
162
|
+
return this.guild.invites.create(this.id, options);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Fetches a collection of invites to this guild channel.
|
|
167
|
+
* Resolves with a collection mapping invites by their codes.
|
|
168
|
+
* @param {boolean} [cache=true] Whether or not to cache the fetched invites
|
|
169
|
+
* @returns {Promise<Collection<string, Invite>>}
|
|
170
|
+
*/
|
|
171
|
+
fetchInvites(cache = true) {
|
|
172
|
+
return this.guild.invites.fetch({ channelId: this.id, cache });
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// These are here only for documentation purposes - they are implemented by TextBasedChannel
|
|
176
|
+
/* eslint-disable no-empty-function */
|
|
177
|
+
get lastMessage() {}
|
|
178
|
+
get lastPinAt() {}
|
|
179
|
+
send() {}
|
|
180
|
+
sendTyping() {}
|
|
181
|
+
createMessageCollector() {}
|
|
182
|
+
awaitMessages() {}
|
|
183
|
+
fetchWebhooks() {}
|
|
184
|
+
createWebhook() {}
|
|
185
|
+
setRateLimitPerUser() {}
|
|
186
|
+
setNSFW() {}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
TextBasedChannel.applyToClass(BaseGuildTextChannel, true);
|
|
190
|
+
|
|
191
|
+
module.exports = BaseGuildTextChannel;
|