@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.
Files changed (332) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +148 -0
  3. package/package.json +73 -0
  4. package/src/client/Client.ts +967 -0
  5. package/src/client/actions/Action.ts +141 -0
  6. package/src/client/actions/ActionsManager.ts +138 -0
  7. package/src/client/actions/ChannelCreate.ts +21 -0
  8. package/src/client/actions/ChannelDelete.ts +20 -0
  9. package/src/client/actions/ChannelUpdate.ts +38 -0
  10. package/src/client/actions/GuildChannelsPositionUpdate.ts +17 -0
  11. package/src/client/actions/GuildEmojiCreate.ts +17 -0
  12. package/src/client/actions/GuildEmojiDelete.ts +16 -0
  13. package/src/client/actions/GuildEmojiUpdate.ts +17 -0
  14. package/src/client/actions/GuildEmojisUpdate.ts +30 -0
  15. package/src/client/actions/GuildMemberRemove.ts +29 -0
  16. package/src/client/actions/GuildMemberUpdate.ts +41 -0
  17. package/src/client/actions/GuildRoleCreate.ts +23 -0
  18. package/src/client/actions/GuildRoleDelete.ts +26 -0
  19. package/src/client/actions/GuildRolesPositionUpdate.ts +17 -0
  20. package/src/client/actions/GuildScheduledEventDelete.ts +28 -0
  21. package/src/client/actions/GuildScheduledEventUserAdd.ts +29 -0
  22. package/src/client/actions/GuildScheduledEventUserRemove.ts +29 -0
  23. package/src/client/actions/GuildSoundboardSoundDelete.ts +26 -0
  24. package/src/client/actions/GuildStickerCreate.ts +17 -0
  25. package/src/client/actions/GuildStickerDelete.ts +16 -0
  26. package/src/client/actions/GuildStickerUpdate.ts +17 -0
  27. package/src/client/actions/GuildStickersUpdate.ts +30 -0
  28. package/src/client/actions/GuildUpdate.ts +30 -0
  29. package/src/client/actions/InteractionCreate.ts +104 -0
  30. package/src/client/actions/MessageCreate.ts +38 -0
  31. package/src/client/actions/MessageDelete.ts +29 -0
  32. package/src/client/actions/MessageDeleteBulk.ts +45 -0
  33. package/src/client/actions/MessagePollVoteAdd.ts +37 -0
  34. package/src/client/actions/MessagePollVoteRemove.ts +35 -0
  35. package/src/client/actions/MessageReactionAdd.ts +68 -0
  36. package/src/client/actions/MessageReactionRemove.ts +47 -0
  37. package/src/client/actions/MessageReactionRemoveAll.ts +30 -0
  38. package/src/client/actions/MessageReactionRemoveEmoji.ts +25 -0
  39. package/src/client/actions/MessageUpdate.ts +22 -0
  40. package/src/client/actions/StageInstanceCreate.ts +25 -0
  41. package/src/client/actions/StageInstanceDelete.ts +28 -0
  42. package/src/client/actions/StageInstanceUpdate.ts +27 -0
  43. package/src/client/actions/ThreadCreate.ts +22 -0
  44. package/src/client/actions/ThreadMembersUpdate.ts +45 -0
  45. package/src/client/actions/TypingStart.ts +26 -0
  46. package/src/client/actions/UserUpdate.ts +33 -0
  47. package/src/client/voice/ClientVoiceManager.ts +46 -0
  48. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.ts +19 -0
  49. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.ts +17 -0
  50. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.ts +18 -0
  51. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.ts +21 -0
  52. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.ts +20 -0
  53. package/src/client/websocket/handlers/CHANNEL_CREATE.ts +4 -0
  54. package/src/client/websocket/handlers/CHANNEL_DELETE.ts +4 -0
  55. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.ts +22 -0
  56. package/src/client/websocket/handlers/CHANNEL_UPDATE.ts +16 -0
  57. package/src/client/websocket/handlers/ENTITLEMENT_CREATE.ts +14 -0
  58. package/src/client/websocket/handlers/ENTITLEMENT_DELETE.ts +18 -0
  59. package/src/client/websocket/handlers/ENTITLEMENT_UPDATE.ts +16 -0
  60. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.ts +19 -0
  61. package/src/client/websocket/handlers/GUILD_BAN_ADD.ts +15 -0
  62. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.ts +20 -0
  63. package/src/client/websocket/handlers/GUILD_CREATE.ts +34 -0
  64. package/src/client/websocket/handlers/GUILD_DELETE.ts +36 -0
  65. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.ts +4 -0
  66. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.ts +15 -0
  67. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.ts +40 -0
  68. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.ts +17 -0
  69. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.ts +4 -0
  70. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.ts +4 -0
  71. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.ts +4 -0
  72. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.ts +4 -0
  73. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.ts +21 -0
  74. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.ts +17 -0
  75. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.ts +4 -0
  76. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.ts +19 -0
  77. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.ts +4 -0
  78. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.ts +4 -0
  79. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.ts +24 -0
  80. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.ts +18 -0
  81. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.ts +4 -0
  82. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.ts +20 -0
  83. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.ts +4 -0
  84. package/src/client/websocket/handlers/GUILD_UPDATE.ts +4 -0
  85. package/src/client/websocket/handlers/INTERACTION_CREATE.ts +4 -0
  86. package/src/client/websocket/handlers/INVITE_CREATE.ts +20 -0
  87. package/src/client/websocket/handlers/INVITE_DELETE.ts +23 -0
  88. package/src/client/websocket/handlers/MESSAGE_CREATE.ts +4 -0
  89. package/src/client/websocket/handlers/MESSAGE_DELETE.ts +4 -0
  90. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.ts +4 -0
  91. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.ts +4 -0
  92. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.ts +4 -0
  93. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.ts +4 -0
  94. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.ts +4 -0
  95. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.ts +4 -0
  96. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.ts +4 -0
  97. package/src/client/websocket/handlers/MESSAGE_UPDATE.ts +16 -0
  98. package/src/client/websocket/handlers/PRESENCE_UPDATE.ts +42 -0
  99. package/src/client/websocket/handlers/RATE_LIMITED.ts +23 -0
  100. package/src/client/websocket/handlers/READY.ts +29 -0
  101. package/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.ts +24 -0
  102. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.ts +4 -0
  103. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.ts +4 -0
  104. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.ts +4 -0
  105. package/src/client/websocket/handlers/SUBSCRIPTION_CREATE.ts +14 -0
  106. package/src/client/websocket/handlers/SUBSCRIPTION_DELETE.ts +16 -0
  107. package/src/client/websocket/handlers/SUBSCRIPTION_UPDATE.ts +16 -0
  108. package/src/client/websocket/handlers/THREAD_CREATE.ts +4 -0
  109. package/src/client/websocket/handlers/THREAD_DELETE.ts +17 -0
  110. package/src/client/websocket/handlers/THREAD_LIST_SYNC.ts +50 -0
  111. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.ts +4 -0
  112. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.ts +25 -0
  113. package/src/client/websocket/handlers/THREAD_UPDATE.ts +16 -0
  114. package/src/client/websocket/handlers/TYPING_START.ts +4 -0
  115. package/src/client/websocket/handlers/USER_UPDATE.ts +4 -0
  116. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.ts +16 -0
  117. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.ts +5 -0
  118. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.ts +37 -0
  119. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.ts +16 -0
  120. package/src/client/websocket/handlers/index.ts +74 -0
  121. package/src/errors/DJSError.ts +50 -0
  122. package/src/errors/ErrorCodes.ts +277 -0
  123. package/src/errors/Messages.ts +155 -0
  124. package/src/errors/index.ts +6 -0
  125. package/src/index.ts +241 -0
  126. package/src/managers/ApplicationCommandManager.ts +303 -0
  127. package/src/managers/ApplicationCommandPermissionsManager.ts +453 -0
  128. package/src/managers/ApplicationEmojiManager.ts +149 -0
  129. package/src/managers/AutoModerationRuleManager.ts +307 -0
  130. package/src/managers/BaseManager.ts +13 -0
  131. package/src/managers/CachedManager.ts +56 -0
  132. package/src/managers/CategoryChannelChildManager.ts +81 -0
  133. package/src/managers/ChannelManager.ts +194 -0
  134. package/src/managers/DMMessageManager.ts +15 -0
  135. package/src/managers/DataManager.ts +38 -0
  136. package/src/managers/EntitlementManager.ts +182 -0
  137. package/src/managers/GuildApplicationCommandManager.ts +29 -0
  138. package/src/managers/GuildBanManager.ts +221 -0
  139. package/src/managers/GuildChannelManager.ts +552 -0
  140. package/src/managers/GuildEmojiManager.ts +262 -0
  141. package/src/managers/GuildEmojiRoleManager.ts +134 -0
  142. package/src/managers/GuildForumThreadManager.ts +84 -0
  143. package/src/managers/GuildInviteManager.ts +236 -0
  144. package/src/managers/GuildManager.ts +265 -0
  145. package/src/managers/GuildMemberManager.ts +619 -0
  146. package/src/managers/GuildMemberRoleManager.ts +230 -0
  147. package/src/managers/GuildMessageManager.ts +31 -0
  148. package/src/managers/GuildScheduledEventManager.ts +330 -0
  149. package/src/managers/GuildSoundboardSoundManager.ts +157 -0
  150. package/src/managers/GuildStickerManager.ts +192 -0
  151. package/src/managers/GuildTextThreadManager.ts +91 -0
  152. package/src/managers/MessageManager.ts +352 -0
  153. package/src/managers/PartialGroupDMMessageManager.ts +15 -0
  154. package/src/managers/PermissionOverwriteManager.ts +174 -0
  155. package/src/managers/PollAnswerVoterManager.ts +59 -0
  156. package/src/managers/PresenceManager.ts +60 -0
  157. package/src/managers/ReactionManager.ts +72 -0
  158. package/src/managers/ReactionUserManager.ts +82 -0
  159. package/src/managers/RoleManager.ts +432 -0
  160. package/src/managers/StageInstanceManager.ts +166 -0
  161. package/src/managers/SubscriptionManager.ts +83 -0
  162. package/src/managers/ThreadManager.ts +210 -0
  163. package/src/managers/ThreadMemberManager.ts +194 -0
  164. package/src/managers/UserManager.ts +139 -0
  165. package/src/managers/VoiceStateManager.ts +61 -0
  166. package/src/sharding/Shard.ts +513 -0
  167. package/src/sharding/ShardClientUtil.ts +293 -0
  168. package/src/sharding/ShardingManager.ts +374 -0
  169. package/src/structures/ActionRow.ts +31 -0
  170. package/src/structures/AnnouncementChannel.ts +25 -0
  171. package/src/structures/AnonymousGuild.ts +110 -0
  172. package/src/structures/ApplicationCommand.ts +675 -0
  173. package/src/structures/ApplicationEmoji.ts +189 -0
  174. package/src/structures/ApplicationRoleConnectionMetadata.ts +54 -0
  175. package/src/structures/Attachment.ts +189 -0
  176. package/src/structures/AuthorizingIntegrationOwners.ts +63 -0
  177. package/src/structures/AutoModerationActionExecution.ts +138 -0
  178. package/src/structures/AutoModerationRule.ts +325 -0
  179. package/src/structures/AutocompleteInteraction.ts +115 -0
  180. package/src/structures/Base.ts +37 -0
  181. package/src/structures/BaseChannel.ts +188 -0
  182. package/src/structures/BaseGuild.ts +134 -0
  183. package/src/structures/BaseGuildEmoji.ts +113 -0
  184. package/src/structures/BaseGuildTextChannel.ts +230 -0
  185. package/src/structures/BaseGuildVoiceChannel.ts +270 -0
  186. package/src/structures/BaseInteraction.ts +393 -0
  187. package/src/structures/BaseInvite.ts +192 -0
  188. package/src/structures/BaseSelectMenuComponent.ts +58 -0
  189. package/src/structures/ButtonComponent.ts +68 -0
  190. package/src/structures/ButtonInteraction.ts +8 -0
  191. package/src/structures/CategoryChannel.ts +46 -0
  192. package/src/structures/ChannelSelectMenuComponent.ts +18 -0
  193. package/src/structures/ChannelSelectMenuInteraction.ts +34 -0
  194. package/src/structures/ChatInputCommandInteraction.ts +43 -0
  195. package/src/structures/ClientApplication.ts +470 -0
  196. package/src/structures/ClientPresence.ts +87 -0
  197. package/src/structures/ClientUser.ts +219 -0
  198. package/src/structures/CommandInteraction.ts +193 -0
  199. package/src/structures/CommandInteractionOptionResolver.ts +336 -0
  200. package/src/structures/Component.ts +59 -0
  201. package/src/structures/ContainerComponent.ts +63 -0
  202. package/src/structures/ContextMenuCommandInteraction.ts +68 -0
  203. package/src/structures/DMChannel.ts +148 -0
  204. package/src/structures/DirectoryChannel.ts +40 -0
  205. package/src/structures/Embed.ts +251 -0
  206. package/src/structures/Emoji.ts +61 -0
  207. package/src/structures/Entitlement.ts +206 -0
  208. package/src/structures/FileComponent.ts +41 -0
  209. package/src/structures/ForumChannel.ts +31 -0
  210. package/src/structures/GroupDMInvite.ts +34 -0
  211. package/src/structures/Guild.ts +1605 -0
  212. package/src/structures/GuildAuditLogs.ts +99 -0
  213. package/src/structures/GuildAuditLogsEntry.ts +557 -0
  214. package/src/structures/GuildBan.ts +65 -0
  215. package/src/structures/GuildChannel.ts +515 -0
  216. package/src/structures/GuildEmoji.ts +159 -0
  217. package/src/structures/GuildInvite.ts +233 -0
  218. package/src/structures/GuildMember.ts +643 -0
  219. package/src/structures/GuildOnboarding.ts +73 -0
  220. package/src/structures/GuildOnboardingPrompt.ts +93 -0
  221. package/src/structures/GuildOnboardingPromptOption.ts +100 -0
  222. package/src/structures/GuildPreview.ts +218 -0
  223. package/src/structures/GuildPreviewEmoji.ts +28 -0
  224. package/src/structures/GuildScheduledEvent.ts +593 -0
  225. package/src/structures/GuildTemplate.ts +229 -0
  226. package/src/structures/Integration.ts +257 -0
  227. package/src/structures/IntegrationApplication.ts +84 -0
  228. package/src/structures/InteractionCallback.ts +86 -0
  229. package/src/structures/InteractionCallbackResource.ts +57 -0
  230. package/src/structures/InteractionCallbackResponse.ts +35 -0
  231. package/src/structures/InteractionCollector.ts +260 -0
  232. package/src/structures/InteractionWebhook.ts +65 -0
  233. package/src/structures/InviteGuild.ts +22 -0
  234. package/src/structures/LabelComponent.ts +51 -0
  235. package/src/structures/MediaChannel.ts +8 -0
  236. package/src/structures/MediaGalleryComponent.ts +31 -0
  237. package/src/structures/MediaGalleryItem.ts +54 -0
  238. package/src/structures/MentionableSelectMenuComponent.ts +8 -0
  239. package/src/structures/MentionableSelectMenuInteraction.ts +76 -0
  240. package/src/structures/Message.ts +1202 -0
  241. package/src/structures/MessageCollector.ts +155 -0
  242. package/src/structures/MessageComponentInteraction.ts +132 -0
  243. package/src/structures/MessageContextMenuCommandInteraction.ts +18 -0
  244. package/src/structures/MessageMentions.ts +327 -0
  245. package/src/structures/MessagePayload.ts +325 -0
  246. package/src/structures/MessageReaction.ts +219 -0
  247. package/src/structures/ModalComponentResolver.ts +237 -0
  248. package/src/structures/ModalSubmitInteraction.ts +260 -0
  249. package/src/structures/OAuth2Guild.ts +30 -0
  250. package/src/structures/PartialGroupDMChannel.ts +151 -0
  251. package/src/structures/PermissionOverwrites.ts +222 -0
  252. package/src/structures/Poll.ts +195 -0
  253. package/src/structures/PollAnswer.ts +100 -0
  254. package/src/structures/Presence.ts +448 -0
  255. package/src/structures/PrimaryEntryPointCommandInteraction.ts +8 -0
  256. package/src/structures/ReactionCollector.ts +245 -0
  257. package/src/structures/ReactionEmoji.ts +30 -0
  258. package/src/structures/Role.ts +543 -0
  259. package/src/structures/RoleSelectMenuComponent.ts +8 -0
  260. package/src/structures/RoleSelectMenuInteraction.ts +34 -0
  261. package/src/structures/SKU.ts +62 -0
  262. package/src/structures/SectionComponent.ts +44 -0
  263. package/src/structures/SeparatorComponent.ts +29 -0
  264. package/src/structures/SoundboardSound.ts +176 -0
  265. package/src/structures/StageChannel.ts +118 -0
  266. package/src/structures/StageInstance.ts +173 -0
  267. package/src/structures/Sticker.ts +300 -0
  268. package/src/structures/StickerPack.ts +111 -0
  269. package/src/structures/StringSelectMenuComponent.ts +18 -0
  270. package/src/structures/StringSelectMenuInteraction.ts +21 -0
  271. package/src/structures/Subscription.ts +138 -0
  272. package/src/structures/Team.ts +131 -0
  273. package/src/structures/TeamMember.ts +77 -0
  274. package/src/structures/TextChannel.ts +33 -0
  275. package/src/structures/TextDisplayComponent.ts +18 -0
  276. package/src/structures/TextInputComponent.ts +28 -0
  277. package/src/structures/ThreadChannel.ts +680 -0
  278. package/src/structures/ThreadMember.ts +125 -0
  279. package/src/structures/ThreadOnlyChannel.ts +276 -0
  280. package/src/structures/ThumbnailComponent.ts +51 -0
  281. package/src/structures/Typing.ts +81 -0
  282. package/src/structures/UnfurledMediaItem.ts +33 -0
  283. package/src/structures/User.ts +511 -0
  284. package/src/structures/UserContextMenuCommandInteraction.ts +28 -0
  285. package/src/structures/UserSelectMenuComponent.ts +8 -0
  286. package/src/structures/UserSelectMenuInteraction.ts +54 -0
  287. package/src/structures/VoiceChannel.ts +119 -0
  288. package/src/structures/VoiceChannelEffect.ts +92 -0
  289. package/src/structures/VoiceRegion.ts +52 -0
  290. package/src/structures/VoiceState.ts +346 -0
  291. package/src/structures/Webhook.ts +526 -0
  292. package/src/structures/WelcomeChannel.ts +67 -0
  293. package/src/structures/WelcomeScreen.ts +53 -0
  294. package/src/structures/Widget.ts +110 -0
  295. package/src/structures/WidgetMember.ts +124 -0
  296. package/src/structures/interfaces/Application.ts +179 -0
  297. package/src/structures/interfaces/Collector.ts +372 -0
  298. package/src/structures/interfaces/InteractionResponses.ts +384 -0
  299. package/src/structures/interfaces/TextBasedChannel.ts +430 -0
  300. package/src/util/APITypes.ts +690 -0
  301. package/src/util/ActivityFlagsBitField.ts +26 -0
  302. package/src/util/ApplicationFlagsBitField.ts +43 -0
  303. package/src/util/AttachmentFlagsBitField.ts +26 -0
  304. package/src/util/BitField.ts +178 -0
  305. package/src/util/ChannelFlagsBitField.ts +43 -0
  306. package/src/util/Channels.ts +165 -0
  307. package/src/util/Colors.ts +72 -0
  308. package/src/util/Components.ts +285 -0
  309. package/src/util/Constants.ts +251 -0
  310. package/src/util/DataResolver.ts +146 -0
  311. package/src/util/Enums.ts +10 -0
  312. package/src/util/Events.ts +178 -0
  313. package/src/util/GuildMemberFlagsBitField.ts +43 -0
  314. package/src/util/IntentsBitField.ts +35 -0
  315. package/src/util/InviteFlagsBitField.ts +26 -0
  316. package/src/util/Invites.ts +27 -0
  317. package/src/util/LimitedCollection.ts +73 -0
  318. package/src/util/MessageFlagsBitField.ts +43 -0
  319. package/src/util/Options.ts +215 -0
  320. package/src/util/Partials.ts +50 -0
  321. package/src/util/PermissionsBitField.ts +113 -0
  322. package/src/util/RoleFlagsBitField.ts +26 -0
  323. package/src/util/SKUFlagsBitField.ts +26 -0
  324. package/src/util/ShardEvents.ts +26 -0
  325. package/src/util/Status.ts +16 -0
  326. package/src/util/Sweepers.ts +532 -0
  327. package/src/util/Symbols.ts +1 -0
  328. package/src/util/SystemChannelFlagsBitField.ts +45 -0
  329. package/src/util/ThreadMemberFlagsBitField.ts +33 -0
  330. package/src/util/Transformers.ts +123 -0
  331. package/src/util/UserFlagsBitField.ts +33 -0
  332. package/src/util/Util.ts +519 -0
