@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,93 @@
1
+ import { Collection } from '@ovencord/collection';
2
+ import { Base } from './Base.js';
3
+ import { GuildOnboardingPromptOption } from './GuildOnboardingPromptOption.js';
4
+
5
+ /**
6
+ * Represents the data of a prompt of a guilds onboarding.
7
+ *
8
+ * @extends {Base}
9
+ */
10
+ export class GuildOnboardingPrompt extends Base {
11
+ public client: any;
12
+ public guildId: any;
13
+ public id: any;
14
+ public options: any;
15
+ public title: any;
16
+ public singleSelect: any;
17
+ public required: any;
18
+ public inOnboarding: any;
19
+ public type: any;
20
+ constructor(client, data, guildId) {
21
+ super(client);
22
+
23
+ /**
24
+ * The id of the guild this onboarding prompt is from
25
+ *
26
+ * @type {Snowflake}
27
+ */
28
+ this.guildId = guildId;
29
+
30
+ /**
31
+ * The id of the prompt
32
+ *
33
+ * @type {Snowflake}
34
+ */
35
+ this.id = data.id;
36
+
37
+ /**
38
+ * The options available within the prompt
39
+ *
40
+ * @type {Collection<Snowflake, GuildOnboardingPromptOption>}
41
+ */
42
+ this.options = data.options.reduce(
43
+ (options, option) => options.set(option.id, new GuildOnboardingPromptOption(client, option, guildId)),
44
+ new Collection(),
45
+ );
46
+
47
+ /**
48
+ * The title of the prompt
49
+ *
50
+ * @type {string}
51
+ */
52
+ this.title = data.title;
53
+
54
+ /**
55
+ * Whether users are limited to selecting one option for the prompt
56
+ *
57
+ * @type {boolean}
58
+ */
59
+ this.singleSelect = data.single_select;
60
+
61
+ /**
62
+ * Whether the prompt is required before a user completes the onboarding flow
63
+ *
64
+ * @type {boolean}
65
+ */
66
+ this.required = data.required;
67
+
68
+ /**
69
+ * Whether the prompt is present in the onboarding flow.
70
+ * If `false`, the prompt will only appear in the Channels & Roles tab
71
+ *
72
+ * @type {boolean}
73
+ */
74
+ this.inOnboarding = data.in_onboarding;
75
+
76
+ /**
77
+ * The type of the prompt
78
+ *
79
+ * @type {GuildOnboardingPromptType}
80
+ */
81
+ this.type = data.type;
82
+ }
83
+
84
+ /**
85
+ * The guild this onboarding prompt is from
86
+ *
87
+ * @type {Guild}
88
+ * @readonly
89
+ */
90
+ get guild() {
91
+ return this.client.guilds.cache.get(this.guildId);
92
+ }
93
+ }
@@ -0,0 +1,100 @@
1
+ import { Collection } from '@ovencord/collection';
2
+ import { Base } from './Base.js';
3
+ import { Emoji } from './Emoji.js';
4
+
5
+ /**
6
+ * Represents the data of an option from a prompt of a guilds onboarding.
7
+ *
8
+ * @extends {Base}
9
+ */
10
+ export class GuildOnboardingPromptOption extends Base {
11
+ public client: any;
12
+ public guildId: any;
13
+ public id: any;
14
+ public channels: any;
15
+ public roles: any;
16
+ public _emoji: any;
17
+ public title: any;
18
+ public description: any;
19
+ constructor(client, data, guildId) {
20
+ super(client);
21
+
22
+ /**
23
+ * The id of the guild this onboarding prompt option is from
24
+ *
25
+ * @type {Snowflake}
26
+ */
27
+ this.guildId = guildId;
28
+
29
+ const guild = this.guild;
30
+
31
+ /**
32
+ * The id of the option
33
+ *
34
+ * @type {Snowflake}
35
+ */
36
+ this.id = data.id;
37
+
38
+ /**
39
+ * The channels a member is added to when the option is selected
40
+ *
41
+ * @type {Collection<Snowflake, GuildChannel>}
42
+ */
43
+ this.channels = data.channel_ids.reduce(
44
+ (channels, channelId) => channels.set(channelId, guild.channels.cache.get(channelId)),
45
+ new Collection(),
46
+ );
47
+
48
+ /**
49
+ * The roles assigned to a member when the option is selected
50
+ *
51
+ * @type {Collection<Snowflake, Role>}
52
+ */
53
+ this.roles = data.role_ids.reduce(
54
+ (roles, roleId) => roles.set(roleId, guild.roles.cache.get(roleId)),
55
+ new Collection(),
56
+ );
57
+
58
+ /**
59
+ * The raw emoji of the option
60
+ *
61
+ * @type {APIPartialEmoji}
62
+ * @private
63
+ */
64
+ this._emoji = data.emoji;
65
+
66
+ /**
67
+ * The title of the option
68
+ *
69
+ * @type {string}
70
+ */
71
+ this.title = data.title;
72
+
73
+ /**
74
+ * The description of the option
75
+ *
76
+ * @type {?string}
77
+ */
78
+ this.description = data.description;
79
+ }
80
+
81
+ /**
82
+ * The guild this onboarding prompt option is from
83
+ *
84
+ * @type {Guild}
85
+ * @readonly
86
+ */
87
+ get guild() {
88
+ return this.client.guilds.cache.get(this.guildId);
89
+ }
90
+
91
+ /**
92
+ * The emoji of this onboarding prompt option
93
+ *
94
+ * @type {?(GuildEmoji|Emoji)}
95
+ */
96
+ get emoji() {
97
+ if (!this._emoji.id && !this._emoji.name) return null;
98
+ return this.guild.emojis.cache.get(this._emoji.id) ?? new Emoji(this.client, this._emoji);
99
+ }
100
+ }
@@ -0,0 +1,218 @@
1
+ import { Collection } from '@ovencord/collection';
2
+ import { DiscordSnowflake } from '@sapphire/snowflake';
3
+ import { Routes } from 'discord-api-types/v10';
4
+ import { Base } from './Base.js';
5
+ import { GuildPreviewEmoji } from './GuildPreviewEmoji.js';
6
+ import { Sticker } from './Sticker.js';
7
+
8
+ /**
9
+ * Represents the data about the guild any bot can preview, connected to the specified guild.
10
+ *
11
+ * @extends {Base}
12
+ */
13
+ export class GuildPreview extends Base {
14
+ public client: any;
15
+ public id: any;
16
+ public name: any;
17
+ public features: any;
18
+ public approximateMemberCount: any;
19
+ public approximatePresenceCount: any;
20
+ public description: any;
21
+ public emojis: any;
22
+ public stickers: any;
23
+ constructor(client, data) {
24
+ super(client);
25
+
26
+ if (!data) return;
27
+
28
+ this._patch(data);
29
+ }
30
+
31
+ _patch(data) {
32
+ /**
33
+ * The id of this guild
34
+ *
35
+ * @type {string}
36
+ */
37
+ this.id = data.id;
38
+
39
+ if ('name' in data) {
40
+ /**
41
+ * The name of this guild
42
+ *
43
+ * @type {string}
44
+ */
45
+ this.name = data.name;
46
+ }
47
+
48
+ if ('icon' in data) {
49
+ /**
50
+ * The icon of this guild
51
+ *
52
+ * @type {?string}
53
+ */
54
+ this.icon = data.icon;
55
+ }
56
+
57
+ if ('splash' in data) {
58
+ /**
59
+ * The splash icon of this guild
60
+ *
61
+ * @type {?string}
62
+ */
63
+ this.splash = data.splash;
64
+ }
65
+
66
+ if ('discovery_splash' in data) {
67
+ /**
68
+ * The discovery splash icon of this guild
69
+ *
70
+ * @type {?string}
71
+ */
72
+ this.discoverySplash = data.discovery_splash;
73
+ }
74
+
75
+ if ('features' in data) {
76
+ /**
77
+ * An array of enabled guild features
78
+ *
79
+ * @type {GuildFeature[]}
80
+ */
81
+ this.features = data.features;
82
+ }
83
+
84
+ if ('approximate_member_count' in data) {
85
+ /**
86
+ * The approximate count of members in this guild
87
+ *
88
+ * @type {number}
89
+ */
90
+ this.approximateMemberCount = data.approximate_member_count;
91
+ }
92
+
93
+ if ('approximate_presence_count' in data) {
94
+ /**
95
+ * The approximate count of online members in this guild
96
+ *
97
+ * @type {number}
98
+ */
99
+ this.approximatePresenceCount = data.approximate_presence_count;
100
+ }
101
+
102
+ if ('description' in data) {
103
+ /**
104
+ * The description for this guild
105
+ *
106
+ * @type {?string}
107
+ */
108
+ this.description = data.description;
109
+ } else {
110
+ this.description ??= null;
111
+ }
112
+
113
+ if (this.emojis) {
114
+ this.emojis.clear();
115
+ } else {
116
+ /**
117
+ * Collection of emojis belonging to this guild
118
+ *
119
+ * @type {Collection<Snowflake, GuildPreviewEmoji>}
120
+ */
121
+ this.emojis = new Collection();
122
+ }
123
+
124
+ for (const emoji of data.emojis) {
125
+ this.emojis.set(emoji.id, new GuildPreviewEmoji(this.client, emoji, this));
126
+ }
127
+
128
+ /**
129
+ * Collection of stickers belonging to this guild
130
+ *
131
+ * @type {Collection<Snowflake, Sticker>}
132
+ */
133
+ this.stickers = data.stickers.reduce(
134
+ (stickers, sticker) => stickers.set(sticker.id, new Sticker(this.client, sticker)),
135
+ new Collection(),
136
+ );
137
+ }
138
+
139
+ /**
140
+ * The timestamp this guild was created at
141
+ *
142
+ * @type {number}
143
+ * @readonly
144
+ */
145
+ get createdTimestamp() {
146
+ return DiscordSnowflake.timestampFrom(this.id);
147
+ }
148
+
149
+ /**
150
+ * The time this guild was created at
151
+ *
152
+ * @type {Date}
153
+ * @readonly
154
+ */
155
+ get createdAt() {
156
+ return new Date(this.createdTimestamp);
157
+ }
158
+
159
+ /**
160
+ * The URL to this guild's splash.
161
+ *
162
+ * @param {ImageURLOptions} [options={}] Options for the image URL
163
+ * @returns {?string}
164
+ */
165
+ splashURL(options = {}) {
166
+ return this.splash && this.client.rest.cdn.splash(this.id, this.splash, options);
167
+ }
168
+
169
+ /**
170
+ * The URL to this guild's discovery splash.
171
+ *
172
+ * @param {ImageURLOptions} [options={}] Options for the image URL
173
+ * @returns {?string}
174
+ */
175
+ discoverySplashURL(options = {}) {
176
+ return this.discoverySplash && this.client.rest.cdn.discoverySplash(this.id, this.discoverySplash, options);
177
+ }
178
+
179
+ /**
180
+ * The URL to this guild's icon.
181
+ *
182
+ * @param {ImageURLOptions} [options={}] Options for the image URL
183
+ * @returns {?string}
184
+ */
185
+ iconURL(options = {}) {
186
+ return this.icon && this.client.rest.cdn.icon(this.id, this.icon, options);
187
+ }
188
+
189
+ /**
190
+ * Fetches this guild.
191
+ *
192
+ * @returns {Promise<GuildPreview>}
193
+ */
194
+ async fetch() {
195
+ const data = await this.client.rest.get(Routes.guildPreview(this.id));
196
+ this._patch(data);
197
+ return this;
198
+ }
199
+
200
+ /**
201
+ * When concatenated with a string, this automatically returns the guild's name instead of the Guild object.
202
+ *
203
+ * @returns {string}
204
+ * @example
205
+ * // Logs: Hello from My Guild!
206
+ * console.log(`Hello from ${previewGuild}!`);
207
+ */
208
+ toString() {
209
+ return this.name;
210
+ }
211
+
212
+ toJSON() {
213
+ const json = super.toJSON();
214
+ json.iconURL = this.iconURL();
215
+ json.splashURL = this.splashURL();
216
+ return json;
217
+ }
218
+ }
@@ -0,0 +1,28 @@
1
+ import { BaseGuildEmoji } from './BaseGuildEmoji.js';
2
+
3
+ /**
4
+ * Represents an instance of an emoji belonging to a public guild obtained through Discord's preview endpoint.
5
+ *
6
+ * @extends {BaseGuildEmoji}
7
+ */
8
+ export class GuildPreviewEmoji extends BaseGuildEmoji {
9
+ public client: any;
10
+ public roles: any;
11
+ /**
12
+ * The public guild this emoji is part of
13
+ *
14
+ * @type {GuildPreview}
15
+ * @name GuildPreviewEmoji#guild
16
+ */
17
+
18
+ constructor(client, data, guild) {
19
+ super(client, data, guild);
20
+
21
+ /**
22
+ * The roles this emoji is active for
23
+ *
24
+ * @type {Snowflake[]}
25
+ */
26
+ this.roles = data.roles;
27
+ }
28
+ }