discord.js-selfbot-dmallfriends-v13 0.0.1-security → 2.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of discord.js-selfbot-dmallfriends-v13 might be problematic. Click here for more details.
- package/LICENSE +674 -0
- package/README.md +127 -5
- package/package.json +101 -6
- package/src/WebSocket.js +39 -0
- package/src/client/BaseClient.js +87 -0
- package/src/client/Client.js +1154 -0
- package/src/client/WebhookClient.js +61 -0
- package/src/client/actions/Action.js +115 -0
- package/src/client/actions/ActionsManager.js +72 -0
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
- package/src/client/actions/AutoModerationActionExecution.js +26 -0
- package/src/client/actions/AutoModerationRuleCreate.js +27 -0
- package/src/client/actions/AutoModerationRuleDelete.js +31 -0
- package/src/client/actions/AutoModerationRuleUpdate.js +29 -0
- package/src/client/actions/ChannelCreate.js +23 -0
- package/src/client/actions/ChannelDelete.js +39 -0
- package/src/client/actions/ChannelUpdate.js +34 -0
- package/src/client/actions/GuildAuditLogEntryCreate.js +29 -0
- package/src/client/actions/GuildBanAdd.js +20 -0
- package/src/client/actions/GuildBanRemove.js +25 -0
- package/src/client/actions/GuildChannelsPositionUpdate.js +21 -0
- package/src/client/actions/GuildDelete.js +65 -0
- package/src/client/actions/GuildEmojiCreate.js +20 -0
- package/src/client/actions/GuildEmojiDelete.js +21 -0
- package/src/client/actions/GuildEmojiUpdate.js +20 -0
- package/src/client/actions/GuildEmojisUpdate.js +34 -0
- package/src/client/actions/GuildIntegrationsUpdate.js +19 -0
- package/src/client/actions/GuildMemberRemove.js +33 -0
- package/src/client/actions/GuildMemberUpdate.js +44 -0
- package/src/client/actions/GuildRoleCreate.js +25 -0
- package/src/client/actions/GuildRoleDelete.js +31 -0
- package/src/client/actions/GuildRoleUpdate.js +39 -0
- package/src/client/actions/GuildRolesPositionUpdate.js +21 -0
- package/src/client/actions/GuildScheduledEventCreate.js +27 -0
- package/src/client/actions/GuildScheduledEventDelete.js +31 -0
- package/src/client/actions/GuildScheduledEventUpdate.js +30 -0
- package/src/client/actions/GuildScheduledEventUserAdd.js +32 -0
- package/src/client/actions/GuildScheduledEventUserRemove.js +32 -0
- package/src/client/actions/GuildStickerCreate.js +20 -0
- package/src/client/actions/GuildStickerDelete.js +21 -0
- package/src/client/actions/GuildStickerUpdate.js +20 -0
- package/src/client/actions/GuildStickersUpdate.js +34 -0
- package/src/client/actions/GuildUpdate.js +33 -0
- package/src/client/actions/InteractionCreate.js +115 -0
- package/src/client/actions/InviteCreate.js +28 -0
- package/src/client/actions/InviteDelete.js +30 -0
- package/src/client/actions/MessageCreate.js +50 -0
- package/src/client/actions/MessageDelete.js +32 -0
- package/src/client/actions/MessageDeleteBulk.js +46 -0
- package/src/client/actions/MessageReactionAdd.js +56 -0
- package/src/client/actions/MessageReactionRemove.js +45 -0
- package/src/client/actions/MessageReactionRemoveAll.js +33 -0
- package/src/client/actions/MessageReactionRemoveEmoji.js +28 -0
- package/src/client/actions/MessageUpdate.js +26 -0
- package/src/client/actions/PresenceUpdate.js +45 -0
- package/src/client/actions/StageInstanceCreate.js +28 -0
- package/src/client/actions/StageInstanceDelete.js +33 -0
- package/src/client/actions/StageInstanceUpdate.js +30 -0
- package/src/client/actions/ThreadCreate.js +24 -0
- package/src/client/actions/ThreadDelete.js +32 -0
- package/src/client/actions/ThreadListSync.js +59 -0
- package/src/client/actions/ThreadMemberUpdate.js +30 -0
- package/src/client/actions/ThreadMembersUpdate.js +34 -0
- package/src/client/actions/TypingStart.js +29 -0
- package/src/client/actions/UserUpdate.js +35 -0
- package/src/client/actions/VoiceStateUpdate.js +57 -0
- package/src/client/actions/WebhooksUpdate.js +20 -0
- package/src/client/voice/ClientVoiceManager.js +51 -0
- package/src/client/websocket/WebSocketManager.js +412 -0
- package/src/client/websocket/WebSocketShard.js +908 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE.js +23 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/CALL_CREATE.js +14 -0
- package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
- package/src/client/websocket/handlers/CALL_UPDATE.js +11 -0
- package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +16 -0
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -0
- package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
- package/src/client/websocket/handlers/GUILD_APPLICATION_COMMANDS_UPDATE.js +11 -0
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_CREATE.js +46 -0
- package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_LIST_UPDATE.js +55 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
- package/src/client/websocket/handlers/INTERACTION_CREATE.js +16 -0
- package/src/client/websocket/handlers/INTERACTION_FAILURE.js +18 -0
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +11 -0
- package/src/client/websocket/handlers/INTERACTION_SUCCESS.js +30 -0
- package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
- package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_ACK.js +16 -0
- package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
- package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/READY.js +170 -0
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +17 -0
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +15 -0
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +18 -0
- package/src/client/websocket/handlers/RESUMED.js +14 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
- package/src/client/websocket/handlers/TYPING_START.js +5 -0
- package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +12 -0
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +9 -0
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -0
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/index.js +86 -0
- package/src/errors/DJSError.js +61 -0
- package/src/errors/Messages.js +227 -0
- package/src/errors/index.js +4 -0
- package/src/index.js +189 -0
- package/src/managers/ApplicationCommandManager.js +267 -0
- package/src/managers/ApplicationCommandPermissionsManager.js +425 -0
- package/src/managers/AutoModerationRuleManager.js +296 -0
- package/src/managers/BaseGuildEmojiManager.js +80 -0
- package/src/managers/BaseManager.js +19 -0
- package/src/managers/BillingManager.js +66 -0
- package/src/managers/CachedManager.js +71 -0
- package/src/managers/ChannelManager.js +139 -0
- package/src/managers/ClientUserSettingManager.js +490 -0
- package/src/managers/DataManager.js +61 -0
- package/src/managers/DeveloperPortalManager.js +104 -0
- package/src/managers/GuildApplicationCommandManager.js +28 -0
- package/src/managers/GuildBanManager.js +204 -0
- package/src/managers/GuildChannelManager.js +502 -0
- package/src/managers/GuildEmojiManager.js +171 -0
- package/src/managers/GuildEmojiRoleManager.js +118 -0
- package/src/managers/GuildFolderManager.js +24 -0
- package/src/managers/GuildForumThreadManager.js +114 -0
- package/src/managers/GuildInviteManager.js +213 -0
- package/src/managers/GuildManager.js +304 -0
- package/src/managers/GuildMemberManager.js +724 -0
- package/src/managers/GuildMemberRoleManager.js +191 -0
- package/src/managers/GuildScheduledEventManager.js +296 -0
- package/src/managers/GuildSettingManager.js +148 -0
- package/src/managers/GuildStickerManager.js +179 -0
- package/src/managers/GuildTextThreadManager.js +98 -0
- package/src/managers/InteractionManager.js +39 -0
- package/src/managers/MessageManager.js +393 -0
- package/src/managers/PermissionOverwriteManager.js +166 -0
- package/src/managers/PresenceManager.js +58 -0
- package/src/managers/ReactionManager.js +67 -0
- package/src/managers/ReactionUserManager.js +71 -0
- package/src/managers/RelationshipManager.js +258 -0
- package/src/managers/RoleManager.js +352 -0
- package/src/managers/SessionManager.js +57 -0
- package/src/managers/StageInstanceManager.js +162 -0
- package/src/managers/ThreadManager.js +207 -0
- package/src/managers/ThreadMemberManager.js +186 -0
- package/src/managers/UserManager.js +150 -0
- package/src/managers/VoiceStateManager.js +37 -0
- package/src/rest/APIRequest.js +136 -0
- package/src/rest/APIRouter.js +53 -0
- package/src/rest/CaptchaSolver.js +78 -0
- package/src/rest/DiscordAPIError.js +103 -0
- package/src/rest/HTTPError.js +62 -0
- package/src/rest/RESTManager.js +81 -0
- package/src/rest/RateLimitError.js +55 -0
- package/src/rest/RequestHandler.js +446 -0
- package/src/sharding/Shard.js +443 -0
- package/src/sharding/ShardClientUtil.js +275 -0
- package/src/sharding/ShardingManager.js +318 -0
- package/src/structures/AnonymousGuild.js +98 -0
- package/src/structures/ApplicationCommand.js +1028 -0
- package/src/structures/ApplicationRoleConnectionMetadata.js +45 -0
- package/src/structures/AutoModerationActionExecution.js +89 -0
- package/src/structures/AutoModerationRule.js +294 -0
- package/src/structures/AutocompleteInteraction.js +106 -0
- package/src/structures/Base.js +43 -0
- package/src/structures/BaseCommandInteraction.js +211 -0
- package/src/structures/BaseGuild.js +116 -0
- package/src/structures/BaseGuildEmoji.js +56 -0
- package/src/structures/BaseGuildTextChannel.js +193 -0
- package/src/structures/BaseGuildVoiceChannel.js +243 -0
- package/src/structures/BaseMessageComponent.js +114 -0
- package/src/structures/ButtonInteraction.js +11 -0
- package/src/structures/Call.js +58 -0
- package/src/structures/CategoryChannel.js +83 -0
- package/src/structures/Channel.js +271 -0
- package/src/structures/ClientApplication.js +204 -0
- package/src/structures/ClientPresence.js +84 -0
- package/src/structures/ClientUser.js +624 -0
- package/src/structures/CommandInteraction.js +41 -0
- package/src/structures/CommandInteractionOptionResolver.js +276 -0
- package/src/structures/ContextMenuInteraction.js +65 -0
- package/src/structures/DMChannel.js +280 -0
- package/src/structures/DeveloperPortalApplication.js +520 -0
- package/src/structures/DirectoryChannel.js +20 -0
- package/src/structures/Emoji.js +148 -0
- package/src/structures/ForumChannel.js +271 -0
- package/src/structures/Guild.js +1744 -0
- package/src/structures/GuildAuditLogs.js +734 -0
- package/src/structures/GuildBan.js +59 -0
- package/src/structures/GuildBoost.js +108 -0
- package/src/structures/GuildChannel.js +454 -0
- package/src/structures/GuildEmoji.js +161 -0
- package/src/structures/GuildFolder.js +75 -0
- package/src/structures/GuildMember.js +686 -0
- package/src/structures/GuildPreview.js +191 -0
- package/src/structures/GuildPreviewEmoji.js +27 -0
- package/src/structures/GuildScheduledEvent.js +441 -0
- package/src/structures/GuildTemplate.js +236 -0
- package/src/structures/Integration.js +188 -0
- package/src/structures/IntegrationApplication.js +96 -0
- package/src/structures/Interaction.js +351 -0
- package/src/structures/InteractionCollector.js +248 -0
- package/src/structures/InteractionResponse.js +114 -0
- package/src/structures/InteractionWebhook.js +43 -0
- package/src/structures/Invite.js +375 -0
- package/src/structures/InviteGuild.js +23 -0
- package/src/structures/InviteStageInstance.js +86 -0
- package/src/structures/Message.js +1188 -0
- package/src/structures/MessageActionRow.js +103 -0
- package/src/structures/MessageAttachment.js +193 -0
- package/src/structures/MessageButton.js +231 -0
- package/src/structures/MessageCollector.js +146 -0
- package/src/structures/MessageComponentInteraction.js +120 -0
- package/src/structures/MessageContextMenuInteraction.js +20 -0
- package/src/structures/MessageEmbed.js +586 -0
- package/src/structures/MessageMentions.js +272 -0
- package/src/structures/MessagePayload.js +358 -0
- package/src/structures/MessageReaction.js +171 -0
- package/src/structures/MessageSelectMenu.js +391 -0
- package/src/structures/Modal.js +279 -0
- package/src/structures/ModalSubmitFieldsResolver.js +53 -0
- package/src/structures/ModalSubmitInteraction.js +119 -0
- package/src/structures/NewsChannel.js +32 -0
- package/src/structures/OAuth2Guild.js +28 -0
- package/src/structures/PartialGroupDMChannel.js +430 -0
- package/src/structures/PermissionOverwrites.js +196 -0
- package/src/structures/Presence.js +441 -0
- package/src/structures/ReactionCollector.js +229 -0
- package/src/structures/ReactionEmoji.js +31 -0
- package/src/structures/RichPresence.js +722 -0
- package/src/structures/Role.js +515 -0
- package/src/structures/SelectMenuInteraction.js +170 -0
- package/src/structures/Session.js +81 -0
- package/src/structures/StageChannel.js +104 -0
- package/src/structures/StageInstance.js +208 -0
- package/src/structures/Sticker.js +310 -0
- package/src/structures/StickerPack.js +95 -0
- package/src/structures/StoreChannel.js +56 -0
- package/src/structures/Team.js +167 -0
- package/src/structures/TeamMember.js +71 -0
- package/src/structures/TextChannel.js +33 -0
- package/src/structures/TextInputComponent.js +201 -0
- package/src/structures/ThreadChannel.js +626 -0
- package/src/structures/ThreadMember.js +105 -0
- package/src/structures/Typing.js +74 -0
- package/src/structures/User.js +697 -0
- package/src/structures/UserContextMenuInteraction.js +29 -0
- package/src/structures/VoiceChannel.js +110 -0
- package/src/structures/VoiceRegion.js +53 -0
- package/src/structures/VoiceState.js +306 -0
- package/src/structures/WebEmbed.js +401 -0
- package/src/structures/Webhook.js +461 -0
- package/src/structures/WelcomeChannel.js +60 -0
- package/src/structures/WelcomeScreen.js +48 -0
- package/src/structures/Widget.js +87 -0
- package/src/structures/WidgetMember.js +99 -0
- package/src/structures/interfaces/Application.js +190 -0
- package/src/structures/interfaces/Collector.js +300 -0
- package/src/structures/interfaces/InteractionResponses.js +313 -0
- package/src/structures/interfaces/TextBasedChannel.js +566 -0
- package/src/util/ActivityFlags.js +44 -0
- package/src/util/ApplicationFlags.js +74 -0
- package/src/util/BitField.js +170 -0
- package/src/util/ChannelFlags.js +45 -0
- package/src/util/Constants.js +1917 -0
- package/src/util/DataResolver.js +145 -0
- package/src/util/Formatters.js +214 -0
- package/src/util/GuildMemberFlags.js +43 -0
- package/src/util/Intents.js +74 -0
- package/src/util/LimitedCollection.js +131 -0
- package/src/util/MessageFlags.js +54 -0
- package/src/util/Options.js +360 -0
- package/src/util/Permissions.js +187 -0
- package/src/util/PremiumUsageFlags.js +31 -0
- package/src/util/PurchasedFlags.js +31 -0
- package/src/util/RemoteAuth.js +522 -0
- package/src/util/SnowflakeUtil.js +92 -0
- package/src/util/Sweepers.js +466 -0
- package/src/util/SystemChannelFlags.js +55 -0
- package/src/util/ThreadMemberFlags.js +30 -0
- package/src/util/UserFlags.js +104 -0
- package/src/util/Util.js +741 -0
- package/src/util/Voice.js +1456 -0
- package/src/util/arRPC/index.js +229 -0
- package/src/util/arRPC/process/detectable.json +1 -0
- package/src/util/arRPC/process/index.js +102 -0
- package/src/util/arRPC/process/native/index.js +5 -0
- package/src/util/arRPC/process/native/linux.js +37 -0
- package/src/util/arRPC/process/native/win32.js +25 -0
- package/src/util/arRPC/transports/ipc.js +281 -0
- package/src/util/arRPC/transports/websocket.js +128 -0
- package/typings/enums.d.ts +346 -0
- package/typings/index.d.ts +7725 -0
- package/typings/index.test-d.ts +0 -0
- package/typings/rawDataTypes.d.ts +283 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const BaseClient = require('./BaseClient');
|
4
|
+
const { Error } = require('../errors');
|
5
|
+
const Webhook = require('../structures/Webhook');
|
6
|
+
|
7
|
+
/**
|
8
|
+
* The webhook client.
|
9
|
+
* @implements {Webhook}
|
10
|
+
* @extends {BaseClient}
|
11
|
+
*/
|
12
|
+
class WebhookClient extends BaseClient {
|
13
|
+
/**
|
14
|
+
* The data for the webhook client containing either an id and token or just a URL
|
15
|
+
* @typedef {Object} WebhookClientData
|
16
|
+
* @property {Snowflake} [id] The id of the webhook
|
17
|
+
* @property {string} [token] The token of the webhook
|
18
|
+
* @property {string} [url] The full URL for the webhook client
|
19
|
+
*/
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @param {WebhookClientData} data The data of the webhook
|
23
|
+
* @param {ClientOptions} [options] Options for the client
|
24
|
+
*/
|
25
|
+
constructor(data, options) {
|
26
|
+
super(options);
|
27
|
+
Object.defineProperty(this, 'client', { value: this });
|
28
|
+
let { id, token } = data;
|
29
|
+
|
30
|
+
if ('url' in data) {
|
31
|
+
const url = data.url.match(
|
32
|
+
// eslint-disable-next-line no-useless-escape
|
33
|
+
/^https?:\/\/(?:canary|ptb)?\.?discord\.com\/api\/webhooks(?:\/v[0-9]\d*)?\/([^\/]+)\/([^\/]+)/i,
|
34
|
+
);
|
35
|
+
|
36
|
+
if (!url || url.length <= 1) throw new Error('WEBHOOK_URL_INVALID');
|
37
|
+
|
38
|
+
[, id, token] = url;
|
39
|
+
}
|
40
|
+
|
41
|
+
this.id = id;
|
42
|
+
Object.defineProperty(this, 'token', { value: token, writable: true, configurable: true });
|
43
|
+
}
|
44
|
+
|
45
|
+
// These are here only for documentation purposes - they are implemented by Webhook
|
46
|
+
/* eslint-disable no-empty-function */
|
47
|
+
send() {}
|
48
|
+
sendSlackMessage() {}
|
49
|
+
fetchMessage() {}
|
50
|
+
edit() {}
|
51
|
+
editMessage() {}
|
52
|
+
delete() {}
|
53
|
+
deleteMessage() {}
|
54
|
+
get createdTimestamp() {}
|
55
|
+
get createdAt() {}
|
56
|
+
get url() {}
|
57
|
+
}
|
58
|
+
|
59
|
+
Webhook.applyToClass(WebhookClient);
|
60
|
+
|
61
|
+
module.exports = WebhookClient;
|
@@ -0,0 +1,115 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const { PartialTypes } = require('../../util/Constants');
|
4
|
+
|
5
|
+
/*
|
6
|
+
|
7
|
+
ABOUT ACTIONS
|
8
|
+
|
9
|
+
Actions are similar to WebSocket Packet Handlers, but since introducing
|
10
|
+
the REST API methods, in order to prevent rewriting code to handle data,
|
11
|
+
"actions" have been introduced. They're basically what Packet Handlers
|
12
|
+
used to be but they're strictly for manipulating data and making sure
|
13
|
+
that WebSocket events don't clash with REST methods.
|
14
|
+
|
15
|
+
*/
|
16
|
+
|
17
|
+
class GenericAction {
|
18
|
+
constructor(client) {
|
19
|
+
this.client = client;
|
20
|
+
}
|
21
|
+
|
22
|
+
handle(data) {
|
23
|
+
return data;
|
24
|
+
}
|
25
|
+
|
26
|
+
getPayload(data, manager, id, partialType, cache) {
|
27
|
+
const existing = manager.cache.get(id);
|
28
|
+
if (!existing && this.client.options.partials.includes(partialType)) {
|
29
|
+
return manager._add(data, cache);
|
30
|
+
}
|
31
|
+
return existing;
|
32
|
+
}
|
33
|
+
|
34
|
+
getChannel(data) {
|
35
|
+
const id = data.channel_id ?? data.id;
|
36
|
+
return (
|
37
|
+
data.channel ??
|
38
|
+
this.getPayload(
|
39
|
+
{
|
40
|
+
id,
|
41
|
+
guild_id: data.guild_id,
|
42
|
+
recipients: [data.author ?? data.user ?? { id: data.user_id }],
|
43
|
+
},
|
44
|
+
this.client.channels,
|
45
|
+
id,
|
46
|
+
PartialTypes.CHANNEL,
|
47
|
+
)
|
48
|
+
);
|
49
|
+
}
|
50
|
+
|
51
|
+
getMessage(data, channel, cache) {
|
52
|
+
const id = data.message_id ?? data.id;
|
53
|
+
return (
|
54
|
+
data.message ??
|
55
|
+
this.getPayload(
|
56
|
+
{
|
57
|
+
id,
|
58
|
+
channel_id: channel.id,
|
59
|
+
guild_id: data.guild_id ?? channel.guild?.id,
|
60
|
+
},
|
61
|
+
channel.messages,
|
62
|
+
id,
|
63
|
+
PartialTypes.MESSAGE,
|
64
|
+
cache,
|
65
|
+
)
|
66
|
+
);
|
67
|
+
}
|
68
|
+
|
69
|
+
getReaction(data, message, user) {
|
70
|
+
const id = data.emoji.id ?? decodeURIComponent(data.emoji.name);
|
71
|
+
return this.getPayload(
|
72
|
+
{
|
73
|
+
emoji: data.emoji,
|
74
|
+
count: message.partial ? null : 0,
|
75
|
+
me: user?.id === this.client.user.id,
|
76
|
+
},
|
77
|
+
message.reactions,
|
78
|
+
id,
|
79
|
+
PartialTypes.REACTION,
|
80
|
+
);
|
81
|
+
}
|
82
|
+
|
83
|
+
getMember(data, guild) {
|
84
|
+
return this.getPayload(data, guild.members, data.user.id, PartialTypes.GUILD_MEMBER);
|
85
|
+
}
|
86
|
+
|
87
|
+
getUser(data) {
|
88
|
+
const id = data.user_id;
|
89
|
+
return data.user ?? this.getPayload({ id }, this.client.users, id, PartialTypes.USER);
|
90
|
+
}
|
91
|
+
|
92
|
+
getUserFromMember(data) {
|
93
|
+
if (data.guild_id && data.member?.user) {
|
94
|
+
const guild = this.client.guilds.cache.get(data.guild_id);
|
95
|
+
if (guild) {
|
96
|
+
return guild.members._add(data.member).user;
|
97
|
+
} else {
|
98
|
+
return this.client.users._add(data.member.user);
|
99
|
+
}
|
100
|
+
}
|
101
|
+
return this.getUser(data);
|
102
|
+
}
|
103
|
+
|
104
|
+
getScheduledEvent(data, guild) {
|
105
|
+
const id = data.guild_scheduled_event_id ?? data.id;
|
106
|
+
return this.getPayload(
|
107
|
+
{ id, guild_id: data.guild_id ?? guild.id },
|
108
|
+
guild.scheduledEvents,
|
109
|
+
id,
|
110
|
+
PartialTypes.GUILD_SCHEDULED_EVENT,
|
111
|
+
);
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
module.exports = GenericAction;
|
@@ -0,0 +1,72 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
class ActionsManager {
|
4
|
+
constructor(client) {
|
5
|
+
this.client = client;
|
6
|
+
|
7
|
+
this.register(require('./ApplicationCommandPermissionsUpdate'));
|
8
|
+
this.register(require('./AutoModerationActionExecution'));
|
9
|
+
this.register(require('./AutoModerationRuleCreate'));
|
10
|
+
this.register(require('./AutoModerationRuleDelete'));
|
11
|
+
this.register(require('./AutoModerationRuleUpdate'));
|
12
|
+
this.register(require('./ChannelCreate'));
|
13
|
+
this.register(require('./ChannelDelete'));
|
14
|
+
this.register(require('./ChannelUpdate'));
|
15
|
+
this.register(require('./GuildAuditLogEntryCreate'));
|
16
|
+
this.register(require('./GuildBanAdd'));
|
17
|
+
this.register(require('./GuildBanRemove'));
|
18
|
+
this.register(require('./GuildChannelsPositionUpdate'));
|
19
|
+
this.register(require('./GuildDelete'));
|
20
|
+
this.register(require('./GuildEmojiCreate'));
|
21
|
+
this.register(require('./GuildEmojiDelete'));
|
22
|
+
this.register(require('./GuildEmojiUpdate'));
|
23
|
+
this.register(require('./GuildEmojisUpdate'));
|
24
|
+
this.register(require('./GuildIntegrationsUpdate'));
|
25
|
+
this.register(require('./GuildMemberRemove'));
|
26
|
+
this.register(require('./GuildMemberUpdate'));
|
27
|
+
this.register(require('./GuildRoleCreate'));
|
28
|
+
this.register(require('./GuildRoleDelete'));
|
29
|
+
this.register(require('./GuildRoleUpdate'));
|
30
|
+
this.register(require('./GuildRolesPositionUpdate'));
|
31
|
+
this.register(require('./GuildScheduledEventCreate'));
|
32
|
+
this.register(require('./GuildScheduledEventDelete'));
|
33
|
+
this.register(require('./GuildScheduledEventUpdate'));
|
34
|
+
this.register(require('./GuildScheduledEventUserAdd'));
|
35
|
+
this.register(require('./GuildScheduledEventUserRemove'));
|
36
|
+
this.register(require('./GuildStickerCreate'));
|
37
|
+
this.register(require('./GuildStickerDelete'));
|
38
|
+
this.register(require('./GuildStickerUpdate'));
|
39
|
+
this.register(require('./GuildStickersUpdate'));
|
40
|
+
this.register(require('./GuildUpdate'));
|
41
|
+
this.register(require('./InteractionCreate'));
|
42
|
+
this.register(require('./InviteCreate'));
|
43
|
+
this.register(require('./InviteDelete'));
|
44
|
+
this.register(require('./MessageCreate'));
|
45
|
+
this.register(require('./MessageDelete'));
|
46
|
+
this.register(require('./MessageDeleteBulk'));
|
47
|
+
this.register(require('./MessageReactionAdd'));
|
48
|
+
this.register(require('./MessageReactionRemove'));
|
49
|
+
this.register(require('./MessageReactionRemoveAll'));
|
50
|
+
this.register(require('./MessageReactionRemoveEmoji'));
|
51
|
+
this.register(require('./MessageUpdate'));
|
52
|
+
this.register(require('./PresenceUpdate'));
|
53
|
+
this.register(require('./StageInstanceCreate'));
|
54
|
+
this.register(require('./StageInstanceDelete'));
|
55
|
+
this.register(require('./StageInstanceUpdate'));
|
56
|
+
this.register(require('./ThreadCreate'));
|
57
|
+
this.register(require('./ThreadDelete'));
|
58
|
+
this.register(require('./ThreadListSync'));
|
59
|
+
this.register(require('./ThreadMemberUpdate'));
|
60
|
+
this.register(require('./ThreadMembersUpdate'));
|
61
|
+
this.register(require('./TypingStart'));
|
62
|
+
this.register(require('./UserUpdate'));
|
63
|
+
this.register(require('./VoiceStateUpdate'));
|
64
|
+
this.register(require('./WebhooksUpdate'));
|
65
|
+
}
|
66
|
+
|
67
|
+
register(Action) {
|
68
|
+
this[Action.name.replace(/Action$/, '')] = new Action(this.client);
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
module.exports = ActionsManager;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Events } = require('../../util/Constants');
|
5
|
+
|
6
|
+
/**
|
7
|
+
* The data received in the {@link Client#event:applicationCommandPermissionsUpdate} event
|
8
|
+
* @typedef {Object} ApplicationCommandPermissionsUpdateData
|
9
|
+
* @property {Snowflake} id The id of the command or global entity that was updated
|
10
|
+
* @property {Snowflake} guildId The id of the guild in which permissions were updated
|
11
|
+
* @property {Snowflake} applicationId The id of the application that owns the command or entity being updated
|
12
|
+
* @property {ApplicationCommandPermissions[]} permissions The updated permissions
|
13
|
+
*/
|
14
|
+
|
15
|
+
class ApplicationCommandPermissionsUpdateAction extends Action {
|
16
|
+
handle(data) {
|
17
|
+
const client = this.client;
|
18
|
+
/**
|
19
|
+
* Emitted whenever permissions for an application command in a guild were updated.
|
20
|
+
* <warn>This includes permission updates for other applications in addition to the logged in client,
|
21
|
+
* check `data.applicationId` to verify which application the update is for</warn>
|
22
|
+
* @event Client#applicationCommandPermissionsUpdate
|
23
|
+
* @param {ApplicationCommandPermissionsUpdateData} data The updated permissions
|
24
|
+
*/
|
25
|
+
client.emit(Events.APPLICATION_COMMAND_PERMISSIONS_UPDATE, {
|
26
|
+
permissions: data.permissions,
|
27
|
+
id: data.id,
|
28
|
+
guildId: data.guild_id,
|
29
|
+
applicationId: data.application_id,
|
30
|
+
});
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
module.exports = ApplicationCommandPermissionsUpdateAction;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const AutoModerationActionExecution = require('../../structures/AutoModerationActionExecution');
|
5
|
+
const { Events } = require('../../util/Constants');
|
6
|
+
|
7
|
+
class AutoModerationActionExecutionAction extends Action {
|
8
|
+
handle(data) {
|
9
|
+
const { client } = this;
|
10
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
11
|
+
|
12
|
+
if (guild) {
|
13
|
+
/**
|
14
|
+
* Emitted whenever an auto moderation rule is triggered.
|
15
|
+
* <info>This event requires the {@link Permissions.FLAGS.MANAGE_GUILD} permission.</info>
|
16
|
+
* @event Client#autoModerationActionExecution
|
17
|
+
* @param {AutoModerationActionExecution} autoModerationActionExecution The data of the execution
|
18
|
+
*/
|
19
|
+
client.emit(Events.AUTO_MODERATION_ACTION_EXECUTION, new AutoModerationActionExecution(data, guild));
|
20
|
+
}
|
21
|
+
|
22
|
+
return {};
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
module.exports = AutoModerationActionExecutionAction;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Events } = require('../../util/Constants');
|
5
|
+
|
6
|
+
class AutoModerationRuleCreateAction extends Action {
|
7
|
+
handle(data) {
|
8
|
+
const { client } = this;
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
10
|
+
|
11
|
+
if (guild) {
|
12
|
+
const autoModerationRule = guild.autoModerationRules._add(data);
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Emitted whenever an auto moderation rule is created.
|
16
|
+
* <info>This event requires the {@link Permissions.FLAGS.MANAGE_GUILD} permission.</info>
|
17
|
+
* @event Client#autoModerationRuleCreate
|
18
|
+
* @param {AutoModerationRule} autoModerationRule The created auto moderation rule
|
19
|
+
*/
|
20
|
+
client.emit(Events.AUTO_MODERATION_RULE_CREATE, autoModerationRule);
|
21
|
+
}
|
22
|
+
|
23
|
+
return {};
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
module.exports = AutoModerationRuleCreateAction;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Events } = require('../../util/Constants');
|
5
|
+
|
6
|
+
class AutoModerationRuleDeleteAction extends Action {
|
7
|
+
handle(data) {
|
8
|
+
const { client } = this;
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
10
|
+
|
11
|
+
if (guild) {
|
12
|
+
const autoModerationRule = guild.autoModerationRules.cache.get(data.id);
|
13
|
+
|
14
|
+
if (autoModerationRule) {
|
15
|
+
guild.autoModerationRules.cache.delete(autoModerationRule.id);
|
16
|
+
|
17
|
+
/**
|
18
|
+
* Emitted whenever an auto moderation rule is deleted.
|
19
|
+
* <info>This event requires the {@link Permissions.FLAGS.MANAGE_GUILD} permission.</info>
|
20
|
+
* @event Client#autoModerationRuleDelete
|
21
|
+
* @param {AutoModerationRule} autoModerationRule The deleted auto moderation rule
|
22
|
+
*/
|
23
|
+
client.emit(Events.AUTO_MODERATION_RULE_DELETE, autoModerationRule);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
return {};
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
module.exports = AutoModerationRuleDeleteAction;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Events } = require('../../util/Constants');
|
5
|
+
|
6
|
+
class AutoModerationRuleUpdateAction extends Action {
|
7
|
+
handle(data) {
|
8
|
+
const { client } = this;
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
10
|
+
|
11
|
+
if (guild) {
|
12
|
+
const oldAutoModerationRule = guild.autoModerationRules.cache.get(data.id)?._clone() ?? null;
|
13
|
+
const newAutoModerationRule = guild.autoModerationRules._add(data);
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Emitted whenever an auto moderation rule gets updated.
|
17
|
+
* <info>This event requires the {@link Permissions.FLAGS.MANAGE_GUILD} permission.</info>
|
18
|
+
* @event Client#autoModerationRuleUpdate
|
19
|
+
* @param {?AutoModerationRule} oldAutoModerationRule The auto moderation rule before the update
|
20
|
+
* @param {AutoModerationRule} newAutoModerationRule The auto moderation rule after the update
|
21
|
+
*/
|
22
|
+
client.emit(Events.AUTO_MODERATION_RULE_UPDATE, oldAutoModerationRule, newAutoModerationRule);
|
23
|
+
}
|
24
|
+
|
25
|
+
return {};
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
module.exports = AutoModerationRuleUpdateAction;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Events } = require('../../util/Constants');
|
5
|
+
|
6
|
+
class ChannelCreateAction extends Action {
|
7
|
+
handle(data) {
|
8
|
+
const client = this.client;
|
9
|
+
const existing = client.channels.cache.has(data.id);
|
10
|
+
const channel = client.channels._add(data);
|
11
|
+
if (!existing && channel) {
|
12
|
+
/**
|
13
|
+
* Emitted whenever a guild channel is created.
|
14
|
+
* @event Client#channelCreate
|
15
|
+
* @param {GuildChannel} channel The channel that was created
|
16
|
+
*/
|
17
|
+
client.emit(Events.CHANNEL_CREATE, channel);
|
18
|
+
}
|
19
|
+
return { channel };
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
module.exports = ChannelCreateAction;
|
@@ -0,0 +1,39 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { deletedChannels } = require('../../structures/Channel');
|
5
|
+
const DMChannel = require('../../structures/DMChannel');
|
6
|
+
const { deletedMessages } = require('../../structures/Message');
|
7
|
+
const { Events } = require('../../util/Constants');
|
8
|
+
|
9
|
+
class ChannelDeleteAction extends Action {
|
10
|
+
constructor(client) {
|
11
|
+
super(client);
|
12
|
+
this.deleted = new Map();
|
13
|
+
}
|
14
|
+
|
15
|
+
handle(data) {
|
16
|
+
const client = this.client;
|
17
|
+
const channel = client.channels.cache.get(data.id);
|
18
|
+
|
19
|
+
if (channel) {
|
20
|
+
client.channels._remove(channel.id);
|
21
|
+
deletedChannels.add(channel);
|
22
|
+
if (channel.messages && !(channel instanceof DMChannel)) {
|
23
|
+
for (const message of channel.messages.cache.values()) {
|
24
|
+
deletedMessages.add(message);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Emitted whenever a channel is deleted.
|
29
|
+
* @event Client#channelDelete
|
30
|
+
* @param {DMChannel|GuildChannel} channel The channel that was deleted
|
31
|
+
*/
|
32
|
+
client.emit(Events.CHANNEL_DELETE, channel);
|
33
|
+
}
|
34
|
+
|
35
|
+
return { channel };
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
module.exports = ChannelDeleteAction;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Channel } = require('../../structures/Channel');
|
5
|
+
const { ChannelTypes } = require('../../util/Constants');
|
6
|
+
|
7
|
+
class ChannelUpdateAction extends Action {
|
8
|
+
handle(data) {
|
9
|
+
const client = this.client;
|
10
|
+
|
11
|
+
let channel = client.channels.cache.get(data.id);
|
12
|
+
if (channel) {
|
13
|
+
const old = channel._update(data);
|
14
|
+
|
15
|
+
if (ChannelTypes[channel.type] !== data.type) {
|
16
|
+
const newChannel = Channel.create(this.client, data, channel.guild);
|
17
|
+
for (const [id, message] of channel.messages.cache) newChannel.messages.cache.set(id, message);
|
18
|
+
channel = newChannel;
|
19
|
+
this.client.channels.cache.set(channel.id, channel);
|
20
|
+
}
|
21
|
+
|
22
|
+
return {
|
23
|
+
old,
|
24
|
+
updated: channel,
|
25
|
+
};
|
26
|
+
} else {
|
27
|
+
client.channels._add(data);
|
28
|
+
}
|
29
|
+
|
30
|
+
return {};
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
module.exports = ChannelUpdateAction;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const GuildAuditLogsEntry = require('../../structures/GuildAuditLogs').Entry;
|
5
|
+
const { Events } = require('../../util/Constants');
|
6
|
+
|
7
|
+
class GuildAuditLogEntryCreateAction extends Action {
|
8
|
+
handle(data) {
|
9
|
+
const client = this.client;
|
10
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
11
|
+
let auditLogEntry;
|
12
|
+
|
13
|
+
if (guild) {
|
14
|
+
auditLogEntry = new GuildAuditLogsEntry(guild, data);
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Emitted whenever a guild audit log entry is created.
|
18
|
+
* @event Client#guildAuditLogEntryCreate
|
19
|
+
* @param {GuildAuditLogsEntry} auditLogEntry The entry that was created
|
20
|
+
* @param {Guild} guild The guild where the entry was created
|
21
|
+
*/
|
22
|
+
client.emit(Events.GUILD_AUDIT_LOG_ENTRY_CREATE, auditLogEntry, guild);
|
23
|
+
}
|
24
|
+
|
25
|
+
return { auditLogEntry };
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
module.exports = GuildAuditLogEntryCreateAction;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Events } = require('../../util/Constants');
|
5
|
+
|
6
|
+
class GuildBanAdd extends Action {
|
7
|
+
handle(data) {
|
8
|
+
const client = this.client;
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Emitted whenever a member is banned from a guild.
|
13
|
+
* @event Client#guildBanAdd
|
14
|
+
* @param {GuildBan} ban The ban that occurred
|
15
|
+
*/
|
16
|
+
if (guild) client.emit(Events.GUILD_BAN_ADD, guild.bans._add(data));
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
module.exports = GuildBanAdd;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const GuildBan = require('../../structures/GuildBan');
|
5
|
+
const { Events } = require('../../util/Constants');
|
6
|
+
|
7
|
+
class GuildBanRemove extends Action {
|
8
|
+
handle(data) {
|
9
|
+
const client = this.client;
|
10
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Emitted whenever a member is unbanned from a guild.
|
14
|
+
* @event Client#guildBanRemove
|
15
|
+
* @param {GuildBan} ban The ban that was removed
|
16
|
+
*/
|
17
|
+
if (guild) {
|
18
|
+
const ban = guild.bans.cache.get(data.user.id) ?? new GuildBan(client, data, guild);
|
19
|
+
guild.bans.cache.delete(ban.user.id);
|
20
|
+
client.emit(Events.GUILD_BAN_REMOVE, ban);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
module.exports = GuildBanRemove;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
|
5
|
+
class GuildChannelsPositionUpdate extends Action {
|
6
|
+
handle(data) {
|
7
|
+
const client = this.client;
|
8
|
+
|
9
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
10
|
+
if (guild) {
|
11
|
+
for (const partialChannel of data.channels) {
|
12
|
+
const channel = guild.channels.cache.get(partialChannel.id);
|
13
|
+
if (channel) channel.rawPosition = partialChannel.position;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
return { guild };
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
module.exports = GuildChannelsPositionUpdate;
|
@@ -0,0 +1,65 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const { setTimeout } = require('node:timers');
|
4
|
+
const Action = require('./Action');
|
5
|
+
const { deletedGuilds } = require('../../structures/Guild');
|
6
|
+
const { Events } = require('../../util/Constants');
|
7
|
+
|
8
|
+
class GuildDeleteAction extends Action {
|
9
|
+
constructor(client) {
|
10
|
+
super(client);
|
11
|
+
this.deleted = new Map();
|
12
|
+
}
|
13
|
+
|
14
|
+
handle(data) {
|
15
|
+
const client = this.client;
|
16
|
+
|
17
|
+
let guild = client.guilds.cache.get(data.id);
|
18
|
+
if (guild) {
|
19
|
+
if (data.unavailable) {
|
20
|
+
// Guild is unavailable
|
21
|
+
guild.available = false;
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Emitted whenever a guild becomes unavailable, likely due to a server outage.
|
25
|
+
* @event Client#guildUnavailable
|
26
|
+
* @param {Guild} guild The guild that has become unavailable
|
27
|
+
*/
|
28
|
+
client.emit(Events.GUILD_UNAVAILABLE, guild);
|
29
|
+
|
30
|
+
// Stops the GuildDelete packet thinking a guild was actually deleted,
|
31
|
+
// handles emitting of event itself
|
32
|
+
return {
|
33
|
+
guild: null,
|
34
|
+
};
|
35
|
+
}
|
36
|
+
|
37
|
+
for (const channel of guild.channels.cache.values()) this.client.channels._remove(channel.id);
|
38
|
+
client.voice.adapters.get(data.id)?.destroy();
|
39
|
+
|
40
|
+
// Delete guild
|
41
|
+
client.guilds.cache.delete(guild.id);
|
42
|
+
deletedGuilds.add(guild);
|
43
|
+
|
44
|
+
/**
|
45
|
+
* Emitted whenever a guild kicks the client or the guild is deleted/left.
|
46
|
+
* @event Client#guildDelete
|
47
|
+
* @param {Guild} guild The guild that was deleted
|
48
|
+
*/
|
49
|
+
client.emit(Events.GUILD_DELETE, guild);
|
50
|
+
|
51
|
+
this.deleted.set(guild.id, guild);
|
52
|
+
this.scheduleForDeletion(guild.id);
|
53
|
+
} else {
|
54
|
+
guild = this.deleted.get(data.id) ?? null;
|
55
|
+
}
|
56
|
+
|
57
|
+
return { guild };
|
58
|
+
}
|
59
|
+
|
60
|
+
scheduleForDeletion(id) {
|
61
|
+
setTimeout(() => this.deleted.delete(id), this.client.options.restWsBridgeTimeout).unref();
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
module.exports = GuildDeleteAction;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Action = require('./Action');
|
4
|
+
const { Events } = require('../../util/Constants');
|
5
|
+
|
6
|
+
class GuildEmojiCreateAction extends Action {
|
7
|
+
handle(guild, createdEmoji) {
|
8
|
+
const already = guild.emojis.cache.has(createdEmoji.id);
|
9
|
+
const emoji = guild.emojis._add(createdEmoji);
|
10
|
+
/**
|
11
|
+
* Emitted whenever a custom emoji is created in a guild.
|
12
|
+
* @event Client#emojiCreate
|
13
|
+
* @param {GuildEmoji} emoji The emoji that was created
|
14
|
+
*/
|
15
|
+
if (!already) this.client.emit(Events.GUILD_EMOJI_CREATE, emoji);
|
16
|
+
return { emoji };
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
module.exports = GuildEmojiCreateAction;
|