@@ -0,0 +1,29 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class GuildScheduledEventUserRemoveAction 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 unsubscribes from a guild scheduled event
16
+ *
17
+ * @event Client#guildScheduledEventUserRemove
18
+ * @param {GuildScheduledEvent} guildScheduledEvent The guild scheduled event
19
+ * @param {User} user The user who unsubscribed
20
+ */
21
+ client.emit(Events.GuildScheduledEventUserRemove, guildScheduledEvent, user);
22
+
23
+ return { guildScheduledEvent, user };
24
+ }
25
+ }
26
+
27
+ return {};
28
+ }
29
+ }
@@ -0,0 +1,26 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class GuildSoundboardSoundDeleteAction extends Action {
5
+ handle(data) {
6
+ const guild = this.client.guilds.cache.get(data.guild_id);
7
+
8
+ if (!guild) return {};
9
+
10
+ const soundboardSound = this.getSoundboardSound(data, guild);
11
+
12
+ if (soundboardSound) {
13
+ guild.soundboardSounds.cache.delete(soundboardSound.soundId);
14
+
15
+ /**
16
+ * Emitted whenever a soundboard sound is deleted in a guild.
17
+ *
18
+ * @event Client#guildSoundboardSoundDelete
19
+ * @param {SoundboardSound} soundboardSound The soundboard sound that was deleted
20
+ */
21
+ this.client.emit(Events.GuildSoundboardSoundDelete, soundboardSound);
22
+ }
23
+
24
+ return { soundboardSound };
25
+ }
26
+ }
@@ -0,0 +1,17 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class GuildStickerCreateAction extends Action {
5
+ handle(guild, createdSticker) {
6
+ const already = guild.stickers.cache.has(createdSticker.id);
7
+ const sticker = guild.stickers._add(createdSticker);
8
+ /**
9
+ * Emitted whenever a custom sticker is created in a guild.
10
+ *
11
+ * @event Client#stickerCreate
12
+ * @param {Sticker} sticker The sticker that was created
13
+ */
14
+ if (!already) this.client.emit(Events.GuildStickerCreate, sticker);
15
+ return { sticker };
16
+ }
17
+ }
@@ -0,0 +1,16 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class GuildStickerDeleteAction extends Action {
5
+ handle(sticker) {
6
+ sticker.guild.stickers.cache.delete(sticker.id);
7
+ /**
8
+ * Emitted whenever a custom sticker is deleted in a guild.
9
+ *
10
+ * @event Client#stickerDelete
11
+ * @param {Sticker} sticker The sticker that was deleted
12
+ */
13
+ this.client.emit(Events.GuildStickerDelete, sticker);
14
+ return { sticker };
15
+ }
16
+ }
@@ -0,0 +1,17 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class GuildStickerUpdateAction extends Action {
5
+ handle(current, data) {
6
+ const old = current._update(data);
7
+ /**
8
+ * Emitted whenever a custom sticker is updated in a guild.
9
+ *
10
+ * @event Client#stickerUpdate
11
+ * @param {Sticker} oldSticker The old sticker
12
+ * @param {Sticker} newSticker The new sticker
13
+ */
14
+ this.client.emit(Events.GuildStickerUpdate, old, current);
15
+ return { sticker: current };
16
+ }
17
+ }
@@ -0,0 +1,30 @@
1
+ import { Action } from './Action.js';
2
+
3
+ export class GuildStickersUpdateAction extends Action {
4
+ handle(data) {
5
+ const guild = this.client.guilds.cache.get(data.guild_id);
6
+ if (!guild?.stickers) return;
7
+
8
+ const deletions = new Map(guild.stickers.cache);
9
+
10
+ for (const sticker of data.stickers) {
11
+ // Determine type of sticker event
12
+ const cachedSticker = guild.stickers.cache.get(sticker.id);
13
+ if (cachedSticker) {
14
+ deletions.delete(sticker.id);
15
+ if (!cachedSticker.equals(sticker)) {
16
+ // Sticker updated
17
+ this.client.actions.GuildStickerUpdate.handle(cachedSticker, sticker);
18
+ }
19
+ } else {
20
+ // Sticker added
21
+ this.client.actions.GuildStickerCreate.handle(guild, sticker);
22
+ }
23
+ }
24
+
25
+ for (const sticker of deletions.values()) {
26
+ // Sticker deleted
27
+ this.client.actions.GuildStickerDelete.handle(sticker);
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class GuildUpdateAction extends Action {
5
+ handle(data) {
6
+ const client = this.client;
7
+
8
+ const guild = client.guilds.cache.get(data.id);
9
+ if (guild) {
10
+ const old = guild._update(data);
11
+ /**
12
+ * Emitted whenever a guild is updated - e.g. name change.
13
+ *
14
+ * @event Client#guildUpdate
15
+ * @param {Guild} oldGuild The guild before the update
16
+ * @param {Guild} newGuild The guild after the update
17
+ */
18
+ client.emit(Events.GuildUpdate, old, guild);
19
+ return {
20
+ old,
21
+ updated: guild,
22
+ };
23
+ }
24
+
25
+ return {
26
+ old: null,
27
+ updated: null,
28
+ };
29
+ }
30
+ }
@@ -0,0 +1,104 @@
1
+ import { InteractionType, ComponentType, ApplicationCommandType } from 'discord-api-types/v10';
2
+ import { AutocompleteInteraction } from '../../structures/AutocompleteInteraction.js';
3
+ import { ButtonInteraction } from '../../structures/ButtonInteraction.js';
4
+ import { ChannelSelectMenuInteraction } from '../../structures/ChannelSelectMenuInteraction.js';
5
+ import { ChatInputCommandInteraction } from '../../structures/ChatInputCommandInteraction.js';
6
+ import { MentionableSelectMenuInteraction } from '../../structures/MentionableSelectMenuInteraction.js';
7
+ import { MessageContextMenuCommandInteraction } from '../../structures/MessageContextMenuCommandInteraction.js';
8
+ import { ModalSubmitInteraction } from '../../structures/ModalSubmitInteraction.js';
9
+ import { PrimaryEntryPointCommandInteraction } from '../../structures/PrimaryEntryPointCommandInteraction.js';
10
+ import { RoleSelectMenuInteraction } from '../../structures/RoleSelectMenuInteraction.js';
11
+ import { StringSelectMenuInteraction } from '../../structures/StringSelectMenuInteraction.js';
12
+ import { UserContextMenuCommandInteraction } from '../../structures/UserContextMenuCommandInteraction.js';
13
+ import { UserSelectMenuInteraction } from '../../structures/UserSelectMenuInteraction.js';
14
+ import { Events } from '../../util/Events.js';
15
+ import { Action } from './Action.js';
16
+
17
+ export class InteractionCreateAction extends Action {
18
+ handle(data) {
19
+ const client = this.client;
20
+
21
+ // Resolve and cache partial channels for Interaction#channel getter
22
+ const channel = data.channel && this.getChannel(data.channel);
23
+
24
+ // Do not emit this for interactions that cache messages that are non-text-based.
25
+ let InteractionClass;
26
+
27
+ switch (data.type) {
28
+ case InteractionType.ApplicationCommand:
29
+ switch (data.data.type) {
30
+ case ApplicationCommandType.ChatInput:
31
+ InteractionClass = ChatInputCommandInteraction;
32
+ break;
33
+ case ApplicationCommandType.User:
34
+ InteractionClass = UserContextMenuCommandInteraction;
35
+ break;
36
+ case ApplicationCommandType.Message:
37
+ if (channel && !channel.isTextBased()) return;
38
+ InteractionClass = MessageContextMenuCommandInteraction;
39
+ break;
40
+ case ApplicationCommandType.PrimaryEntryPoint:
41
+ InteractionClass = PrimaryEntryPointCommandInteraction;
42
+ break;
43
+ default:
44
+ client.emit(
45
+ Events.Debug,
46
+ `[INTERACTION] Received application command interaction with unknown type: ${data.data.type}`,
47
+ );
48
+ return;
49
+ }
50
+
51
+ break;
52
+ case InteractionType.MessageComponent:
53
+ if (channel && !channel.isTextBased()) return;
54
+
55
+ switch (data.data.component_type) {
56
+ case ComponentType.Button:
57
+ InteractionClass = ButtonInteraction;
58
+ break;
59
+ case ComponentType.StringSelect:
60
+ InteractionClass = StringSelectMenuInteraction;
61
+ break;
62
+ case ComponentType.UserSelect:
63
+ InteractionClass = UserSelectMenuInteraction;
64
+ break;
65
+ case ComponentType.RoleSelect:
66
+ InteractionClass = RoleSelectMenuInteraction;
67
+ break;
68
+ case ComponentType.MentionableSelect:
69
+ InteractionClass = MentionableSelectMenuInteraction;
70
+ break;
71
+ case ComponentType.ChannelSelect:
72
+ InteractionClass = ChannelSelectMenuInteraction;
73
+ break;
74
+ default:
75
+ client.emit(
76
+ Events.Debug,
77
+ `[INTERACTION] Received component interaction with unknown type: ${data.data.component_type}`,
78
+ );
79
+ return;
80
+ }
81
+
82
+ break;
83
+ case InteractionType.ApplicationCommandAutocomplete:
84
+ InteractionClass = AutocompleteInteraction;
85
+ break;
86
+ case InteractionType.ModalSubmit:
87
+ InteractionClass = ModalSubmitInteraction;
88
+ break;
89
+ default:
90
+ client.emit(Events.Debug, `[INTERACTION] Received interaction with unknown type: ${data.type}`);
91
+ return;
92
+ }
93
+
94
+ const interaction = new InteractionClass(client, data);
95
+
96
+ /**
97
+ * Emitted when an interaction is created.
98
+ *
99
+ * @event Client#interactionCreate
100
+ * @param {BaseInteraction} interaction The interaction which was created
101
+ */
102
+ client.emit(Events.InteractionCreate, interaction);
103
+ }
104
+ }
@@ -0,0 +1,38 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class MessageCreateAction extends Action {
5
+ handle(data) {
6
+ const client = this.client;
7
+ const channel = this.getChannel({
8
+ id: data.channel_id,
9
+ author: data.author,
10
+ ...('guild_id' in data && { guild_id: data.guild_id }),
11
+ });
12
+ if (channel) {
13
+ if (!channel.isTextBased()) return {};
14
+
15
+ if (channel.isThread()) {
16
+ channel.messageCount++;
17
+ channel.totalMessageSent++;
18
+ }
19
+
20
+ const existing = channel.messages.cache.get(data.id);
21
+ if (existing && existing.author?.id !== this.client.user.id) return { message: existing };
22
+ const message = existing ?? channel.messages._add(data);
23
+ channel.lastMessageId = data.id;
24
+
25
+ /**
26
+ * Emitted whenever a message is created.
27
+ *
28
+ * @event Client#messageCreate
29
+ * @param {Message} message The created message
30
+ */
31
+ client.emit(Events.MessageCreate, message);
32
+
33
+ return { message };
34
+ }
35
+
36
+ return {};
37
+ }
38
+ }
@@ -0,0 +1,29 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class MessageDeleteAction extends Action {
5
+ handle(data) {
6
+ const client = this.client;
7
+ const channel = this.getChannel({ id: data.channel_id, ...('guild_id' in data && { guild_id: data.guild_id }) });
8
+ let message;
9
+ if (channel) {
10
+ if (!channel.isTextBased()) return {};
11
+
12
+ if (channel.isThread()) channel.messageCount--;
13
+
14
+ message = this.getMessage(data, channel);
15
+ if (message) {
16
+ channel.messages.cache.delete(message.id);
17
+ /**
18
+ * Emitted whenever a message is deleted.
19
+ *
20
+ * @event Client#messageDelete
21
+ * @param {Message} message The deleted message
22
+ */
23
+ client.emit(Events.MessageDelete, message);
24
+ }
25
+ }
26
+
27
+ return { message };
28
+ }
29
+ }
@@ -0,0 +1,45 @@
1
+ import { Collection } from '@ovencord/collection';
2
+ import { Events } from '../../util/Events.js';
3
+ import { Action } from './Action.js';
4
+
5
+ export class MessageDeleteBulkAction extends Action {
6
+ handle(data) {
7
+ const client = this.client;
8
+ const channel = client.channels.cache.get(data.channel_id);
9
+
10
+ if (channel) {
11
+ if (!channel.isTextBased()) return {};
12
+
13
+ if (channel.isThread()) channel.messageCount -= data.ids.length;
14
+
15
+ const ids = data.ids;
16
+ const messages = new Collection();
17
+ for (const id of ids) {
18
+ const message = this.getMessage(
19
+ {
20
+ id,
21
+ guild_id: data.guild_id,
22
+ },
23
+ channel,
24
+ false,
25
+ );
26
+ if (message) {
27
+ messages.set(message.id, message);
28
+ channel.messages.cache.delete(id);
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Emitted whenever messages are deleted in bulk.
34
+ *
35
+ * @event Client#messageDeleteBulk
36
+ * @param {Collection<Snowflake, Message>} messages The deleted messages, mapped by their id
37
+ * @param {GuildTextBasedChannel} channel The channel that the messages were deleted in
38
+ */
39
+ if (messages.size > 0) client.emit(Events.MessageBulkDelete, messages, channel);
40
+ return { messages };
41
+ }
42
+
43
+ return {};
44
+ }
45
+ }
@@ -0,0 +1,37 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class MessagePollVoteAddAction extends Action {
5
+ handle(data) {
6
+ const channel = this.getChannel({ id: data.channel_id, ...('guild_id' in data && { guild_id: data.guild_id }) });
7
+ if (!channel?.isTextBased()) return false;
8
+
9
+ const message = this.getMessage(data, channel);
10
+ if (!message) return false;
11
+
12
+ const poll = this.getPoll(data, message, channel);
13
+ if (!poll) return false;
14
+
15
+ const answer = poll.answers.get(data.answer_id);
16
+ if (!answer) return false;
17
+
18
+ const user = this.getUser(data);
19
+
20
+ if (user) {
21
+ answer.voters._add(user);
22
+ }
23
+
24
+ answer.voteCount++;
25
+
26
+ /**
27
+ * Emitted whenever a user votes in a poll.
28
+ *
29
+ * @event Client#messagePollVoteAdd
30
+ * @param {PollAnswer} pollAnswer The answer that was voted on
31
+ * @param {Snowflake} userId The id of the user that voted
32
+ */
33
+ this.client.emit(Events.MessagePollVoteAdd, answer, data.user_id);
34
+
35
+ return { poll };
36
+ }
37
+ }
@@ -0,0 +1,35 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class MessagePollVoteRemoveAction extends Action {
5
+ handle(data) {
6
+ const channel = this.getChannel({ id: data.channel_id, ...('guild_id' in data && { guild_id: data.guild_id }) });
7
+ if (!channel?.isTextBased()) return false;
8
+
9
+ const message = this.getMessage(data, channel);
10
+ if (!message) return false;
11
+
12
+ const poll = this.getPoll(data, message, channel);
13
+ if (!poll) return false;
14
+
15
+ const answer = poll.answers.get(data.answer_id);
16
+ if (!answer) return false;
17
+
18
+ answer.voters.cache.delete(data.user_id);
19
+
20
+ if (answer.voteCount > 0) {
21
+ answer.voteCount--;
22
+ }
23
+
24
+ /**
25
+ * Emitted whenever a user removes their vote in a poll.
26
+ *
27
+ * @event Client#messagePollVoteRemove
28
+ * @param {PollAnswer} pollAnswer The answer where the vote was removed
29
+ * @param {Snowflake} userId The id of the user that removed their vote
30
+ */
31
+ this.client.emit(Events.MessagePollVoteRemove, answer, data.user_id);
32
+
33
+ return { poll };
34
+ }
35
+ }
@@ -0,0 +1,68 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Partials } from '../../util/Partials.js';
3
+ import { Action } from './Action.js';
4
+
5
+ /*
6
+ { user_id: 'id',
7
+ message_id: 'id',
8
+ emoji: { name: '�', id: null },
9
+ channel_id: 'id',
10
+ burst: boolean
11
+ // If originating from a guild
12
+ guild_id: 'id',
13
+ member: { ..., user: { ... } } }
14
+ */
15
+
16
+ export class MessageReactionAddAction extends Action {
17
+ handle(data, fromStructure = false) {
18
+ if (!data.emoji) return false;
19
+
20
+ const user = this.getUserFromMember(data);
21
+ if (!user) return false;
22
+
23
+ // Verify channel
24
+ const channel = this.getChannel({
25
+ id: data.channel_id,
26
+ ...('guild_id' in data && { guild_id: data.guild_id }),
27
+ user_id: data.user_id,
28
+ ...this.spreadInjectedData(data),
29
+ });
30
+
31
+ if (!channel?.isTextBased()) return false;
32
+
33
+ // Verify message
34
+ const message = this.getMessage(data, channel);
35
+ if (!message) return false;
36
+
37
+ // Verify reaction
38
+ const includePartial = this.client.options.partials.includes(Partials.Reaction);
39
+ if (message.partial && !includePartial) return false;
40
+ const reaction = message.reactions._add({
41
+ emoji: data.emoji,
42
+ count: message.partial ? null : 0,
43
+ me: user.id === this.client.user.id,
44
+ burst_colors: data.burst_colors,
45
+ });
46
+ if (!reaction) return false;
47
+ reaction._add(user, data.burst);
48
+ if (fromStructure) return { message, reaction, user };
49
+ /**
50
+ * Provides additional information about altered reaction
51
+ *
52
+ * @typedef {Object} MessageReactionEventDetails
53
+ * @property {ReactionType} type The type of the reaction
54
+ * @property {boolean} burst Determines whether a super reaction was used
55
+ */
56
+ /**
57
+ * Emitted whenever a reaction is added to a cached message.
58
+ *
59
+ * @event Client#messageReactionAdd
60
+ * @param {MessageReaction} messageReaction The reaction object
61
+ * @param {User} user The user that applied the guild or reaction emoji
62
+ * @param {MessageReactionEventDetails} details Details of adding the reaction
63
+ */
64
+ this.client.emit(Events.MessageReactionAdd, reaction, user, { type: data.type, burst: data.burst });
65
+
66
+ return { message, reaction, user };
67
+ }
68
+ }
@@ -0,0 +1,47 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ /*
5
+ { user_id: 'id',
6
+ message_id: 'id',
7
+ emoji: { name: '�', id: null },
8
+ channel_id: 'id',
9
+ guild_id: 'id' }
10
+ */
11
+
12
+ export class MessageReactionRemoveAction extends Action {
13
+ handle(data) {
14
+ if (!data.emoji) return false;
15
+
16
+ const user = this.getUser(data);
17
+ if (!user) return false;
18
+
19
+ // Verify channel
20
+ const channel = this.getChannel({
21
+ id: data.channel_id,
22
+ ...('guild_id' in data && { guild_id: data.guild_id }),
23
+ user_id: data.user_id,
24
+ });
25
+ if (!channel?.isTextBased()) return false;
26
+
27
+ // Verify message
28
+ const message = this.getMessage(data, channel);
29
+ if (!message) return false;
30
+
31
+ // Verify reaction
32
+ const reaction = this.getReaction(data, message, user);
33
+ if (!reaction) return false;
34
+ reaction._remove(user, data.burst);
35
+ /**
36
+ * Emitted whenever a reaction is removed from a cached message.
37
+ *
38
+ * @event Client#messageReactionRemove
39
+ * @param {MessageReaction} messageReaction The reaction object
40
+ * @param {User} user The user whose emoji or reaction emoji was removed
41
+ * @param {MessageReactionEventDetails} details Details of removing the reaction
42
+ */
43
+ this.client.emit(Events.MessageReactionRemove, reaction, user, { type: data.type, burst: data.burst });
44
+
45
+ return { message, reaction, user };
46
+ }
47
+ }
@@ -0,0 +1,30 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class MessageReactionRemoveAllAction extends Action {
5
+ handle(data) {
6
+ // Verify channel
7
+ const channel = this.getChannel({ id: data.channel_id, ...('guild_id' in data && { guild_id: data.guild_id }) });
8
+ if (!channel?.isTextBased()) return false;
9
+
10
+ // Verify message
11
+ const message = this.getMessage(data, channel);
12
+ if (!message) return false;
13
+
14
+ // Copy removed reactions to emit for the event.
15
+ const removed = message.reactions.cache.clone();
16
+
17
+ message.reactions.cache.clear();
18
+ this.client.emit(Events.MessageReactionRemoveAll, message, removed);
19
+
20
+ return { message };
21
+ }
22
+ }
23
+
24
+ /**
25
+ * Emitted whenever all reactions are removed from a cached message.
26
+ *
27
+ * @event Client#messageReactionRemoveAll
28
+ * @param {Message} message The message the reactions were removed from
29
+ * @param {Collection<string|Snowflake, MessageReaction>} reactions The cached message reactions that were removed.
30
+ */
@@ -0,0 +1,25 @@
1
+ import { Events } from '../../util/Events.js';
2
+ import { Action } from './Action.js';
3
+
4
+ export class MessageReactionRemoveEmojiAction extends Action {
5
+ handle(data) {
6
+ const channel = this.getChannel({ id: data.channel_id, ...('guild_id' in data && { guild_id: data.guild_id }) });
7
+ if (!channel?.isTextBased()) return false;
8
+
9
+ const message = this.getMessage(data, channel);
10
+ if (!message) return false;
11
+
12
+ const reaction = this.getReaction(data, message);
13
+ if (!reaction) return false;
14
+ if (!message.partial) message.reactions.cache.delete(reaction.emoji.id ?? reaction.emoji.name);
15
+
16
+ /**
17
+ * Emitted when a bot removes an emoji reaction from a cached message.
18
+ *
19
+ * @event Client#messageReactionRemoveEmoji
20
+ * @param {MessageReaction} reaction The reaction that was removed
21
+ */
22
+ this.client.emit(Events.MessageReactionRemoveEmoji, reaction);
23
+ return { reaction };
24
+ }
25
+ }
@@ -0,0 +1,22 @@
1
+ import { Action } from './Action.js';
2
+
3
+ export class MessageUpdateAction extends Action {
4
+ handle(data) {
5
+ const channel = this.getChannel({ id: data.channel_id, ...('guild_id' in data && { guild_id: data.guild_id }) });
6
+ if (channel) {
7
+ if (!channel.isTextBased()) return {};
8
+
9
+ const { id, channel_id, guild_id, author, timestamp, type } = data;
10
+ const message = this.getMessage({ id, channel_id, guild_id, author, timestamp, type }, channel);
11
+ if (message) {
12
+ const old = message._update(data);
13
+ return {
14
+ old,
15
+ updated: message,
16
+ };
17
+ }
18
+ }
19
+
20
+ return {};
21
+ }
22
+ }