@ovencord/discord.js 14.16.3
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 +191 -0
- package/README.md +148 -0
- package/package.json +73 -0
- package/src/client/Client.ts +967 -0
- package/src/client/actions/Action.ts +141 -0
- package/src/client/actions/ActionsManager.ts +138 -0
- package/src/client/actions/ChannelCreate.ts +21 -0
- package/src/client/actions/ChannelDelete.ts +20 -0
- package/src/client/actions/ChannelUpdate.ts +38 -0
- package/src/client/actions/GuildChannelsPositionUpdate.ts +17 -0
- package/src/client/actions/GuildEmojiCreate.ts +17 -0
- package/src/client/actions/GuildEmojiDelete.ts +16 -0
- package/src/client/actions/GuildEmojiUpdate.ts +17 -0
- package/src/client/actions/GuildEmojisUpdate.ts +30 -0
- package/src/client/actions/GuildMemberRemove.ts +29 -0
- package/src/client/actions/GuildMemberUpdate.ts +41 -0
- package/src/client/actions/GuildRoleCreate.ts +23 -0
- package/src/client/actions/GuildRoleDelete.ts +26 -0
- package/src/client/actions/GuildRolesPositionUpdate.ts +17 -0
- package/src/client/actions/GuildScheduledEventDelete.ts +28 -0
- package/src/client/actions/GuildScheduledEventUserAdd.ts +29 -0
- package/src/client/actions/GuildScheduledEventUserRemove.ts +29 -0
- package/src/client/actions/GuildSoundboardSoundDelete.ts +26 -0
- package/src/client/actions/GuildStickerCreate.ts +17 -0
- package/src/client/actions/GuildStickerDelete.ts +16 -0
- package/src/client/actions/GuildStickerUpdate.ts +17 -0
- package/src/client/actions/GuildStickersUpdate.ts +30 -0
- package/src/client/actions/GuildUpdate.ts +30 -0
- package/src/client/actions/InteractionCreate.ts +104 -0
- package/src/client/actions/MessageCreate.ts +38 -0
- package/src/client/actions/MessageDelete.ts +29 -0
- package/src/client/actions/MessageDeleteBulk.ts +45 -0
- package/src/client/actions/MessagePollVoteAdd.ts +37 -0
- package/src/client/actions/MessagePollVoteRemove.ts +35 -0
- package/src/client/actions/MessageReactionAdd.ts +68 -0
- package/src/client/actions/MessageReactionRemove.ts +47 -0
- package/src/client/actions/MessageReactionRemoveAll.ts +30 -0
- package/src/client/actions/MessageReactionRemoveEmoji.ts +25 -0
- package/src/client/actions/MessageUpdate.ts +22 -0
- package/src/client/actions/StageInstanceCreate.ts +25 -0
- package/src/client/actions/StageInstanceDelete.ts +28 -0
- package/src/client/actions/StageInstanceUpdate.ts +27 -0
- package/src/client/actions/ThreadCreate.ts +22 -0
- package/src/client/actions/ThreadMembersUpdate.ts +45 -0
- package/src/client/actions/TypingStart.ts +26 -0
- package/src/client/actions/UserUpdate.ts +33 -0
- package/src/client/voice/ClientVoiceManager.ts +46 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.ts +19 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.ts +17 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.ts +18 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.ts +21 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.ts +20 -0
- package/src/client/websocket/handlers/CHANNEL_CREATE.ts +4 -0
- package/src/client/websocket/handlers/CHANNEL_DELETE.ts +4 -0
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.ts +22 -0
- package/src/client/websocket/handlers/CHANNEL_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/ENTITLEMENT_CREATE.ts +14 -0
- package/src/client/websocket/handlers/ENTITLEMENT_DELETE.ts +18 -0
- package/src/client/websocket/handlers/ENTITLEMENT_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.ts +19 -0
- package/src/client/websocket/handlers/GUILD_BAN_ADD.ts +15 -0
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.ts +20 -0
- package/src/client/websocket/handlers/GUILD_CREATE.ts +34 -0
- package/src/client/websocket/handlers/GUILD_DELETE.ts +36 -0
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.ts +15 -0
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.ts +40 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.ts +17 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.ts +21 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.ts +17 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.ts +19 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.ts +24 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.ts +18 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.ts +20 -0
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/INTERACTION_CREATE.ts +4 -0
- package/src/client/websocket/handlers/INVITE_CREATE.ts +20 -0
- package/src/client/websocket/handlers/INVITE_DELETE.ts +23 -0
- package/src/client/websocket/handlers/MESSAGE_CREATE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/PRESENCE_UPDATE.ts +42 -0
- package/src/client/websocket/handlers/RATE_LIMITED.ts +23 -0
- package/src/client/websocket/handlers/READY.ts +29 -0
- package/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.ts +24 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.ts +4 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.ts +4 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/SUBSCRIPTION_CREATE.ts +14 -0
- package/src/client/websocket/handlers/SUBSCRIPTION_DELETE.ts +16 -0
- package/src/client/websocket/handlers/SUBSCRIPTION_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/THREAD_CREATE.ts +4 -0
- package/src/client/websocket/handlers/THREAD_DELETE.ts +17 -0
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.ts +50 -0
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.ts +25 -0
- package/src/client/websocket/handlers/THREAD_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/TYPING_START.ts +4 -0
- package/src/client/websocket/handlers/USER_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.ts +16 -0
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.ts +5 -0
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.ts +37 -0
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/index.ts +74 -0
- package/src/errors/DJSError.ts +50 -0
- package/src/errors/ErrorCodes.ts +277 -0
- package/src/errors/Messages.ts +155 -0
- package/src/errors/index.ts +6 -0
- package/src/index.ts +241 -0
- package/src/managers/ApplicationCommandManager.ts +303 -0
- package/src/managers/ApplicationCommandPermissionsManager.ts +453 -0
- package/src/managers/ApplicationEmojiManager.ts +149 -0
- package/src/managers/AutoModerationRuleManager.ts +307 -0
- package/src/managers/BaseManager.ts +13 -0
- package/src/managers/CachedManager.ts +56 -0
- package/src/managers/CategoryChannelChildManager.ts +81 -0
- package/src/managers/ChannelManager.ts +194 -0
- package/src/managers/DMMessageManager.ts +15 -0
- package/src/managers/DataManager.ts +38 -0
- package/src/managers/EntitlementManager.ts +182 -0
- package/src/managers/GuildApplicationCommandManager.ts +29 -0
- package/src/managers/GuildBanManager.ts +221 -0
- package/src/managers/GuildChannelManager.ts +552 -0
- package/src/managers/GuildEmojiManager.ts +262 -0
- package/src/managers/GuildEmojiRoleManager.ts +134 -0
- package/src/managers/GuildForumThreadManager.ts +84 -0
- package/src/managers/GuildInviteManager.ts +236 -0
- package/src/managers/GuildManager.ts +265 -0
- package/src/managers/GuildMemberManager.ts +619 -0
- package/src/managers/GuildMemberRoleManager.ts +230 -0
- package/src/managers/GuildMessageManager.ts +31 -0
- package/src/managers/GuildScheduledEventManager.ts +330 -0
- package/src/managers/GuildSoundboardSoundManager.ts +157 -0
- package/src/managers/GuildStickerManager.ts +192 -0
- package/src/managers/GuildTextThreadManager.ts +91 -0
- package/src/managers/MessageManager.ts +352 -0
- package/src/managers/PartialGroupDMMessageManager.ts +15 -0
- package/src/managers/PermissionOverwriteManager.ts +174 -0
- package/src/managers/PollAnswerVoterManager.ts +59 -0
- package/src/managers/PresenceManager.ts +60 -0
- package/src/managers/ReactionManager.ts +72 -0
- package/src/managers/ReactionUserManager.ts +82 -0
- package/src/managers/RoleManager.ts +432 -0
- package/src/managers/StageInstanceManager.ts +166 -0
- package/src/managers/SubscriptionManager.ts +83 -0
- package/src/managers/ThreadManager.ts +210 -0
- package/src/managers/ThreadMemberManager.ts +194 -0
- package/src/managers/UserManager.ts +139 -0
- package/src/managers/VoiceStateManager.ts +61 -0
- package/src/sharding/Shard.ts +513 -0
- package/src/sharding/ShardClientUtil.ts +293 -0
- package/src/sharding/ShardingManager.ts +374 -0
- package/src/structures/ActionRow.ts +31 -0
- package/src/structures/AnnouncementChannel.ts +25 -0
- package/src/structures/AnonymousGuild.ts +110 -0
- package/src/structures/ApplicationCommand.ts +675 -0
- package/src/structures/ApplicationEmoji.ts +189 -0
- package/src/structures/ApplicationRoleConnectionMetadata.ts +54 -0
- package/src/structures/Attachment.ts +189 -0
- package/src/structures/AuthorizingIntegrationOwners.ts +63 -0
- package/src/structures/AutoModerationActionExecution.ts +138 -0
- package/src/structures/AutoModerationRule.ts +325 -0
- package/src/structures/AutocompleteInteraction.ts +115 -0
- package/src/structures/Base.ts +37 -0
- package/src/structures/BaseChannel.ts +188 -0
- package/src/structures/BaseGuild.ts +134 -0
- package/src/structures/BaseGuildEmoji.ts +113 -0
- package/src/structures/BaseGuildTextChannel.ts +230 -0
- package/src/structures/BaseGuildVoiceChannel.ts +270 -0
- package/src/structures/BaseInteraction.ts +393 -0
- package/src/structures/BaseInvite.ts +192 -0
- package/src/structures/BaseSelectMenuComponent.ts +58 -0
- package/src/structures/ButtonComponent.ts +68 -0
- package/src/structures/ButtonInteraction.ts +8 -0
- package/src/structures/CategoryChannel.ts +46 -0
- package/src/structures/ChannelSelectMenuComponent.ts +18 -0
- package/src/structures/ChannelSelectMenuInteraction.ts +34 -0
- package/src/structures/ChatInputCommandInteraction.ts +43 -0
- package/src/structures/ClientApplication.ts +470 -0
- package/src/structures/ClientPresence.ts +87 -0
- package/src/structures/ClientUser.ts +219 -0
- package/src/structures/CommandInteraction.ts +193 -0
- package/src/structures/CommandInteractionOptionResolver.ts +336 -0
- package/src/structures/Component.ts +59 -0
- package/src/structures/ContainerComponent.ts +63 -0
- package/src/structures/ContextMenuCommandInteraction.ts +68 -0
- package/src/structures/DMChannel.ts +148 -0
- package/src/structures/DirectoryChannel.ts +40 -0
- package/src/structures/Embed.ts +251 -0
- package/src/structures/Emoji.ts +61 -0
- package/src/structures/Entitlement.ts +206 -0
- package/src/structures/FileComponent.ts +41 -0
- package/src/structures/ForumChannel.ts +31 -0
- package/src/structures/GroupDMInvite.ts +34 -0
- package/src/structures/Guild.ts +1605 -0
- package/src/structures/GuildAuditLogs.ts +99 -0
- package/src/structures/GuildAuditLogsEntry.ts +557 -0
- package/src/structures/GuildBan.ts +65 -0
- package/src/structures/GuildChannel.ts +515 -0
- package/src/structures/GuildEmoji.ts +159 -0
- package/src/structures/GuildInvite.ts +233 -0
- package/src/structures/GuildMember.ts +643 -0
- package/src/structures/GuildOnboarding.ts +73 -0
- package/src/structures/GuildOnboardingPrompt.ts +93 -0
- package/src/structures/GuildOnboardingPromptOption.ts +100 -0
- package/src/structures/GuildPreview.ts +218 -0
- package/src/structures/GuildPreviewEmoji.ts +28 -0
- package/src/structures/GuildScheduledEvent.ts +593 -0
- package/src/structures/GuildTemplate.ts +229 -0
- package/src/structures/Integration.ts +257 -0
- package/src/structures/IntegrationApplication.ts +84 -0
- package/src/structures/InteractionCallback.ts +86 -0
- package/src/structures/InteractionCallbackResource.ts +57 -0
- package/src/structures/InteractionCallbackResponse.ts +35 -0
- package/src/structures/InteractionCollector.ts +260 -0
- package/src/structures/InteractionWebhook.ts +65 -0
- package/src/structures/InviteGuild.ts +22 -0
- package/src/structures/LabelComponent.ts +51 -0
- package/src/structures/MediaChannel.ts +8 -0
- package/src/structures/MediaGalleryComponent.ts +31 -0
- package/src/structures/MediaGalleryItem.ts +54 -0
- package/src/structures/MentionableSelectMenuComponent.ts +8 -0
- package/src/structures/MentionableSelectMenuInteraction.ts +76 -0
- package/src/structures/Message.ts +1202 -0
- package/src/structures/MessageCollector.ts +155 -0
- package/src/structures/MessageComponentInteraction.ts +132 -0
- package/src/structures/MessageContextMenuCommandInteraction.ts +18 -0
- package/src/structures/MessageMentions.ts +327 -0
- package/src/structures/MessagePayload.ts +325 -0
- package/src/structures/MessageReaction.ts +219 -0
- package/src/structures/ModalComponentResolver.ts +237 -0
- package/src/structures/ModalSubmitInteraction.ts +260 -0
- package/src/structures/OAuth2Guild.ts +30 -0
- package/src/structures/PartialGroupDMChannel.ts +151 -0
- package/src/structures/PermissionOverwrites.ts +222 -0
- package/src/structures/Poll.ts +195 -0
- package/src/structures/PollAnswer.ts +100 -0
- package/src/structures/Presence.ts +448 -0
- package/src/structures/PrimaryEntryPointCommandInteraction.ts +8 -0
- package/src/structures/ReactionCollector.ts +245 -0
- package/src/structures/ReactionEmoji.ts +30 -0
- package/src/structures/Role.ts +543 -0
- package/src/structures/RoleSelectMenuComponent.ts +8 -0
- package/src/structures/RoleSelectMenuInteraction.ts +34 -0
- package/src/structures/SKU.ts +62 -0
- package/src/structures/SectionComponent.ts +44 -0
- package/src/structures/SeparatorComponent.ts +29 -0
- package/src/structures/SoundboardSound.ts +176 -0
- package/src/structures/StageChannel.ts +118 -0
- package/src/structures/StageInstance.ts +173 -0
- package/src/structures/Sticker.ts +300 -0
- package/src/structures/StickerPack.ts +111 -0
- package/src/structures/StringSelectMenuComponent.ts +18 -0
- package/src/structures/StringSelectMenuInteraction.ts +21 -0
- package/src/structures/Subscription.ts +138 -0
- package/src/structures/Team.ts +131 -0
- package/src/structures/TeamMember.ts +77 -0
- package/src/structures/TextChannel.ts +33 -0
- package/src/structures/TextDisplayComponent.ts +18 -0
- package/src/structures/TextInputComponent.ts +28 -0
- package/src/structures/ThreadChannel.ts +680 -0
- package/src/structures/ThreadMember.ts +125 -0
- package/src/structures/ThreadOnlyChannel.ts +276 -0
- package/src/structures/ThumbnailComponent.ts +51 -0
- package/src/structures/Typing.ts +81 -0
- package/src/structures/UnfurledMediaItem.ts +33 -0
- package/src/structures/User.ts +511 -0
- package/src/structures/UserContextMenuCommandInteraction.ts +28 -0
- package/src/structures/UserSelectMenuComponent.ts +8 -0
- package/src/structures/UserSelectMenuInteraction.ts +54 -0
- package/src/structures/VoiceChannel.ts +119 -0
- package/src/structures/VoiceChannelEffect.ts +92 -0
- package/src/structures/VoiceRegion.ts +52 -0
- package/src/structures/VoiceState.ts +346 -0
- package/src/structures/Webhook.ts +526 -0
- package/src/structures/WelcomeChannel.ts +67 -0
- package/src/structures/WelcomeScreen.ts +53 -0
- package/src/structures/Widget.ts +110 -0
- package/src/structures/WidgetMember.ts +124 -0
- package/src/structures/interfaces/Application.ts +179 -0
- package/src/structures/interfaces/Collector.ts +372 -0
- package/src/structures/interfaces/InteractionResponses.ts +384 -0
- package/src/structures/interfaces/TextBasedChannel.ts +430 -0
- package/src/util/APITypes.ts +690 -0
- package/src/util/ActivityFlagsBitField.ts +26 -0
- package/src/util/ApplicationFlagsBitField.ts +43 -0
- package/src/util/AttachmentFlagsBitField.ts +26 -0
- package/src/util/BitField.ts +178 -0
- package/src/util/ChannelFlagsBitField.ts +43 -0
- package/src/util/Channels.ts +165 -0
- package/src/util/Colors.ts +72 -0
- package/src/util/Components.ts +285 -0
- package/src/util/Constants.ts +251 -0
- package/src/util/DataResolver.ts +146 -0
- package/src/util/Enums.ts +10 -0
- package/src/util/Events.ts +178 -0
- package/src/util/GuildMemberFlagsBitField.ts +43 -0
- package/src/util/IntentsBitField.ts +35 -0
- package/src/util/InviteFlagsBitField.ts +26 -0
- package/src/util/Invites.ts +27 -0
- package/src/util/LimitedCollection.ts +73 -0
- package/src/util/MessageFlagsBitField.ts +43 -0
- package/src/util/Options.ts +215 -0
- package/src/util/Partials.ts +50 -0
- package/src/util/PermissionsBitField.ts +113 -0
- package/src/util/RoleFlagsBitField.ts +26 -0
- package/src/util/SKUFlagsBitField.ts +26 -0
- package/src/util/ShardEvents.ts +26 -0
- package/src/util/Status.ts +16 -0
- package/src/util/Sweepers.ts +532 -0
- package/src/util/Symbols.ts +1 -0
- package/src/util/SystemChannelFlagsBitField.ts +45 -0
- package/src/util/ThreadMemberFlagsBitField.ts +33 -0
- package/src/util/Transformers.ts +123 -0
- package/src/util/UserFlagsBitField.ts +33 -0
- package/src/util/Util.ts +519 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Poll } from '../../structures/Poll.js';
|
|
2
|
+
import { PollAnswer } from '../../structures/PollAnswer.js';
|
|
3
|
+
import { Partials } from '../../util/Partials.js';
|
|
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
|
+
export class Action {
|
|
18
|
+
public client: any;
|
|
19
|
+
constructor(client) {
|
|
20
|
+
this.client = client;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
handle(data) {
|
|
24
|
+
return data;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getPayload(data, manager, id, partialType, cache) {
|
|
28
|
+
return this.client.options.partials.includes(partialType) ? manager._add(data, cache) : manager.cache.get(id);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getChannel(data) {
|
|
32
|
+
const payloadData = {};
|
|
33
|
+
const id = data.channel_id ?? data.id;
|
|
34
|
+
|
|
35
|
+
if (!('recipients' in data)) {
|
|
36
|
+
// Try to resolve the recipient, but do not add the client user.
|
|
37
|
+
const recipient = data.author ?? data.user ?? { id: data.user_id };
|
|
38
|
+
if (recipient.id !== this.client.user.id) payloadData.recipients = [recipient];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (id !== undefined) payloadData.id = id;
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
data[this.client.actions.injectedChannel] ??
|
|
45
|
+
this.getPayload({ ...data, ...payloadData }, this.client.channels, id, Partials.Channel)
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
getMessage(data, channel, cache) {
|
|
50
|
+
const id = data.message_id ?? data.id;
|
|
51
|
+
return (
|
|
52
|
+
data[this.client.actions.injectedMessage] ??
|
|
53
|
+
this.getPayload(
|
|
54
|
+
{
|
|
55
|
+
id,
|
|
56
|
+
channel_id: channel.id,
|
|
57
|
+
guild_id: data.guild_id ?? channel.guild?.id,
|
|
58
|
+
},
|
|
59
|
+
channel.messages,
|
|
60
|
+
id,
|
|
61
|
+
Partials.Message,
|
|
62
|
+
cache,
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
getPoll(data, message, channel) {
|
|
68
|
+
const includePollPartial = this.client.options.partials.includes(Partials.Poll);
|
|
69
|
+
const includePollAnswerPartial = this.client.options.partials.includes(Partials.PollAnswer);
|
|
70
|
+
if (message.partial && (!includePollPartial || !includePollAnswerPartial)) return null;
|
|
71
|
+
|
|
72
|
+
if (!message.poll && includePollPartial) {
|
|
73
|
+
message.poll = new Poll(this.client, data, message, channel);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (message.poll && !message.poll.answers.has(data.answer_id) && includePollAnswerPartial) {
|
|
77
|
+
const pollAnswer = new PollAnswer(this.client, data, message.poll);
|
|
78
|
+
message.poll.answers.set(data.answer_id, pollAnswer);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return message.poll;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
getReaction(data, message, user) {
|
|
85
|
+
const id = data.emoji.id ?? decodeURIComponent(data.emoji.name);
|
|
86
|
+
return this.getPayload(
|
|
87
|
+
{
|
|
88
|
+
emoji: data.emoji,
|
|
89
|
+
count: message.partial ? null : 0,
|
|
90
|
+
me: user?.id === this.client.user.id,
|
|
91
|
+
},
|
|
92
|
+
message.reactions,
|
|
93
|
+
id,
|
|
94
|
+
Partials.Reaction,
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
getMember(data, guild) {
|
|
99
|
+
return this.getPayload(data, guild.members, data.user.id, Partials.GuildMember);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
getUser(data) {
|
|
103
|
+
const id = data.user_id;
|
|
104
|
+
return data[this.client.actions.injectedUser] ?? this.getPayload({ id }, this.client.users, id, Partials.User);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
getUserFromMember(data) {
|
|
108
|
+
if (data.guild_id && data.member?.user) {
|
|
109
|
+
const guild = this.client.guilds.cache.get(data.guild_id);
|
|
110
|
+
if (guild) {
|
|
111
|
+
return guild.members._add(data.member).user;
|
|
112
|
+
} else {
|
|
113
|
+
return this.client.users._add(data.member.user);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return this.getUser(data);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
getScheduledEvent(data, guild) {
|
|
121
|
+
const id = data.guild_scheduled_event_id ?? data.id;
|
|
122
|
+
return this.getPayload(
|
|
123
|
+
{ id, guild_id: data.guild_id ?? guild.id },
|
|
124
|
+
guild.scheduledEvents,
|
|
125
|
+
id,
|
|
126
|
+
Partials.GuildScheduledEvent,
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
getThreadMember(id, manager) {
|
|
131
|
+
return this.getPayload({ user_id: id }, manager, id, Partials.ThreadMember, false);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
getSoundboardSound(data, guild) {
|
|
135
|
+
return this.getPayload(data, guild.soundboardSounds, data.sound_id, Partials.SoundboardSound);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
spreadInjectedData(data) {
|
|
139
|
+
return Object.fromEntries(Object.getOwnPropertySymbols(data).map(symbol => [symbol, data[symbol]]));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Action } from './Action.js';
|
|
2
|
+
import { ChannelCreateAction } from './ChannelCreate.js';
|
|
3
|
+
import { ChannelDeleteAction } from './ChannelDelete.js';
|
|
4
|
+
import { ChannelUpdateAction } from './ChannelUpdate.js';
|
|
5
|
+
import { GuildChannelsPositionUpdateAction } from './GuildChannelsPositionUpdate.js';
|
|
6
|
+
import { GuildEmojiCreateAction } from './GuildEmojiCreate.js';
|
|
7
|
+
import { GuildEmojiDeleteAction } from './GuildEmojiDelete.js';
|
|
8
|
+
import { GuildEmojiUpdateAction } from './GuildEmojiUpdate.js';
|
|
9
|
+
import { GuildEmojisUpdateAction } from './GuildEmojisUpdate.js';
|
|
10
|
+
import { GuildMemberRemoveAction } from './GuildMemberRemove.js';
|
|
11
|
+
import { GuildMemberUpdateAction } from './GuildMemberUpdate.js';
|
|
12
|
+
import { GuildRoleCreateAction } from './GuildRoleCreate.js';
|
|
13
|
+
import { GuildRoleDeleteAction } from './GuildRoleDelete.js';
|
|
14
|
+
import { GuildRolesPositionUpdateAction } from './GuildRolesPositionUpdate.js';
|
|
15
|
+
import { GuildScheduledEventDeleteAction } from './GuildScheduledEventDelete.js';
|
|
16
|
+
import { GuildScheduledEventUserAddAction } from './GuildScheduledEventUserAdd.js';
|
|
17
|
+
import { GuildScheduledEventUserRemoveAction } from './GuildScheduledEventUserRemove.js';
|
|
18
|
+
import { GuildSoundboardSoundDeleteAction } from './GuildSoundboardSoundDelete.js';
|
|
19
|
+
import { GuildStickerCreateAction } from './GuildStickerCreate.js';
|
|
20
|
+
import { GuildStickerDeleteAction } from './GuildStickerDelete.js';
|
|
21
|
+
import { GuildStickerUpdateAction } from './GuildStickerUpdate.js';
|
|
22
|
+
import { GuildStickersUpdateAction } from './GuildStickersUpdate.js';
|
|
23
|
+
import { GuildUpdateAction } from './GuildUpdate.js';
|
|
24
|
+
import { InteractionCreateAction } from './InteractionCreate.js';
|
|
25
|
+
import { MessageCreateAction } from './MessageCreate.js';
|
|
26
|
+
import { MessageDeleteAction } from './MessageDelete.js';
|
|
27
|
+
import { MessageDeleteBulkAction } from './MessageDeleteBulk.js';
|
|
28
|
+
import { MessagePollVoteAddAction } from './MessagePollVoteAdd.js';
|
|
29
|
+
import { MessagePollVoteRemoveAction } from './MessagePollVoteRemove.js';
|
|
30
|
+
import { MessageReactionAddAction } from './MessageReactionAdd.js';
|
|
31
|
+
import { MessageReactionRemoveAction } from './MessageReactionRemove.js';
|
|
32
|
+
import { MessageReactionRemoveAllAction } from './MessageReactionRemoveAll.js';
|
|
33
|
+
import { MessageReactionRemoveEmojiAction } from './MessageReactionRemoveEmoji.js';
|
|
34
|
+
import { MessageUpdateAction } from './MessageUpdate.js';
|
|
35
|
+
import { StageInstanceCreateAction } from './StageInstanceCreate.js';
|
|
36
|
+
import { StageInstanceDeleteAction } from './StageInstanceDelete.js';
|
|
37
|
+
import { StageInstanceUpdateAction } from './StageInstanceUpdate.js';
|
|
38
|
+
import { ThreadCreateAction } from './ThreadCreate.js';
|
|
39
|
+
import { ThreadMembersUpdateAction } from './ThreadMembersUpdate.js';
|
|
40
|
+
import { TypingStartAction } from './TypingStart.js';
|
|
41
|
+
import { UserUpdateAction } from './UserUpdate.js';
|
|
42
|
+
|
|
43
|
+
export class ActionsManager {
|
|
44
|
+
public ChannelCreate: ChannelCreateAction;
|
|
45
|
+
public ChannelDelete: ChannelDeleteAction;
|
|
46
|
+
public ChannelUpdate: ChannelUpdateAction;
|
|
47
|
+
public GuildChannelsPositionUpdate: GuildChannelsPositionUpdateAction;
|
|
48
|
+
public GuildEmojiCreate: GuildEmojiCreateAction;
|
|
49
|
+
public GuildEmojiDelete: GuildEmojiDeleteAction;
|
|
50
|
+
public GuildEmojiUpdate: GuildEmojiUpdateAction;
|
|
51
|
+
public GuildEmojisUpdate: GuildEmojisUpdateAction;
|
|
52
|
+
public GuildMemberRemove: GuildMemberRemoveAction;
|
|
53
|
+
public GuildMemberUpdate: GuildMemberUpdateAction;
|
|
54
|
+
public GuildRoleCreate: GuildRoleCreateAction;
|
|
55
|
+
public GuildRoleDelete: GuildRoleDeleteAction;
|
|
56
|
+
public GuildRolesPositionUpdate: GuildRolesPositionUpdateAction;
|
|
57
|
+
public GuildScheduledEventDelete: GuildScheduledEventDeleteAction;
|
|
58
|
+
public GuildScheduledEventUserAdd: GuildScheduledEventUserAddAction;
|
|
59
|
+
public GuildScheduledEventUserRemove: GuildScheduledEventUserRemoveAction;
|
|
60
|
+
public GuildSoundboardSoundDelete: GuildSoundboardSoundDeleteAction;
|
|
61
|
+
public GuildStickerCreate: GuildStickerCreateAction;
|
|
62
|
+
public GuildStickerDelete: GuildStickerDeleteAction;
|
|
63
|
+
public GuildStickerUpdate: GuildStickerUpdateAction;
|
|
64
|
+
public GuildStickersUpdate: GuildStickersUpdateAction;
|
|
65
|
+
public GuildUpdate: GuildUpdateAction;
|
|
66
|
+
public InteractionCreate: InteractionCreateAction;
|
|
67
|
+
public MessageCreate: MessageCreateAction;
|
|
68
|
+
public MessageDelete: MessageDeleteAction;
|
|
69
|
+
public MessageDeleteBulk: MessageDeleteBulkAction;
|
|
70
|
+
public MessagePollVoteAdd: MessagePollVoteAddAction;
|
|
71
|
+
public MessagePollVoteRemove: MessagePollVoteRemoveAction;
|
|
72
|
+
public MessageReactionAdd: MessageReactionAddAction;
|
|
73
|
+
public MessageReactionRemove: MessageReactionRemoveAction;
|
|
74
|
+
public MessageReactionRemoveAll: MessageReactionRemoveAllAction;
|
|
75
|
+
public MessageReactionRemoveEmoji: MessageReactionRemoveEmojiAction;
|
|
76
|
+
public MessageUpdate: MessageUpdateAction;
|
|
77
|
+
public StageInstanceCreate: StageInstanceCreateAction;
|
|
78
|
+
public StageInstanceDelete: StageInstanceDeleteAction;
|
|
79
|
+
public StageInstanceUpdate: StageInstanceUpdateAction;
|
|
80
|
+
public ThreadCreate: ThreadCreateAction;
|
|
81
|
+
public ThreadMembersUpdate: ThreadMembersUpdateAction;
|
|
82
|
+
public TypingStart: TypingStartAction;
|
|
83
|
+
public UserUpdate: UserUpdateAction;
|
|
84
|
+
public client: any;
|
|
85
|
+
// These symbols represent fully built data that we inject at times when calling actions manually.
|
|
86
|
+
// Action#getUser, for example, will return the injected data (which is assumed to be a built structure)
|
|
87
|
+
// instead of trying to make it from provided data
|
|
88
|
+
injectedUser = Symbol('djs.actions.injectedUser');
|
|
89
|
+
|
|
90
|
+
injectedChannel = Symbol('djs.actions.injectedChannel');
|
|
91
|
+
|
|
92
|
+
injectedMessage = Symbol('djs.actions.injectedMessage');
|
|
93
|
+
|
|
94
|
+
constructor(client: any) {
|
|
95
|
+
this.client = client;
|
|
96
|
+
|
|
97
|
+
this.ChannelCreate = new ChannelCreateAction(this.client);
|
|
98
|
+
this.ChannelDelete = new ChannelDeleteAction(this.client);
|
|
99
|
+
this.ChannelUpdate = new ChannelUpdateAction(this.client);
|
|
100
|
+
this.GuildChannelsPositionUpdate = new GuildChannelsPositionUpdateAction(this.client);
|
|
101
|
+
this.GuildEmojiCreate = new GuildEmojiCreateAction(this.client);
|
|
102
|
+
this.GuildEmojiDelete = new GuildEmojiDeleteAction(this.client);
|
|
103
|
+
this.GuildEmojiUpdate = new GuildEmojiUpdateAction(this.client);
|
|
104
|
+
this.GuildEmojisUpdate = new GuildEmojisUpdateAction(this.client);
|
|
105
|
+
this.GuildMemberRemove = new GuildMemberRemoveAction(this.client);
|
|
106
|
+
this.GuildMemberUpdate = new GuildMemberUpdateAction(this.client);
|
|
107
|
+
this.GuildRoleCreate = new GuildRoleCreateAction(this.client);
|
|
108
|
+
this.GuildRoleDelete = new GuildRoleDeleteAction(this.client);
|
|
109
|
+
this.GuildRolesPositionUpdate = new GuildRolesPositionUpdateAction(this.client);
|
|
110
|
+
this.GuildScheduledEventDelete = new GuildScheduledEventDeleteAction(this.client);
|
|
111
|
+
this.GuildScheduledEventUserAdd = new GuildScheduledEventUserAddAction(this.client);
|
|
112
|
+
this.GuildScheduledEventUserRemove = new GuildScheduledEventUserRemoveAction(this.client);
|
|
113
|
+
this.GuildSoundboardSoundDelete = new GuildSoundboardSoundDeleteAction(this.client);
|
|
114
|
+
this.GuildStickerCreate = new GuildStickerCreateAction(this.client);
|
|
115
|
+
this.GuildStickerDelete = new GuildStickerDeleteAction(this.client);
|
|
116
|
+
this.GuildStickerUpdate = new GuildStickerUpdateAction(this.client);
|
|
117
|
+
this.GuildStickersUpdate = new GuildStickersUpdateAction(this.client);
|
|
118
|
+
this.GuildUpdate = new GuildUpdateAction(this.client);
|
|
119
|
+
this.InteractionCreate = new InteractionCreateAction(this.client);
|
|
120
|
+
this.MessageCreate = new MessageCreateAction(this.client);
|
|
121
|
+
this.MessageDelete = new MessageDeleteAction(this.client);
|
|
122
|
+
this.MessageDeleteBulk = new MessageDeleteBulkAction(this.client);
|
|
123
|
+
this.MessagePollVoteAdd = new MessagePollVoteAddAction(this.client);
|
|
124
|
+
this.MessagePollVoteRemove = new MessagePollVoteRemoveAction(this.client);
|
|
125
|
+
this.MessageReactionAdd = new MessageReactionAddAction(this.client);
|
|
126
|
+
this.MessageReactionRemove = new MessageReactionRemoveAction(this.client);
|
|
127
|
+
this.MessageReactionRemoveAll = new MessageReactionRemoveAllAction(this.client);
|
|
128
|
+
this.MessageReactionRemoveEmoji = new MessageReactionRemoveEmojiAction(this.client);
|
|
129
|
+
this.MessageUpdate = new MessageUpdateAction(this.client);
|
|
130
|
+
this.StageInstanceCreate = new StageInstanceCreateAction(this.client);
|
|
131
|
+
this.StageInstanceDelete = new StageInstanceDeleteAction(this.client);
|
|
132
|
+
this.StageInstanceUpdate = new StageInstanceUpdateAction(this.client);
|
|
133
|
+
this.ThreadCreate = new ThreadCreateAction(this.client);
|
|
134
|
+
this.ThreadMembersUpdate = new ThreadMembersUpdateAction(this.client);
|
|
135
|
+
this.TypingStart = new TypingStartAction(this.client);
|
|
136
|
+
this.UserUpdate = new UserUpdateAction(this.client);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class ChannelCreateAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
const existing = client.channels.cache.has(data.id);
|
|
8
|
+
const channel = client.channels._add(data);
|
|
9
|
+
if (!existing && channel) {
|
|
10
|
+
/**
|
|
11
|
+
* Emitted whenever a guild channel is created.
|
|
12
|
+
*
|
|
13
|
+
* @event Client#channelCreate
|
|
14
|
+
* @param {GuildChannel} channel The channel that was created
|
|
15
|
+
*/
|
|
16
|
+
client.emit(Events.ChannelCreate, channel);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return { channel };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class ChannelDeleteAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
const channel = client.channels.cache.get(data.id);
|
|
8
|
+
|
|
9
|
+
if (channel) {
|
|
10
|
+
client.channels._remove(channel.id);
|
|
11
|
+
/**
|
|
12
|
+
* Emitted whenever a channel is deleted.
|
|
13
|
+
*
|
|
14
|
+
* @event Client#channelDelete
|
|
15
|
+
* @param {DMChannel|GuildChannel} channel The channel that was deleted
|
|
16
|
+
*/
|
|
17
|
+
client.emit(Events.ChannelDelete, channel);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createChannel } from '../../util/Channels.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class ChannelUpdateAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
let channel = client.channels.cache.get(data.id);
|
|
8
|
+
|
|
9
|
+
if (channel) {
|
|
10
|
+
const old = channel._update(data);
|
|
11
|
+
|
|
12
|
+
if (channel.type !== data.type) {
|
|
13
|
+
const newChannel = createChannel(this.client, data, channel.guild);
|
|
14
|
+
|
|
15
|
+
if (!newChannel) {
|
|
16
|
+
this.client.channels.cache.delete(channel.id);
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (channel.isTextBased() && newChannel.isTextBased()) {
|
|
21
|
+
for (const [id, message] of channel.messages.cache) newChannel.messages.cache.set(id, message);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
channel = newChannel;
|
|
25
|
+
this.client.channels.cache.set(channel.id, channel);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
old,
|
|
30
|
+
updated: channel,
|
|
31
|
+
};
|
|
32
|
+
} else {
|
|
33
|
+
client.channels._add(data);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Action } from './Action.js';
|
|
2
|
+
|
|
3
|
+
export class GuildChannelsPositionUpdateAction extends Action {
|
|
4
|
+
handle(data) {
|
|
5
|
+
const client = this.client;
|
|
6
|
+
|
|
7
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
8
|
+
if (guild) {
|
|
9
|
+
for (const partialChannel of data.channels) {
|
|
10
|
+
const channel = guild.channels.cache.get(partialChannel.id);
|
|
11
|
+
if (channel) channel.rawPosition = partialChannel.position;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return { guild };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildEmojiCreateAction extends Action {
|
|
5
|
+
handle(guild, createdEmoji) {
|
|
6
|
+
const already = guild.emojis.cache.has(createdEmoji.id);
|
|
7
|
+
const emoji = guild.emojis._add(createdEmoji);
|
|
8
|
+
/**
|
|
9
|
+
* Emitted whenever a custom emoji is created in a guild.
|
|
10
|
+
*
|
|
11
|
+
* @event Client#emojiCreate
|
|
12
|
+
* @param {GuildEmoji} emoji The emoji that was created
|
|
13
|
+
*/
|
|
14
|
+
if (!already) this.client.emit(Events.GuildEmojiCreate, emoji);
|
|
15
|
+
return { emoji };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildEmojiDeleteAction extends Action {
|
|
5
|
+
handle(emoji) {
|
|
6
|
+
emoji.guild.emojis.cache.delete(emoji.id);
|
|
7
|
+
/**
|
|
8
|
+
* Emitted whenever a custom emoji is deleted in a guild.
|
|
9
|
+
*
|
|
10
|
+
* @event Client#emojiDelete
|
|
11
|
+
* @param {GuildEmoji} emoji The emoji that was deleted
|
|
12
|
+
*/
|
|
13
|
+
this.client.emit(Events.GuildEmojiDelete, emoji);
|
|
14
|
+
return { emoji };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildEmojiUpdateAction extends Action {
|
|
5
|
+
handle(current, data) {
|
|
6
|
+
const old = current._update(data);
|
|
7
|
+
/**
|
|
8
|
+
* Emitted whenever a custom emoji is updated in a guild.
|
|
9
|
+
*
|
|
10
|
+
* @event Client#emojiUpdate
|
|
11
|
+
* @param {GuildEmoji} oldEmoji The old emoji
|
|
12
|
+
* @param {GuildEmoji} newEmoji The new emoji
|
|
13
|
+
*/
|
|
14
|
+
this.client.emit(Events.GuildEmojiUpdate, old, current);
|
|
15
|
+
return { emoji: current };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Action } from './Action.js';
|
|
2
|
+
|
|
3
|
+
export class GuildEmojisUpdateAction extends Action {
|
|
4
|
+
handle(data) {
|
|
5
|
+
const guild = this.client.guilds.cache.get(data.guild_id);
|
|
6
|
+
if (!guild?.emojis) return;
|
|
7
|
+
|
|
8
|
+
const deletions = new Map(guild.emojis.cache);
|
|
9
|
+
|
|
10
|
+
for (const emoji of data.emojis) {
|
|
11
|
+
// Determine type of emoji event
|
|
12
|
+
const cachedEmoji = guild.emojis.cache.get(emoji.id);
|
|
13
|
+
if (cachedEmoji) {
|
|
14
|
+
deletions.delete(emoji.id);
|
|
15
|
+
if (!cachedEmoji.equals(emoji)) {
|
|
16
|
+
// Emoji updated
|
|
17
|
+
this.client.actions.GuildEmojiUpdate.handle(cachedEmoji, emoji);
|
|
18
|
+
}
|
|
19
|
+
} else {
|
|
20
|
+
// Emoji added
|
|
21
|
+
this.client.actions.GuildEmojiCreate.handle(guild, emoji);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
for (const emoji of deletions.values()) {
|
|
26
|
+
// Emoji deleted
|
|
27
|
+
this.client.actions.GuildEmojiDelete.handle(emoji);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildMemberRemoveAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
8
|
+
let member = null;
|
|
9
|
+
if (guild) {
|
|
10
|
+
member = this.getMember({ user: data.user }, guild);
|
|
11
|
+
guild.memberCount--;
|
|
12
|
+
if (member) {
|
|
13
|
+
guild.members.cache.delete(member.id);
|
|
14
|
+
/**
|
|
15
|
+
* Emitted whenever a member leaves a guild, or is kicked.
|
|
16
|
+
*
|
|
17
|
+
* @event Client#guildMemberRemove
|
|
18
|
+
* @param {GuildMember} member The member that has left/been kicked from the guild
|
|
19
|
+
*/
|
|
20
|
+
client.emit(Events.GuildMemberRemove, member);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
guild.presences.cache.delete(data.user.id);
|
|
24
|
+
guild.voiceStates.cache.delete(data.user.id);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return { guild, member };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildMemberUpdateAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const { client } = this;
|
|
7
|
+
if (data.user.username) {
|
|
8
|
+
const user = client.users.cache.get(data.user.id);
|
|
9
|
+
if (!user) {
|
|
10
|
+
client.users._add(data.user);
|
|
11
|
+
} else if (!user._equals(data.user)) {
|
|
12
|
+
client.actions.UserUpdate.handle(data.user);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
17
|
+
if (guild) {
|
|
18
|
+
const member = this.getMember({ user: data.user }, guild);
|
|
19
|
+
if (member) {
|
|
20
|
+
const old = member._update(data);
|
|
21
|
+
/**
|
|
22
|
+
* Emitted whenever a guild member changes - i.e. new role, removed role, nickname.
|
|
23
|
+
*
|
|
24
|
+
* @event Client#guildMemberUpdate
|
|
25
|
+
* @param {GuildMember} oldMember The member before the update
|
|
26
|
+
* @param {GuildMember} newMember The member after the update
|
|
27
|
+
*/
|
|
28
|
+
if (!member.equals(old)) client.emit(Events.GuildMemberUpdate, old, member);
|
|
29
|
+
} else {
|
|
30
|
+
const newMember = guild.members._add(data);
|
|
31
|
+
/**
|
|
32
|
+
* Emitted whenever a member becomes available.
|
|
33
|
+
*
|
|
34
|
+
* @event Client#guildMemberAvailable
|
|
35
|
+
* @param {GuildMember} member The member that became available
|
|
36
|
+
*/
|
|
37
|
+
this.client.emit(Events.GuildMemberAvailable, newMember);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildRoleCreateAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
8
|
+
let role;
|
|
9
|
+
if (guild) {
|
|
10
|
+
const already = guild.roles.cache.has(data.role.id);
|
|
11
|
+
role = guild.roles._add(data.role);
|
|
12
|
+
/**
|
|
13
|
+
* Emitted whenever a role is created.
|
|
14
|
+
*
|
|
15
|
+
* @event Client#roleCreate
|
|
16
|
+
* @param {Role} role The role that was created
|
|
17
|
+
*/
|
|
18
|
+
if (!already) client.emit(Events.GuildRoleCreate, role);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return { role };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildRoleDeleteAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
8
|
+
let role;
|
|
9
|
+
|
|
10
|
+
if (guild) {
|
|
11
|
+
role = guild.roles.cache.get(data.role_id);
|
|
12
|
+
if (role) {
|
|
13
|
+
guild.roles.cache.delete(data.role_id);
|
|
14
|
+
/**
|
|
15
|
+
* Emitted whenever a guild role is deleted.
|
|
16
|
+
*
|
|
17
|
+
* @event Client#roleDelete
|
|
18
|
+
* @param {Role} role The role that was deleted
|
|
19
|
+
*/
|
|
20
|
+
client.emit(Events.GuildRoleDelete, role);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return { role };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Action } from './Action.js';
|
|
2
|
+
|
|
3
|
+
export class GuildRolesPositionUpdateAction extends Action {
|
|
4
|
+
handle(data) {
|
|
5
|
+
const client = this.client;
|
|
6
|
+
|
|
7
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
8
|
+
if (guild) {
|
|
9
|
+
for (const partialRole of data.roles) {
|
|
10
|
+
const role = guild.roles.cache.get(partialRole.id);
|
|
11
|
+
if (role) role.rawPosition = partialRole.position;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return { guild };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildScheduledEventDeleteAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
8
|
+
|
|
9
|
+
if (guild) {
|
|
10
|
+
const guildScheduledEvent = this.getScheduledEvent(data, guild);
|
|
11
|
+
if (guildScheduledEvent) {
|
|
12
|
+
guild.scheduledEvents.cache.delete(guildScheduledEvent.id);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Emitted whenever a guild scheduled event is deleted.
|
|
16
|
+
*
|
|
17
|
+
* @event Client#guildScheduledEventDelete
|
|
18
|
+
* @param {GuildScheduledEvent} guildScheduledEvent The deleted guild scheduled event
|
|
19
|
+
*/
|
|
20
|
+
client.emit(Events.GuildScheduledEventDelete, guildScheduledEvent);
|
|
21
|
+
|
|
22
|
+
return { guildScheduledEvent };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Events } from '../../util/Events.js';
|
|
2
|
+
import { Action } from './Action.js';
|
|
3
|
+
|
|
4
|
+
export class GuildScheduledEventUserAddAction extends Action {
|
|
5
|
+
handle(data) {
|
|
6
|
+
const client = this.client;
|
|
7
|
+
const guild = client.guilds.cache.get(data.guild_id);
|
|
8
|
+
|
|
9
|
+
if (guild) {
|
|
10
|
+
const guildScheduledEvent = this.getScheduledEvent(data, guild);
|
|
11
|
+
const user = this.getUser(data);
|
|
12
|
+
|
|
13
|
+
if (guildScheduledEvent && user) {
|
|
14
|
+
/**
|
|
15
|
+
* Emitted whenever a user subscribes to a guild scheduled event
|
|
16
|
+
*
|
|
17
|
+
* @event Client#guildScheduledEventUserAdd
|
|
18
|
+
* @param {GuildScheduledEvent} guildScheduledEvent The guild scheduled event
|
|
19
|
+
* @param {User} user The user who subscribed
|
|
20
|
+
*/
|
|
21
|
+
client.emit(Events.GuildScheduledEventUserAdd, guildScheduledEvent, user);
|
|
22
|
+
|
|
23
|
+
return { guildScheduledEvent, user };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
}
|