From c201e7da69ef8f1ebbfaff9de39b1e2acda0ceb7 Mon Sep 17 00:00:00 2001
From: March 7th <71698422+aiko-chan-ai@users.noreply.github.com>
Date: Sat, 14 May 2022 15:06:15 +0700
Subject: [PATCH] Discord.js v13.7
---
README.md | 7 +-
docs/main.json | 2 +-
package-lock.json | 206 +--
package.json | 15 +-
src/client/actions/InteractionCreate.js | 9 +-
src/client/actions/ThreadCreate.js | 3 +-
src/errors/Messages.js | 12 +
src/index.js | 3 +
src/managers/ApplicationCommandManager.js | 18 +-
src/managers/GuildBanManager.js | 36 +-
src/managers/GuildChannelManager.js | 205 ++-
src/managers/GuildEmojiManager.js | 68 +-
src/managers/GuildManager.js | 7 +
src/managers/GuildMemberManager.js | 6 +-
src/managers/GuildScheduledEventManager.js | 9 +-
src/managers/GuildStickerManager.js | 13 +
src/managers/MessageManager.js | 10 +-
src/managers/RoleManager.js | 61 +-
src/managers/StageInstanceManager.js | 4 +-
src/managers/ThreadManager.js | 11 +-
src/rest/RESTManager.js | 7 +-
src/rest/RateLimitError.js | 2 +-
src/rest/RequestHandler.js | 2 +-
src/sharding/Shard.js | 32 +
src/sharding/ShardClientUtil.js | 31 +-
src/sharding/ShardingManager.js | 2 +-
src/structures/AnonymousGuild.js | 10 +
src/structures/ApplicationCommand.js | 110 +-
src/structures/AutocompleteInteraction.js | 2 +-
src/structures/BaseCommandInteraction.js | 18 +-
src/structures/BaseGuildTextChannel.js | 34 +-
src/structures/BaseGuildVoiceChannel.js | 13 +-
src/structures/BaseMessageComponent.js | 19 +-
src/structures/Channel.js | 13 +
src/structures/ClientApplication.js | 39 +-
.../CommandInteractionOptionResolver.js | 11 +
src/structures/DirectoryChannel.js | 19 +
src/structures/Guild.js | 46 +-
src/structures/GuildChannel.js | 111 +-
src/structures/GuildEmoji.js | 16 +-
src/structures/GuildMember.js | 6 +-
src/structures/GuildPreview.js | 10 +
src/structures/GuildScheduledEvent.js | 19 +
src/structures/IntegrationApplication.js | 1 +
src/structures/Interaction.js | 59 +-
src/structures/InteractionCollector.js | 4 +-
src/structures/Invite.js | 7 +-
src/structures/Message.js | 10 +-
src/structures/MessageActionRow.js | 6 +-
src/structures/MessageAttachment.js | 2 +-
src/structures/MessageComponentInteraction.js | 2 +
src/structures/MessageEmbed.js | 4 +-
src/structures/MessageMentions.js | 33 +-
src/structures/MessagePayload.js | 12 +-
src/structures/MessageReaction.js | 2 +-
src/structures/Modal.js | 103 ++
src/structures/ModalSubmitFieldsResolver.js | 53 +
src/structures/ModalSubmitInteraction.js | 111 ++
src/structures/Presence.js | 39 +-
src/structures/Role.js | 17 +-
src/structures/StageChannel.js | 9 +-
src/structures/StageInstance.js | 19 +
src/structures/Sticker.js | 5 +-
src/structures/StoreChannel.js | 2 +-
src/structures/TextInputComponent.js | 201 +++
src/structures/ThreadChannel.js | 49 +-
src/structures/VoiceChannel.js | 34 +-
src/structures/VoiceRegion.js | 1 +
src/structures/VoiceState.js | 2 +-
src/structures/Webhook.js | 1 +
src/structures/interfaces/Application.js | 18 +-
.../interfaces/InteractionResponses.js | 58 +-
src/structures/interfaces/TextBasedChannel.js | 5 +-
src/util/Constants.js | 36 +-
src/util/Formatters.js | 10 -
src/util/Options.js | 4 +-
src/util/SnowflakeUtil.js | 2 +-
src/util/Sweepers.js | 9 +
src/util/Util.js | 22 +
typings/enums.d.ts | 20 +
typings/index.d.ts | 867 ++++++++---
typings/index.test-d.ts | 1306 +++++++++++++++++
typings/rawDataTypes.d.ts | 10 +-
83 files changed, 3751 insertions(+), 681 deletions(-)
create mode 100644 src/structures/DirectoryChannel.js
create mode 100644 src/structures/Modal.js
create mode 100644 src/structures/ModalSubmitFieldsResolver.js
create mode 100644 src/structures/ModalSubmitInteraction.js
create mode 100644 src/structures/TextInputComponent.js
create mode 100644 typings/index.test-d.ts
diff --git a/README.md b/README.md
index 632c34c5..e52bb639 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,8 @@
## About
+Welcome to `discord.js-selfbot-v13@v2`, based on `discord.js@13.7.0`
+
- discord.js-selfbot-v13 is a [Node.js](https://nodejs.org) module that allows user accounts to interact with the Discord API v9.
@@ -28,6 +30,7 @@
### I don't take any responsibility for blocked Discord accounts that used this module.
### Using this on a user account is prohibited by the [Discord TOS](https://discord.com/terms) and can lead to the account block.
+
### [Document Website (recommend)](https://www.discordjs-self-v13.cf)
But if you want to see some specific notes (with pictures) you can go to [here](https://github.com/aiko-chan-ai/discord.js-selfbot-v13/blob/main/Document/DOCUMENT.md) or go to [wiki](https://github.com/aiko-chan-ai/discord.js-selfbot-v13/wiki)
### [Risky actions](https://github.com/Merubokkusu/Discord-S.C.U.M/issues/66)
@@ -39,7 +42,7 @@ But if you want to see some specific notes (with pictures) you can go to [here](
- [X] Profile Editing (Name, Status, Avatar, Bio, Rich-Presence, etc.)
- [X] Interactions (slash commands, buttons, etc.)
- [X] Voice Channel (Join, Leave, Speak, etc.)
-- [ ] Improve documentation (maybe)
+- [X] Documentation
- [ ] Add more guild http api wraps
- [ ] Audio / Video call
- [ ] Everything
@@ -55,7 +58,7 @@ npm install discord.js-selfbot-v13@latest
```js
const { Client } = require('discord.js-selfbot-v13');
-const client = new Client(); // Intents and Partials are already set so you don't have to define them
+const client = new Client(); // All partials are loaded automatically
client.on('ready', async () => {
console.log(`${client.user.username} is ready!`);
diff --git a/docs/main.json b/docs/main.json
index 574723d1..44617b4f 100644
--- a/docs/main.json
+++ b/docs/main.json
@@ -1 +1 @@
-{"meta":{"generator":"0.11.1","format":20,"date":1652331497728},"custom":{"general":{"name":"General","files":{"welcome":{"name":"Welcome","type":"md","content":"
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n## About\r\n\r\n- discord.js-selfbot-v13 is a [Node.js](https://nodejs.org) module that allows user accounts to interact with the Discord API v9.\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n### I don't take any responsibility for blocked Discord accounts that used this module.\r\n### Using this on a user account is prohibited by the [Discord TOS](https://discord.com/terms) and can lead to the account block.\r\n\r\n### [Document Website (recommend)](https://www.discordjs-self-v13.cf)\r\nBut if you want to see some specific notes (with pictures) you can go to [here](https://github.com/aiko-chan-ai/discord.js-selfbot-v13/blob/main/Document/DOCUMENT.md) or go to [wiki](https://github.com/aiko-chan-ai/discord.js-selfbot-v13/wiki)\r\n### [Risky actions](https://github.com/Merubokkusu/Discord-S.C.U.M/issues/66)\r\n\r\n## Checklist\r\n- [x] Send + receive messages with Attachment, Embed (WebEmbed), etc.\r\n- [x] Setting Discord App (Missing a lot of functions)\r\n- [X] Requests (add friends, join guilds, etc.)\r\n- [X] Profile Editing (Name, Status, Avatar, Bio, Rich-Presence, etc.)\r\n- [X] Interactions (slash commands, buttons, etc.)\r\n- [X] Voice Channel (Join, Leave, Speak, etc.)\r\n- [ ] Improve documentation (maybe)\r\n- [ ] Add more guild http api wraps\r\n- [ ] Audio / Video call \r\n- [ ] Everything\r\n\r\n## Installation\r\n\r\n**Node.js 16.6.0 or newer is required**\r\n\r\n```sh-session\r\nnpm install discord.js-selfbot-v13@latest\r\n```\r\n## Example\r\n\r\n```js\r\nconst { Client } = require('discord.js-selfbot-v13');\r\nconst client = new Client(); // Intents and Partials are already set so you don't have to define them\r\n\r\nclient.on('ready', async () => {\r\n console.log(`${client.user.username} is ready!`);\r\n})\r\n\r\nclient.login('token');\r\n```\r\n\r\nGithub Repo (Play Youtube music) [Here](https://github.com/aiko-chan-ai/Selfbot-Example)\r\n\r\n## Get Token ?\r\n\r\nCopy code to console Discord [Ctrl + Shift + I]\r\n\r\n```js\r\nwindow.webpackChunkdiscord_app.push([\r\n [Math.random()],\r\n {},\r\n req => {\r\n for (const m of Object.keys(req.c)\r\n .map(x => req.c[x].exports)\r\n .filter(x => x)) {\r\n if (m.default && m.default.getToken !== undefined) {\r\n return copy(m.default.getToken());\r\n }\r\n if (m.getToken !== undefined) {\r\n return copy(m.getToken());\r\n }\r\n }\r\n },\r\n]);\r\nconsole.log('%cWorked!', 'font-size: 50px');\r\nconsole.log(`%cYou now have your token in the clipboard!`, 'font-size: 16px');\r\n```\r\n\r\nCredit: [hxr404](https://github.com/hxr404/Discord-Console-hacks)\r\n\r\n## Links Discord.js\r\n\r\n- [Website](https://discord.js.org/) ([source](https://github.com/discordjs/website))\r\n- [Documentation](https://discord.js.org/#/docs)\r\n- [Guide](https://discordjs.guide/) ([source](https://github.com/discordjs/guide))\r\n See also the [Update Guide](https://discordjs.guide/additional-info/changes-in-v13.html), including updated and removed items in the library.\r\n- [discord.js Discord server](https://discord.gg/djs)\r\n- [Discord API Discord server](https://discord.gg/discord-api)\r\n- [GitHub](https://github.com/discordjs/discord.js)\r\n- [npm](https://www.npmjs.com/package/discord.js)\r\n- [Related libraries](https://discord.com/developers/docs/topics/community-resources#libraries)\r\n\r\n## Contributing Discord.js\r\n\r\n- Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the\r\n[documentation](https://discord.js.org/#/docs). \r\n- See [the contribution guide](https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md) if you'd like to submit a PR.\r\n\r\n## Need help?\r\nContact me in Discord: [Shiraori#1782](https://discord.com/users/721746046543331449)\r\n\r\n## Credits\r\n- [Discord.js](https://github.com/discordjs/discord.js)\r\n- [Discord S.C.U.M](https://github.com/Merubokkusu/Discord-S.C.U.M)\r\n- [Discord Console Hack](https://github.com/hxr404/Discord-Console-hacks)\r\n- And the people who submitted the issue, colab, ...\r\n\r\n## Vietnamese\r\nĐược tạo bởi người Việt Nam, dựa trên Discord API v9, đây là một trong những module selfbot được hỗ trợ tốt nhất.\r\n","path":"README.md"}}}},"classes":[{"name":"BaseClient","description":"The base class for all clients.","extends":[[["EventEmitter"]]],"props":[{"name":"options","description":"The options the client was instantiated with","type":[[["ClientOptions"]]],"meta":{"line":20,"file":"BaseClient.js","path":"src/client"}},{"name":"rest","description":"The REST manager of the client","access":"private","type":[[["RESTManager"]]],"meta":{"line":27,"file":"BaseClient.js","path":"src/client"}},{"name":"api","description":"API shortcut","access":"private","readonly":true,"type":[[["Object"]]],"meta":{"line":36,"file":"BaseClient.js","path":"src/client"}}],"methods":[{"name":"destroy","description":"Destroys all assets used by the base client.","returns":[[["void"]]],"meta":{"line":44,"file":"BaseClient.js","path":"src/client"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one, if they are not zero.","access":"private","meta":{"line":52,"file":"BaseClient.js","path":"src/client"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one, if they are not zero.","access":"private","meta":{"line":63,"file":"BaseClient.js","path":"src/client"}}],"events":[{"name":"debug","description":"Emitted for general debugging information.","params":[{"name":"info","description":"The debug information","type":[[["string"]]]}],"meta":{"line":77,"file":"BaseClient.js","path":"src/client"}},{"name":"rateLimit","description":"Emitted when the client hits a rate limit while making a request","params":[{"name":"rateLimitData","description":"Object containing the rate limit info","type":[[["RateLimitData"]]]}],"meta":{"line":126,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiRequest","description":"Emitted before every API request.\nThis event can emit several times for the same request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that is about to be sent","type":[[["APIRequest"]]]}],"meta":{"line":177,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiResponse","description":"Emitted after every API request has received a response.\nThis event does not necessarily correlate to completion of the request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that triggered this response","type":[[["APIRequest"]]]},{"name":"response","description":"The response received from the Discord API","type":[[["Response"]]]}],"meta":{"line":209,"file":"RequestHandler.js","path":"src/rest"}},{"name":"invalidRequestWarning","description":"Emitted periodically when the process sends invalid requests to let users avoid the\n10k invalid requests in 10 minutes threshold that causes a ban","params":[{"name":"invalidRequestWarningData","description":"Object containing the invalid request info","type":[[["InvalidRequestWarningData"]]]}],"meta":{"line":286,"file":"RequestHandler.js","path":"src/rest"}}],"meta":{"line":12,"file":"BaseClient.js","path":"src/client"}},{"name":"Client","description":"The main hub for interacting with the Discord API, and the starting point for any bot.","extends":[[["BaseClient"]]],"construct":{"name":"Client","params":[{"name":"options","description":"Options for the client","type":[[["ClientOptions"]]]}]},"props":[{"name":"_cleanups","description":"Functions called when a cache is garbage collected or the Client is destroyed","access":"private","type":[[["Set","<"],["function","()>"]]],"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"name":"_finalizers","description":"The finalizers used to cleanup items.","access":"private","type":[[["FinalizationRegistry"]]],"meta":{"line":95,"file":"Client.js","path":"src/client"}},{"name":"ws","description":"The WebSocket manager of the client","type":[[["WebSocketManager"]]],"meta":{"line":101,"file":"Client.js","path":"src/client"}},{"name":"actions","description":"The action manager of the client","access":"private","type":[[["ActionsManager"]]],"meta":{"line":108,"file":"Client.js","path":"src/client"}},{"name":"voice","description":"The voice manager of the client","type":[[["ClientVoiceManager"]]],"meta":{"line":114,"file":"Client.js","path":"src/client"}},{"name":"shard","description":"Shard helpers for the client (only if the process was spawned from a {@link ShardingManager})","nullable":true,"type":[[["ShardClientUtil"]]],"meta":{"line":120,"file":"Client.js","path":"src/client"}},{"name":"users","description":"All of the {@link User} objects that have been cached at any point, mapped by their ids","type":[[["UserManager"]]],"meta":{"line":128,"file":"Client.js","path":"src/client"}},{"name":"relationships","description":"All of the relationships {@link User}","type":[[["RelationshipsManager"]]],"meta":{"line":135,"file":"Client.js","path":"src/client"}},{"name":"setting","description":"All of the settings {@link Object}","type":[[["ClientUserSettingManager"]]],"meta":{"line":140,"file":"Client.js","path":"src/client"}},{"name":"guilds","description":"All of the guilds the client is currently handling, mapped by their ids -\nas long as sharding isn't being used, this will be *every* guild the bot is a member of","type":[[["GuildManager"]]],"meta":{"line":146,"file":"Client.js","path":"src/client"}},{"name":"channels","description":"All of the {@link Channel}s that the client is currently handling, mapped by their ids -\nas long as sharding isn't being used, this will be *every* channel in *every* guild the bot\nis a member of. Note that DM channels will not be initially cached, and thus not be present\nin the Manager without their explicit fetching or use.","type":[[["ChannelManager"]]],"meta":{"line":155,"file":"Client.js","path":"src/client"}},{"name":"sweepers","description":"The sweeping functions and their intervals used to periodically sweep caches","type":[[["Sweepers"]]],"meta":{"line":161,"file":"Client.js","path":"src/client"}},{"name":"presence","description":"The presence of the Client","access":"private","type":[[["ClientPresence"]]],"meta":{"line":168,"file":"Client.js","path":"src/client"}},{"name":"token","description":"Authorization token for the logged in bot.\nIf present, this defaults to `process.env.DISCORD_TOKEN` when instantiating the client\nThis should be kept private at all times.","nullable":true,"type":[[["string"]]],"meta":{"line":178,"file":"Client.js","path":"src/client"}},{"name":"user","description":"User that the client is logged in as","nullable":true,"type":[[["ClientUser"]]],"meta":{"line":187,"file":"Client.js","path":"src/client"}},{"name":"application","description":"The application of this bot","nullable":true,"type":[[["ClientApplication"]]],"meta":{"line":193,"file":"Client.js","path":"src/client"}},{"name":"readyAt","description":"Time at which the client was last regarded as being in the `READY` state\n(each time the client disconnects and successfully reconnects, this will be overwritten)","nullable":true,"type":[[["Date"]]],"meta":{"line":200,"file":"Client.js","path":"src/client"}},{"name":"password","description":"Password cache","nullable":true,"type":[[["string"]]],"meta":{"line":206,"file":"Client.js","path":"src/client"}},{"name":"emojis","description":"All custom emojis that the client has access to, mapped by their ids","readonly":true,"type":[[["BaseGuildEmojiManager"]]],"meta":{"line":225,"file":"Client.js","path":"src/client"}},{"name":"readyTimestamp","description":"Timestamp of the time the client was last `READY` at","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":238,"file":"Client.js","path":"src/client"}},{"name":"uptime","description":"How long it has been since the client last entered the `READY` state in milliseconds","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":247,"file":"Client.js","path":"src/client"}},{"name":"options","description":"The options the client was instantiated with","type":[[["ClientOptions"]]],"meta":{"line":20,"file":"BaseClient.js","path":"src/client"}},{"name":"rest","description":"The REST manager of the client","access":"private","type":[[["RESTManager"]]],"meta":{"line":27,"file":"BaseClient.js","path":"src/client"}},{"name":"api","description":"API shortcut","access":"private","readonly":true,"type":[[["Object"]]],"meta":{"line":36,"file":"BaseClient.js","path":"src/client"}}],"methods":[{"name":"updateCookie","description":"Update Cloudflare Cookie and Discord Fingerprint","async":true,"meta":{"line":254,"file":"Client.js","path":"src/client"}},{"name":"login","description":"Logs the client in, establishing a WebSocket connection to Discord.","examples":["client.login('my token');"],"params":[{"name":"token","description":"Token of the account to log in with","optional":true,"default":"this.token","type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["string",">"]]],"description":"Token of the account used"},"meta":{"line":300,"file":"Client.js","path":"src/client"}},{"name":"QRLogin","description":"Sign in with the QR code on your phone.","examples":["client.QRLogin();"],"params":[{"name":"debug","description":"Debug mode","default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["DiscordAuthWebsocket"]]],"description":"nothing :))"},"meta":{"line":337,"file":"Client.js","path":"src/client"}},{"name":"isReady","description":"Returns whether the client has logged in, indicative of being able to access\nproperties such as `user` and `application`.","returns":[[["boolean"]]],"meta":{"line":349,"file":"Client.js","path":"src/client"}},{"name":"destroy","description":"Logs out, terminates the connection to Discord, and destroys the client.","returns":[[["void"]]],"meta":{"line":357,"file":"Client.js","path":"src/client"}},{"name":"fetchInvite","description":"Obtains an invite from Discord.","examples":["client.fetchInvite('https://discord.gg/djs')\n .then(invite => console.log(`Obtained invite with code: ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"invite","description":"Invite code or URL","type":[[["InviteResolvable"]]]},{"name":"options","description":"Options for fetching the invite","optional":true,"type":[[["ClientFetchInviteOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":387,"file":"Client.js","path":"src/client"}},{"name":"redeemNitro","description":"Get Nitro","params":[{"name":"nitro","description":"Nitro Code\ndiscordapp.com/gifts/code | discord.gift/code","type":[[["string","<"],["NitroCode",">"]]]}],"async":true,"returns":[[["Promise"]]],"meta":{"line":409,"file":"Client.js","path":"src/client"}},{"name":"fetchGuildTemplate","description":"Obtains a template from Discord.","examples":["client.fetchGuildTemplate('https://discord.new/FKvmczH2HyUf')\n .then(template => console.log(`Obtained template with code: ${template.code}`))\n .catch(console.error);"],"params":[{"name":"template","description":"Template code or URL","type":[[["GuildTemplateResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":427,"file":"Client.js","path":"src/client"}},{"name":"fetchWebhook","description":"Obtains a webhook from Discord.","examples":["client.fetchWebhook('id', 'token')\n .then(webhook => console.log(`Obtained webhook with name: ${webhook.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]]},{"name":"token","description":"Token for the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Webhook",">"]]],"meta":{"line":443,"file":"Client.js","path":"src/client"}},{"name":"fetchVoiceRegions","description":"Obtains the available voice regions from Discord.","examples":["client.fetchVoiceRegions()\n .then(regions => console.log(`Available regions are: ${regions.map(region => region.name).join(', ')}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["string",", "],["VoiceRegion",">>"]]],"meta":{"line":456,"file":"Client.js","path":"src/client"}},{"name":"fetchSticker","description":"Obtains a sticker from Discord.","examples":["client.fetchSticker('id')\n .then(sticker => console.log(`Obtained sticker with name: ${sticker.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The sticker's id","type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":472,"file":"Client.js","path":"src/client"}},{"name":"fetchPremiumStickerPacks","description":"Obtains the list of sticker packs available to Nitro subscribers from Discord.","examples":["client.fetchPremiumStickerPacks()\n .then(packs => console.log(`Available sticker packs are: ${packs.map(pack => pack.name).join(', ')}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["StickerPack",">>"]]],"meta":{"line":485,"file":"Client.js","path":"src/client"}},{"name":"_finalize","description":"A last ditch cleanup function for garbage collection.","access":"private","params":[{"name":"options.cleanup","description":"The function called to GC","type":[[["function"]]]},{"name":"options.message","description":"The message to send after a successful GC","optional":true,"type":[[["string"]]]},{"name":"options.name","description":"The name of the item being GCed","optional":true,"type":[[["string"]]]}],"meta":{"line":496,"file":"Client.js","path":"src/client"}},{"name":"sweepMessages","description":"Sweeps all text-based channels' messages and removes the ones older than the max message lifetime.\nIf the message has been edited, the time of the edit is used rather than the time of the original message.","examples":["// Remove all messages older than 1800 seconds from the messages cache\nconst amount = client.sweepMessages(1800);\nconsole.log(`Successfully removed ${amount} messages from the cache.`);"],"params":[{"name":"lifetime","description":"Messages that are older than this (in seconds)\nwill be removed from the caches. The default is based on {@link ClientOptions#messageCacheLifetime}","optional":true,"default":"this.options.messageCacheLifetime","type":[[["number"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of messages that were removed from the caches,\nor -1 if the message cache lifetime is unlimited"},"meta":{"line":520,"file":"Client.js","path":"src/client"}},{"name":"fetchGuildPreview","description":"Obtains a guild preview from Discord, available for all guilds the bot is in and all Discoverable guilds.","params":[{"name":"guild","description":"The guild to fetch the preview for","type":[[["GuildResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["GuildPreview",">"]]],"meta":{"line":539,"file":"Client.js","path":"src/client"}},{"name":"fetchGuildWidget","description":"Obtains the widget data of a guild from Discord, available for guilds with the widget enabled.","params":[{"name":"guild","description":"The guild to fetch the widget data for","type":[[["GuildResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["Widget",">"]]],"meta":{"line":551,"file":"Client.js","path":"src/client"}},{"name":"generateInvite","description":"Generates a link that can be used to invite the bot to a guild.","examples":["const link = client.generateInvite({\n scopes: ['applications.commands'],\n});\nconsole.log(`Generated application invite link: ${link}`);","const link = client.generateInvite({\n permissions: [\n Permissions.FLAGS.SEND_MESSAGES,\n Permissions.FLAGS.MANAGE_GUILD,\n Permissions.FLAGS.MENTION_EVERYONE,\n ],\n scopes: ['bot'],\n});\nconsole.log(`Generated bot invite link: ${link}`);"],"params":[{"name":"options","description":"Options for the invite","optional":true,"default":"{}","type":[[["InviteGenerationOptions"]]]}],"returns":[[["string"]]],"meta":{"line":587,"file":"Client.js","path":"src/client"}},{"name":"_eval","description":"Calls {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval} on a script\nwith the client as `this`.","access":"private","params":[{"name":"script","description":"Script to eval","type":[[["string"]]]}],"returns":[["*"]],"meta":{"line":642,"file":"Client.js","path":"src/client"}},{"name":"_validateOptions","description":"Validates the client options.","access":"private","params":[{"name":"options","description":"Options to validate","optional":true,"default":"this.options","type":[[["ClientOptions"]]]}],"meta":{"line":675,"file":"Client.js","path":"src/client"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#incrementMaxListeners","inherited":true,"meta":{"line":52,"file":"BaseClient.js","path":"src/client"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#decrementMaxListeners","inherited":true,"meta":{"line":63,"file":"BaseClient.js","path":"src/client"}}],"events":[{"name":"channelCreate","description":"Emitted whenever a guild channel is created.","params":[{"name":"channel","description":"The channel that was created","type":[[["GuildChannel"]]]}],"meta":{"line":12,"file":"ChannelCreate.js","path":"src/client/actions"}},{"name":"channelDelete","description":"Emitted whenever a channel is deleted.","params":[{"name":"channel","description":"The channel that was deleted","type":[[["DMChannel"]],[["GuildChannel"]]]}],"meta":{"line":27,"file":"ChannelDelete.js","path":"src/client/actions"}},{"name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","params":[{"name":"ban","description":"The ban that occurred","type":[[["GuildBan"]]]}],"meta":{"line":11,"file":"GuildBanAdd.js","path":"src/client/actions"}},{"name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","params":[{"name":"ban","description":"The ban that was removed","type":[[["GuildBan"]]]}],"meta":{"line":12,"file":"GuildBanRemove.js","path":"src/client/actions"}},{"name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","params":[{"name":"guild","description":"The guild that has become unavailable","type":[[["Guild"]]]}],"meta":{"line":23,"file":"GuildDelete.js","path":"src/client/actions"}},{"name":"guildDelete","description":"Emitted whenever a guild kicks the client or the guild is deleted/left.","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"meta":{"line":44,"file":"GuildDelete.js","path":"src/client/actions"}},{"name":"emojiCreate","description":"Emitted whenever a custom emoji is created in a guild.","params":[{"name":"emoji","description":"The emoji that was created","type":[[["GuildEmoji"]]]}],"meta":{"line":10,"file":"GuildEmojiCreate.js","path":"src/client/actions"}},{"name":"emojiDelete","description":"Emitted whenever a custom emoji is deleted in a guild.","params":[{"name":"emoji","description":"The emoji that was deleted","type":[[["GuildEmoji"]]]}],"meta":{"line":11,"file":"GuildEmojiDelete.js","path":"src/client/actions"}},{"name":"emojiUpdate","description":"Emitted whenever a custom emoji is updated in a guild.","params":[{"name":"oldEmoji","description":"The old emoji","type":[[["GuildEmoji"]]]},{"name":"newEmoji","description":"The new emoji","type":[[["GuildEmoji"]]]}],"meta":{"line":9,"file":"GuildEmojiUpdate.js","path":"src/client/actions"}},{"name":"guildIntegrationsUpdate","description":"Emitted whenever a guild integration is updated","params":[{"name":"guild","description":"The guild whose integrations were updated","type":[[["Guild"]]]}],"meta":{"line":10,"file":"GuildIntegrationsUpdate.js","path":"src/client/actions"}},{"name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","params":[{"name":"member","description":"The member that has left/been kicked from the guild","type":[[["GuildMember"]]]}],"meta":{"line":18,"file":"GuildMemberRemove.js","path":"src/client/actions"}},{"name":"guildMemberUpdate","description":"Emitted whenever a guild member changes - i.e. new role, removed role, nickname.","params":[{"name":"oldMember","description":"The member before the update","type":[[["GuildMember"]]]},{"name":"newMember","description":"The member after the update","type":[[["GuildMember"]]]}],"meta":{"line":23,"file":"GuildMemberUpdate.js","path":"src/client/actions"}},{"name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large guild.","params":[{"name":"member","description":"The member that became available","type":[[["GuildMember"]]]}],"meta":{"line":32,"file":"GuildMemberUpdate.js","path":"src/client/actions"}},{"name":"roleCreate","description":"Emitted whenever a role is created.","params":[{"name":"role","description":"The role that was created","type":[[["Role"]]]}],"meta":{"line":14,"file":"GuildRoleCreate.js","path":"src/client/actions"}},{"name":"roleDelete","description":"Emitted whenever a guild role is deleted.","params":[{"name":"role","description":"The role that was deleted","type":[[["Role"]]]}],"meta":{"line":18,"file":"GuildRoleDelete.js","path":"src/client/actions"}},{"name":"roleUpdate","description":"Emitted whenever a guild role is updated.","params":[{"name":"oldRole","description":"The role before the update","type":[[["Role"]]]},{"name":"newRole","description":"The role after the update","type":[[["Role"]]]}],"meta":{"line":17,"file":"GuildRoleUpdate.js","path":"src/client/actions"}},{"name":"guildScheduledEventCreate","description":"Emitted whenever a guild scheduled event is created.","params":[{"name":"guildScheduledEvent","description":"The created guild scheduled event","type":[[["GuildScheduledEvent"]]]}],"meta":{"line":13,"file":"GuildScheduledEventCreate.js","path":"src/client/actions"}},{"name":"guildScheduledEventDelete","description":"Emitted whenever a guild scheduled event is deleted.","params":[{"name":"guildScheduledEvent","description":"The deleted guild scheduled event","type":[[["GuildScheduledEvent"]]]}],"meta":{"line":16,"file":"GuildScheduledEventDelete.js","path":"src/client/actions"}},{"name":"guildScheduledEventUpdate","description":"Emitted whenever a guild scheduled event gets updated.","params":[{"name":"oldGuildScheduledEvent","description":"The guild scheduled event object before the update","nullable":true,"type":[[["GuildScheduledEvent"]]]},{"name":"newGuildScheduledEvent","description":"The guild scheduled event object after the update","type":[[["GuildScheduledEvent"]]]}],"meta":{"line":15,"file":"GuildScheduledEventUpdate.js","path":"src/client/actions"}},{"name":"guildScheduledEventUserAdd","description":"Emitted whenever a user subscribes to a guild scheduled event","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event","type":[[["GuildScheduledEvent"]]]},{"name":"user","description":"The user who subscribed","type":[[["User"]]]}],"meta":{"line":16,"file":"GuildScheduledEventUserAdd.js","path":"src/client/actions"}},{"name":"guildScheduledEventUserRemove","description":"Emitted whenever a user unsubscribes from a guild scheduled event","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event","type":[[["GuildScheduledEvent"]]]},{"name":"user","description":"The user who unsubscribed","type":[[["User"]]]}],"meta":{"line":16,"file":"GuildScheduledEventUserRemove.js","path":"src/client/actions"}},{"name":"stickerCreate","description":"Emitted whenever a custom sticker is created in a guild.","params":[{"name":"sticker","description":"The sticker that was created","type":[[["Sticker"]]]}],"meta":{"line":10,"file":"GuildStickerCreate.js","path":"src/client/actions"}},{"name":"stickerDelete","description":"Emitted whenever a custom sticker is deleted in a guild.","params":[{"name":"sticker","description":"The sticker that was deleted","type":[[["Sticker"]]]}],"meta":{"line":11,"file":"GuildStickerDelete.js","path":"src/client/actions"}},{"name":"stickerUpdate","description":"Emitted whenever a custom sticker is updated in a guild.","params":[{"name":"oldSticker","description":"The old sticker","type":[[["Sticker"]]]},{"name":"newSticker","description":"The new sticker","type":[[["Sticker"]]]}],"meta":{"line":9,"file":"GuildStickerUpdate.js","path":"src/client/actions"}},{"name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","params":[{"name":"oldGuild","description":"The guild before the update","type":[[["Guild"]]]},{"name":"newGuild","description":"The guild after the update","type":[[["Guild"]]]}],"meta":{"line":13,"file":"GuildUpdate.js","path":"src/client/actions"}},{"name":"interactionCreate","description":"Emitted when an interaction is created.","params":[{"name":"interaction","description":"The interaction which was created","type":[[["Interaction"]]]}],"meta":{"line":72,"file":"InteractionCreate.js","path":"src/client/actions"}},{"name":"interaction","description":"Emitted when an interaction is created.","deprecated":"Use {@link Client#event:interactionCreate} instead","params":[{"name":"interaction","description":"The interaction which was created","type":[[["Interaction"]]]}],"meta":{"line":79,"file":"InteractionCreate.js","path":"src/client/actions"}},{"name":"inviteCreate","description":"Emitted when an invite is created.\n This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,\nor `MANAGE_CHANNELS` permissions for the channel.","params":[{"name":"invite","description":"The invite that was created","type":[[["Invite"]]]}],"meta":{"line":16,"file":"InviteCreate.js","path":"src/client/actions"}},{"name":"inviteDelete","description":"Emitted when an invite is deleted.\n This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,\nor `MANAGE_CHANNELS` permissions for the channel.","params":[{"name":"invite","description":"The invite that was deleted","type":[[["Invite"]]]}],"meta":{"line":18,"file":"InviteDelete.js","path":"src/client/actions"}},{"name":"messageCreate","description":"Emitted whenever a message is created.","params":[{"name":"message","description":"The created message","type":[[["Message"]]]}],"meta":{"line":21,"file":"MessageCreate.js","path":"src/client/actions"}},{"name":"message","description":"Emitted whenever a message is created.","deprecated":"Use {@link Client#event:messageCreate} instead","params":[{"name":"message","description":"The created message","type":[[["Message"]]]}],"meta":{"line":28,"file":"MessageCreate.js","path":"src/client/actions"}},{"name":"messageDelete","description":"Emitted whenever a message is deleted.","params":[{"name":"message","description":"The deleted message","type":[[["Message"]]]}],"meta":{"line":19,"file":"MessageDelete.js","path":"src/client/actions"}},{"name":"messageDeleteBulk","description":"Emitted whenever messages are deleted in bulk.","params":[{"name":"messages","description":"The deleted messages, mapped by their id","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]]]}],"meta":{"line":34,"file":"MessageDeleteBulk.js","path":"src/client/actions"}},{"name":"messageReactionAdd","description":"Emitted whenever a reaction is added to a cached message.","params":[{"name":"messageReaction","description":"The reaction object","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that applied the guild or reaction emoji","type":[[["User"]]]}],"meta":{"line":43,"file":"MessageReactionAdd.js","path":"src/client/actions"}},{"name":"messageReactionRemove","description":"Emitted whenever a reaction is removed from a cached message.","params":[{"name":"messageReaction","description":"The reaction object","type":[[["MessageReaction"]]]},{"name":"user","description":"The user whose emoji or reaction emoji was removed","type":[[["User"]]]}],"meta":{"line":33,"file":"MessageReactionRemove.js","path":"src/client/actions"}},{"name":"messageReactionRemoveAll","description":"Emitted whenever all reactions are removed from a cached message.","params":[{"name":"message","description":"The message the reactions were removed from","type":[[["Message"]]]},{"name":"reactions","description":"The cached message reactions that were removed.","type":[[["Collection","<("],["string","|"],["Snowflake","), "],["MessageReaction",">"]]]}],"meta":{"line":26,"file":"MessageReactionRemoveAll.js","path":"src/client/actions"}},{"name":"messageReactionRemoveEmoji","description":"Emitted when a bot removes an emoji reaction from a cached message.","params":[{"name":"reaction","description":"The reaction that was removed","type":[[["MessageReaction"]]]}],"meta":{"line":18,"file":"MessageReactionRemoveEmoji.js","path":"src/client/actions"}},{"name":"presenceUpdate","description":"Emitted whenever a guild member's presence (e.g. status, activity) is changed.","params":[{"name":"oldPresence","description":"The presence before the update, if one at all","nullable":true,"type":[[["Presence"]]]},{"name":"newPresence","description":"The presence after the update","type":[[["Presence"]]]}],"meta":{"line":31,"file":"PresenceUpdate.js","path":"src/client/actions"}},{"name":"stageInstanceCreate","description":"Emitted whenever a stage instance is created.","params":[{"name":"stageInstance","description":"The created stage instance","type":[[["StageInstance"]]]}],"meta":{"line":14,"file":"StageInstanceCreate.js","path":"src/client/actions"}},{"name":"stageInstanceDelete","description":"Emitted whenever a stage instance is deleted.","params":[{"name":"stageInstance","description":"The deleted stage instance","type":[[["StageInstance"]]]}],"meta":{"line":18,"file":"StageInstanceDelete.js","path":"src/client/actions"}},{"name":"stageInstanceUpdate","description":"Emitted whenever a stage instance gets updated - e.g. change in topic or privacy level","params":[{"name":"oldStageInstance","description":"The stage instance before the update","nullable":true,"type":[[["StageInstance"]]]},{"name":"newStageInstance","description":"The stage instance after the update","type":[[["StageInstance"]]]}],"meta":{"line":15,"file":"StageInstanceUpdate.js","path":"src/client/actions"}},{"name":"threadCreate","description":"Emitted whenever a thread is created or when the client user is added to a thread.","params":[{"name":"thread","description":"The thread that was created","type":[[["ThreadChannel"]]]}],"meta":{"line":12,"file":"ThreadCreate.js","path":"src/client/actions"}},{"name":"threadDelete","description":"Emitted whenever a thread is deleted.","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"meta":{"line":20,"file":"ThreadDelete.js","path":"src/client/actions"}},{"name":"threadListSync","description":"Emitted whenever the client user gains access to a text or news channel that contains threads","params":[{"name":"threads","description":"The threads that were synced","type":[[["Collection","<"],["Snowflake",", "],["ThreadChannel",">"]]]}],"meta":{"line":38,"file":"ThreadListSync.js","path":"src/client/actions"}},{"name":"threadMembersUpdate","description":"Emitted whenever members are added or removed from a thread. Requires `GUILD_MEMBERS` privileged intent","params":[{"name":"oldMembers","description":"The members before the update","type":[[["Collection","<"],["Snowflake",", "],["ThreadMember",">"]]]},{"name":"newMembers","description":"The members after the update","type":[[["Collection","<"],["Snowflake",", "],["ThreadMember",">"]]]}],"meta":{"line":22,"file":"ThreadMembersUpdate.js","path":"src/client/actions"}},{"name":"threadMemberUpdate","description":"Emitted whenever the client user's thread member is updated.","params":[{"name":"oldMember","description":"The member before the update","type":[[["ThreadMember"]]]},{"name":"newMember","description":"The member after the update","type":[[["ThreadMember"]]]}],"meta":{"line":18,"file":"ThreadMemberUpdate.js","path":"src/client/actions"}},{"name":"typingStart","description":"Emitted whenever a user starts typing in a channel.","params":[{"name":"typing","description":"The typing state","type":[[["Typing"]]]}],"meta":{"line":19,"file":"TypingStart.js","path":"src/client/actions"}},{"name":"userUpdate","description":"Emitted whenever a user's details (e.g. username) are changed.\nTriggered by the Discord gateway events USER_UPDATE, GUILD_MEMBER_UPDATE, and PRESENCE_UPDATE.","params":[{"name":"oldUser","description":"The user before the update","type":[[["User"]]]},{"name":"newUser","description":"The user after the update","type":[[["User"]]]}],"meta":{"line":14,"file":"UserUpdate.js","path":"src/client/actions"}},{"name":"voiceStateUpdate","description":"Emitted whenever a member changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","params":[{"name":"oldState","description":"The voice state before the update","type":[[["VoiceState"]]]},{"name":"newState","description":"The voice state after the update","type":[[["VoiceState"]]]}],"meta":{"line":32,"file":"VoiceStateUpdate.js","path":"src/client/actions"}},{"name":"webhookUpdate","description":"Emitted whenever a channel has its webhooks changed.","params":[{"name":"channel","description":"The channel that had a webhook update","type":[[["TextChannel"]],[["NewsChannel"]]]}],"meta":{"line":10,"file":"WebhooksUpdate.js","path":"src/client/actions"}},{"name":"warn","description":"Emitted for general warnings.","params":[{"name":"info","description":"The warning","type":[[["string"]]]}],"meta":{"line":741,"file":"Client.js","path":"src/client"}},{"name":"applicationCommandCreate","description":"Emitted when a guild application command is created.","deprecated":"See {@link https://github.com/discord/discord-api-docs/issues/3690 this issue} for more information.","params":[{"name":"command","description":"The command which was created","type":[[["ApplicationCommand"]]]}],"meta":{"line":11,"file":"APPLICATION_COMMAND_CREATE.js","path":"src/client/websocket/handlers"}},{"name":"applicationCommandDelete","description":"Emitted when a guild application command is deleted.","deprecated":"See {@link https://github.com/discord/discord-api-docs/issues/3690 this issue} for more information.","params":[{"name":"command","description":"The command which was deleted","type":[[["ApplicationCommand"]]]}],"meta":{"line":13,"file":"APPLICATION_COMMAND_DELETE.js","path":"src/client/websocket/handlers"}},{"name":"applicationCommandUpdate","description":"Emitted when a guild application command is updated.","deprecated":"See {@link https://github.com/discord/discord-api-docs/issues/3690 this issue} for more information.","params":[{"name":"oldCommand","description":"The command before the update","nullable":true,"type":[[["ApplicationCommand"]]]},{"name":"newCommand","description":"The command after the update","type":[[["ApplicationCommand"]]]}],"meta":{"line":12,"file":"APPLICATION_COMMAND_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"channelPinsUpdate","description":"Emitted whenever the pins of a channel are updated. Due to the nature of the WebSocket event,\nnot much information can be provided easily here - you need to manually check the pins yourself.","params":[{"name":"channel","description":"The channel that the pins update occurred in","type":[[["TextBasedChannels"]]]},{"name":"time","description":"The time of the pins update","type":[[["Date"]]]}],"meta":{"line":13,"file":"CHANNEL_PINS_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change, channel type change.","params":[{"name":"oldChannel","description":"The channel before the update","type":[[["DMChannel"]],[["GuildChannel"]]]},{"name":"newChannel","description":"The channel after the update","type":[[["DMChannel"]],[["GuildChannel"]]]}],"meta":{"line":8,"file":"CHANNEL_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"guildCreate","description":"Emitted whenever the client joins a guild.","params":[{"name":"guild","description":"The created guild","type":[[["Guild"]]]}],"meta":{"line":17,"file":"GUILD_CREATE.js","path":"src/client/websocket/handlers"}},{"name":"guildMemberAdd","description":"Emitted whenever a user joins a guild.","params":[{"name":"member","description":"The member that has joined a guild","type":[[["GuildMember"]]]}],"meta":{"line":11,"file":"GUILD_MEMBER_ADD.js","path":"src/client/websocket/handlers"}},{"name":"guildMembersChunk","description":"Emitted whenever a chunk of guild members is received (all members come from the same guild).","params":[{"name":"members","description":"The members in the chunk","type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]]},{"name":"guild","description":"The guild related to the member chunk","type":[[["Guild"]]]},{"name":"chunk","description":"Properties of the received chunk","type":[[["GuildMembersChunk"]]]}],"meta":{"line":24,"file":"GUILD_MEMBERS_CHUNK.js","path":"src/client/websocket/handlers"}},{"name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","params":[{"name":"oldMessage","description":"The message before the update","type":[[["Message"]]]},{"name":"newMessage","description":"The message after the update","type":[[["Message"]]]}],"meta":{"line":8,"file":"MESSAGE_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"relationshipAdd","description":"Emitted whenever a relationship is updated.","params":[{"name":"user","description":"The userID that was updated","type":[[["UserId"]]]},{"name":"type","description":"The new relationship type","type":[[["Number"]]]}],"meta":{"line":10,"file":"RELATIONSHIP_ADD.js","path":"src/client/websocket/handlers"}},{"name":"relationshipRemove","description":"Emitted whenever a relationship is updated.","params":[{"name":"user","description":"The userID that was updated","type":[[["UserId"]]]}],"meta":{"line":7,"file":"RELATIONSHIP_REMOVE.js","path":"src/client/websocket/handlers"}},{"name":"shardResume","description":"Emitted when a shard resumes successfully.","params":[{"name":"id","description":"The shard id that resumed","type":[[["number"]]]},{"name":"replayedEvents","description":"The amount of replayed events","type":[[["number"]]]}],"meta":{"line":7,"file":"RESUMED.js","path":"src/client/websocket/handlers"}},{"name":"threadUpdate","description":"Emitted whenever a thread is updated - e.g. name change, archive state change, locked state change.","params":[{"name":"oldThread","description":"The thread before the update","type":[[["ThreadChannel"]]]},{"name":"newThread","description":"The thread after the update","type":[[["ThreadChannel"]]]}],"meta":{"line":8,"file":"THREAD_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"shardReady","description":"Emitted when a shard turns ready.","params":[{"name":"id","description":"The shard id that turned ready","type":[[["number"]]]},{"name":"unavailableGuilds","description":"Set of unavailable guild ids, if any","nullable":true,"type":[[["Set","<"],["Snowflake",">"]]]}],"meta":{"line":180,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardDisconnect","description":"Emitted when a shard's WebSocket disconnects and will no longer reconnect.","params":[{"name":"event","description":"The WebSocket close event","type":[[["CloseEvent"]]]},{"name":"id","description":"The shard id that disconnected","type":[[["number"]]]}],"meta":{"line":194,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardReconnecting","description":"Emitted when a shard is attempting to reconnect or re-identify.","params":[{"name":"id","description":"The shard id that is attempting to reconnect","type":[[["number"]]]}],"meta":{"line":210,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"invalidated","description":"Emitted when the client's session becomes invalidated.\nYou are expected to handle closing the process gracefully and preventing a boot loop\nif you are listening to this event.","meta":{"line":289,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"ready","description":"Emitted when the client becomes ready to start working.","params":[{"name":"client","description":"The client","type":[[["Client"]]]}],"meta":{"line":382,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardError","description":"Emitted whenever a shard's WebSocket encounters a connection error.","params":[{"name":"error","description":"The encountered error","type":[[["Error"]]]},{"name":"shardId","description":"The shard that encountered this error","type":[[["number"]]]}],"meta":{"line":313,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"error","description":"Emitted when the client encounters an error.","params":[{"name":"error","description":"The error encountered","type":[[["Error"]]]}],"meta":{"line":206,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"debug","description":"Emitted for general debugging information.","params":[{"name":"info","description":"The debug information","type":[[["string"]]]}],"meta":{"line":77,"file":"BaseClient.js","path":"src/client"}},{"name":"rateLimit","description":"Emitted when the client hits a rate limit while making a request","params":[{"name":"rateLimitData","description":"Object containing the rate limit info","type":[[["RateLimitData"]]]}],"meta":{"line":126,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiRequest","description":"Emitted before every API request.\nThis event can emit several times for the same request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that is about to be sent","type":[[["APIRequest"]]]}],"meta":{"line":177,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiResponse","description":"Emitted after every API request has received a response.\nThis event does not necessarily correlate to completion of the request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that triggered this response","type":[[["APIRequest"]]]},{"name":"response","description":"The response received from the Discord API","type":[[["Response"]]]}],"meta":{"line":209,"file":"RequestHandler.js","path":"src/rest"}},{"name":"invalidRequestWarning","description":"Emitted periodically when the process sends invalid requests to let users avoid the\n10k invalid requests in 10 minutes threshold that causes a ban","params":[{"name":"invalidRequestWarningData","description":"Object containing the invalid request info","type":[[["InvalidRequestWarningData"]]]}],"meta":{"line":286,"file":"RequestHandler.js","path":"src/rest"}}],"meta":{"line":41,"file":"Client.js","path":"src/client"}},{"name":"ClientVoiceManager","description":"Manages voice connections for the client","props":[{"name":"client","description":"The client that instantiated this voice manager","readonly":true,"type":[[["Client"]]],"meta":{"line":10,"file":"ClientVoiceManager.js","path":"src/client/voice"}},{"name":"adapters","description":"Maps guild ids to voice adapters created for use with @discordjs/voice.","type":[[["Map","<"],["Snowflake",", "],["Object",">"]]],"meta":{"line":22,"file":"ClientVoiceManager.js","path":"src/client/voice"}}],"meta":{"line":8,"file":"ClientVoiceManager.js","path":"src/client/voice"}},{"name":"WebhookClient","description":"The webhook client.","extends":[[["BaseClient"]]],"implements":[[["Webhook"]]],"construct":{"name":"WebhookClient","params":[{"name":"data","description":"The data of the webhook","type":[[["WebhookClientData"]]]},{"name":"options","description":"Options for the client","optional":true,"type":[[["ClientOptions"]]]}]},"props":[{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]],"meta":{"line":56,"file":"Webhook.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the webhook was created at","readonly":true,"type":[[["number"]]],"meta":{"line":384,"file":"Webhook.js","path":"src/structures"}},{"name":"createdAt","description":"The time the webhook was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":393,"file":"Webhook.js","path":"src/structures"}},{"name":"url","description":"The URL of this webhook","readonly":true,"type":[[["string"]]],"meta":{"line":402,"file":"Webhook.js","path":"src/structures"}},{"name":"options","description":"The options the client was instantiated with","type":[[["ClientOptions"]]],"meta":{"line":20,"file":"BaseClient.js","path":"src/client"}},{"name":"rest","description":"The REST manager of the client","access":"private","type":[[["RESTManager"]]],"meta":{"line":27,"file":"BaseClient.js","path":"src/client"}},{"name":"api","description":"API shortcut","access":"private","readonly":true,"type":[[["Object"]]],"meta":{"line":36,"file":"BaseClient.js","path":"src/client"}}],"methods":[{"name":"send","description":"Sends a message with this webhook.","implements":["Webhook#send"],"examples":["// Send a basic message\nwebhook.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a basic message in a thread\nwebhook.send({ content: 'hello!', threadId: '836856309672348295' })\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nwebhook.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nwebhook.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nwebhook.send({\n content: 'This is an embed',\n embeds: [{\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":184,"file":"Webhook.js","path":"src/structures"}},{"name":"sendSlackMessage","description":"Sends a raw slack message with this webhook.","see":["{@link https://api.slack.com/messaging/webhooks}"],"implements":["Webhook#sendSlackMessage"],"examples":["// Send a slack message\nwebhook.sendSlackMessage({\n 'username': 'Wumpus',\n 'attachments': [{\n 'pretext': 'this looks pretty cool',\n 'color': '#F0F',\n 'footer_icon': 'http://snek.s3.amazonaws.com/topSnek.png',\n 'footer': 'Powered by sneks',\n 'ts': Date.now() / 1_000\n }]\n}).catch(console.error);"],"params":[{"name":"body","description":"The raw body to send","type":[[["Object"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":223,"file":"Webhook.js","path":"src/structures"}},{"name":"edit","description":"Edits this webhook.","implements":["Webhook#edit"],"params":[{"name":"options","description":"Options for editing the webhook","type":[[["WebhookEditData"]]]},{"name":"reason","description":"Reason for editing the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Webhook",">"]]],"meta":{"line":248,"file":"Webhook.js","path":"src/structures"}},{"name":"fetchMessage","description":"Gets a message that was sent by this webhook.","implements":["Webhook#fetchMessage"],"params":[{"name":"message","description":"The id of the message to fetch","type":[[["Snowflake"]],[["original","'"]]]},{"name":"cacheOrOptions","description":"The options to provide to fetch the message.\nA **deprecated** boolean may be passed instead to specify whether to cache the message.","optional":true,"default":"{}","type":[[["WebhookFetchMessageOptions"]],[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":281,"file":"Webhook.js","path":"src/structures"}},{"name":"editMessage","description":"Edits a message that was sent by this webhook.","implements":["Webhook#editMessage"],"params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":316,"file":"Webhook.js","path":"src/structures"}},{"name":"delete","description":"Deletes the webhook.","implements":["Webhook#delete"],"params":[{"name":"reason","description":"Reason for deleting this webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":355,"file":"Webhook.js","path":"src/structures"}},{"name":"deleteMessage","description":"Delete a message that was sent by this webhook.","implements":["Webhook#deleteMessage"],"params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"threadId","description":"The id of the thread this message belongs to","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":365,"file":"Webhook.js","path":"src/structures"}},{"name":"destroy","description":"Destroys all assets used by the base client.","inherits":"BaseClient#destroy","inherited":true,"returns":[[["void"]]],"meta":{"line":44,"file":"BaseClient.js","path":"src/client"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#incrementMaxListeners","inherited":true,"meta":{"line":52,"file":"BaseClient.js","path":"src/client"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#decrementMaxListeners","inherited":true,"meta":{"line":63,"file":"BaseClient.js","path":"src/client"}}],"events":[{"name":"debug","description":"Emitted for general debugging information.","params":[{"name":"info","description":"The debug information","type":[[["string"]]]}],"meta":{"line":77,"file":"BaseClient.js","path":"src/client"}},{"name":"rateLimit","description":"Emitted when the client hits a rate limit while making a request","params":[{"name":"rateLimitData","description":"Object containing the rate limit info","type":[[["RateLimitData"]]]}],"meta":{"line":126,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiRequest","description":"Emitted before every API request.\nThis event can emit several times for the same request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that is about to be sent","type":[[["APIRequest"]]]}],"meta":{"line":177,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiResponse","description":"Emitted after every API request has received a response.\nThis event does not necessarily correlate to completion of the request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that triggered this response","type":[[["APIRequest"]]]},{"name":"response","description":"The response received from the Discord API","type":[[["Response"]]]}],"meta":{"line":209,"file":"RequestHandler.js","path":"src/rest"}},{"name":"invalidRequestWarning","description":"Emitted periodically when the process sends invalid requests to let users avoid the\n10k invalid requests in 10 minutes threshold that causes a ban","params":[{"name":"invalidRequestWarningData","description":"Object containing the invalid request info","type":[[["InvalidRequestWarningData"]]]}],"meta":{"line":286,"file":"RequestHandler.js","path":"src/rest"}}],"meta":{"line":12,"file":"WebhookClient.js","path":"src/client"}},{"name":"WebSocketManager","description":"The WebSocket manager for this client.\nThis class forwards raw dispatch events,\nread more about it here {@link https://discord.com/developers/docs/topics/gateway}","extends":[[["EventEmitter"]]],"props":[{"name":"client","description":"The client that instantiated this WebSocketManager","readonly":true,"type":[[["Client"]]],"meta":{"line":40,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"gateway","description":"The gateway this manager uses","nullable":true,"type":[[["string"]]],"meta":{"line":52,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"totalShards","description":"The amount of shards this manager handles","access":"private","type":[[["number"]]],"meta":{"line":59,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shards","description":"A collection of all shards this manager handles","type":[[["Collection","<"],["number",", "],["WebSocketShard",">"]]],"meta":{"line":65,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardQueue","description":"An array of shards to be connected or that need to reconnect","access":"private","type":[[["Set","<"],["WebSocketShard",">"]]],"meta":{"line":67,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"packetQueue","description":"An array of queued events before this WebSocketManager became ready","access":"private","type":[[["Array","<"],["Object",">"]]],"meta":{"line":75,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"status","description":"The current status of this WebSocketManager","type":[[["Status"]]],"meta":{"line":87,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"destroyed","description":"If this manager was destroyed. It will prevent shards from reconnecting","access":"private","type":[[["boolean"]]],"meta":{"line":94,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"reconnecting","description":"If this manager is currently reconnecting one or multiple shards","access":"private","type":[[["boolean"]]],"meta":{"line":101,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"ping","description":"The average ping of all WebSocketShards","readonly":true,"type":[[["number"]]],"meta":{"line":109,"file":"WebSocketManager.js","path":"src/client/websocket"}}],"methods":[{"name":"debug","description":"Emits a debug message.","access":"private","params":[{"name":"message","description":"The debug message","type":[[["string"]]]},{"name":"shard","description":"The shard that emitted this message, if any","optional":true,"nullable":true,"type":[[["WebSocketShard"]]]}],"meta":{"line":120,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"connect","description":"Connects this manager to the gateway.","access":"private","async":true,"meta":{"line":128,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"createShards","description":"Handles the creation of a shard.","access":"private","async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":170,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"reconnect","description":"Handles reconnects for this manager.","access":"private","async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":274,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"broadcast","description":"Broadcasts a packet to every shard this manager handles.","access":"private","params":[{"name":"packet","description":"The packet to send","type":[[["Object"]]]}],"meta":{"line":312,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"destroy","description":"Destroys this manager and all its shards.","access":"private","meta":{"line":320,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"handlePacket","description":"Processes a packet and queues it if this WebSocketManager is not ready.","access":"private","params":[{"name":"packet","description":"The packet to be handled","optional":true,"type":[[["Object"]]]},{"name":"shard","description":"The shard that will handle this packet","optional":true,"type":[[["WebSocketShard"]]]}],"returns":[[["boolean"]]],"meta":{"line":335,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"checkShardsReady","description":"Checks whether the client is ready to be marked as ready.","access":"private","meta":{"line":364,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"triggerClientReady","description":"Causes the client to be marked as ready and emits the ready event.","access":"private","meta":{"line":377,"file":"WebSocketManager.js","path":"src/client/websocket"}}],"meta":{"line":36,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"WebSocketShard","description":"Represents a Shard's WebSocket connection","props":[{"name":"manager","description":"The WebSocketManager of the shard","type":[[["WebSocketManager"]]],"meta":{"line":29,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"id","description":"The shard's id","type":[[["number"]]],"meta":{"line":35,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"status","description":"The current status of the shard","type":[[["Status"]]],"meta":{"line":41,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"sequence","description":"The current sequence of the shard","access":"private","type":[[["number"]]],"meta":{"line":48,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"closeSequence","description":"The sequence of the shard after close","access":"private","type":[[["number"]]],"meta":{"line":55,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"sessionId","description":"The current session id of the shard","access":"private","nullable":true,"type":[[["string"]]],"meta":{"line":62,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ping","description":"The previous heartbeat ping of the shard","type":[[["number"]]],"meta":{"line":68,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"lastPingTimestamp","description":"The last time a ping was sent (a timestamp)","access":"private","type":[[["number"]]],"meta":{"line":75,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"lastHeartbeatAcked","description":"If we received a heartbeat ack back. Used to identify zombie connections","access":"private","type":[[["boolean"]]],"meta":{"line":82,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ratelimit","description":"Contains the rate limit queue and metadata","access":"private","type":[[["Object"]]],"meta":{"line":84,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"connection","description":"The WebSocket connection for the current shard","access":"private","nullable":true,"type":[[["WebSocket"]]],"meta":{"line":100,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"inflate","description":"The compression to use","access":"private","nullable":true,"type":[[["Inflate"]]],"meta":{"line":113,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"helloTimeout","description":"The HELLO timeout","access":"private","nullable":true,"type":[[["NodeJSTimeout"]]],"meta":{"line":121,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"eventsAttached","description":"If the manager attached its event handlers on the shard","access":"private","type":[[["boolean"]]],"meta":{"line":129,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"expectedGuilds","description":"A set of guild ids this shard expects to receive","access":"private","nullable":true,"type":[[["Set","<"],["string",">"]]],"meta":{"line":137,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"readyTimeout","description":"The ready timeout","access":"private","nullable":true,"type":[[["NodeJSTimeout"]]],"meta":{"line":145,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"connectedAt","description":"Time when the WebSocket connection was opened","access":"private","type":[[["number"]]],"meta":{"line":153,"file":"WebSocketShard.js","path":"src/client/websocket"}}],"methods":[{"name":"debug","description":"Emits a debug event.","access":"private","params":[{"name":"message","description":"The debug message","type":[[["string"]]]}],"meta":{"line":167,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"connect","description":"Connects the shard to the gateway.","access":"private","returns":{"types":[[["Promise","<"],["void",">"]]],"description":"A promise that will resolve if the shard turns ready successfully,\nor reject if we couldn't connect"},"meta":{"line":177,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onOpen","description":"Called whenever a connection is opened to the gateway.","access":"private","meta":{"line":268,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onMessage","description":"Called whenever a message is received.","access":"private","params":[{"name":"event","description":"Event received","type":[[["MessageEvent"]]]}],"meta":{"line":278,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onError","description":"Called whenever an error occurs with the WebSocket.","access":"private","params":[{"name":"event","description":"The error that occurred","type":[[["ErrorEvent"]]]}],"meta":{"line":309,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onClose","description":"Called whenever a connection to the gateway is closed.","access":"private","params":[{"name":"event","description":"Close event that was received","type":[[["CloseEvent"]]]}],"meta":{"line":342,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onPacket","description":"Called whenever a packet is received.","access":"private","params":[{"name":"packet","description":"The received packet","type":[[["Object"]]]}],"meta":{"line":372,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"checkReady","description":"Checks if the shard can be marked as ready","access":"private","meta":{"line":456,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"setHelloTimeout","description":"Sets the HELLO packet timeout.","access":"private","params":[{"name":"time","description":"If set to -1, it will clear the hello timeout","optional":true,"type":[[["number"]]]}],"meta":{"line":510,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"setHeartbeatTimer","description":"Sets the heartbeat timer for this shard.","access":"private","params":[{"name":"time","description":"If -1, clears the interval, any other number sets an interval","type":[[["number"]]]}],"meta":{"line":531,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"sendHeartbeat","description":"Sends a heartbeat to the WebSocket.\nIf this shard didn't receive a heartbeat last time, it will destroy it and reconnect","access":"private","params":[{"name":"tag","description":"What caused this heartbeat to be sent","optional":true,"default":"'HeartbeatTimer'","type":[[["string"]]]},{"name":"ignoreHeartbeatAck","description":"If we should send the heartbeat forcefully.","optional":true,"type":[[["boolean"]]]}],"meta":{"line":553,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ackHeartbeat","description":"Acknowledges a heartbeat.","access":"private","meta":{"line":581,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"identify","description":"Identifies the client on the connection.","access":"private","returns":[[["void"]]],"meta":{"line":593,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"identifyNew","description":"Identifies as a new connection on the gateway.","access":"private","meta":{"line":601,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"identifyResume","description":"Resumes a session on the gateway.","access":"private","meta":{"line":633,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"send","description":"Adds a packet to the queue to be sent to the gateway.\nIf you use this method, make sure you understand that you need to provide\na full [Payload](https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-commands).\nDo not use this method if you don't know what you're doing.","params":[{"name":"data","description":"The full packet to send","type":[[["Object"]]]},{"name":"important","description":"If this packet should be added first in queue","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":661,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"_send","description":"Sends data, bypassing the queue.","access":"private","params":[{"name":"data","description":"Packet to send","type":[[["Object"]]]}],"returns":[[["void"]]],"meta":{"line":672,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"processQueue","description":"Processes the current WebSocket queue.","access":"private","returns":[[["void"]]],"meta":{"line":689,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"destroy","description":"Destroys this shard and closes its WebSocket connection.","access":"private","params":[{"name":"options","description":"Options for destroying the shard","optional":true,"default":"{ closeCode: 1000, reset: false, emit: true, log: true }","type":[[["Object"]]]}],"meta":{"line":711,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"_cleanupConnection","description":"Cleans up the WebSocket connection listeners.","access":"private","meta":{"line":775,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"_emitDestroyed","description":"Emits the DESTROYED event on the shard","access":"private","meta":{"line":783,"file":"WebSocketShard.js","path":"src/client/websocket"}}],"events":[{"name":"close","description":"Emitted when a shard's WebSocket closes.","params":[{"name":"event","description":"The received event","type":[[["CloseEvent"]]]}],"meta":{"line":358,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ready","description":"Emitted when the shard receives the READY payload and is now waiting for guilds","meta":{"line":380,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"resumed","description":"Emitted when the shard resumes successfully","meta":{"line":394,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"allReady","description":"Emitted when the shard is fully ready.\nThis event is emitted if:\n* all guilds were received by this shard\n* the ready timeout expired, and some guilds are unavailable","params":[{"name":"unavailableGuilds","description":"Set of unavailable guilds, if any","nullable":true,"type":[[["Set","<"],["string",">"]]]}],"meta":{"line":467,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"destroyed","description":"Emitted when a shard is destroyed, but no WebSocket connection was present.","meta":{"line":784,"file":"WebSocketShard.js","path":"src/client/websocket"}}],"meta":{"line":21,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ApplicationCommandManager","description":"Manages API methods for application commands and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"permissions","description":"The manager for permissions of arbitrary commands on arbitrary guilds","type":[[["ApplicationCommandPermissionsManager"]]],"meta":{"line":22,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["ApplicationCommand",">"]]],"meta":{"line":26,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"commandPath","description":"The APIRouter path to the commands","access":"private","params":[{"name":"options.id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options.guildId","description":"The guild's id to use in the path,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"returns":[[["Object"]]],"meta":{"line":44,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or multiple application commands from Discord, or the cache if it's already available.","examples":["// Fetch a single command\nclient.application.commands.fetch('123456789012345678')\n .then(command => console.log(`Fetched command ${command.name}`))\n .catch(console.error);","// Fetch all commands\nguild.commands.fetch()\n .then(commands => console.log(`Fetched ${commands.size} commands`))\n .catch(console.error);"],"params":[{"name":"id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["FetchApplicationCommandOptions"]]]}],"async":true,"returns":[[["Promise","<("],["ApplicationCommand","|"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">)>"]]],"meta":{"line":86,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"create","description":"Creates an application command.","examples":["// Create a new command\nclient.application.commands.create({\n name: 'test',\n description: 'A test command',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id to create this command in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":119,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"set","description":"Sets all the commands for this application or guild.","examples":["// Set all commands to just this one\nclient.application.commands.set([\n {\n name: 'test',\n description: 'A test command',\n },\n])\n .then(console.log)\n .catch(console.error);","// Remove all commands\nguild.commands.set([])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"commands","description":"The commands","type":[[["Array","<"],["ApplicationCommandData",">"]],[["Array","<"],["APIApplicationCommand",">"]]]},{"name":"guildId","description":"The guild's id to create the commands in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">>"]]],"meta":{"line":149,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"edit","description":"Edits an application command.","examples":["// Edit an existing command\nclient.application.commands.edit('123456789012345678', {\n description: 'New description',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to edit","type":[[["ApplicationCommandResolvable"]]]},{"name":"data","description":"The data to update the command with","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id where the command registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":172,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an application command.","examples":["// Delete a command\nguild.commands.delete('123456789012345678')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to delete","type":[[["ApplicationCommandResolvable"]]]},{"name":"guildId","description":"The guild's id where the command is registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise",""],["ApplicationCommand",">"]]],"meta":{"line":195,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}},{"name":"transformCommand","description":"Transforms an {@link ApplicationCommandData} object into something that can be used with the API.","scope":"static","access":"private","params":[{"name":"command","description":"The command to transform","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]}],"returns":[[["APIApplicationCommand"]]],"meta":{"line":213,"file":"ApplicationCommandManager.js","path":"src/managers"}}],"meta":{"line":14,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"ApplicationCommandPermissionsManager","description":"Manages API methods for permissions of Application Commands.","extends":[[["BaseManager"]]],"props":[{"name":"manager","description":"The manager or command that this manager belongs to","access":"private","type":[[["ApplicationCommandManager"]],[["ApplicationCommand"]]],"meta":{"line":21,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"guild","description":"The guild that this manager acts on","nullable":true,"type":[[["Guild"]]],"meta":{"line":27,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"guildId","description":"The id of the guild that this manager acts on","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":33,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"commandId","description":"The id of the command this manager acts on","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":39,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"permissionsPath","description":"The APIRouter path to the commands","access":"private","params":[{"name":"guildId","description":"The guild's id to use in the path,","type":[[["Snowflake"]]]},{"name":"commandId","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]}],"returns":[[["Object"]]],"meta":{"line":51,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches the permissions for one or multiple commands.","examples":["// Fetch permissions for one command\nguild.commands.permissions.fetch({ command: '123456789012345678' })\n .then(perms => console.log(`Fetched permissions for ${perms.length} users`))\n .catch(console.error);","// Fetch permissions for all commands in a guild\nclient.application.commands.permissions.fetch({ guild: '123456789012345678' })\n .then(perms => console.log(`Fetched permissions for ${perms.size} commands`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to fetch permissions","optional":true,"type":[[["BaseApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Array","<"],["ApplicationCommandPermissions",">|"],["Collection","<"],["Snowflake",", "],["Array","<"],["ApplicationCommandPermissions",">>)>"]]],"meta":{"line":100,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"set","description":"Sets the permissions for one or more commands.","examples":["// Set the permissions for one command\nclient.application.commands.permissions.set({ guild: '892455839386304532', command: '123456789012345678',\n permissions: [\n {\n id: '876543210987654321',\n type: 'USER',\n permission: false,\n },\n]})\n .then(console.log)\n .catch(console.error);","// Set the permissions for all commands\nguild.commands.permissions.set({ fullPermissions: [\n {\n id: '123456789012345678',\n permissions: [{\n id: '876543210987654321',\n type: 'USER',\n permission: false,\n }],\n },\n]})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to set permissions","type":[[["SetApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Array","<"],["ApplicationCommandPermissions",">|"],["Collection","<"],["Snowflake",", "],["Array","<"],["ApplicationCommandPermissions",">>)>"]]],"meta":{"line":166,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"add","description":"Add permissions to a command.","examples":["// Block a role from the command permissions\nguild.commands.permissions.add({ command: '123456789012345678', permissions: [\n {\n id: '876543211234567890',\n type: 'ROLE',\n permission: false\n },\n]})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to add permissions","type":[[["AddApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationCommandPermissions",">>"]]],"meta":{"line":228,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"remove","description":"Remove permissions from a command.","examples":["// Remove a user permission from this command\nguild.commands.permissions.remove({ command: '123456789012345678', users: '876543210123456789' })\n .then(console.log)\n .catch(console.error);","// Remove multiple roles from this command\nguild.commands.permissions.remove({\n command: '123456789012345678', roles: ['876543210123456789', '765432101234567890']\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to remove permissions","type":[[["RemoveApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationCommandPermissions",">>"]]],"meta":{"line":280,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"has","description":"Check whether a permission exists for a user or role","examples":["// Check whether a user has permission to use a command\nguild.commands.permissions.has({ command: '123456789012345678', permissionId: '876543210123456789' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to check permissions","type":[[["AddApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":356,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"transformPermissions","description":"Transforms an {@link ApplicationCommandPermissionData} object into something that can be used with the API.","scope":"static","access":"private","params":[{"name":"permissions","description":"The permissions to transform","type":[[["ApplicationCommandPermissionData"]]]},{"name":"received","description":"Whether these permissions have been received from Discord","optional":true,"type":[[["boolean"]]]}],"returns":[[["APIApplicationCommandPermissions"]]],"meta":{"line":407,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"BaseGuildEmojiManager","description":"Holds methods to resolve GuildEmojis and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of GuildEmojis","type":[[["Collection","<"],["Snowflake",", "],["GuildEmoji",">"]]],"meta":{"line":17,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves an EmojiResolvable to an Emoji object.","params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["GuildEmoji"]]],"nullable":true},"meta":{"line":36,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves an EmojiResolvable to an Emoji id string.","params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":46,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveIdentifier","description":"Resolves an EmojiResolvable to an emoji identifier.","params":[{"name":"emoji","description":"The emoji resolvable to resolve","type":[[["EmojiIdentifierResolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":64,"file":"BaseGuildEmojiManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"BaseManager","description":"Manages the API methods of a data model.","abstract":true,"props":[{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"meta":{"line":7,"file":"BaseManager.js","path":"src/managers"}},{"name":"BlockedManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":18,"file":"BlockedManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link UserResolvable} to a {@link User} object.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["User"]]],"nullable":true},"meta":{"line":39,"file":"BlockedManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"BlockedManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":63,"file":"BlockedManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"BlockedManager.js","path":"src/managers"}},{"name":"CachedManager","description":"Manages the API methods of a data model with a mutable cache of instances.","extends":[[["DataManager"]]],"abstract":true,"props":[{"name":"cache","description":"The cache of items for this manager.","abstract":true,"type":[[["Collection"]]],"meta":{"line":42,"file":"CachedManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"CachedManager.js","path":"src/managers"}},{"name":"ChannelManager","description":"A manager of channels belonging to a client","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of Channels","type":[[["Collection","<"],["Snowflake",", "],["Channel",">"]]],"meta":{"line":32,"file":"ChannelManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a ChannelResolvable to a Channel object.","params":[{"name":"channel","description":"The channel resolvable to resolve","type":[[["ChannelResolvable"]]]}],"returns":{"types":[[["Channel"]]],"nullable":true},"meta":{"line":75,"file":"ChannelManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a ChannelResolvable to a channel id string.","params":[{"name":"channel","description":"The channel resolvable to resolve","type":[[["ChannelResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":84,"file":"ChannelManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a channel from Discord, or the channel cache if it's already available.","examples":["// Fetch a channel by its id\nclient.channels.fetch('222109930545610754')\n .then(channel => console.log(channel.name))\n .catch(console.error);"],"params":[{"name":"id","description":"The channel's id","type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["FetchChannelOptions"]]]}],"async":true,"returns":[[["Promise",""],["Channel",">"]]],"meta":{"line":111,"file":"ChannelManager.js","path":"src/managers"}},{"name":"createGroupDM","description":"Create Group DM","params":[{"name":"recipients","description":"Array of recipients","type":[[["Array","<"],["DiscordUser",">"]]]}],"async":true,"returns":{"types":[[["PartialGroupDMChannel"]]],"description":"Channel"},"meta":{"line":128,"file":"ChannelManager.js","path":"src/managers"}}],"meta":{"line":16,"file":"ChannelManager.js","path":"src/managers"}},{"name":"ClientUserSettingManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of items for this manager.","abstract":true,"type":[[["Collection"]]],"meta":{"line":42,"file":"CachedManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"_patch","description":"Patch data file\nhttps://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/discum/user/user.py","access":"private","params":[{"name":"data","description":"Raw Data to patch","type":[[["Object"]]]}],"meta":{"line":70,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"edit","description":"Edit data","access":"private","params":[{"name":"data","description":"Data to edit","type":[[["Object"]]]}],"async":true,"meta":{"line":166,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setDisplayCompactMode","description":"Set compact mode","params":[{"name":"value","description":"Compact mode enable or disable","type":[[["boolean"]],[["null"]]]}],"async":true,"returns":[[["boolean"]]],"meta":{"line":177,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setTheme","description":"Discord Theme","params":[{"name":"value","description":"Theme to set","type":[[["null"]],[["dark"]],[["light"]]]}],"async":true,"returns":[[["theme"]]],"meta":{"line":192,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setCustomStatus","description":"Set custom status (Setting)","params":[{"name":"options","description":"Object | null","type":[[["CustomStatusOption"]]]}],"meta":{"line":220,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setLocale","description":"* Locale Setting, must be one of:\n* `DANISH`\n* `GERMAN`\n* `ENGLISH_UK`\n* `ENGLISH_US`\n* `SPANISH`\n* `FRENCH`\n* `CROATIAN`\n* `ITALIAN`\n* `LITHUANIAN`\n* `HUNGARIAN`\n* `DUTCH`\n* `NORWEGIAN`\n* `POLISH`\n* `BRAZILIAN_PORTUGUESE`\n* `ROMANIA_ROMANIAN`\n* `FINNISH`\n* `SWEDISH`\n* `VIETNAMESE`\n* `TURKISH`\n* `CZECH`\n* `GREEK`\n* `BULGARIAN`\n* `RUSSIAN`\n* `UKRAINIAN`\n* `HINDI`\n* `THAI`\n* `CHINA_CHINESE`\n* `JAPANESE`\n* `TAIWAN_CHINESE`\n* `KOREAN`","params":[{"name":"value","description":"Locale to set","type":[[["string"]]]}],"async":true,"returns":[[["locale"]]],"meta":{"line":290,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"_move","access":"private","params":[{"name":"array","description":"Array","type":[[["Array"]]]},{"name":"from","description":"Index1","type":[[["number"]]]},{"name":"to","description":"Index2","type":[[["number"]]]}],"returns":[[["Array"]]],"meta":{"line":310,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"guildChangePosition","description":"Change Guild Position (from * to Folder or Home)","access":"private","params":[{"name":"guildId","description":"guild.id","type":[[["GuildIDResolve"]]]},{"name":"newPosition","description":"Guild Position\n* **WARNING**: Type = `FOLDER`, newPosition is the guild's index in the Folder.","type":[[["number"]]]},{"name":"type","description":"Move to folder or home\n* `FOLDER`: 1\n* `HOME`: 2","type":[[["number"]]]},{"name":"folderId","description":"If you want to move to folder","type":[[["FolderID"]]]}],"meta":{"line":330,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"restrictedGuilds","description":"Restricted guilds setting","params":[{"name":"status","description":"Restricted status","type":[[["boolean"]]]}],"returns":[[["Promise"]]],"meta":{"line":376,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"addRestrictedGuild","description":"Add a guild to the list of restricted guilds.","params":[{"name":"guildId","description":"The guild to add","type":[[["GuildIDResolve"]]]}],"returns":[[["Promise"]]],"meta":{"line":390,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"removeRestrictedGuild","description":"Remove a guild from the list of restricted guilds.","params":[{"name":"guildId","description":"The guild to remove","type":[[["GuildIDResolve"]]]}],"returns":[[["Promise"]]],"meta":{"line":405,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"DataManager","description":"Manages the API methods of a data model along with a collection of instances.","extends":[[["BaseManager"]]],"abstract":true,"props":[{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of items for this manager.","abstract":true,"type":[[["Collection"]]],"meta":{"line":30,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a data entry to a data Object.","params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"DataManager.js","path":"src/managers"}},{"name":"FriendsManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":18,"file":"FriendsManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link UserResolvable} to a {@link User} object.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["User"]]],"nullable":true},"meta":{"line":39,"file":"FriendsManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"FriendsManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":63,"file":"FriendsManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"FriendsManager.js","path":"src/managers"}},{"name":"GuildApplicationCommandManager","description":"An extension for guild-specific application commands.","extends":[[["ApplicationCommandManager"]]],"props":[{"name":"guild","description":"The guild that this manager belongs to","type":[[["Guild"]]],"meta":{"line":18,"file":"GuildApplicationCommandManager.js","path":"src/managers"}},{"name":"permissions","description":"The manager for permissions of arbitrary commands on this guild","type":[[["ApplicationCommandPermissionsManager"]]],"meta":{"line":24,"file":"GuildApplicationCommandManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["ApplicationCommand",">"]]],"meta":{"line":26,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"commandPath","description":"The APIRouter path to the commands","access":"private","inherits":"ApplicationCommandManager#commandPath","inherited":true,"params":[{"name":"options.id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options.guildId","description":"The guild's id to use in the path,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"returns":[[["Object"]]],"meta":{"line":44,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or multiple application commands from Discord, or the cache if it's already available.","inherits":"ApplicationCommandManager#fetch","inherited":true,"examples":["// Fetch a single command\nclient.application.commands.fetch('123456789012345678')\n .then(command => console.log(`Fetched command ${command.name}`))\n .catch(console.error);","// Fetch all commands\nguild.commands.fetch()\n .then(commands => console.log(`Fetched ${commands.size} commands`))\n .catch(console.error);"],"params":[{"name":"id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["FetchApplicationCommandOptions"]]]}],"async":true,"returns":[[["Promise","<("],["ApplicationCommand","|"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">)>"]]],"meta":{"line":86,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"create","description":"Creates an application command.","inherits":"ApplicationCommandManager#create","inherited":true,"examples":["// Create a new command\nclient.application.commands.create({\n name: 'test',\n description: 'A test command',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id to create this command in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":119,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"set","description":"Sets all the commands for this application or guild.","inherits":"ApplicationCommandManager#set","inherited":true,"examples":["// Set all commands to just this one\nclient.application.commands.set([\n {\n name: 'test',\n description: 'A test command',\n },\n])\n .then(console.log)\n .catch(console.error);","// Remove all commands\nguild.commands.set([])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"commands","description":"The commands","type":[[["Array","<"],["ApplicationCommandData",">"]],[["Array","<"],["APIApplicationCommand",">"]]]},{"name":"guildId","description":"The guild's id to create the commands in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">>"]]],"meta":{"line":149,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"edit","description":"Edits an application command.","inherits":"ApplicationCommandManager#edit","inherited":true,"examples":["// Edit an existing command\nclient.application.commands.edit('123456789012345678', {\n description: 'New description',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to edit","type":[[["ApplicationCommandResolvable"]]]},{"name":"data","description":"The data to update the command with","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id where the command registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":172,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an application command.","inherits":"ApplicationCommandManager#delete","inherited":true,"examples":["// Delete a command\nguild.commands.delete('123456789012345678')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to delete","type":[[["ApplicationCommandResolvable"]]]},{"name":"guildId","description":"The guild's id where the command is registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise",""],["ApplicationCommand",">"]]],"meta":{"line":195,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"GuildApplicationCommandManager.js","path":"src/managers"}},{"name":"GuildBanManager","description":"Manages API methods for GuildBans and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this Manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["GuildBan",">"]]],"meta":{"line":24,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a GuildBanResolvable to a GuildBan object.","params":[{"name":"ban","description":"The ban that is in the guild","type":[[["GuildBanResolvable"]]]}],"returns":{"types":[[["GuildBan"]]],"nullable":true},"meta":{"line":46,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches ban(s) from Discord.","examples":["// Fetch all bans from a guild\nguild.bans.fetch()\n .then(console.log)\n .catch(console.error);","// Fetch all bans from a guild without caching\nguild.bans.fetch({ cache: false })\n .then(console.log)\n .catch(console.error);","// Fetch a single ban\nguild.bans.fetch('351871113346809860')\n .then(console.log)\n .catch(console.error);","// Fetch a single ban without checking cache\nguild.bans.fetch({ user, force: true })\n .then(console.log)\n .catch(console.error)","// Fetch a single ban without caching\nguild.bans.fetch({ user, cache: false })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for fetching guild ban(s)","optional":true,"type":[[["UserResolvable"]],[["FetchBanOptions"]],[["FetchBansOptions"]]]}],"returns":[[["Promise","<("],["GuildBan","|"],["Collection","<"],["Snowflake",", "],["GuildBan",">)>"]]],"meta":{"line":92,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"create","description":"Bans a user from the guild.","examples":["// Ban a user by id (or with a user/guild member object)\nguild.bans.create('84484653687267328')\n .then(banInfo => console.log(`Banned ${banInfo.user?.tag ?? banInfo.tag ?? banInfo}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to ban","type":[[["UserResolvable"]]]},{"name":"options","description":"Options for the ban","optional":true,"type":[[["BanOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["GuildMember","|"],["User","|"],["Snowflake",")>"]]],"description":"Result object will be resolved as specifically as possible.\nIf the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot\nbe resolved, the user id will be the result."},"meta":{"line":139,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"remove","description":"Unbans a user from the guild.","examples":["// Unban a user by id (or with a user/guild member object)\nguild.bans.remove('84484653687267328')\n .then(user => console.log(`Unbanned ${user.username} from ${guild.name}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to unban","type":[[["UserResolvable"]]]},{"name":"reason","description":"Reason for unbanning user","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise",""],["User",">"]]],"meta":{"line":169,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"GuildChannelManager","description":"Manages API methods for GuildChannels and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this Manager belongs to","type":[[["Guild"]]],"meta":{"line":39,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"channelCountWithoutThreads","description":"The number of channels in this managers cache excluding thread channels\nthat do not count towards a guild's maximum channels restriction.","readonly":true,"type":[[["number"]]],"meta":{"line":48,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", ("],["GuildChannel","|"],["ThreadChannel",")>"]]],"meta":{"line":55,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a GuildChannelResolvable to a Channel object.","params":[{"name":"channel","description":"The GuildChannel resolvable to resolve","type":[[["GuildChannelResolvable"]]]}],"returns":{"types":[[["GuildChannel"]],[["ThreadChannel"]]],"nullable":true},"meta":{"line":81,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a GuildChannelResolvable to a channel id.","params":[{"name":"channel","description":"The GuildChannel resolvable to resolve","type":[[["GuildChannelResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":91,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"create","description":"Creates a new channel in the guild.","examples":["// Create a new text channel\nguild.channels.create('new-general', { reason: 'Needed a cool new channel' })\n .then(console.log)\n .catch(console.error);","// Create a new channel with permission overwrites\nguild.channels.create('new-voice', {\n type: 'GUILD_VOICE',\n permissionOverwrites: [\n {\n id: message.author.id,\n deny: [Permissions.FLAGS.VIEW_CHANNEL],\n },\n ],\n})"],"params":[{"name":"name","description":"The name of the new channel","type":[[["string"]]]},{"name":"options","description":"Options for creating the new channel","optional":true,"default":"{}","type":[[["GuildChannelCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":124,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more guild channels from Discord, or the channel cache if they're already available.","examples":["// Fetch all channels from the guild (excluding threads)\nmessage.guild.channels.fetch()\n .then(channels => console.log(`There are ${channels.size} channels.`))\n .catch(console.error);","// Fetch a single channel\nmessage.guild.channels.fetch('222197033908436994')\n .then(channel => console.log(`The channel name is: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The channel's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<(?"],["GuildChannel","|"],["Collection","<"],["Snowflake",", "],["GuildChannel",">)>"]]],"meta":{"line":188,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"setPositions","description":"Batch-updates the guild's channels' positions.\nOnly one channel's parent can be changed at a time","examples":["guild.channels.setPositions([{ channel: channelId, position: newChannelIndex }])\n .then(guild => console.log(`Updated channel positions for ${guild}`))\n .catch(console.error);"],"params":[{"name":"channelPositions","description":"Channel positions to update","type":[[["Array","<"],["ChannelPosition",">"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":217,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"fetchActiveThreads","description":"Obtains all active thread channels in the guild from Discord","examples":["// Fetch all threads from the guild\nmessage.guild.channels.fetchActiveThreads()\n .then(fetched => console.log(`There are ${fetched.threads.size} threads.`))\n .catch(console.error);"],"params":[{"name":"cache","description":"Whether to cache the fetched data","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["FetchedThreads",">"]]],"meta":{"line":242,"file":"GuildChannelManager.js","path":"src/managers"}}],"meta":{"line":20,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"GuildEmojiManager","description":"Manages API methods for GuildEmojis and stores their cache.","extends":[[["BaseGuildEmojiManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":20,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of GuildEmojis","type":[[["Collection","<"],["Snowflake",", "],["GuildEmoji",">"]]],"meta":{"line":17,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new custom emoji in the guild.","examples":["// Create a new emoji from a URL\nguild.emojis.create('https://i.imgur.com/w3duR07.png', 'rip')\n .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`))\n .catch(console.error);","// Create a new emoji from a file on your computer\nguild.emojis.create('./memes/banana.png', 'banana')\n .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`))\n .catch(console.error);"],"params":[{"name":"attachment","description":"The image for the emoji","type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"name","description":"The name for the emoji","type":[[["string"]]]},{"name":"options","description":"Options for creating the emoji","optional":true,"type":[[["GuildEmojiCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Emoji",">"]]],"description":"The created emoji"},"meta":{"line":51,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more emojis from Discord, or the emoji cache if they're already available.","examples":["// Fetch all emojis from the guild\nmessage.guild.emojis.fetch()\n .then(emojis => console.log(`There are ${emojis.size} emojis.`))\n .catch(console.error);","// Fetch a single emoji\nmessage.guild.emojis.fetch('222078108977594368')\n .then(emoji => console.log(`The emoji name is: ${emoji.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The emoji's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<("],["GuildEmoji","|"],["Collection","<"],["Snowflake",", "],["GuildEmoji",">)>"]]],"meta":{"line":88,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves an EmojiResolvable to an Emoji object.","inherits":"BaseGuildEmojiManager#resolve","inherited":true,"params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["GuildEmoji"]]],"nullable":true},"meta":{"line":36,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves an EmojiResolvable to an Emoji id string.","inherits":"BaseGuildEmojiManager#resolveId","inherited":true,"params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":46,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveIdentifier","description":"Resolves an EmojiResolvable to an emoji identifier.","inherits":"BaseGuildEmojiManager#resolveIdentifier","inherited":true,"params":[{"name":"emoji","description":"The emoji resolvable to resolve","type":[[["EmojiIdentifierResolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":64,"file":"BaseGuildEmojiManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"GuildEmojiRoleManager","description":"Manages API methods for roles belonging to emojis and stores their cache.","extends":[[["DataManager"]]],"props":[{"name":"emoji","description":"The emoji belonging to this manager","type":[[["GuildEmoji"]]],"meta":{"line":20,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"guild","description":"The guild belonging to this manager","type":[[["Guild"]]],"meta":{"line":25,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of roles belonging to this emoji","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":33,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"add","description":"Adds a role (or multiple roles) to the list of roles that can use this emoji.","params":[{"name":"roleOrRoles","description":"The role or roles to add","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":42,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"remove","description":"Removes a role (or multiple roles) from the list of roles that can use this emoji.","params":[{"name":"roleOrRoles","description":"The role or roles to remove","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":63,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"set","description":"Sets the role(s) that can use this emoji.","examples":["// Set the emoji's roles to a single role\nguildEmoji.roles.set(['391156570408615936'])\n .then(console.log)\n .catch(console.error);","// Remove all roles from an emoji\nguildEmoji.roles.set([])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"roles","description":"The roles or role ids to apply","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":94,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"_patch","description":"Patches the roles for this manager's cache","access":"private","params":[{"name":"roles","description":"The new roles","type":[[["Array","<"],["Snowflake",">"]]]}],"meta":{"line":109,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"GuildInviteManager","description":"Manages API methods for GuildInvites and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this Manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["string",", "],["Invite",">"]]],"meta":{"line":24,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves an InviteResolvable to an Invite object.","params":[{"name":"invite","description":"The invite resolvable to resolve","type":[[["InviteResolvable"]]]}],"returns":{"types":[[["Invite"]]],"nullable":true},"meta":{"line":53,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves an InviteResolvable to an invite code string.","params":[{"name":"invite","description":"The invite resolvable to resolve","type":[[["InviteResolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":62,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches invite(s) from Discord.","examples":["// Fetch all invites from a guild\nguild.invites.fetch()\n .then(console.log)\n .catch(console.error);","// Fetch all invites from a guild without caching\nguild.invites.fetch({ cache: false })\n .then(console.log)\n .catch(console.error);","// Fetch all invites from a channel\nguild.invites.fetch({ channelId: '222197033908436994' })\n .then(console.log)\n .catch(console.error);","// Fetch a single invite\nguild.invites.fetch('bRCvFy9')\n .then(console.log)\n .catch(console.error);","// Fetch a single invite without checking cache\nguild.invites.fetch({ code: 'bRCvFy9', force: true })\n .then(console.log)\n .catch(console.error)","// Fetch a single invite without caching\nguild.invites.fetch({ code: 'bRCvFy9', cache: false })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for fetching guild invite(s)","optional":true,"type":[[["InviteResolvable"]],[["FetchInviteOptions"]],[["FetchInvitesOptions"]]]}],"returns":[[["Promise","<("],["Invite","|"],["Collection","<"],["string",", "],["Invite",">)>"]]],"meta":{"line":122,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"create","description":"Create an invite to the guild from the provided channel.","examples":["// Create an invite to a selected channel\nguild.invites.create('599942732013764608')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"channel","description":"The options for creating the invite from a channel.","type":[[["GuildInvitableChannelResolvable"]]]},{"name":"options","description":"The options for creating the invite from a channel.","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":178,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an invite.","params":[{"name":"invite","description":"The invite to delete","type":[[["InviteResolvable"]]]},{"name":"reason","description":"Reason for deleting the invite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":206,"file":"GuildInviteManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"GuildManager","description":"Manages API methods for Guilds and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["Guild",">"]]],"meta":{"line":45,"file":"GuildManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a GuildResolvable to a Guild object.","params":[{"name":"guild","description":"The guild resolvable to identify","type":[[["GuildResolvable"]]]}],"returns":{"types":[[["Guild"]]],"nullable":true},"meta":{"line":102,"file":"GuildManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link GuildResolvable} to a {@link Guild} id string.","params":[{"name":"guild","description":"The guild resolvable to identify","type":[[["GuildResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":123,"file":"GuildManager.js","path":"src/managers"}},{"name":"create","description":"Creates a guild.\nThis is only available to bots in fewer than 10 guilds.","params":[{"name":"name","description":"The name of the guild","type":[[["string"]]]},{"name":"options","description":"Options for creating the guild","optional":true,"type":[[["GuildCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Guild",">"]]],"description":"The guild that was created"},"meta":{"line":168,"file":"GuildManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or multiple guilds from Discord, or the guild cache if it's already available.","params":[{"name":"options","description":"The guild's id or options","optional":true,"type":[[["GuildResolvable"]],[["FetchGuildOptions"]],[["FetchGuildsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Guild","|"],["Collection","<"],["Snowflake",", "],["OAuth2Guild",">)>"]]],"meta":{"line":279,"file":"GuildManager.js","path":"src/managers"}}],"meta":{"line":33,"file":"GuildManager.js","path":"src/managers"}},{"name":"GuildMemberManager","description":"Manages API methods for GuildMembers and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":26,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":29,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link GuildMemberResolvable} to a {@link GuildMember} object.","params":[{"name":"member","description":"The user that is part of the guild","type":[[["GuildMemberResolvable"]]]}],"returns":{"types":[[["GuildMember"]]],"nullable":true},"meta":{"line":51,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link GuildMemberResolvable} to a member id.","params":[{"name":"member","description":"The user that is part of the guild","type":[[["GuildMemberResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":64,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"add","description":"Adds a user to the guild using OAuth2. Requires the `CREATE_INSTANT_INVITE` permission.","params":[{"name":"user","description":"The user to add to the guild","type":[[["UserResolvable"]]]},{"name":"options","description":"Options for adding the user to the guild","type":[[["AddGuildMemberOptions"]]]}],"async":true,"returns":[[["Promise","<("],["GuildMember","|"],["null",")>"]]],"meta":{"line":91,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches member(s) from Discord, even if they're offline.","examples":["// Fetch all members from a guild\nguild.members.fetch()\n .then(console.log)\n .catch(console.error);","// Fetch a single member\nguild.members.fetch('66564597481480192')\n .then(console.log)\n .catch(console.error);","// Fetch a single member without checking cache\nguild.members.fetch({ user, force: true })\n .then(console.log)\n .catch(console.error)","// Fetch a single member without caching\nguild.members.fetch({ user, cache: false })\n .then(console.log)\n .catch(console.error);","// Fetch by an array of users including their presences\nguild.members.fetch({ user: ['66564597481480192', '191615925336670208'], withPresences: true })\n .then(console.log)\n .catch(console.error);","// Fetch by query\nguild.members.fetch({ query: 'hydra', limit: 1 })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"If a UserResolvable, the user to fetch.\nIf undefined, fetches all members.\nIf a query, it limits the results to users with similar usernames.","optional":true,"type":[[["UserResolvable"]],[["FetchMemberOptions"]],[["FetchMembersOptions"]]]}],"returns":[[["Promise","<("],["GuildMember","|"],["Collection","<"],["Snowflake",", "],["GuildMember",">)>"]]],"meta":{"line":176,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"search","description":"Searches for members in the guild based on a query.","params":[{"name":"options","description":"Options for searching members","type":[[["GuildSearchMembersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildMember",">>"]]],"meta":{"line":205,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"list","description":"Lists up to 1000 members of the guild.","params":[{"name":"options","description":"Options for listing members","optional":true,"type":[[["GuildListMembersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildMember",">>"]]],"meta":{"line":223,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a member of the guild.\nThe user must be a member of the guild","params":[{"name":"user","description":"The member to edit","type":[[["UserResolvable"]]]},{"name":"data","description":"The data to edit the member with","type":[[["GuildMemberEditData"]]]},{"name":"reason","description":"Reason for editing this user","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":249,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"prune","description":"Prunes members from the guild based on how long they have been inactive.","examples":["// See how many members will be pruned\nguild.members.prune({ dry: true })\n .then(pruned => console.log(`This will prune ${pruned} people!`))\n .catch(console.error);","// Actually prune the members\nguild.members.prune({ days: 1, reason: 'too many people!' })\n .then(pruned => console.log(`I just pruned ${pruned} people!`))\n .catch(console.error);","// Include members with a specified role\nguild.members.prune({ days: 7, roles: ['657259391652855808'] })\n .then(pruned => console.log(`I just pruned ${pruned} people!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options for pruning","optional":true,"type":[[["GuildPruneMembersOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["number","|"],["null",")>"]]],"description":"The number of members that were/will be kicked"},"meta":{"line":318,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"kick","description":"Kicks a user from the guild.\nThe user must be a member of the guild","examples":["// Kick a user by id (or with a user/guild member object)\nguild.members.kick('84484653687267328')\n .then(banInfo => console.log(`Kicked ${banInfo.user?.tag ?? banInfo.tag ?? banInfo}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The member to kick","type":[[["UserResolvable"]]]},{"name":"reason","description":"Reason for kicking","optional":true,"type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["GuildMember","|"],["User","|"],["Snowflake",")>"]]],"description":"Result object will be resolved as specifically as possible.\nIf the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot\nbe resolved, the user's id will be the result."},"meta":{"line":359,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"ban","description":"Bans a user from the guild.","examples":["// Ban a user by id (or with a user/guild member object)\nguild.members.ban('84484653687267328')\n .then(kickInfo => console.log(`Banned ${kickInfo.user?.tag ?? kickInfo.tag ?? kickInfo}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to ban","type":[[["UserResolvable"]]]},{"name":"options","description":"Options for the ban","optional":true,"type":[[["BanOptions"]]]}],"returns":{"types":[[["Promise","<("],["GuildMember","|"],["User","|"],["Snowflake",")>"]]],"description":"Result object will be resolved as specifically as possible.\nIf the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot\nbe resolved, the user id will be the result.\nInternally calls the GuildBanManager#create method."},"meta":{"line":382,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"unban","description":"Unbans a user from the guild. Internally calls the {@link GuildBanManager#remove} method.","examples":["// Unban a user by id (or with a user/guild member object)\nguild.members.unban('84484653687267328')\n .then(user => console.log(`Unbanned ${user.username} from ${guild.name}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to unban","type":[[["UserResolvable"]]]},{"name":"reason","description":"Reason for unbanning user","optional":true,"type":[[["string"]]]}],"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"The user that was unbanned"},"meta":{"line":397,"file":"GuildMemberManager.js","path":"src/managers"}}],"meta":{"line":18,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildMemberRoleManager","description":"Manages API methods for roles of a GuildMember and stores their cache.","extends":[[["DataManager"]]],"props":[{"name":"member","description":"The GuildMember this manager belongs to","type":[[["GuildMember"]]],"meta":{"line":20,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"guild","description":"The Guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":26,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"cache","description":"The roles of this member","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":34,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"hoist","description":"The role of the member used to hoist them in a separate category in the users list","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":44,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"icon","description":"The role of the member used to set their role icon","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":55,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"color","description":"The role of the member used to set their color","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":66,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"highest","description":"The role of the member with the highest position","readonly":true,"type":[[["Role"]]],"meta":{"line":77,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"premiumSubscriberRole","description":"The premium subscriber role of the guild, if present on the member","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":86,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"botRole","description":"The managed role this member created when joining the guild, if any\nOnly ever available on bots","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":96,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"add","description":"Adds a role (or multiple roles) to the member.","params":[{"name":"roleOrRoles","description":"The role or roles to add","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]},{"name":"reason","description":"Reason for adding the role(s)","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":107,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"remove","description":"Removes a role (or multiple roles) from the member.","params":[{"name":"roleOrRoles","description":"The role or roles to remove","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]},{"name":"reason","description":"Reason for removing the role(s)","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":138,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"set","description":"Sets the roles applied to the member.","examples":["// Set the member's roles to a single role\nguildMember.roles.set(['391156570408615936'])\n .then(console.log)\n .catch(console.error);","// Remove all the roles from a member\nguildMember.roles.set([])\n .then(member => console.log(`Member roles is now of ${member.roles.cache.size} size`))\n .catch(console.error);"],"params":[{"name":"roles","description":"The roles or role ids to apply","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"reason","description":"Reason for applying the roles","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":180,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"GuildScheduledEventManager","description":"Manages API methods for GuildScheduledEvents and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["GuildScheduledEvent",">"]]],"meta":{"line":24,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new guild scheduled event.","params":[{"name":"options","description":"Options for creating the guild scheduled event","type":[[["GuildScheduledEventCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":67,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more guild scheduled events from Discord, or the guild cache if it's already available.","params":[{"name":"options","description":"The id of the guild scheduled event or options","optional":true,"type":[[["GuildScheduledEventResolvable"]],[["FetchGuildScheduledEventOptions"]],[["FetchGuildScheduledEventsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["GuildScheduledEvent","|"],["Collection","<"],["Snowflake",", "],["GuildScheduledEvent",">)>"]]],"meta":{"line":132,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a guild scheduled event.","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event to edit","type":[[["GuildScheduledEventResolvable"]]]},{"name":"options","description":"Options to edit the guild scheduled event","type":[[["GuildScheduledEventEditOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":184,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a guild scheduled event.","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event to delete","type":[[["GuildScheduledEventResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"fetchSubscribers","description":"Fetches subscribers of a guild scheduled event.","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event to fetch subscribers of","type":[[["GuildScheduledEventResolvable"]]]},{"name":"options","description":"Options for fetching the subscribers","optional":true,"default":"{}","type":[[["FetchGuildScheduledEventSubscribersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildScheduledEventUser",">>"]]],"meta":{"line":267,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildStickerManager","description":"Manages API methods for Guild Stickers and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of Guild Stickers","type":[[["Collection","<"],["Snowflake",", "],["Sticker",">"]]],"meta":{"line":24,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new custom sticker in the guild.","examples":["// Create a new sticker from a URL\nguild.stickers.create('https://i.imgur.com/w3duR07.png', 'rip', 'headstone')\n .then(sticker => console.log(`Created new sticker with name ${sticker.name}!`))\n .catch(console.error);","// Create a new sticker from a file on your computer\nguild.stickers.create('./memes/banana.png', 'banana', 'banana')\n .then(sticker => console.log(`Created new sticker with name ${sticker.name}!`))\n .catch(console.error);"],"params":[{"name":"file","description":"The file for the sticker","type":[[["BufferResolvable"]],[["Stream"]],[["FileOptions"]],[["MessageAttachment"]]]},{"name":"name","description":"The name for the sticker","type":[[["string"]]]},{"name":"tags","description":"The Discord name of a unicode emoji representing the sticker's expression","type":[[["string"]]]},{"name":"options","description":"Options","optional":true,"type":[[["GuildStickerCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Sticker",">"]]],"description":"The created sticker"},"meta":{"line":59,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a StickerResolvable to a Sticker object.","params":[{"name":"sticker","description":"The Sticker resolvable to identify","type":[[["StickerResolvable"]]]}],"returns":{"types":[[["Sticker"]]],"nullable":true},"meta":{"line":79,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a StickerResolvable to a Sticker id string.","params":[{"name":"sticker","description":"The Sticker resolvable to identify","type":[[["StickerResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":88,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a sticker.","params":[{"name":"sticker","description":"The sticker to edit","type":[[["StickerResolvable"]]]},{"name":"data","description":"The new data for the sticker","optional":true,"type":[[["GuildStickerEditData"]]]},{"name":"reason","description":"Reason for editing this sticker","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":104,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a sticker.","params":[{"name":"sticker","description":"The sticker to delete","type":[[["StickerResolvable"]]]},{"name":"reason","description":"Reason for deleting this sticker","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":128,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more stickers from Discord, or the sticker cache if they're already available.","examples":["// Fetch all stickers from the guild\nmessage.guild.stickers.fetch()\n .then(stickers => console.log(`There are ${stickers.size} stickers.`))\n .catch(console.error);","// Fetch a single sticker\nmessage.guild.stickers.fetch('222078108977594368')\n .then(sticker => console.log(`The sticker name is: ${sticker.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The Sticker's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Sticker","|"],["Collection","<"],["Snowflake",", "],["Sticker",">)>"]]],"meta":{"line":151,"file":"GuildStickerManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"MessageManager","description":"Manages API methods for Messages and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"channel","description":"The channel that the messages belong to","type":[[["TextBasedChannels"]]],"meta":{"line":23,"file":"MessageManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of Messages","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]]],"meta":{"line":26,"file":"MessageManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"fetch","description":"Gets a message, or messages, from this channel.\nThe returned Collection does not contain reaction users of the messages if they were not cached.\nThose need to be fetched separately in such a case.","examples":["// Get message\nchannel.messages.fetch('99539446449315840')\n .then(message => console.log(message.content))\n .catch(console.error);","// Get messages\nchannel.messages.fetch({ limit: 10 })\n .then(messages => console.log(`Received ${messages.size} messages`))\n .catch(console.error);","// Get messages and filter by user id\nchannel.messages.fetch()\n .then(messages => console.log(`${messages.filter(m => m.author.id === '84484653687267328').size} messages`))\n .catch(console.error);"],"params":[{"name":"message","description":"The id of the message to fetch, or query parameters.","optional":true,"type":[[["Snowflake"]],[["ChannelLogsQueryOptions"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["Collection","<"],["Snowflake",", "],["Message",">)>"]]],"meta":{"line":69,"file":"MessageManager.js","path":"src/managers"}},{"name":"fetchPinned","description":"Fetches the pinned messages of this channel and returns a collection of them.\nThe returned Collection does not contain any reaction data of the messages.\nThose need to be fetched separately.","examples":["// Get pinned messages\nchannel.messages.fetchPinned()\n .then(messages => console.log(`Received ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"cache","description":"Whether to cache the message(s)","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":85,"file":"MessageManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a {@link MessageResolvable} to a {@link Message} object.","params":[{"name":"message","description":"The message resolvable to resolve","type":[[["MessageResolvable"]]]}],"returns":{"types":[[["Message"]]],"nullable":true},"meta":{"line":99,"file":"MessageManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link MessageResolvable} to a {@link Message} id.","params":[{"name":"message","description":"The message resolvable to resolve","type":[[["MessageResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":108,"file":"MessageManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a message, even if it's not cached.","params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]]]},{"name":"options","description":"The options to edit the message","type":[[["string"]],[["MessageEditOptions"]],[["MessagePayload"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":123,"file":"MessageManager.js","path":"src/managers"}},{"name":"crosspost","description":"Publishes a message in an announcement channel to all channels following it, even if it's not cached.","params":[{"name":"message","description":"The message to publish","type":[[["MessageResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":150,"file":"MessageManager.js","path":"src/managers"}},{"name":"pin","description":"Pins a message to the channel's pinned messages, even if it's not cached.","params":[{"name":"message","description":"The message to pin","type":[[["MessageResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":163,"file":"MessageManager.js","path":"src/managers"}},{"name":"unpin","description":"Unpins a message from the channel's pinned messages, even if it's not cached.","params":[{"name":"message","description":"The message to unpin","type":[[["MessageResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":175,"file":"MessageManager.js","path":"src/managers"}},{"name":"react","description":"Adds a reaction to a message, even if it's not cached.","params":[{"name":"message","description":"The message to react to","type":[[["MessageResolvable"]]]},{"name":"emoji","description":"The emoji to react with","type":[[["EmojiIdentifierResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":188,"file":"MessageManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a message, even if it's not cached.","params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":208,"file":"MessageManager.js","path":"src/managers"}}],"meta":{"line":15,"file":"MessageManager.js","path":"src/managers"}},{"name":"PermissionOverwriteManager","description":"Manages API methods for guild channel permission overwrites and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"channel","description":"The channel of the permission overwrite this manager belongs to","type":[[["GuildChannel"]]],"meta":{"line":32,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["PermissionOverwrites",">"]]],"meta":{"line":41,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"set","description":"Replaces the permission overwrites in this channel.","examples":["message.channel.permissionOverwrites.set([\n {\n id: message.author.id,\n deny: [Permissions.FLAGS.VIEW_CHANNEL],\n },\n], 'Needed to change permissions');"],"params":[{"name":"overwrites","description":"Permission overwrites the channel gets updated with","type":[[["Array","<"],["OverwriteResolvable",">"]],[["Collection","<"],["Snowflake",", "],["OverwriteResolvable",">"]]]},{"name":"reason","description":"Reason for updating the channel overwrites","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":65,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"upsert","description":"Creates or edits permission overwrites for a user or role in this channel.","access":"private","params":[{"name":"userOrRole","description":"The user or role to update","type":[[["RoleResolvable"]],[["UserResolvable"]]]},{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"overwriteOptions","description":"The extra information for the update","optional":true,"type":[[["GuildChannelOverwriteOptions"]]]},{"name":"existing","description":"The existing overwrites to merge with this update","optional":true,"type":[[["PermissionOverwrites"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":91,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"create","description":"Creates permission overwrites for a user or role in this channel, or replaces them if already present.","examples":["// Create or Replace permission overwrites for a message author\nmessage.channel.permissionOverwrites.create(message.author, {\n SEND_MESSAGES: false\n})\n .then(channel => console.log(channel.permissionOverwrites.cache.get(message.author.id)))\n .catch(console.error);"],"params":[{"name":"userOrRole","description":"The user or role to update","type":[[["RoleResolvable"]],[["UserResolvable"]]]},{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"overwriteOptions","description":"The extra information for the update","optional":true,"type":[[["GuildChannelOverwriteOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":126,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"edit","description":"Edits permission overwrites for a user or role in this channel, or creates an entry if not already present.","examples":["// Edit or Create permission overwrites for a message author\nmessage.channel.permissionOverwrites.edit(message.author, {\n SEND_MESSAGES: false\n})\n .then(channel => console.log(channel.permissionOverwrites.cache.get(message.author.id)))\n .catch(console.error);"],"params":[{"name":"userOrRole","description":"The user or role to update","type":[[["RoleResolvable"]],[["UserResolvable"]]]},{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"overwriteOptions","description":"The extra information for the update","optional":true,"type":[[["GuildChannelOverwriteOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":144,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes permission overwrites for a user or role in this channel.","params":[{"name":"userOrRole","description":"The user or role to delete","type":[[["UserResolvable"]],[["RoleResolvable"]]]},{"name":"reason","description":"The reason for deleting the overwrite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":156,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":17,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"PresenceManager","description":"Manages API methods for Presences and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of Presences","type":[[["Collection","<"],["Snowflake",", "],["Presence",">"]]],"meta":{"line":15,"file":"PresenceManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link PresenceResolvable} to a {@link Presence} object.","params":[{"name":"presence","description":"The presence resolvable to resolve","type":[[["PresenceResolvable"]]]}],"returns":{"types":[[["Presence"]]],"nullable":true},"meta":{"line":38,"file":"PresenceManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link PresenceResolvable} to a {@link Presence} id.","params":[{"name":"presence","description":"The presence resolvable to resolve","type":[[["PresenceResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"PresenceManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"PresenceManager.js","path":"src/managers"}},{"name":"ReactionManager","description":"Manages API methods for reactions and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"message","description":"The message that this manager belongs to","type":[[["Message"]]],"meta":{"line":18,"file":"ReactionManager.js","path":"src/managers"}},{"name":"cache","description":"The reaction cache of this manager","type":[[["Collection","<("],["string","|"],["Snowflake","), "],["MessageReaction",">"]]],"meta":{"line":25,"file":"ReactionManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link MessageReactionResolvable} to a {@link MessageReaction} object.","params":[{"name":"reaction","description":"The MessageReaction to resolve","type":[[["MessageReactionResolvable"]]]}],"returns":{"types":[[["MessageReaction"]]],"nullable":true},"meta":{"line":38,"file":"ReactionManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link MessageReactionResolvable} to a {@link MessageReaction} id.","params":[{"name":"reaction","description":"The MessageReaction to resolve","type":[[["MessageReactionResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":47,"file":"ReactionManager.js","path":"src/managers"}},{"name":"removeAll","description":"Removes all reactions from a message.","async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":60,"file":"ReactionManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"ReactionManager.js","path":"src/managers"}},{"name":"ReactionUserManager","description":"Manages API methods for users who reacted to a reaction and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"reaction","description":"The reaction that this manager belongs to","type":[[["MessageReaction"]]],"meta":{"line":19,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["DiscordUser",">"]]],"meta":{"line":22,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"fetch","description":"Fetches all the users that gave this reaction. Resolves with a collection of users, mapped by their ids.","params":[{"name":"options","description":"Options for fetching the users","optional":true,"type":[[["FetchReactionUsersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["DiscordUser",">>"]]],"meta":{"line":40,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"remove","description":"Removes a user from this reaction.","params":[{"name":"user","description":"The user to remove the reaction of","optional":true,"default":"this.client.user","type":[[["UserResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":59,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"RelationshipsManager","description":"Manages API methods for Relationships and stores their cache.","methods":[{"name":"_setup","access":"private","params":[{"name":"users","description":"An array of users to add to the cache","type":[[["Array","<"],["User",">"]]]}],"returns":[[["void"]]],"meta":{"line":25,"file":"RelationshipsManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":37,"file":"RelationshipsManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":51,"file":"RelationshipsManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"RelationshipsManager.js","path":"src/managers"}},{"name":"RoleManager","description":"Manages API methods for roles and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild belonging to this manager","type":[[["Guild"]]],"meta":{"line":33,"file":"RoleManager.js","path":"src/managers"}},{"name":"cache","description":"The role cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":36,"file":"RoleManager.js","path":"src/managers"}},{"name":"everyone","description":"The `@everyone` role of the guild","readonly":true,"type":[[["Role"]]],"meta":{"line":301,"file":"RoleManager.js","path":"src/managers"}},{"name":"premiumSubscriberRole","description":"The premium subscriber role of the guild, if any","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":310,"file":"RoleManager.js","path":"src/managers"}},{"name":"highest","description":"The role with the highest position in the cache","readonly":true,"type":[[["Role"]]],"meta":{"line":319,"file":"RoleManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"fetch","description":"Obtains a role from Discord, or the role cache if they're already available.","examples":["// Fetch all roles from the guild\nmessage.guild.roles.fetch()\n .then(roles => console.log(`There are ${roles.size} roles.`))\n .catch(console.error);","// Fetch a single role\nmessage.guild.roles.fetch('222078108977594368')\n .then(role => console.log(`The role color is: ${role.color}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The role's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<(?"],["Role","|"],["Collection","<"],["Snowflake",", "],["Role",">)>"]]],"meta":{"line":62,"file":"RoleManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a {@link RoleResolvable} to a {@link Role} object.","params":[{"name":"role","description":"The role resolvable to resolve","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["Role"]]],"nullable":true},"meta":{"line":82,"file":"RoleManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link RoleResolvable} to a {@link Role} id.","params":[{"name":"role","description":"The role resolvable to resolve","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":91,"file":"RoleManager.js","path":"src/managers"}},{"name":"create","description":"Creates a new role in the guild with given information.\nThe position will silently reset to 1 if an invalid one is provided, or none.","examples":["// Create a new role\nguild.roles.create()\n .then(console.log)\n .catch(console.error);","// Create a new role with data and a reason\nguild.roles.create({\n name: 'Super Cool Blue People',\n color: 'BLUE',\n reason: 'we needed a role for Super Cool People',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for creating the new role","optional":true,"type":[[["CreateRoleOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":136,"file":"RoleManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a role of the guild.","examples":["// Edit a role\nguild.roles.edit('222079219327434752', { name: 'buddies' })\n .then(updated => console.log(`Edited role name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"role","description":"The role to edit","type":[[["RoleResolvable"]]]},{"name":"data","description":"The new data for the role","type":[[["RoleData"]]]},{"name":"reason","description":"Reason for editing this role","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":178,"file":"RoleManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a role.","examples":["// Delete a role\nguild.roles.delete('222079219327434752', 'The role needed to go')\n .then(deleted => console.log(`Deleted role ${deleted.name}`))\n .catch(console.error);"],"params":[{"name":"role","description":"The role to delete","type":[[["RoleResolvable"]]]},{"name":"reason","description":"Reason for deleting the role","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":233,"file":"RoleManager.js","path":"src/managers"}},{"name":"setPositions","description":"Batch-updates the guild's role positions","examples":["guild.roles.setPositions([{ role: roleId, position: updatedRoleIndex }])\n .then(guild => console.log(`Role positions updated for ${guild}`))\n .catch(console.error);"],"params":[{"name":"rolePositions","description":"Role positions to update","type":[[["Array","<"],["GuildRolePosition",">"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":248,"file":"RoleManager.js","path":"src/managers"}},{"name":"comparePositions","description":"Compares the positions of two roles.","params":[{"name":"role1","description":"First role to compare","type":[[["RoleResolvable"]]]},{"name":"role2","description":"Second role to compare","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["number"]]],"description":"Negative number if the first role's position is lower (second role's is higher),\npositive number if the first's is higher (second's is lower), 0 if equal"},"meta":{"line":272,"file":"RoleManager.js","path":"src/managers"}},{"name":"botRoleFor","description":"Gets the managed role a user created when joining the guild, if any\nOnly ever available for bots","params":[{"name":"user","description":"The user to access the bot role for","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Role"]]],"nullable":true},"meta":{"line":290,"file":"RoleManager.js","path":"src/managers"}}],"meta":{"line":18,"file":"RoleManager.js","path":"src/managers"}},{"name":"StageInstanceManager","description":"Manages API methods for {@link StageInstance} objects and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":20,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["StageInstance",">"]]],"meta":{"line":23,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new stage instance.","examples":["// Create a stage instance\nguild.stageInstances.create('1234567890123456789', {\n topic: 'A very creative topic',\n privacyLevel: 'GUILD_ONLY'\n})\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"params":[{"name":"channel","description":"The stage channel to associate the created stage instance to","type":[[["StageChannelResolvable"]]]},{"name":"options","description":"The options to create the stage instance","type":[[["StageInstanceCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":57,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches the stage instance associated with a stage channel, if it exists.","examples":["// Fetch a stage instance\nguild.stageInstances.fetch('1234567890123456789')\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"params":[{"name":"channel","description":"The stage channel whose associated stage instance is to be fetched","type":[[["StageChannelResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":87,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"edit","description":"Edits an existing stage instance.","examples":["// Edit a stage instance\nguild.stageInstances.edit('1234567890123456789', { topic: 'new topic' })\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"params":[{"name":"channel","description":"The stage channel whose associated stage instance is to be edited","type":[[["StageChannelResolvable"]]]},{"name":"options","description":"The options to edit the stage instance","type":[[["StageInstanceEditOptions"]]]}],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":118,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an existing stage instance.","params":[{"name":"channel","description":"The stage channel whose associated stage instance is to be deleted","type":[[["StageChannelResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":148,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"ThreadManager","description":"Manages API methods for {@link ThreadChannel} objects and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"channel","description":"The channel this Manager belongs to","type":[[["NewsChannel"]],[["TextChannel"]]],"meta":{"line":21,"file":"ThreadManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["ThreadChannel",">"]]],"meta":{"line":24,"file":"ThreadManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link ThreadChannelResolvable} to a {@link ThreadChannel} object.","params":[{"name":"thread","description":"The ThreadChannel resolvable to resolve","type":[[["ThreadChannelResolvable"]]]}],"returns":{"types":[[["ThreadChannel"]]],"nullable":true},"meta":{"line":44,"file":"ThreadManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link ThreadChannelResolvable} to a {@link ThreadChannel} id.","params":[{"name":"thread","description":"The ThreadChannel resolvable to resolve","type":[[["ThreadChannelResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":53,"file":"ThreadManager.js","path":"src/managers"}},{"name":"create","description":"Creates a new thread in the channel.","examples":["// Create a new public thread\nchannel.threads\n .create({\n name: 'food-talk',\n autoArchiveDuration: 60,\n reason: 'Needed a separate thread for food',\n })\n .then(threadChannel => console.log(threadChannel))\n .catch(console.error);","// Create a new private thread\nchannel.threads\n .create({\n name: 'mod-talk',\n autoArchiveDuration: 60,\n type: 'GUILD_PRIVATE_THREAD',\n reason: 'Needed a separate thread for moderation',\n })\n .then(threadChannel => console.log(threadChannel))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to create a new thread","optional":true,"type":[[["ThreadCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":101,"file":"ThreadManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a thread from Discord, or the channel cache if it's already available.","examples":["// Fetch a thread by its id\nchannel.threads.fetch('831955138126104859')\n .then(channel => console.log(channel.name))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to fetch threads. If it is a\nThreadChannelResolvable then the specified thread will be fetched. Fetches all active threads if `undefined`","optional":true,"type":[[["ThreadChannelResolvable"]],[["FetchThreadsOptions"]]]},{"name":"cacheOptions","description":"Additional options for this fetch. The `force` field gets ignored\nif `options` is not a {@link ThreadChannelResolvable}","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","("],["ThreadChannel","|"],["FetchedThreads",")>"]]],"meta":{"line":166,"file":"ThreadManager.js","path":"src/managers"}},{"name":"fetchArchived","description":"Obtains a set of archived threads from Discord, requires `READ_MESSAGE_HISTORY` in the parent channel.","params":[{"name":"options","description":"The options to fetch archived threads","optional":true,"type":[[["FetchArchivedThreadOptions"]]]},{"name":"cache","description":"Whether to cache the new thread objects if they aren't already","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["FetchedThreads",">"]]],"meta":{"line":208,"file":"ThreadManager.js","path":"src/managers"}},{"name":"fetchActive","description":"Obtains the accessible active threads from Discord, requires `READ_MESSAGE_HISTORY` in the parent channel.","params":[{"name":"cache","description":"Whether to cache the new thread objects if they aren't already","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["FetchedThreads",">"]]],"meta":{"line":238,"file":"ThreadManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"ThreadManager.js","path":"src/managers"}},{"name":"ThreadMemberManager","description":"Manages API methods for GuildMembers and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"thread","description":"The thread this manager belongs to","type":[[["ThreadChannel"]]],"meta":{"line":20,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["ThreadMember",">"]]],"meta":{"line":23,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link ThreadMemberResolvable} to a {@link ThreadMember} object.","params":[{"name":"member","description":"The user that is part of the thread","type":[[["ThreadMemberResolvable"]]]}],"returns":{"types":[[["GuildMember"]]],"nullable":true},"meta":{"line":51,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link ThreadMemberResolvable} to a {@link ThreadMember} id string.","params":[{"name":"member","description":"The user that is part of the guild","type":[[["ThreadMemberResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":64,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"add","description":"Adds a member to the thread.","params":[{"name":"member","description":"The member to add","type":[[["UserResolvable"]],[["me","'"]]]},{"name":"reason","description":"The reason for adding this member","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Snowflake",">"]]],"meta":{"line":77,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"remove","description":"Remove a user from the thread.","params":[{"name":"id","description":"The id of the member to remove","type":[[["Snowflake"]],[["me","'"]]]},{"name":"reason","description":"The reason for removing this member from the thread","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Snowflake",">"]]],"meta":{"line":90,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent.","params":[{"name":"member","description":"The member to fetch. If `undefined`, all members\nin the thread are fetched, and will be cached based on `options.cache`. If boolean, this serves\nthe purpose of `options.cache`.","optional":true,"type":[[["UserResolvable"]],[["boolean"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<("],["ThreadMember","|"],["Collection","<"],["Snowflake",", "],["ThreadMember",">)>"]]],"meta":{"line":118,"file":"ThreadMemberManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"UserManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":18,"file":"UserManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"dmChannel","description":"The DM between the client's user and a user","access":"private","params":[{"name":"userId","description":"The user id","type":[[["Snowflake"]]]}],"returns":{"types":[[["DMChannel"]]],"nullable":true},"meta":{"line":40,"file":"UserManager.js","path":"src/managers"}},{"name":"createDM","description":"Creates a {@link DMChannel} between the client and a user.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":50,"file":"UserManager.js","path":"src/managers"}},{"name":"deleteDM","description":"Deletes a {@link DMChannel} (if one exists) between the client and a user. Resolves with the channel if successful.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":71,"file":"UserManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":86,"file":"UserManager.js","path":"src/managers"}},{"name":"fetchFlags","description":"Fetches a user's flags.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["UserFlags",">"]]],"meta":{"line":106,"file":"UserManager.js","path":"src/managers"}},{"name":"send","description":"Sends a message to a user.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":116,"file":"UserManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a {@link UserResolvable} to a {@link User} object.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["User"]]],"nullable":true},"meta":{"line":125,"file":"UserManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":136,"file":"UserManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"UserManager.js","path":"src/managers"}},{"name":"VoiceStateManager","description":"Manages API methods for VoiceStates and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":18,"file":"VoiceStateManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["VoiceState",">"]]],"meta":{"line":21,"file":"VoiceStateManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"VoiceStateManager.js","path":"src/managers"}},{"name":"DiscordAPIError","description":"Represents an error from the Discord API.","extends":[[["Error"]]],"props":[{"name":"method","description":"The HTTP method used for the request","type":[[["string"]]],"meta":{"line":18,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":24,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"code","description":"HTTP error code returned by Discord","type":[[["number"]]],"meta":{"line":30,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"httpStatus","description":"The HTTP status code","type":[[["number"]]],"meta":{"line":36,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"requestData","description":"The data associated with the request that caused this error","type":[[["HTTPErrorData"]]],"meta":{"line":42,"file":"DiscordAPIError.js","path":"src/rest"}}],"methods":[{"name":"flattenErrors","description":"Flattens an errors object returned from the API into an array.","scope":"static","access":"private","params":[{"name":"obj","description":"Discord errors object","type":[[["APIError"]]]},{"name":"key","description":"Used internally to determine key names of nested fields","optional":true,"type":[[["string"]]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":55,"file":"DiscordAPIError.js","path":"src/rest"}}],"meta":{"line":7,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"HTTPError","description":"Represents an HTTP error from a request.","extends":[[["Error"]]],"props":[{"name":"name","description":"The name of the error","type":[[["string"]]],"meta":{"line":15,"file":"HTTPError.js","path":"src/rest"}},{"name":"code","description":"HTTP error code returned from the request","type":[[["number"]]],"meta":{"line":21,"file":"HTTPError.js","path":"src/rest"}},{"name":"method","description":"The HTTP method used for the request","type":[[["string"]]],"meta":{"line":27,"file":"HTTPError.js","path":"src/rest"}},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":33,"file":"HTTPError.js","path":"src/rest"}},{"name":"requestData","description":"The data associated with the request that caused this error","type":[[["HTTPErrorData"]]],"meta":{"line":54,"file":"HTTPError.js","path":"src/rest"}}],"meta":{"line":7,"file":"HTTPError.js","path":"src/rest"}},{"name":"RateLimitError","description":"Represents a RateLimit error from a request.","extends":[[["Error"]]],"props":[{"name":"name","description":"The name of the error","type":[[["string"]]],"meta":{"line":15,"file":"RateLimitError.js","path":"src/rest"}},{"name":"timeout","description":"Time until this rate limit ends, in ms","type":[[["number"]]],"meta":{"line":21,"file":"RateLimitError.js","path":"src/rest"}},{"name":"method","description":"The HTTP method used for the request","type":[[["string"]]],"meta":{"line":27,"file":"RateLimitError.js","path":"src/rest"}},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":33,"file":"RateLimitError.js","path":"src/rest"}},{"name":"route","description":"The route of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":39,"file":"RateLimitError.js","path":"src/rest"}},{"name":"global","description":"Whether this rate limit is global","type":[[["boolean"]]],"meta":{"line":45,"file":"RateLimitError.js","path":"src/rest"}},{"name":"limit","description":"The maximum amount of requests of this endpoint","type":[[["number"]]],"meta":{"line":51,"file":"RateLimitError.js","path":"src/rest"}}],"meta":{"line":7,"file":"RateLimitError.js","path":"src/rest"}},{"name":"Shard","description":"A self-contained shard created by the {@link ShardingManager}. Each one has a {@link ChildProcess} that contains\nan instance of the bot and its {@link Client}. When its child process/worker exits for any reason, the shard will\nspawn a new one to replace it as necessary.","extends":[[["EventEmitter"]]],"props":[{"name":"manager","description":"Manager that created the shard","type":[[["ShardingManager"]]],"meta":{"line":30,"file":"Shard.js","path":"src/sharding"}},{"name":"id","description":"The shard's id in the manager","type":[[["number"]]],"meta":{"line":36,"file":"Shard.js","path":"src/sharding"}},{"name":"args","description":"Arguments for the shard's process (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":42,"file":"Shard.js","path":"src/sharding"}},{"name":"execArgv","description":"Arguments for the shard's process executable (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":48,"file":"Shard.js","path":"src/sharding"}},{"name":"env","description":"Environment variables for the shard's process, or workerData for the shard's worker","type":[[["Object"]]],"meta":{"line":54,"file":"Shard.js","path":"src/sharding"}},{"name":"ready","description":"Whether the shard's {@link Client} is ready","type":[[["boolean"]]],"meta":{"line":65,"file":"Shard.js","path":"src/sharding"}},{"name":"process","description":"Process of the shard (if {@link ShardingManager#mode} is `process`)","nullable":true,"type":[[["ChildProcess"]]],"meta":{"line":71,"file":"Shard.js","path":"src/sharding"}},{"name":"worker","description":"Worker of the shard (if {@link ShardingManager#mode} is `worker`)","nullable":true,"type":[[["Worker"]]],"meta":{"line":77,"file":"Shard.js","path":"src/sharding"}},{"name":"_evals","description":"Ongoing promises for calls to {@link Shard#eval}, mapped by the `script` they were called with","access":"private","type":[[["Map","<"],["string",", "],["Promise",">"]]],"meta":{"line":84,"file":"Shard.js","path":"src/sharding"}},{"name":"_fetches","description":"Ongoing promises for calls to {@link Shard#fetchClientValue}, mapped by the `prop` they were called with","access":"private","type":[[["Map","<"],["string",", "],["Promise",">"]]],"meta":{"line":91,"file":"Shard.js","path":"src/sharding"}},{"name":"_exitListener","description":"Listener function for the {@link ChildProcess}' `exit` event","access":"private","type":[[["function"]]],"meta":{"line":98,"file":"Shard.js","path":"src/sharding"}}],"methods":[{"name":"spawn","description":"Forks a child process or creates a worker thread for the shard.\nYou should not need to call this manually.","params":[{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client} has become ready\nbefore resolving (`-1` or `Infinity` for no wait)","optional":true,"default":30000,"type":[[["number"]]]}],"returns":[[["Promise","<"],["ChildProcess",">"]]],"meta":{"line":108,"file":"Shard.js","path":"src/sharding"}},{"name":"kill","description":"Immediately kills the shard's process/worker and does not restart it.","meta":{"line":179,"file":"Shard.js","path":"src/sharding"}},{"name":"respawn","description":"Kills and restarts the shard's process/worker.","params":[{"name":"options","description":"Options for respawning the shard","optional":true,"type":[[["ShardRespawnOptions"]]]}],"async":true,"returns":[[["Promise","<"],["ChildProcess",">"]]],"meta":{"line":205,"file":"Shard.js","path":"src/sharding"}},{"name":"send","description":"Sends a message to the shard's process/worker.","params":[{"name":"message","description":"Message to send to the shard","type":[["*"]]}],"returns":[[["Promise","<"],["Shard",">"]]],"meta":{"line":216,"file":"Shard.js","path":"src/sharding"}},{"name":"fetchClientValue","description":"Fetches a client property value of the shard.","examples":["shard.fetchClientValue('guilds.cache.size')\n .then(count => console.log(`${count} guilds in shard ${shard.id}`))\n .catch(console.error);"],"params":[{"name":"prop","description":"Name of the client property to get, using periods for nesting","type":[[["string"]]]}],"returns":[[["Promise","<"],["*",">"]]],"meta":{"line":239,"file":"Shard.js","path":"src/sharding"}},{"name":"eval","description":"Evaluates a script or function on the shard, in the context of the {@link Client}.","params":[{"name":"script","description":"JavaScript to run on the shard","type":[[["string"]],[["function"]]]},{"name":"context","description":"The context for the eval","optional":true,"type":[["*"]]}],"returns":{"types":[[["Promise","<"],["*",">"]]],"description":"Result of the script execution"},"meta":{"line":275,"file":"Shard.js","path":"src/sharding"}},{"name":"_handleMessage","description":"Handles a message received from the child process/worker.","access":"private","params":[{"name":"message","description":"Message received","type":[["*"]]}],"meta":{"line":313,"file":"Shard.js","path":"src/sharding"}},{"name":"_handleExit","description":"Handles the shard's process/worker exiting.","access":"private","params":[{"name":"respawn","description":"Whether to spawn the shard again","optional":true,"default":"this.manager.respawn","type":[[["boolean"]]]},{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client}\nhas become ready (`-1` or `Infinity` for no wait)","optional":true,"type":[[["number"]]]}],"meta":{"line":393,"file":"Shard.js","path":"src/sharding"}}],"events":[{"name":"spawn","description":"Emitted upon the creation of the shard's child process/worker.","params":[{"name":"process","description":"Child process/worker that was created","type":[[["ChildProcess"]],[["Worker"]]]}],"meta":{"line":133,"file":"Shard.js","path":"src/sharding"}},{"name":"ready","description":"Emitted upon the shard's {@link Client#event:shardReady} event.","meta":{"line":318,"file":"Shard.js","path":"src/sharding"}},{"name":"disconnect","description":"Emitted upon the shard's {@link Client#event:shardDisconnect} event.","meta":{"line":329,"file":"Shard.js","path":"src/sharding"}},{"name":"reconnecting","description":"Emitted upon the shard's {@link Client#event:shardReconnecting} event.","meta":{"line":340,"file":"Shard.js","path":"src/sharding"}},{"name":"message","description":"Emitted upon receiving a message from the child process/worker.","params":[{"name":"message","description":"Message that was received","type":[["*"]]}],"meta":{"line":378,"file":"Shard.js","path":"src/sharding"}},{"name":"death","description":"Emitted upon the shard's child process/worker exiting.","params":[{"name":"process","description":"Child process/worker that exited","type":[[["ChildProcess"]],[["Worker"]]]}],"meta":{"line":394,"file":"Shard.js","path":"src/sharding"}}],"meta":{"line":19,"file":"Shard.js","path":"src/sharding"}},{"name":"ShardClientUtil","description":"Helper class for sharded clients spawned as a child process/worker, such as from a {@link ShardingManager}.\nUtilises IPC to send and receive data to/from the master process and other shards.","props":[{"name":"client","description":"Client for the shard","type":[[["Client"]]],"meta":{"line":18,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"mode","description":"Mode the shard was spawned with","type":[[["ShardingManagerMode"]]],"meta":{"line":24,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"parentPort","description":"Message port for the master process (only when {@link ShardClientUtil#mode} is `worker`)","nullable":true,"type":[[["MessagePort"]]],"meta":{"line":30,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"ids","description":"Array of shard ids of this client","readonly":true,"type":[[["Array","<"],["number",">"]]],"meta":{"line":63,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"count","description":"Total number of shards","readonly":true,"type":[[["number"]]],"meta":{"line":72,"file":"ShardClientUtil.js","path":"src/sharding"}}],"methods":[{"name":"send","description":"Sends a message to the master process.","emits":["Shard#event:message"],"params":[{"name":"message","description":"Message to send","type":[["*"]]}],"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":82,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"fetchClientValues","description":"Fetches a client property value of each shard, or a given shard.","see":["{@link ShardingManager#fetchClientValues}"],"examples":["client.shard.fetchClientValues('guilds.cache.size')\n .then(results => console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`))\n .catch(console.error);"],"params":[{"name":"prop","description":"Name of the client property to get, using periods for nesting","type":[[["string"]]]},{"name":"shard","description":"Shard to fetch property from, all if undefined","optional":true,"type":[[["number"]]]}],"returns":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"meta":{"line":107,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"broadcastEval","description":"Evaluates a script or function on all shards, or a given shard, in the context of the {@link Client}s.","see":["{@link ShardingManager#broadcastEval}"],"examples":["client.shard.broadcastEval(client => client.guilds.cache.size)\n .then(results => console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`))\n .catch(console.error);"],"params":[{"name":"script","description":"JavaScript to run on each shard","type":[[["function"]]]},{"name":"options","description":"The options for the broadcast","optional":true,"default":"{}","type":[[["BroadcastEvalOptions"]]]}],"returns":{"types":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"description":"Results of the script execution"},"meta":{"line":137,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"respawnAll","description":"Requests a respawn of all shards.","see":["{@link ShardingManager#respawnAll}"],"params":[{"name":"options","description":"Options for respawning shards","optional":true,"type":[[["MultipleShardRespawnOptions"]]]}],"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the message being sent"},"meta":{"line":167,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"_handleMessage","description":"Handles an IPC message.","access":"private","params":[{"name":"message","description":"Message received","type":[["*"]]}],"async":true,"meta":{"line":176,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"_respond","description":"Sends a message to the master process, emitting an error from the client upon failure.","access":"private","params":[{"name":"type","description":"Type of response to send","type":[[["string"]]]},{"name":"message","description":"Message to send","type":[["*"]]}],"meta":{"line":202,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"singleton","description":"Creates/gets the singleton of this class.","scope":"static","params":[{"name":"client","description":"The client to use","type":[[["Client"]]]},{"name":"mode","description":"Mode the shard was spawned with","type":[[["ShardingManagerMode"]]]}],"returns":[[["ShardClientUtil"]]],"meta":{"line":221,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"shardIdForGuildId","description":"Get the shard id for a given guild id.","scope":"static","params":[{"name":"guildId","description":"Snowflake guild id to get shard id for","type":[[["Snowflake"]]]},{"name":"shardCount","description":"Number of shards","type":[[["number"]]]}],"returns":[[["number"]]],"meta":{"line":239,"file":"ShardClientUtil.js","path":"src/sharding"}}],"meta":{"line":12,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"ShardingManager","description":"This is a utility class that makes multi-process sharding of a bot an easy and painless experience.\nIt works by spawning a self-contained {@link ChildProcess} or {@link Worker} for each individual shard, each\ncontaining its own instance of your bot's {@link Client}. They all have a line of communication with the master\nprocess, and there are several useful methods that utilise it in order to simplify tasks that are normally difficult\nwith sharding. It can spawn a specific number of shards or the amount that Discord suggests for the bot, and takes a\npath to your main bot script to launch for each one.","extends":[[["EventEmitter"]]],"construct":{"name":"ShardingManager","params":[{"name":"file","description":"Path to your shard script file","type":[[["string"]]]},{"name":"options","description":"Options for the sharding manager","optional":true,"type":[[["ShardingManagerOptions"]]]}]},"props":[{"name":"file","description":"Path to the shard script file","type":[[["string"]]],"meta":{"line":66,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"shardList","description":"List of shards this sharding manager spawns","type":[[["string"]],[["Array","<"],["number",">"]]],"meta":{"line":76,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"totalShards","description":"Amount of shards that all sharding managers spawn in total","type":[[["number"]]],"meta":{"line":96,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"mode","description":"Mode for shards to spawn with","type":[[["ShardingManagerMode"]]],"meta":{"line":111,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"respawn","description":"Whether shards should automatically respawn upon exiting","type":[[["boolean"]]],"meta":{"line":120,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"shardArgs","description":"An array of arguments to pass to shards (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":126,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"execArgv","description":"An array of arguments to pass to the executable (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":132,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"token","description":"Token to use for obtaining the automatic shard count, and passing to shards","nullable":true,"type":[[["string"]]],"meta":{"line":138,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"shards","description":"A collection of shards that this manager has spawned","type":[[["Collection","<"],["number",", "],["Shard",">"]]],"meta":{"line":144,"file":"ShardingManager.js","path":"src/sharding"}}],"methods":[{"name":"createShard","description":"Creates a single shard.\nUsing this method is usually not necessary if you use the spawn method.","params":[{"name":"id","description":"Id of the shard to create\nThis is usually not necessary to manually specify.","optional":true,"default":"this.shards.size","type":[[["number"]]]}],"returns":{"types":[[["Shard"]]],"description":"Note that the created shard needs to be explicitly spawned using its spawn method."},"meta":{"line":158,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"spawn","description":"Spawns multiple shards.","params":[{"name":"options","description":"Options for spawning shards","optional":true,"type":[[["MultipleShardSpawnOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["number",", "],["Shard",">>"]]],"meta":{"line":183,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"broadcast","description":"Sends a message to all shards.","params":[{"name":"message","description":"Message to be sent to the shards","type":[["*"]]}],"returns":[[["Promise","<"],["Array","<"],["Shard",">>"]]],"meta":{"line":231,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"broadcastEval","description":"Evaluates a script on all shards, or a given shard, in the context of the {@link Client}s.","params":[{"name":"script","description":"JavaScript to run on each shard","type":[[["function"]]]},{"name":"options","description":"The options for the broadcast","optional":true,"default":"{}","type":[[["BroadcastEvalOptions"]]]}],"returns":{"types":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"description":"Results of the script execution"},"meta":{"line":250,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"fetchClientValues","description":"Fetches a client property value of each shard, or a given shard.","examples":["manager.fetchClientValues('guilds.cache.size')\n .then(results => console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`))\n .catch(console.error);"],"params":[{"name":"prop","description":"Name of the client property to get, using periods for nesting","type":[[["string"]]]},{"name":"shard","description":"Shard to fetch property from, all if undefined","optional":true,"type":[[["number"]]]}],"returns":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"meta":{"line":265,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"_performOnShards","description":"Runs a method with given arguments on all shards, or a given shard.","access":"private","params":[{"name":"method","description":"Method name to run on each shard","type":[[["string"]]]},{"name":"args","description":"Arguments to pass through to the method call","type":[[["Array","<"],["*",">"]]]},{"name":"shard","description":"Shard to run on, all if undefined","optional":true,"type":[[["number"]]]}],"returns":{"types":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"description":"Results of the method execution"},"meta":{"line":277,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"respawnAll","description":"Kills all running shards and respawns them.","params":[{"name":"options","description":"Options for respawning shards","optional":true,"type":[[["MultipleShardRespawnOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["number",", "],["Shard",">>"]]],"meta":{"line":307,"file":"ShardingManager.js","path":"src/sharding"}}],"events":[{"name":"shardCreate","description":"Emitted upon creating a shard.","params":[{"name":"shard","description":"Shard that was created","type":[[["Shard"]]]}],"meta":{"line":161,"file":"ShardingManager.js","path":"src/sharding"}}],"meta":{"line":22,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"AnonymousGuild","description":"Bundles common attributes and methods between {@link Guild} and {@link InviteGuild}","extends":[[["BaseGuild"]]],"abstract":true,"props":[{"name":"splash","description":"The hash of the guild invite splash image","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"banner","description":"The hash of the guild banner","nullable":true,"type":[[["string"]]],"meta":{"line":33,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"description","description":"The description of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":41,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"verificationLevel","description":"The verification level of the guild","type":[[["VerificationLevel"]]],"meta":{"line":49,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"vanityURLCode","description":"The vanity invite code of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":57,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"nsfwLevel","description":"The NSFW level of this guild","type":[[["NSFWLevel"]]],"meta":{"line":65,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"bannerURL","description":"The URL to this guild's banner.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":74,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"splashURL","description":"The URL to this guild's invite splash image.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":11,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"ApplicationCommand","description":"Represents an application command.","extends":[[["Base"]]],"props":[{"name":"id","description":"The command's id","type":[[["Snowflake"]]],"meta":{"line":21,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"applicationId","description":"The parent application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"guild","description":"The guild this command is part of","nullable":true,"type":[[["Guild"]]],"meta":{"line":33,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"guildId","description":"The guild's id this command is part of, this may be non-null when `guild` is `null` if the command\nwas fetched from the `ApplicationCommandManager`","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":40,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"permissions","description":"The manager for permissions of this command on its guild or arbitrary guilds when the command is global","type":[[["ApplicationCommandPermissionsManager"]]],"meta":{"line":46,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"type","description":"The type of this application command","type":[[["ApplicationCommandType"]]],"meta":{"line":52,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"name","description":"The name of this command","type":[[["string"]]],"meta":{"line":65,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"description","description":"The description of this command","type":[[["string"]]],"meta":{"line":73,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"options","description":"The options of this command","type":[[["Array","<"],["ApplicationCommandOption",">"]]],"meta":{"line":81,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"defaultPermission","description":"Whether the command is enabled by default when the app is added to a guild","type":[[["boolean"]]],"meta":{"line":91,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"version","description":"Autoincrementing version identifier updated during substantial record changes","type":[[["Snowflake"]]],"meta":{"line":99,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the command was created at","readonly":true,"type":[[["number"]]],"meta":{"line":108,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"createdAt","description":"The time the command was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":117,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"manager","description":"The manager that this command belongs to","readonly":true,"type":[[["ApplicationCommandManager"]]],"meta":{"line":126,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits this application command.","examples":["// Edit the description of this command\ncommand.edit({\n description: 'New description',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The data to update the command with","type":[[["ApplicationCommandData"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":172,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setName","description":"Edits the name of this ApplicationCommand","params":[{"name":"name","description":"The new name of the command","type":[[["string"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":181,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setDescription","description":"Edits the description of this ApplicationCommand","params":[{"name":"description","description":"The new description of the command","type":[[["string"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":190,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setDefaultPermission","description":"Edits the default permission of this ApplicationCommand","params":[{"name":"defaultPermission","description":"The default permission for this command","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":199,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setOptions","description":"Edits the options of this ApplicationCommand","params":[{"name":"options","description":"The options to set for this command","type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":208,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"delete","description":"Deletes this command.","examples":["// Delete this command\ncommand.delete()\n .then(console.log)\n .catch(console.error);"],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":221,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"equals","description":"Whether this command equals another command. It compares all properties, so for most operations\nit is advisable to just compare `command.id === command2.id` as it is much faster and is often\nwhat most users need.","params":[{"name":"command","description":"The command to compare with","type":[[["ApplicationCommand"]],[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"enforceOptionOrder","description":"Whether to strictly check that options and choices are in the same\norder in the array The client may not always respect this ordering!","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":234,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"sendSlashCommand","description":"Send Slash command to channel","examples":["const botID = '12345678987654321'\nconst user = await client.users.fetch(botID);\nconst application = await user.applications.fetch();\nconst command = application.commands.first();\nawait command.sendSlashCommand(messsage, ['option1', 'option2']);"],"params":[{"name":"message","description":"Discord Message","type":[[["Message"]]]},{"name":"options","description":"The options to Slash Command","type":[[["Array","<"],["string",">"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":412,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"sendContextMenu","description":"Message Context Menu","examples":["const botID = '12345678987654321'\nconst user = await client.users.fetch(botID);\nconst application = await user.applications.fetch();\nconst command = application.commands.first();\nawait command.sendContextMenu(messsage);"],"params":[{"name":"message","description":"Discord Message","type":[[["Message"]]]},{"name":"sendFromMessage","description":"nothing .-. not used","default":false,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":545,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"optionsEqual","description":"Recursively checks that all options for an {@link ApplicationCommand} are equal to the provided options.\nIn most cases it is better to compare using {@link ApplicationCommand#equals}","scope":"static","params":[{"name":"existing","description":"The options on the existing command,\nshould be {@link ApplicationCommand#options}","type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]},{"name":"options","description":"The options to compare against","type":[[["Array","<"],["ApplicationCommandOptionData",">"]],[["Array","<"],["APIApplicationCommandOption",">"]]]},{"name":"enforceOptionOrder","description":"Whether to strictly check that options and choices are in the same\norder in the array The client may not always respect this ordering!","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":270,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"_optionEquals","description":"Checks that an option for an {@link ApplicationCommand} is equal to the provided option\nIn most cases it is better to compare using {@link ApplicationCommand#equals}","scope":"static","access":"private","params":[{"name":"existing","description":"The option on the existing command,\nshould be from {@link ApplicationCommand#options}","type":[[["ApplicationCommandOptionData"]]]},{"name":"option","description":"The option to compare against","type":[[["ApplicationCommandOptionData"]],[["APIApplicationCommandOption"]]]},{"name":"enforceOptionOrder","description":"Whether to strictly check that options or choices are in the same\norder in their array The client may not always respect this ordering!","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":296,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an {@link ApplicationCommandOptionData} object into something that can be used with the API.","scope":"static","access":"private","params":[{"name":"option","description":"The option to transform","type":[[["ApplicationCommandOptionData"]]]},{"name":"received","description":"Whether this option has been received from Discord","optional":true,"type":[[["boolean"]]]}],"returns":[[["APIApplicationCommandOption"]]],"meta":{"line":377,"file":"ApplicationCommand.js","path":"src/structures"}}],"meta":{"line":13,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"AutocompleteInteraction","description":"Represents an autocomplete interaction.","extends":[[["Interaction"]]],"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":15,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":25,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":31,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"responded","description":"Whether this interaction has already received a response","type":[[["boolean"]]],"meta":{"line":37,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"options","description":"The options passed to the command","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":43,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":53,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":64,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"respond","description":"Sends results for the autocomplete of this interaction.","examples":["// respond to autocomplete interaction\ninteraction.respond([\n {\n name: 'Option 1',\n value: 'option1',\n },\n])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the autocomplete","type":[[["Array","<"],["ApplicationCommandOptionChoice",">"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":92,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":11,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"Base","description":"Represents a data model that is identifiable by a Snowflake (i.e. Discord API data models).","abstract":true,"props":[{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":9,"file":"Base.js","path":"src/structures"}},{"name":"BaseCommandInteraction","description":"Represents a command interaction.","extends":[[["Interaction"]]],"implements":[[["InteractionResponses"]]],"abstract":true,"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":29,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":35,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":41,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":47,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":53,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":59,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":66,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":87,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":151,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":15,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"BaseGuild","description":"The base class for {@link Guild}, {@link OAuth2Guild} and {@link InviteGuild}.","extends":[[["Base"]]],"abstract":true,"props":[{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"iconURL","description":"The URL to this guild's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":11,"file":"BaseGuild.js","path":"src/structures"}},{"name":"BaseGuildEmoji","description":"Parent class for {@link GuildEmoji} and {@link GuildPreviewEmoji}.","extends":[[["Emoji"]]],"abstract":true,"props":[{"name":"guild","description":"The guild this emoji is a part of","type":[[["Guild"]],[["GuildPreview"]]],"meta":{"line":18,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"requiresColons","description":"Whether or not this emoji requires colons surrounding it","nullable":true,"type":[[["boolean"]]],"meta":{"line":35,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"managed","description":"Whether this emoji is managed by an external service","nullable":true,"type":[[["boolean"]]],"meta":{"line":43,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"available","description":"Whether this emoji is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":10,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"BaseGuildTextChannel","description":"Represents a text-based guild channel on Discord.","extends":[[["GuildChannel"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":24,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"threads","description":"A manager of the threads belonging to this channel","type":[[["ThreadManager"]]],"meta":{"line":30,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":36,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"topic","description":"The topic of the text channel","nullable":true,"type":[[["string"]]],"meta":{"line":49,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in the channel, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":61,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":69,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for newly created threads in this channel","nullable":true,"type":[[["ThreadAutoArchiveDuration"]]],"meta":{"line":77,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":261,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setDefaultAutoArchiveDuration","description":"Sets the default auto archive duration for all newly created threads in this channel.","params":[{"name":"defaultAutoArchiveDuration","description":"The new default auto archive duration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the channel's default auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":91,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setNSFW","description":"Sets whether this channel is flagged as NSFW.","params":[{"name":"nsfw","description":"Whether the channel should be considered NSFW","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the channel's NSFW flag","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":101,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setType","description":"Sets the type of this channel (only conversion between text and news is supported)","params":[{"name":"type","description":"The new channel type","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the channel's type","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":111,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the channel.","examples":["// Fetch webhooks\nchannel.fetchWebhooks()\n .then(hooks => console.log(`This channel has ${hooks.size} hooks`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":124,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createWebhook","description":"Creates a webhook for the channel.","examples":["// Create a webhook for the current channel\nchannel.createWebhook('Snek', {\n avatar: 'https://i.imgur.com/mI8XcpG.jpg',\n reason: 'Needed a cool new Webhook'\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"name","description":"The name of the webhook","type":[[["string"]]]},{"name":"options","description":"Options for creating the webhook","optional":true,"type":[[["ChannelWebhookCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Webhook",">"]]],"description":"Returns the created Webhook"},"meta":{"line":152,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":177,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":207,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":217,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":188,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":203,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":226,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a button interaction collector.","implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":250,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":270,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":294,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":16,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"BaseGuildVoiceChannel","description":"Represents a voice-based guild channel on Discord.","extends":[[["GuildChannel"]]],"props":[{"name":"rtcRegion","description":"The RTC region for this voice-based channel. This region is automatically selected if `null`.","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"bitrate","description":"The bitrate of this voice-based channel","type":[[["number"]]],"meta":{"line":28,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"userLimit","description":"The maximum amount of users allowed in this channel.","type":[[["number"]]],"meta":{"line":36,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"members","description":"The members in this voice-based channel","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":45,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"full","description":"Checks if the voice-based channel is full","readonly":true,"type":[[["boolean"]]],"meta":{"line":60,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the channel is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setRTCRegion","description":"Sets the RTC region of the channel.","examples":["// Set the RTC region to europe\nchannel.setRTCRegion('europe');","// Remove a fixed region for this channel - let Discord decide automatically\nchannel.setRTCRegion(null);"],"params":[{"name":"region","description":"The new region of the channel. Set to `null` to remove a specific region for the channel","nullable":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["BaseGuildVoiceChannel",">"]]],"meta":{"line":94,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":108,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":118,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":11,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"BaseMessageComponent","description":"Represents an interactive component of a Message. It should not be necessary to construct this directly.\nSee {@link MessageComponent}","construct":{"name":"BaseMessageComponent","params":[{"name":"data","description":"The options for this component","optional":true,"default":"{}","type":[[["BaseMessageComponent"]],[["BaseMessageComponentOptions"]]]}]},"props":[{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":50,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"create","description":"Constructs a MessageComponent based on the type of the incoming data","scope":"static","access":"private","params":[{"name":"data","description":"Data for a MessageComponent","type":[[["MessageComponentOptions"]]]},{"name":"client","description":"Client constructing this component","optional":true,"type":[[["Client"]],[["WebhookClient"]]]}],"returns":{"types":[[["MessageComponent"]]],"nullable":true},"meta":{"line":60,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"resolveType","description":"Resolves the type of a MessageComponent","scope":"static","access":"private","params":[{"name":"type","description":"The type to resolve","type":[[["MessageComponentTypeResolvable"]]]}],"returns":[[["MessageComponentType"]]],"meta":{"line":98,"file":"BaseMessageComponent.js","path":"src/structures"}}],"meta":{"line":10,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"ButtonInteraction","description":"Represents a button interaction.","extends":[[["MessageComponentInteraction"]]],"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":17,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"message","description":"The message to which the component was attached","type":[[["Message"]],[["APIMessage"]]],"meta":{"line":27,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"customId","description":"The custom id of the component which was interacted with","type":[[["string"]]],"meta":{"line":33,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"componentType","description":"The type of component which was interacted with","type":[[["string"]]],"meta":{"line":39,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":45,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":57,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":63,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"component","description":"The component which was interacted with","readonly":true,"type":[[["MessageActionRowComponent"]],[["APIMessageActionRowComponent"]]],"meta":{"line":78,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"MessageComponentInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"MessageComponentInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"MessageComponentInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"MessageComponentInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"MessageComponentInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"MessageComponentInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","inherits":"MessageComponentInteraction#deferUpdate","inherited":true,"implements":["InteractionResponses#deferUpdate"],"examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":179,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","inherits":"MessageComponentInteraction#update","inherited":true,"implements":["InteractionResponses#update"],"examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":205,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"ButtonInteraction.js","path":"src/structures"}},{"name":"CategoryChannel","description":"Represents a guild category channel on Discord.","extends":[[["GuildChannel"]]],"props":[{"name":"children","description":"Channels that are a part of this category","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildChannel",">"]]],"meta":{"line":15,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":261,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setParent","description":"Sets the category parent of this channel.\nIt is not currently possible to set the parent of a CategoryChannel.","params":[{"name":"channel","description":"The channel to set as parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":19,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"createChannel","description":"Creates a new channel within this category.\nYou cannot create a channel of type `GUILD_CATEGORY` inside a CategoryChannel.","params":[{"name":"name","description":"The name of the new channel","type":[[["string"]]]},{"name":"options","description":"Options for creating the new channel","type":[[["CategoryCreateChannelOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":53,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":9,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"Channel","description":"Represents any channel on Discord.","extends":[[["Base"]]],"abstract":true,"props":[{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","examples":["// Delete the channel\nchannel.delete()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":130,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":30,"file":"Channel.js","path":"src/structures"}},{"name":"ClientApplication","description":"Represents a Client OAuth2 Application.","extends":[[["Application"]]],"props":[{"name":"commands","description":"The application command manager for this application","type":[[["ApplicationCommandManager"]]],"meta":{"line":20,"file":"ClientApplication.js","path":"src/structures"}},{"name":"flags","description":"The flags this application has","type":[[["ApplicationFlags"]]],"meta":{"line":31,"file":"ClientApplication.js","path":"src/structures"}},{"name":"cover","description":"The hash of the application's cover image","nullable":true,"type":[[["string"]]],"meta":{"line":39,"file":"ClientApplication.js","path":"src/structures"}},{"name":"rpcOrigins","description":"The application's RPC origins, if enabled","type":[[["Array","<"],["string",">"]]],"meta":{"line":49,"file":"ClientApplication.js","path":"src/structures"}},{"name":"botRequireCodeGrant","description":"If this application's bot requires a code grant when using the OAuth2 flow","nullable":true,"type":[[["boolean"]]],"meta":{"line":59,"file":"ClientApplication.js","path":"src/structures"}},{"name":"botPublic","description":"If this application's bot is public","nullable":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"ClientApplication.js","path":"src/structures"}},{"name":"owner","description":"The owner of this OAuth application","nullable":true,"type":[[["User"]],[["Team"]]],"meta":{"line":78,"file":"ClientApplication.js","path":"src/structures"}},{"name":"partial","description":"Whether this application is partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":90,"file":"ClientApplication.js","path":"src/structures"}},{"name":"id","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"name","description":"The name of the application","nullable":true,"type":[[["string"]]],"meta":{"line":34,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"description","description":"The application's description","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"icon","description":"The application's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":54,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdTimestamp","description":"The timestamp the application was created at","readonly":true,"type":[[["number"]]],"meta":{"line":65,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdAt","description":"The time the application was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":74,"file":"Application.js","path":"src/structures/interfaces"}}],"methods":[{"name":"fetch","description":"Obtains this application from Discord.","async":true,"returns":[[["Promise","<"],["ClientApplication",">"]]],"meta":{"line":98,"file":"ClientApplication.js","path":"src/structures"}},{"name":"iconURL","description":"A link to the application's icon.","inherits":"Application#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"coverURL","description":"A link to this application's cover image.","inherits":"Application#coverURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"fetchAssets","description":"Gets the application's rich presence assets.","inherits":"Application#fetchAssets","inherited":true,"async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationAsset",">>"]]],"meta":{"line":110,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the application's name instead of the\nApplication object.","inherits":"Application#toString","inherited":true,"examples":["// Logs: Application name: My App\nconsole.log(`Application name: ${application}`);"],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":127,"file":"Application.js","path":"src/structures/interfaces"}}],"meta":{"line":12,"file":"ClientApplication.js","path":"src/structures"}},{"name":"ClientPresence","description":"Represents the client's presence.","extends":[[["Presence"]]],"props":[{"name":"userId","description":"The presence's user id","type":[[["Snowflake"]]],"meta":{"line":45,"file":"Presence.js","path":"src/structures"}},{"name":"guild","description":"The guild this presence is in","nullable":true,"type":[[["Guild"]]],"meta":{"line":51,"file":"Presence.js","path":"src/structures"}},{"name":"user","description":"The user of this presence","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":61,"file":"Presence.js","path":"src/structures"}},{"name":"member","description":"The member of this presence","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":70,"file":"Presence.js","path":"src/structures"}},{"name":"status","description":"The status of this presence","type":[[["PresenceStatus"]]],"meta":{"line":80,"file":"Presence.js","path":"src/structures"}},{"name":"activities","description":"The activities of this presence","type":[[["Array","<"],["Activity",">"]]],"meta":{"line":90,"file":"Presence.js","path":"src/structures"}},{"name":"clientStatus","description":"The devices this presence is on","nullable":true,"type":[[["Object"]]],"props":[{"name":"web","description":"The current presence in the web application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"mobile","description":"The current presence in the mobile application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"desktop","description":"The current presence in the desktop application","nullable":true,"type":[[["ClientPresenceStatus"]]]}],"meta":{"line":103,"file":"Presence.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"set","description":"Sets the client's presence","params":[{"name":"presence","description":"The data to set the presence to","type":[[["PresenceData"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":21,"file":"ClientPresence.js","path":"src/structures"}},{"name":"_parse","description":"Parses presence data into a packet ready to be sent to Discord","access":"private","params":[{"name":"presence","description":"The data to parse","type":[[["PresenceData"]]]}],"returns":[[["APIPresence"]]],"meta":{"line":42,"file":"ClientPresence.js","path":"src/structures"}},{"name":"equals","description":"Whether this presence is equal to another.","inherits":"Presence#equals","inherited":true,"params":[{"name":"presence","description":"The presence to compare with","type":[[["Presence"]]]}],"returns":[[["boolean"]]],"meta":{"line":122,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":11,"file":"ClientPresence.js","path":"src/structures"}},{"name":"ClientUser","description":"Represents the logged in client's Discord user.","extends":[[["User"]]],"props":[{"name":"notes","description":"The notes cache of the client user.","access":"private","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]]],"meta":{"line":25,"file":"ClientUser.js","path":"src/structures"}},{"name":"verified","description":"Whether or not this account has been verified","type":[[["boolean"]]],"meta":{"line":33,"file":"ClientUser.js","path":"src/structures"}},{"name":"mfaEnabled","description":"If the bot's {@link ClientApplication#owner Owner} has MFA enabled on their account","nullable":true,"type":[[["boolean"]]],"meta":{"line":41,"file":"ClientUser.js","path":"src/structures"}},{"name":"presence","description":"Represents the client user's presence","readonly":true,"type":[[["ClientPresence"]]],"meta":{"line":80,"file":"ClientUser.js","path":"src/structures"}},{"name":"id","description":"The user's id","type":[[["Snowflake"]]],"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"name":"connectedAccounts","description":"Accounts connected to this user","nullable":true,"type":[[["Array","<"],["ConnectionAccount",">"]]],"meta":{"line":46,"file":"User.js","path":"src/structures"}},{"name":"premiumSince","description":"Time that User has nitro (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":52,"file":"User.js","path":"src/structures"}},{"name":"premiumGuildSince","description":"Time that User has nitro and boost server (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":58,"file":"User.js","path":"src/structures"}},{"name":"bio","description":"About me (User)","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":64,"file":"User.js","path":"src/structures"}},{"name":"mutualGuilds","description":"This user is on the same servers as Client User","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Object",">"]]],"meta":{"line":70,"file":"User.js","path":"src/structures"}},{"name":"applications","description":"[Bot] Interaction command manager","readonly":true,"nullable":true,"type":[[["ApplicationCommandManager"]]],"meta":{"line":76,"file":"User.js","path":"src/structures"}},{"name":"username","description":"The username of the user","nullable":true,"type":[[["string"]]],"meta":{"line":86,"file":"User.js","path":"src/structures"}},{"name":"bot","description":"Whether or not the user is a bot","nullable":true,"type":[[["boolean"]]],"meta":{"line":96,"file":"User.js","path":"src/structures"}},{"name":"discriminator","description":"A discriminator based on username for the user","nullable":true,"type":[[["string"]]],"meta":{"line":109,"file":"User.js","path":"src/structures"}},{"name":"avatar","description":"The user avatar's hash","nullable":true,"type":[[["string"]]],"meta":{"line":119,"file":"User.js","path":"src/structures"}},{"name":"banner","description":"The user banner's hash\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["string"]]],"meta":{"line":130,"file":"User.js","path":"src/structures"}},{"name":"accentColor","description":"The base 10 accent color of the user's banner\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["number"]]],"meta":{"line":141,"file":"User.js","path":"src/structures"}},{"name":"system","description":"Whether the user is an Official Discord System user (part of the urgent message system)","nullable":true,"type":[[["boolean"]]],"meta":{"line":151,"file":"User.js","path":"src/structures"}},{"name":"flags","description":"The flags for this user","nullable":true,"type":[[["UserFlags"]]],"meta":{"line":161,"file":"User.js","path":"src/structures"}},{"name":"relationships","description":"Check relationship status","readonly":true,"type":[[["Relationship"]]],"meta":{"line":170,"file":"User.js","path":"src/structures"}},{"name":"note","description":"Check note","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":180,"file":"User.js","path":"src/structures"}},{"name":"partial","description":"Whether this User is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":263,"file":"User.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the user was created at","readonly":true,"type":[[["number"]]],"meta":{"line":272,"file":"User.js","path":"src/structures"}},{"name":"createdAt","description":"The time the user was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":281,"file":"User.js","path":"src/structures"}},{"name":"defaultAvatarURL","description":"A link to the user's default avatar","readonly":true,"type":[[["string"]]],"meta":{"line":300,"file":"User.js","path":"src/structures"}},{"name":"hexAccentColor","description":"The hexadecimal version of the user accent color, with a leading hash\nThe user must be force fetched for this property to be present","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":320,"file":"User.js","path":"src/structures"}},{"name":"tag","description":"The Discord \"tag\" (e.g. `hydrabolt#0001`) for this user","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":345,"file":"User.js","path":"src/structures"}},{"name":"dmChannel","description":"The DM between the client's user and this user","readonly":true,"nullable":true,"type":[[["DMChannel"]]],"meta":{"line":354,"file":"User.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits the logged in client.","params":[{"name":"data","description":"The new data","type":[[["ClientUserEditData"]]]}],"async":true,"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":96,"file":"ClientUser.js","path":"src/structures"}},{"name":"setUsername","description":"Sets the username of the logged in client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","examples":["// Set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.error);"],"params":[{"name":"username","description":"The new username","type":[[["string"]]]},{"name":"password","description":"The password of the account","type":[[["string"]]]}],"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":123,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAvatar","description":"Sets the avatar of the logged in client.","examples":["// Set avatar\nclient.user.setAvatar('./avatar.png')\n .then(user => console.log(`New avatar set!`))\n .catch(console.error);"],"params":[{"name":"avatar","description":"The new avatar","nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":143,"file":"ClientUser.js","path":"src/structures"}},{"name":"setBanner","description":"Sets the banner of the logged in client.","examples":["// Set banner\nclient.user.setBanner('./banner.png')\n .then(user => console.log(`New banner set!`))\n .catch(console.error);"],"params":[{"name":"banner","description":"The new banner","nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":156,"file":"ClientUser.js","path":"src/structures"}},{"name":"setHypeSquad","description":"Set HyperSquad House","examples":["// Set HyperSquad HOUSE_BRAVERY\nclient.user.setHypeSquad(1); || client.user.setHypeSquad('HOUSE_BRAVERY');\n// Leave\nclient.user.setHypeSquad(0);"],"params":[{"name":"type","description":"`LEAVE`: 0\n`HOUSE_BRAVERY`: 1\n`HOUSE_BRILLIANCE`: 2\n`HOUSE_BALANCE`: 3","type":[[["HypeSquadOptions","<("],["number","|"],["string",")>"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":177,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAccentColor","description":"Set Accent color","params":[{"name":"color","description":"Color to set","default":null,"type":[[["ColorResolvable"]]]}],"returns":[[["Promise"]]],"meta":{"line":196,"file":"ClientUser.js","path":"src/structures"}},{"name":"setDiscriminator","description":"Set discriminator","params":[{"name":"discriminator","description":"It is #1234","type":[[["Userdiscriminator"]]]},{"name":"password","description":"The password of the account","type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":206,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAboutMe","description":"Set About me","params":[{"name":"bio","description":"Bio to set","default":null,"type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":222,"file":"ClientUser.js","path":"src/structures"}},{"name":"setEmail","description":"Change the email","params":[{"name":"email","description":"Email to change","type":[[["Email","<"],["string",">"]]]},{"name":"password","description":"Password of the account","type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":234,"file":"ClientUser.js","path":"src/structures"}},{"name":"setPassword","description":"Set new password","params":[{"name":"oldPassword","description":"Old password","type":[[["string"]]]},{"name":"newPassword","description":"New password to set","type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":250,"file":"ClientUser.js","path":"src/structures"}},{"name":"disableAccount","description":"Disable account","params":[{"name":"password","description":"Password of the account","type":[[["string"]]]}],"async":true,"returns":[[["Promise"]]],"meta":{"line":266,"file":"ClientUser.js","path":"src/structures"}},{"name":"setDeaf","description":"Set selfdeaf (Global)","params":[{"name":"status","description":"Whether or not the ClientUser is deafened","type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":283,"file":"ClientUser.js","path":"src/structures"}},{"name":"setMute","description":"Set selfmute (Global)","params":[{"name":"status","description":"Whether or not the ClientUser is muted","type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":297,"file":"ClientUser.js","path":"src/structures"}},{"name":"deleteAccount","description":"Delete account. Warning: Cannot be changed once used!","params":[{"name":"password","description":"Password of the account","type":[[["string"]]]}],"async":true,"returns":[[["Promise"]]],"meta":{"line":311,"file":"ClientUser.js","path":"src/structures"}},{"name":"setPresence","description":"Sets the full presence of the client user.","examples":["// Set the client user's presence\nclient.user.setPresence({ activities: [{ name: 'with discord.js' }], status: 'idle' });"],"params":[{"name":"data","description":"Data for the presence","type":[[["PresenceData"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":348,"file":"ClientUser.js","path":"src/structures"}},{"name":"setStatus","description":"Sets the status of the client user.","examples":["// Set the client user's status\nclient.user.setStatus('idle');"],"params":[{"name":"status","description":"Status to change to","type":[[["PresenceStatusData"]]]},{"name":"shardId","description":"Shard id(s) to have the activity set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":370,"file":"ClientUser.js","path":"src/structures"}},{"name":"setActivity","description":"Sets the activity the client user is playing.","examples":["// Set the client user's activity\nclient.user.setActivity('discord.js', { type: 'WATCHING' });"],"params":[{"name":"name","description":"Activity being played, or options for setting the activity","optional":true,"type":[[["string"]],[["ActivityOptions"]]]},{"name":"options","description":"Options for setting the activity","optional":true,"type":[[["ActivityOptions"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":392,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAFK","description":"Sets/removes the AFK flag for the client user.","params":[{"name":"afk","description":"Whether or not the user is AFK","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"shardId","description":"Shard Id(s) to have the AFK flag set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":410,"file":"ClientUser.js","path":"src/structures"}},{"name":"getInvite","description":"Create an invite [Friend Invites]","see":["https://github.com/13-05/hidden-disc-docs#js-snippet-for-creating-friend-invites"],"examples":["// Create an invite to a selected channel\nclient.user.getInvite({ maxAge: 0, maxUses: 0 });\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite [maxAge and maxUses are available]","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":425,"file":"ClientUser.js","path":"src/structures"}},{"name":"getProfile","description":"Get profile from Discord, if client is in a server with the target.","inherits":"User#getProfile","inherited":true,"async":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":212,"file":"User.js","path":"src/structures"}},{"name":"setFriend","description":"Friends the user and send Request [If no request]","inherits":"User#setFriend","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":223,"file":"User.js","path":"src/structures"}},{"name":"sendFriendRequest","description":"Send Friend Request to the user","inherits":"User#sendFriendRequest","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":231,"file":"User.js","path":"src/structures"}},{"name":"setBlock","description":"Blocks the user","inherits":"User#setBlock","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":238,"file":"User.js","path":"src/structures"}},{"name":"unBlock","description":"Removes the user from your blocks list","inherits":"User#unBlock","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":246,"file":"User.js","path":"src/structures"}},{"name":"unFriend","description":"Removes the user from your friends list","inherits":"User#unFriend","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":254,"file":"User.js","path":"src/structures"}},{"name":"avatarURL","description":"A link to the user's avatar.","inherits":"User#avatarURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":290,"file":"User.js","path":"src/structures"}},{"name":"displayAvatarURL","description":"A link to the user's avatar if they have one.\nOtherwise a link to their default avatar will be returned.","inherits":"User#displayAvatarURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":[[["string"]]],"meta":{"line":310,"file":"User.js","path":"src/structures"}},{"name":"bannerURL","description":"A link to the user's banner.\nThis method will throw an error if called before the user is force fetched.\nSee {@link User#banner} for more info","inherits":"User#bannerURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":332,"file":"User.js","path":"src/structures"}},{"name":"createDM","description":"Creates a DM channel between the client and the user.","inherits":"User#createDM","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":363,"file":"User.js","path":"src/structures"}},{"name":"deleteDM","description":"Deletes a DM channel (if one exists) between the client and the user. Resolves with the channel if successful.","inherits":"User#deleteDM","inherited":true,"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":371,"file":"User.js","path":"src/structures"}},{"name":"equals","description":"Checks if the user is equal to another.\nIt compares id, username, discriminator, avatar, banner, accent color, and bot flags.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","inherits":"User#equals","inherited":true,"params":[{"name":"user","description":"User to compare with","type":[[["User"]]]}],"returns":[[["boolean"]]],"meta":{"line":382,"file":"User.js","path":"src/structures"}},{"name":"_equals","description":"Compares the user with an API user object","access":"private","inherits":"User#_equals","inherited":true,"params":[{"name":"user","description":"The API user object to compare","type":[[["APIUser"]]]}],"returns":[[["boolean"]]],"meta":{"line":401,"file":"User.js","path":"src/structures"}},{"name":"fetchFlags","description":"Fetches this user's flags.","inherits":"User#fetchFlags","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["UserFlags",">"]]],"meta":{"line":419,"file":"User.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this user.","inherits":"User#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":428,"file":"User.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the user's mention instead of the User object.","inherits":"User#toString","inherited":true,"examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${user}!`);"],"returns":[[["string"]]],"meta":{"line":439,"file":"User.js","path":"src/structures"}},{"name":"setNote","description":"Set note to user","inherits":"User#setNote","inherited":true,"params":[{"name":"note","description":"Note to set","default":null,"type":[[["string","<"],["Usernote",">"]]]}],"async":true,"returns":[[["Promise","<"],["Usernote",">"]]],"meta":{"line":464,"file":"User.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","inherits":"User#send","inherited":true,"implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":13,"file":"ClientUser.js","path":"src/structures"}},{"name":"CommandInteraction","description":"Represents a command interaction.","extends":[[["BaseCommandInteraction"]]],"props":[{"name":"options","description":"The options passed to the command.","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"CommandInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":29,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":35,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":41,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":47,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":53,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":59,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":66,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"Returns a string representation of the command interaction.\nThis can then be copied by a user and executed again in a new command while keeping the option order.","returns":[[["string"]]],"meta":{"line":30,"file":"CommandInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":87,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":151,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":10,"file":"CommandInteraction.js","path":"src/structures"}},{"name":"CommandInteractionOptionResolver","description":"A resolver for command interaction options.","props":[{"name":"client","description":"The client that instantiated this.","readonly":true,"type":[[["Client"]]],"meta":{"line":10,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_group","description":"The name of the subcommand group.","access":"private","nullable":true,"type":[[["string"]]],"meta":{"line":23,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_subcommand","description":"The name of the subcommand.","access":"private","nullable":true,"type":[[["string"]]],"meta":{"line":30,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_hoistedOptions","description":"The bottom-level options for the interaction.\nIf there is a subcommand (or subcommand and group), this is the options for the subcommand.","access":"private","type":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":38,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"data","description":"The interaction options array.","readonly":true,"type":[[["ReadonlyArray","<"],["CommandInteractionOption",">"]]],"meta":{"line":51,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"resolved","description":"The interaction resolved data","type":[[["Readonly","<"],["CommandInteractionResolvedData",">"]]],"meta":{"line":59,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}}],"methods":[{"name":"get","description":"Gets an option by its name.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["CommandInteractionOption"]]],"description":"The option, if found.","nullable":true},"meta":{"line":73,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_getTypedOption","description":"Gets an option by name and property and checks its type.","access":"private","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"type","description":"The type of the option.","type":[[["ApplicationCommandOptionType"]]]},{"name":"properties","description":"The properties to check for for `required`.","type":[[["Array","<"],["string",">"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","type":[[["boolean"]]]}],"returns":{"types":[[["CommandInteractionOption"]]],"description":"The option, if found.","nullable":true},"meta":{"line":93,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getSubcommand","description":"Gets the selected subcommand.","params":[{"name":"required","description":"Whether to throw an error if there is no subcommand.","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]]],"description":"The name of the selected subcommand, or null if not set and not required.","nullable":true},"meta":{"line":110,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getSubcommandGroup","description":"Gets the selected subcommand group.","params":[{"name":"required","description":"Whether to throw an error if there is no subcommand group.","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]]],"description":"The name of the selected subcommand group, or null if not set and not required.","nullable":true},"meta":{"line":122,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getBoolean","description":"Gets a boolean option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["boolean"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":135,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getChannel","description":"Gets a channel option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["GuildChannel"]],[["ThreadChannel"]],[["APIChannel"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":147,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getString","description":"Gets a string option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":158,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getInteger","description":"Gets an integer option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["number"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":169,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getNumber","description":"Gets a number option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["number"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":180,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getUser","description":"Gets a user option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["User"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":191,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getMember","description":"Gets a member option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["GuildMember"]],[["APIGuildMember"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":203,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getRole","description":"Gets a role option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["Role"]],[["APIRole"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":214,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getMentionable","description":"Gets a mentionable option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["User"]],[["GuildMember"]],[["APIGuildMember"]],[["Role"]],[["APIRole"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":226,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getMessage","description":"Gets a message option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["Message"]],[["APIMessage"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":238,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getFocused","description":"Gets the focused option.","params":[{"name":"getFull","description":"Whether to get the full option object","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]],[["number"]],[["ApplicationCommandOptionChoice"]]],"description":"The value of the option, or the whole option if getFull is true"},"meta":{"line":249,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}}],"meta":{"line":8,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"ContextMenuInteraction","description":"Represents a context menu interaction.","extends":[[["BaseCommandInteraction"]]],"props":[{"name":"options","description":"The target of the interaction, parsed into options","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetId","description":"The id of the target of the interaction","type":[[["Snowflake"]]],"meta":{"line":28,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetType","description":"The type of the target of the interaction; either USER or MESSAGE","type":[[["ApplicationCommandType"]]],"meta":{"line":34,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":29,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":35,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":41,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":47,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":53,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":59,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":66,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"resolveContextMenuOptions","description":"Resolves and transforms options received from the API for a context menu interaction.","access":"private","params":[{"name":"data","description":"The interaction data","type":[[["APIApplicationCommandInteractionData"]]]}],"returns":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":43,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":87,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":151,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":11,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"DMChannel","description":"Represents a direct message channel between two users.","extends":[[["Channel"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"messages","description":"A manager of the messages belonging to this channel","type":[[["MessageManager"]]],"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"name":"recipient","description":"The recipient on the other end of the DM","type":[[["User"]]],"meta":{"line":34,"file":"DMChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The channel's last message id, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":42,"file":"DMChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":50,"file":"DMChannel.js","path":"src/structures"}},{"name":"partial","description":"Whether this DMChannel is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":61,"file":"DMChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Fetch this DMChannel.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":70,"file":"DMChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the recipient's mention instead of the\nDMChannel object.","examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":82,"file":"DMChannel.js","path":"src/structures"}},{"name":"call","description":"Call this DMChannel. [TEST only]","returns":[[["Promise","<"],["void",">"]]],"meta":{"line":103,"file":"DMChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":188,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":203,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":226,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a button interaction collector.","implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":250,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":270,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"delete","description":"Deletes this channel.","inherits":"Channel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":130,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":12,"file":"DMChannel.js","path":"src/structures"}},{"name":"Emoji","description":"Represents an emoji, see {@link GuildEmoji} and {@link ReactionEmoji}.","extends":[[["Base"]]],"props":[{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":27,"file":"Emoji.js","path":"src/structures"}},{"name":"Guild","description":"Represents a guild (or a server) on Discord.\nIt's recommended to see if a guild is available before performing operations or reading data from it. You can\ncheck this with {@link Guild#available}.","extends":[[["AnonymousGuild"]]],"props":[{"name":"members","description":"A manager of the members belonging to this guild","type":[[["GuildMemberManager"]]],"meta":{"line":67,"file":"Guild.js","path":"src/structures"}},{"name":"channels","description":"A manager of the channels belonging to this guild","type":[[["GuildChannelManager"]]],"meta":{"line":73,"file":"Guild.js","path":"src/structures"}},{"name":"bans","description":"A manager of the bans belonging to this guild","type":[[["GuildBanManager"]]],"meta":{"line":79,"file":"Guild.js","path":"src/structures"}},{"name":"roles","description":"A manager of the roles belonging to this guild","type":[[["RoleManager"]]],"meta":{"line":85,"file":"Guild.js","path":"src/structures"}},{"name":"presences","description":"A manager of the presences belonging to this guild","type":[[["PresenceManager"]]],"meta":{"line":91,"file":"Guild.js","path":"src/structures"}},{"name":"voiceStates","description":"A manager of the voice states of this guild","type":[[["VoiceStateManager"]]],"meta":{"line":97,"file":"Guild.js","path":"src/structures"}},{"name":"stageInstances","description":"A manager of the stage instances of this guild","type":[[["StageInstanceManager"]]],"meta":{"line":103,"file":"Guild.js","path":"src/structures"}},{"name":"invites","description":"A manager of the invites of this guild","type":[[["GuildInviteManager"]]],"meta":{"line":109,"file":"Guild.js","path":"src/structures"}},{"name":"scheduledEvents","description":"A manager of the scheduled events of this guild","type":[[["GuildScheduledEventManager"]]],"meta":{"line":115,"file":"Guild.js","path":"src/structures"}},{"name":"available","description":"Whether the guild is available to access. If it is not available, it indicates a server outage","type":[[["boolean"]]],"meta":{"line":123,"file":"Guild.js","path":"src/structures"}},{"name":"shardId","description":"The id of the shard this Guild belongs to.","type":[[["number"]]],"meta":{"line":133,"file":"Guild.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":141,"file":"Guild.js","path":"src/structures"}},{"name":"shard","description":"The Shard this Guild belongs to.","readonly":true,"type":[[["WebSocketShard"]]],"meta":{"line":171,"file":"Guild.js","path":"src/structures"}},{"name":"discoverySplash","description":"The hash of the guild discovery splash image","nullable":true,"type":[[["string"]]],"meta":{"line":191,"file":"Guild.js","path":"src/structures"}},{"name":"memberCount","description":"The full amount of members in this guild","type":[[["number"]]],"meta":{"line":199,"file":"Guild.js","path":"src/structures"}},{"name":"large","description":"Whether the guild is \"large\" (has more than {@link WebsocketOptions large_threshold} members, 50 by default)","type":[[["boolean"]]],"meta":{"line":207,"file":"Guild.js","path":"src/structures"}},{"name":"premiumProgressBarEnabled","description":"Whether this guild has its premium (boost) progress bar enabled","type":[[["boolean"]]],"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"name":"applicationId","description":"The id of the application that created this guild (if applicable)","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":251,"file":"Guild.js","path":"src/structures"}},{"name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\"","nullable":true,"type":[[["number"]]],"meta":{"line":259,"file":"Guild.js","path":"src/structures"}},{"name":"afkChannelId","description":"The id of the voice channel where AFK members are moved","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":267,"file":"Guild.js","path":"src/structures"}},{"name":"systemChannelId","description":"The system channel's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":275,"file":"Guild.js","path":"src/structures"}},{"name":"premiumTier","description":"The premium tier of this guild","type":[[["PremiumTier"]]],"meta":{"line":283,"file":"Guild.js","path":"src/structures"}},{"name":"premiumSubscriptionCount","description":"The total number of boosts for this server","nullable":true,"type":[[["number"]]],"meta":{"line":291,"file":"Guild.js","path":"src/structures"}},{"name":"widgetEnabled","description":"Whether widget images are enabled on this guild","nullable":true,"type":[[["boolean"]]],"meta":{"line":299,"file":"Guild.js","path":"src/structures"}},{"name":"widgetChannelId","description":"The widget channel's id, if enabled","nullable":true,"type":[[["string"]]],"meta":{"line":307,"file":"Guild.js","path":"src/structures"}},{"name":"explicitContentFilter","description":"The explicit content filter level of the guild","type":[[["ExplicitContentFilterLevel"]]],"meta":{"line":315,"file":"Guild.js","path":"src/structures"}},{"name":"mfaLevel","description":"The required MFA level for this guild","type":[[["MFALevel"]]],"meta":{"line":323,"file":"Guild.js","path":"src/structures"}},{"name":"joinedTimestamp","description":"The timestamp the client user joined the guild at","type":[[["number"]]],"meta":{"line":331,"file":"Guild.js","path":"src/structures"}},{"name":"defaultMessageNotifications","description":"The default message notification level of the guild","type":[[["DefaultMessageNotificationLevel"]]],"meta":{"line":339,"file":"Guild.js","path":"src/structures"}},{"name":"systemChannelFlags","description":"The value set for the guild's system channel flags","type":[[["Readonly","<"],["SystemChannelFlags",">"]]],"meta":{"line":347,"file":"Guild.js","path":"src/structures"}},{"name":"maximumMembers","description":"The maximum amount of members the guild can have","nullable":true,"type":[[["number"]]],"meta":{"line":355,"file":"Guild.js","path":"src/structures"}},{"name":"maximumPresences","description":"The maximum amount of presences the guild can have\nYou will need to fetch the guild using {@link Guild#fetch} if you want to receive this parameter","nullable":true,"type":[[["number"]]],"meta":{"line":366,"file":"Guild.js","path":"src/structures"}},{"name":"approximateMemberCount","description":"The approximate amount of members the guild has\nYou will need to fetch the guild using {@link Guild#fetch} if you want to receive this parameter","nullable":true,"type":[[["number"]]],"meta":{"line":377,"file":"Guild.js","path":"src/structures"}},{"name":"approximatePresenceCount","description":"The approximate amount of presences the guild has\nYou will need to fetch the guild using {@link Guild#fetch} if you want to receive this parameter","nullable":true,"type":[[["number"]]],"meta":{"line":388,"file":"Guild.js","path":"src/structures"}},{"name":"vanityURLUses","description":"The use count of the vanity URL code of the guild, if any\nYou will need to fetch this parameter using {@link Guild#fetchVanityData} if you want to receive it","nullable":true,"type":[[["number"]]],"meta":{"line":398,"file":"Guild.js","path":"src/structures"}},{"name":"rulesChannelId","description":"The rules channel's id for the guild","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":405,"file":"Guild.js","path":"src/structures"}},{"name":"publicUpdatesChannelId","description":"The community updates channel's id for the guild","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":413,"file":"Guild.js","path":"src/structures"}},{"name":"preferredLocale","description":"The preferred locale of the guild, defaults to `en-US`","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":422,"file":"Guild.js","path":"src/structures"}},{"name":"ownerId","description":"The user id of this guild's owner","type":[[["Snowflake"]]],"meta":{"line":453,"file":"Guild.js","path":"src/structures"}},{"name":"emojis","description":"A manager of the emojis belonging to this guild","type":[[["GuildEmojiManager"]]],"meta":{"line":488,"file":"Guild.js","path":"src/structures"}},{"name":"stickers","description":"A manager of the stickers belonging to this guild","type":[[["GuildStickerManager"]]],"meta":{"line":502,"file":"Guild.js","path":"src/structures"}},{"name":"joinedAt","description":"The time the client user joined the guild","readonly":true,"type":[[["Date"]]],"meta":{"line":519,"file":"Guild.js","path":"src/structures"}},{"name":"afkChannel","description":"AFK voice channel for this guild","readonly":true,"nullable":true,"type":[[["VoiceChannel"]]],"meta":{"line":547,"file":"Guild.js","path":"src/structures"}},{"name":"systemChannel","description":"System channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":556,"file":"Guild.js","path":"src/structures"}},{"name":"widgetChannel","description":"Widget channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":565,"file":"Guild.js","path":"src/structures"}},{"name":"rulesChannel","description":"Rules channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":574,"file":"Guild.js","path":"src/structures"}},{"name":"publicUpdatesChannel","description":"Public updates channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":583,"file":"Guild.js","path":"src/structures"}},{"name":"me","description":"The client user as a GuildMember of this guild","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":592,"file":"Guild.js","path":"src/structures"}},{"name":"maximumBitrate","description":"The maximum bitrate available for this guild","readonly":true,"type":[[["number"]]],"meta":{"line":606,"file":"Guild.js","path":"src/structures"}},{"name":"voiceAdapterCreator","description":"The voice state adapter for this guild that can be used with @discordjs/voice to play audio in voice\nand stage channels.","readonly":true,"type":[[["function"]]],"meta":{"line":1541,"file":"Guild.js","path":"src/structures"}},{"name":"splash","description":"The hash of the guild invite splash image","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"banner","description":"The hash of the guild banner","nullable":true,"type":[[["string"]]],"meta":{"line":33,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"description","description":"The description of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":41,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"verificationLevel","description":"The verification level of the guild","type":[[["VerificationLevel"]]],"meta":{"line":49,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"vanityURLCode","description":"The vanity invite code of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":57,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"nsfwLevel","description":"The NSFW level of this guild","type":[[["NSFWLevel"]]],"meta":{"line":65,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"discoverySplashURL","description":"The URL to this guild's discovery splash image.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":528,"file":"Guild.js","path":"src/structures"}},{"name":"fetchOwner","description":"Fetches the owner of the guild.\nIf the member object isn't needed, use {@link Guild#ownerId} instead.","params":[{"name":"options","description":"The options for fetching the member","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":538,"file":"Guild.js","path":"src/structures"}},{"name":"searchInteraction","description":"Searches for guild interactions","params":[{"name":"options","description":"Options for the search","type":[[["GuildSearchInteractionOptions"]]]}],"returns":[[["Promise"]]],"meta":{"line":637,"file":"Guild.js","path":"src/structures"}},{"name":"fetchIntegrations","description":"Fetches a collection of integrations to this guild.\nResolves with a collection mapping integrations by their ids.","examples":["// Fetch integrations\nguild.fetchIntegrations()\n .then(integrations => console.log(`Fetched ${integrations.size} integrations`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<("],["Snowflake","|"],["string","), "],["Integration",">>"]]],"meta":{"line":694,"file":"Guild.js","path":"src/structures"}},{"name":"fetchTemplates","description":"Fetches a collection of templates from this guild.\nResolves with a collection mapping templates by their codes.","async":true,"returns":[[["Promise","<"],["Collection","<"],["string",", "],["GuildTemplate",">>"]]],"meta":{"line":707,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWelcomeScreen","description":"Fetches the welcome screen for this guild.","async":true,"returns":[[["Promise","<"],["WelcomeScreen",">"]]],"meta":{"line":716,"file":"Guild.js","path":"src/structures"}},{"name":"createTemplate","description":"Creates a template for the guild.","params":[{"name":"name","description":"The name for the template","type":[[["string"]]]},{"name":"description","description":"The description for the template","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":727,"file":"Guild.js","path":"src/structures"}},{"name":"fetchPreview","description":"Obtains a guild preview for this guild from Discord.","async":true,"returns":[[["Promise","<"],["GuildPreview",">"]]],"meta":{"line":736,"file":"Guild.js","path":"src/structures"}},{"name":"fetchVanityData","description":"Fetches the vanity URL invite object to this guild.\nResolves with an object containing the vanity URL invite code and the use count","examples":["// Fetch invite data\nguild.fetchVanityData()\n .then(res => {\n console.log(`Vanity URL: https://discord.gg/${res.code} with ${res.uses} uses`);\n })\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Vanity",">"]]],"meta":{"line":760,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the guild.","examples":["// Fetch webhooks\nguild.fetchWebhooks()\n .then(webhooks => console.log(`Fetched ${webhooks.size} webhooks`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":780,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWidget","description":"Fetches the guild widget data, requires the widget to be enabled.","examples":["// Fetches the guild widget data\nguild.fetchWidget()\n .then(widget => console.log(`The widget shows ${widget.channels.size} channels`))\n .catch(console.error);"],"returns":[[["Promise","<"],["Widget",">"]]],"meta":{"line":798,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWidgetSettings","description":"Fetches the guild widget settings.","examples":["// Fetches the guild widget settings\nguild.fetchWidgetSettings()\n .then(widget => console.log(`The widget is ${widget.enabled ? 'enabled' : 'disabled'}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["GuildWidgetSettings",">"]]],"meta":{"line":825,"file":"Guild.js","path":"src/structures"}},{"name":"fetchAuditLogs","description":"Fetches audit logs for this guild.","examples":["// Output audit log entries\nguild.fetchAuditLogs()\n .then(audit => console.log(audit.entries.first()))\n .catch(console.error);"],"params":[{"name":"options","description":"Options for fetching audit logs","optional":true,"default":"{}","type":[[["GuildAuditLogsFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildAuditLogs",">"]]],"meta":{"line":854,"file":"Guild.js","path":"src/structures"}},{"name":"edit","description":"Updates the guild with new information - e.g. a new name.","examples":["// Set the guild name\nguild.edit({\n name: 'Discord Guild',\n})\n .then(updated => console.log(`New guild name ${updated}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The data to update the guild with","type":[[["GuildEditData"]]]},{"name":"reason","description":"Reason for editing this guild","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":925,"file":"Guild.js","path":"src/structures"}},{"name":"editWelcomeScreen","description":"Updates the guild's welcome screen","examples":["guild.editWelcomeScreen({\n description: 'Hello World',\n enabled: true,\n welcomeChannels: [\n {\n description: 'foobar',\n channel: '222197033908436994',\n }\n ],\n})"],"params":[{"name":"data","description":"Data to edit the welcome screen with","type":[[["WelcomeScreenEditData"]]]}],"async":true,"returns":[[["Promise","<"],["WelcomeScreen",">"]]],"meta":{"line":1037,"file":"Guild.js","path":"src/structures"}},{"name":"setExplicitContentFilter","description":"Edits the level of the explicit content filter.","params":[{"name":"explicitContentFilter","description":"The new level of the explicit content filter","type":[[["ExplicitContentFilterLevel"]],[["number"]]]},{"name":"reason","description":"Reason for changing the level of the guild's explicit content filter","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1065,"file":"Guild.js","path":"src/structures"}},{"name":"setDefaultMessageNotifications","description":"Edits the setting of the default message notifications of the guild.","params":[{"name":"defaultMessageNotifications","description":"The new default message notification level of the guild","type":[[["DefaultMessageNotificationLevel"]],[["number"]]]},{"name":"reason","description":"Reason for changing the setting of the default message notifications","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1076,"file":"Guild.js","path":"src/structures"}},{"name":"setSystemChannelFlags","description":"Edits the flags of the default message notifications of the guild.","params":[{"name":"systemChannelFlags","description":"The new flags for the default message notifications","type":[[["SystemChannelFlagsResolvable"]]]},{"name":"reason","description":"Reason for changing the flags of the default message notifications","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1087,"file":"Guild.js","path":"src/structures"}},{"name":"setName","description":"Edits the name of the guild.","examples":["// Edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name of the guild","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1102,"file":"Guild.js","path":"src/structures"}},{"name":"setVerificationLevel","description":"Edits the verification level of the guild.","examples":["// Edit the guild verification level\nguild.setVerificationLevel(1)\n .then(updated => console.log(`Updated guild verification level to ${guild.verificationLevel}`))\n .catch(console.error);"],"params":[{"name":"verificationLevel","description":"The new verification level of the guild","type":[[["VerificationLevel"]],[["number"]]]},{"name":"reason","description":"Reason for changing the guild's verification level","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1117,"file":"Guild.js","path":"src/structures"}},{"name":"setAFKChannel","description":"Edits the AFK channel of the guild.","examples":["// Edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel.name}`))\n .catch(console.error);"],"params":[{"name":"afkChannel","description":"The new AFK channel","type":[[["VoiceChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's AFK channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1132,"file":"Guild.js","path":"src/structures"}},{"name":"setSystemChannel","description":"Edits the system channel of the guild.","examples":["// Edit the guild system channel\nguild.setSystemChannel(channel)\n .then(updated => console.log(`Updated guild system channel to ${guild.systemChannel.name}`))\n .catch(console.error);"],"params":[{"name":"systemChannel","description":"The new system channel","type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's system channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1147,"file":"Guild.js","path":"src/structures"}},{"name":"setAFKTimeout","description":"Edits the AFK timeout of the guild.","examples":["// Edit the guild AFK channel\nguild.setAFKTimeout(60)\n .then(updated => console.log(`Updated guild AFK timeout to ${guild.afkTimeout}`))\n .catch(console.error);"],"params":[{"name":"afkTimeout","description":"The time in seconds that a user must be idle to be considered AFK","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the guild's AFK timeout","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1162,"file":"Guild.js","path":"src/structures"}},{"name":"setIcon","description":"Sets a new guild icon.","examples":["// Edit the guild icon\nguild.setIcon('./icon.png')\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.error);"],"params":[{"name":"icon","description":"The new icon of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's icon","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1177,"file":"Guild.js","path":"src/structures"}},{"name":"setOwner","description":"Sets a new owner of the guild.","examples":["// Edit the guild owner\nguild.setOwner(guild.members.cache.first())\n .then(guild => guild.fetchOwner())\n .then(owner => console.log(`Updated the guild owner to ${owner.displayName}`))\n .catch(console.error);"],"params":[{"name":"owner","description":"The new owner of the guild","type":[[["GuildMemberResolvable"]]]},{"name":"reason","description":"Reason for setting the new owner","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1193,"file":"Guild.js","path":"src/structures"}},{"name":"setSplash","description":"Sets a new guild invite splash image.","examples":["// Edit the guild splash\nguild.setSplash('./splash.png')\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.error);"],"params":[{"name":"splash","description":"The new invite splash image of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's invite splash image","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1208,"file":"Guild.js","path":"src/structures"}},{"name":"setDiscoverySplash","description":"Sets a new guild discovery splash image.","examples":["// Edit the guild discovery splash\nguild.setDiscoverySplash('./discoverysplash.png')\n .then(updated => console.log('Updated the guild discovery splash'))\n .catch(console.error);"],"params":[{"name":"discoverySplash","description":"The new discovery splash image of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's discovery splash image","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1223,"file":"Guild.js","path":"src/structures"}},{"name":"setBanner","description":"Sets a new guild banner.","examples":["guild.setBanner('./banner.png')\n .then(updated => console.log('Updated the guild banner'))\n .catch(console.error);"],"params":[{"name":"banner","description":"The new banner of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's banner","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1237,"file":"Guild.js","path":"src/structures"}},{"name":"setRulesChannel","description":"Edits the rules channel of the guild.","examples":["// Edit the guild rules channel\nguild.setRulesChannel(channel)\n .then(updated => console.log(`Updated guild rules channel to ${guild.rulesChannel.name}`))\n .catch(console.error);"],"params":[{"name":"rulesChannel","description":"The new rules channel","type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's rules channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1252,"file":"Guild.js","path":"src/structures"}},{"name":"setPosition","description":"Change Guild Position (from * to Folder or Home)","examples":["// Move guild to folderID 123456, index 1\nguild.setPosition(1, 'FOLDER', 123456)\n.then(guild => console.log(`Guild moved to folderID ${guild.folder.folderId}`));"],"params":[{"name":"position","description":"Guild Position\n* **WARNING**: Type = `FOLDER`, newPosition is the guild's index in the Folder.","type":[[["number"]]]},{"name":"type","description":"Move to folder or home\n* `FOLDER`: 1\n* `HOME`: 2","type":[[["string"]],[["number"]]]},{"name":"folderID","description":"If you want to move to folder","type":[[["string"]],[["number"]],[["void"]],[["null"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1269,"file":"Guild.js","path":"src/structures"}},{"name":"setPublicUpdatesChannel","description":"Edits the community updates channel of the guild.","examples":["// Edit the guild community updates channel\nguild.setPublicUpdatesChannel(channel)\n .then(updated => console.log(`Updated guild community updates channel to ${guild.publicUpdatesChannel.name}`))\n .catch(console.error);"],"params":[{"name":"publicUpdatesChannel","description":"The new community updates channel","type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's community updates channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1308,"file":"Guild.js","path":"src/structures"}},{"name":"setPreferredLocale","description":"Edits the preferred locale of the guild.","examples":["// Edit the guild preferred locale\nguild.setPreferredLocale('en-US')\n .then(updated => console.log(`Updated guild preferred locale to ${guild.preferredLocale}`))\n .catch(console.error);"],"params":[{"name":"preferredLocale","description":"The new preferred locale of the guild","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild's preferred locale","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1323,"file":"Guild.js","path":"src/structures"}},{"name":"setPremiumProgressBarEnabled","description":"Edits the enabled state of the guild's premium progress bar","params":[{"name":"enabled","description":"The new enabled state of the guild's premium progress bar","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the state of the guild's premium progress bar","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1333,"file":"Guild.js","path":"src/structures"}},{"name":"setChannelPositions","description":"Batch-updates the guild's channels' positions.\nOnly one channel's parent can be changed at a time","examples":["guild.setChannelPositions([{ channel: channelId, position: newChannelIndex }])\n .then(guild => console.log(`Updated channel positions for ${guild}`))\n .catch(console.error);"],"deprecated":"Use {@link GuildChannelManager#setPositions} instead","params":[{"name":"channelPositions","description":"Channel positions to update","type":[[["Array","<"],["ChannelPosition",">"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1364,"file":"Guild.js","path":"src/structures"}},{"name":"setRolePositions","description":"Batch-updates the guild's role positions","examples":["guild.setRolePositions([{ role: roleId, position: updatedRoleIndex }])\n .then(guild => console.log(`Role positions updated for ${guild}`))\n .catch(console.error);"],"deprecated":"Use {@link RoleManager#setPositions} instead","params":[{"name":"rolePositions","description":"Role positions to update","type":[[["Array","<"],["GuildRolePosition",">"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1394,"file":"Guild.js","path":"src/structures"}},{"name":"setWidgetSettings","description":"Edits the guild's widget settings.","params":[{"name":"settings","description":"The widget settings for the guild","type":[[["GuildWidgetSettingsData"]]]},{"name":"reason","description":"Reason for changing the guild's widget settings","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1413,"file":"Guild.js","path":"src/structures"}},{"name":"leave","description":"Leaves the guild.","examples":["// Leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1433,"file":"Guild.js","path":"src/structures"}},{"name":"delete","description":"Deletes the guild.","examples":["// Delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1448,"file":"Guild.js","path":"src/structures"}},{"name":"equals","description":"Whether this guild equals another guild. It compares all properties, so for most operations\nit is advisable to just compare `guild.id === guild2.id` as it is much faster and is often\nwhat most users need.","params":[{"name":"guild","description":"The guild to compare with","type":[[["Guild"]]]}],"returns":[[["boolean"]]],"meta":{"line":1460,"file":"Guild.js","path":"src/structures"}},{"name":"setCommunity","description":"Set Community Feature","params":[{"name":"stats","description":"True / False to enable / disable Community Feature","default":true,"type":[[["boolean"]]]},{"name":"publicUpdatesChannel","description":"The community updates channel of the guild","default":"1","type":[[["TextChannelResolvable"]]]},{"name":"rulesChannel","description":"The new rules channel","default":"1","type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the community feature","type":[[["string"]]]}],"async":true,"meta":{"line":1487,"file":"Guild.js","path":"src/structures"}},{"name":"_sortedRoles","description":"Creates a collection of this guild's roles, sorted by their position and ids.","access":"private","returns":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":1562,"file":"Guild.js","path":"src/structures"}},{"name":"_sortedChannels","description":"Creates a collection of this guild's or a specific category's channels, sorted by their position and ids.","access":"private","params":[{"name":"channel","description":"Category to get the channels of","optional":true,"type":[[["GuildChannel"]]]}],"returns":[[["Collection","<"],["Snowflake",", "],["GuildChannel",">"]]],"meta":{"line":1572,"file":"Guild.js","path":"src/structures"}},{"name":"bannerURL","description":"The URL to this guild's banner.","inherits":"AnonymousGuild#bannerURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":74,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"splashURL","description":"The URL to this guild's invite splash image.","inherits":"AnonymousGuild#splashURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"name":"GuildAuditLogs","description":"Audit logs entries are held in this class.","props":[{"name":"webhooks","description":"Cached webhooks","access":"private","type":[[["Collection","<"],["Snowflake",", "],["Webhook",">"]]],"meta":{"line":177,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"integrations","description":"Cached integrations","access":"private","type":[[["Collection","<("],["Snowflake","|"],["string","), "],["Integration",">"]]],"meta":{"line":189,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"entries","description":"The entries for this guild's audit logs","type":[[["Collection","<"],["Snowflake",", "],["GuildAuditLogsEntry",">"]]],"meta":{"line":200,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"Targets","description":"Key mirror of all available audit log targets.","scope":"static","type":[[["Object","<"],["string",", "],["string",">"]]],"meta":{"line":32,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"Actions","description":"All available actions keyed under their names to their numeric values.","scope":"static","type":[[["Object","<"],["string",", "],["number",">"]]],"meta":{"line":109,"file":"GuildAuditLogs.js","path":"src/structures"}}],"methods":[{"name":"build","description":"Handles possible promises for entry targets.","scope":"static","async":true,"returns":[[["Promise","<"],["GuildAuditLogs",">"]]],"meta":{"line":211,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"targetType","description":"Finds the target type from the entry action.","scope":"static","params":[{"name":"target","description":"The action target","type":[[["AuditLogAction"]]]}],"returns":[[["AuditLogTargetType"]]],"meta":{"line":243,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"actionType","description":"Finds the action type from the entry action.","scope":"static","params":[{"name":"action","description":"The action target","type":[[["AuditLogAction"]]]}],"returns":[[["AuditLogActionType"]]],"meta":{"line":274,"file":"GuildAuditLogs.js","path":"src/structures"}}],"meta":{"line":168,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"GuildAuditLogsEntry","description":"Audit logs entry.","props":[{"name":"targetType","description":"The target type of this entry","type":[[["AuditLogTargetType"]]],"meta":{"line":361,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"actionType","description":"The action type of this entry","type":[[["AuditLogActionType"]]],"meta":{"line":367,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"action","description":"Specific action type of this entry in its string presentation","type":[[["AuditLogAction"]]],"meta":{"line":373,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"reason","description":"The reason of this entry","nullable":true,"type":[[["string"]]],"meta":{"line":379,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"executor","description":"The user that executed this entry","nullable":true,"type":[[["User"]]],"meta":{"line":385,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"changes","description":"Specific property changes","nullable":true,"type":[[["Array","<"],["AuditLogChange",">"]]],"meta":{"line":403,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"id","description":"The entry's id","type":[[["Snowflake"]]],"meta":{"line":409,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"extra","description":"Any extra data from the entry","nullable":true,"type":[[["Object"]],[["Role"]],[["GuildMember"]]],"meta":{"line":415,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"target","description":"The target of this entry","nullable":true,"type":[[["AuditLogEntryTarget"]]],"meta":{"line":487,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this entry was created at","readonly":true,"type":[[["number"]]],"meta":{"line":616,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"createdAt","description":"The time this entry was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":625,"file":"GuildAuditLogs.js","path":"src/structures"}}],"meta":{"line":354,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"GuildBan","description":"Represents a ban in a guild on Discord.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild in which the ban is","type":[[["Guild"]]],"meta":{"line":17,"file":"GuildBan.js","path":"src/structures"}},{"name":"user","description":"The user this ban applies to","type":[[["User"]]],"meta":{"line":28,"file":"GuildBan.js","path":"src/structures"}},{"name":"reason","description":"The reason for the ban","nullable":true,"type":[[["string"]]],"meta":{"line":36,"file":"GuildBan.js","path":"src/structures"}},{"name":"partial","description":"Whether this GuildBan is partial. If the reason is not provided the value is null","readonly":true,"type":[[["boolean"]]],"meta":{"line":45,"file":"GuildBan.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Fetches this GuildBan.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["GuildBan",">"]]],"meta":{"line":54,"file":"GuildBan.js","path":"src/structures"}}],"meta":{"line":9,"file":"GuildBan.js","path":"src/structures"}},{"name":"GuildChannel","description":"Represents a guild channel from any of the following:\n- {@link TextChannel}\n- {@link VoiceChannel}\n- {@link CategoryChannel}\n- {@link NewsChannel}\n- {@link StoreChannel}\n- {@link StageChannel}","extends":[[["Channel"]]],"abstract":true,"props":[{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":261,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":22,"file":"GuildChannel.js","path":"src/structures"}},{"name":"GuildEmoji","description":"Represents a custom emoji.","extends":[[["BaseGuildEmoji"]]],"props":[{"name":"author","description":"The user who created this emoji","nullable":true,"type":[[["User"]]],"meta":{"line":20,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"_roles","description":"Array of role ids this emoji is active for","access":"private","type":[[["Array","<"],["Snowflake",">"]]],"meta":{"line":22,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"guild","description":"The guild this emoji is part of","type":[[["Guild"]]],"meta":{"line":33,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"deletable","description":"Whether the emoji is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":57,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"roles","description":"A manager for roles this emoji is active for.","readonly":true,"type":[[["GuildEmojiRoleManager"]]],"meta":{"line":67,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"requiresColons","description":"Whether or not this emoji requires colons surrounding it","nullable":true,"type":[[["boolean"]]],"meta":{"line":35,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"managed","description":"Whether this emoji is managed by an external service","nullable":true,"type":[[["boolean"]]],"meta":{"line":43,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"available","description":"Whether this emoji is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetchAuthor","description":"Fetches the author for this emoji","async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":75,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"edit","description":"Edits the emoji.","examples":["// Edit an emoji\nemoji.edit({ name: 'newemoji' })\n .then(e => console.log(`Edited emoji ${e}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the emoji","type":[[["GuildEmojiEditData"]]]},{"name":"reason","description":"Reason for editing this emoji","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":107,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"setName","description":"Sets the name of the emoji.","params":[{"name":"name","description":"The new name for the emoji","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the emoji's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":130,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"delete","description":"Deletes the emoji.","params":[{"name":"reason","description":"Reason for deleting the emoji","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":139,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"equals","description":"Whether this emoji is the same as another one.","params":[{"name":"other","description":"The emoji to compare it to","type":[[["GuildEmoji"]],[["APIEmoji"]]]}],"returns":[[["boolean"]]],"meta":{"line":149,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":12,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"GuildMember","description":"Represents a member of a guild on Discord.","extends":[[["Base"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"guild","description":"The guild that this member is part of","type":[[["Guild"]]],"meta":{"line":32,"file":"GuildMember.js","path":"src/structures"}},{"name":"joinedTimestamp","description":"The timestamp the member joined the guild at","nullable":true,"type":[[["number"]]],"meta":{"line":38,"file":"GuildMember.js","path":"src/structures"}},{"name":"premiumSinceTimestamp","description":"The last timestamp this member started boosting the guild","nullable":true,"type":[[["number"]]],"meta":{"line":44,"file":"GuildMember.js","path":"src/structures"}},{"name":"nickname","description":"The nickname of this member, if they have one","nullable":true,"type":[[["string"]]],"meta":{"line":50,"file":"GuildMember.js","path":"src/structures"}},{"name":"pending","description":"Whether this member has yet to pass the guild's membership gate","type":[[["boolean"]]],"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"name":"communicationDisabledUntilTimestamp","description":"The timestamp this member's timeout will be removed","nullable":true,"type":[[["number"]]],"meta":{"line":62,"file":"GuildMember.js","path":"src/structures"}},{"name":"user","description":"The user that this guild member instance represents","nullable":true,"type":[[["User"]]],"meta":{"line":74,"file":"GuildMember.js","path":"src/structures"}},{"name":"avatar","description":"The guild member's avatar hash","nullable":true,"type":[[["string"]]],"meta":{"line":83,"file":"GuildMember.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":111,"file":"GuildMember.js","path":"src/structures"}},{"name":"partial","description":"Whether this GuildMember is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":141,"file":"GuildMember.js","path":"src/structures"}},{"name":"roles","description":"A manager for the roles belonging to this member","readonly":true,"type":[[["GuildMemberRoleManager"]]],"meta":{"line":150,"file":"GuildMember.js","path":"src/structures"}},{"name":"voice","description":"The voice state of this member","readonly":true,"type":[[["VoiceState"]]],"meta":{"line":159,"file":"GuildMember.js","path":"src/structures"}},{"name":"joinedAt","description":"The time this member joined the guild","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":188,"file":"GuildMember.js","path":"src/structures"}},{"name":"communicationDisabledUntil","description":"The time this member's timeout will be removed","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":197,"file":"GuildMember.js","path":"src/structures"}},{"name":"premiumSince","description":"The last time this member started boosting the guild","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":206,"file":"GuildMember.js","path":"src/structures"}},{"name":"presence","description":"The presence of this guild member","readonly":true,"nullable":true,"type":[[["Presence"]]],"meta":{"line":215,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayColor","description":"The displayed color of this member in base 10","readonly":true,"type":[[["number"]]],"meta":{"line":224,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayHexColor","description":"The displayed color of this member in hexadecimal","readonly":true,"type":[[["string"]]],"meta":{"line":233,"file":"GuildMember.js","path":"src/structures"}},{"name":"id","description":"The member's id","readonly":true,"type":[[["Snowflake"]]],"meta":{"line":242,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayName","description":"The nickname of this member, or their username if they don't have one","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":251,"file":"GuildMember.js","path":"src/structures"}},{"name":"permissions","description":"The overall set of permissions for this member, taking only roles and owner status into account","readonly":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":260,"file":"GuildMember.js","path":"src/structures"}},{"name":"manageable","description":"Whether the client user is above this user in the hierarchy, according to role position and guild ownership.\nThis is a prerequisite for many moderative actions.","readonly":true,"type":[[["boolean"]]],"meta":{"line":271,"file":"GuildMember.js","path":"src/structures"}},{"name":"kickable","description":"Whether this member is kickable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":284,"file":"GuildMember.js","path":"src/structures"}},{"name":"bannable","description":"Whether this member is bannable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":293,"file":"GuildMember.js","path":"src/structures"}},{"name":"moderatable","description":"Whether this member is moderatable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":302,"file":"GuildMember.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"avatarURL","description":"A link to the member's guild avatar.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":168,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayAvatarURL","description":"A link to the member's guild avatar if they have one.\nOtherwise, a link to their {@link User#displayAvatarURL} will be returned.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":[[["string"]]],"meta":{"line":179,"file":"GuildMember.js","path":"src/structures"}},{"name":"isCommunicationDisabled","description":"Whether this member is currently timed out","returns":[[["boolean"]]],"meta":{"line":310,"file":"GuildMember.js","path":"src/structures"}},{"name":"permissionsIn","description":"Returns `channel.permissionsFor(guildMember)`. Returns permissions for a member in a guild channel,\ntaking into account roles and permission overwrites.","params":[{"name":"channel","description":"The guild channel to use as context","type":[[["GuildChannelResolvable"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":320,"file":"GuildMember.js","path":"src/structures"}},{"name":"edit","description":"Edits this member.","params":[{"name":"data","description":"The data to edit the member with","type":[[["GuildMemberEditData"]]]},{"name":"reason","description":"Reason for editing this user","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":332,"file":"GuildMember.js","path":"src/structures"}},{"name":"setNickname","description":"Sets the nickname for this member.","params":[{"name":"nick","description":"The nickname for the guild member, or `null` if you want to reset their nickname","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for setting the nickname","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":342,"file":"GuildMember.js","path":"src/structures"}},{"name":"createDM","description":"Creates a DM channel between the client and this member.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":351,"file":"GuildMember.js","path":"src/structures"}},{"name":"deleteDM","description":"Deletes any DMs with this member.","returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":359,"file":"GuildMember.js","path":"src/structures"}},{"name":"kick","description":"Kicks this member from the guild.","params":[{"name":"reason","description":"Reason for kicking user","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":368,"file":"GuildMember.js","path":"src/structures"}},{"name":"ban","description":"Bans this guild member.","examples":["// ban a guild member\nguildMember.ban({ days: 7, reason: 'They deserved it' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for the ban","optional":true,"type":[[["BanOptions"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":382,"file":"GuildMember.js","path":"src/structures"}},{"name":"disableCommunicationUntil","description":"Times this guild member out.","examples":["// Time a guild member out for 5 minutes\nguildMember.disableCommunicationUntil(Date.now() + (5 * 60 * 1000), 'They deserved it')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"communicationDisabledUntil","description":"The date or timestamp\nfor the member's communication to be disabled until. Provide `null` to remove the timeout.","type":[[["DateResolvable"]],[["null"]]]},{"name":"reason","description":"The reason for this timeout.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":398,"file":"GuildMember.js","path":"src/structures"}},{"name":"timeout","description":"Times this guild member out.","examples":["// Time a guild member out for 5 minutes\nguildMember.timeout(5 * 60 * 1000, 'They deserved it')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"timeout","description":"The time in milliseconds\nfor the member's communication to be disabled until. Provide `null` to remove the timeout.","type":[[["number"]],[["null"]]]},{"name":"reason","description":"The reason for this timeout.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":414,"file":"GuildMember.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this GuildMember.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":423,"file":"GuildMember.js","path":"src/structures"}},{"name":"equals","description":"Whether this guild member equals another guild member. It compares all properties, so for most\ncomparison it is advisable to just compare `member.id === member2.id` as it is significantly faster\nand is often what most users need.","params":[{"name":"member","description":"The member to compare with","type":[[["GuildMember"]]]}],"returns":[[["boolean"]]],"meta":{"line":434,"file":"GuildMember.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the user's mention instead of the GuildMember object.","examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${member}!`);"],"returns":[[["string"]]],"meta":{"line":457,"file":"GuildMember.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":24,"file":"GuildMember.js","path":"src/structures"}},{"name":"GuildPreview","description":"Represents the data about the guild any bot can preview, connected to the specified guild.","extends":[[["Base"]]],"props":[{"name":"id","description":"The id of this guild","type":[[["string"]]],"meta":{"line":26,"file":"GuildPreview.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":33,"file":"GuildPreview.js","path":"src/structures"}},{"name":"icon","description":"The icon of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":41,"file":"GuildPreview.js","path":"src/structures"}},{"name":"splash","description":"The splash icon of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":49,"file":"GuildPreview.js","path":"src/structures"}},{"name":"discoverySplash","description":"The discovery splash icon of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":57,"file":"GuildPreview.js","path":"src/structures"}},{"name":"features","description":"An array of enabled guild features","type":[[["Array","<"],["Features",">"]]],"meta":{"line":65,"file":"GuildPreview.js","path":"src/structures"}},{"name":"approximateMemberCount","description":"The approximate count of members in this guild","type":[[["number"]]],"meta":{"line":73,"file":"GuildPreview.js","path":"src/structures"}},{"name":"approximatePresenceCount","description":"The approximate count of online members in this guild","type":[[["number"]]],"meta":{"line":81,"file":"GuildPreview.js","path":"src/structures"}},{"name":"description","description":"The description for this guild","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"GuildPreview.js","path":"src/structures"}},{"name":"emojis","description":"Collection of emojis belonging to this guild","type":[[["Collection","<"],["Snowflake",", "],["GuildPreviewEmoji",">"]]],"meta":{"line":99,"file":"GuildPreview.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":112,"file":"GuildPreview.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":121,"file":"GuildPreview.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"splashURL","description":"The URL to this guild's splash.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":130,"file":"GuildPreview.js","path":"src/structures"}},{"name":"discoverySplashURL","description":"The URL to this guild's discovery splash.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":139,"file":"GuildPreview.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":148,"file":"GuildPreview.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","async":true,"returns":[[["Promise","<"],["GuildPreview",">"]]],"meta":{"line":156,"file":"GuildPreview.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","examples":["// Logs: Hello from My Guild!\nconsole.log(`Hello from ${previewGuild}!`);"],"returns":[[["string"]]],"meta":{"line":169,"file":"GuildPreview.js","path":"src/structures"}}],"meta":{"line":12,"file":"GuildPreview.js","path":"src/structures"}},{"name":"GuildPreviewEmoji","description":"Represents an instance of an emoji belonging to a public guild obtained through Discord's preview endpoint.","extends":[[["BaseGuildEmoji"]]],"props":[{"name":"guild","description":"The public guild this emoji is part of","type":[[["GuildPreview"]]],"meta":{"line":10,"file":"GuildPreviewEmoji.js","path":"src/structures"}},{"name":"roles","description":"The roles this emoji is active for","type":[[["Array","<"],["Snowflake",">"]]],"meta":{"line":23,"file":"GuildPreviewEmoji.js","path":"src/structures"}},{"name":"requiresColons","description":"Whether or not this emoji requires colons surrounding it","nullable":true,"type":[[["boolean"]]],"meta":{"line":35,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"managed","description":"Whether this emoji is managed by an external service","nullable":true,"type":[[["boolean"]]],"meta":{"line":43,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"available","description":"Whether this emoji is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":9,"file":"GuildPreviewEmoji.js","path":"src/structures"}},{"name":"GuildScheduledEvent","description":"Represents a scheduled event in a {@link Guild}.","extends":[[["Base"]]],"props":[{"name":"id","description":"The id of the guild scheduled event","type":[[["Snowflake"]]],"meta":{"line":25,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this guild scheduled event belongs to","type":[[["Snowflake"]]],"meta":{"line":31,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"channelId","description":"The channel id in which the scheduled event will be hosted, or `null` if entity type is `EXTERNAL`","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":42,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"creatorId","description":"The id of the user that created this guild scheduled event","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"name","description":"The name of the guild scheduled event","type":[[["string"]]],"meta":{"line":61,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"description","description":"The description of the guild scheduled event","nullable":true,"type":[[["string"]]],"meta":{"line":68,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledStartTimestamp","description":"The timestamp the guild scheduled event will start at\nThis can be potentially `null` only when it's an {@link AuditLogEntryTarget}","nullable":true,"type":[[["number"]]],"meta":{"line":78,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledEndTimestamp","description":"The timestamp the guild scheduled event will end at,\nor `null` if the event does not have a scheduled time to end","nullable":true,"type":[[["number"]]],"meta":{"line":85,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"privacyLevel","description":"The privacy level of the guild scheduled event","type":[[["PrivacyLevel"]]],"meta":{"line":91,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"status","description":"The status of the guild scheduled event","type":[[["GuildScheduledEventStatus"]]],"meta":{"line":97,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"entityType","description":"The type of hosting entity associated with the scheduled event","type":[[["GuildScheduledEventEntityType"]]],"meta":{"line":103,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"entityId","description":"The id of the hosting entity associated with the scheduled event","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":110,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"userCount","description":"The number of users who are subscribed to this guild scheduled event","nullable":true,"type":[[["number"]]],"meta":{"line":120,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"creator","description":"The user that created this guild scheduled event","nullable":true,"type":[[["User"]]],"meta":{"line":130,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"entityMetadata","description":"Additional metadata","nullable":true,"type":[[["GuildScheduledEventEntityMetadata"]]],"meta":{"line":150,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the guild scheduled event was created at","readonly":true,"type":[[["number"]]],"meta":{"line":166,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"createdAt","description":"The time the guild scheduled event was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":175,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledStartAt","description":"The time the guild scheduled event will start at","readonly":true,"type":[[["Date"]]],"meta":{"line":184,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledEndAt","description":"The time the guild scheduled event will end at,\nor `null` if the event does not have a scheduled time to end","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":194,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"channel","description":"The channel associated with this scheduled event","readonly":true,"nullable":true,"type":[[["VoiceChannel"]],[["StageChannel"]]],"meta":{"line":203,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"guild","description":"The guild this scheduled event belongs to","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":212,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"url","description":"The URL to the guild scheduled event","readonly":true,"type":[[["string"]]],"meta":{"line":221,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"createInviteURL","description":"Creates an invite URL to this guild scheduled event.","params":[{"name":"options","description":"The options to create the invite","optional":true,"type":[[["CreateGuildScheduledEventInviteURLOptions"]]]}],"async":true,"returns":[[["Promise","<"],["string",">"]]],"meta":{"line":237,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"edit","description":"Edits this guild scheduled event.","examples":["// Edit a guild scheduled event\nguildScheduledEvent.edit({ name: 'Party' })\n .then(guildScheduledEvent => console.log(guildScheduledEvent))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to edit the guild scheduled event","type":[[["GuildScheduledEventEditOptions"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":258,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"delete","description":"Deletes this guild scheduled event.","examples":["// Delete a guild scheduled event\nguildScheduledEvent.delete()\n .then(guildScheduledEvent => console.log(guildScheduledEvent))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":271,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild scheduled event.","examples":["// Set name of a guild scheduled event\nguildScheduledEvent.setName('Birthday Party')\n .then(guildScheduledEvent => console.log(`Set the name to: ${guildScheduledEvent.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name of the guild scheduled event","type":[[["string"]]]},{"name":"reason","description":"The reason for changing the name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":287,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setScheduledStartTime","description":"Sets a new time to schedule the event at.","examples":["// Set start time of a guild scheduled event\nguildScheduledEvent.setScheduledStartTime('2022-09-24T00:00:00+05:30')\n .then(guildScheduledEvent => console.log(`Set the start time to: ${guildScheduledEvent.scheduledStartTime}`))\n .catch(console.error);"],"params":[{"name":"scheduledStartTime","description":"The time to schedule the event at","type":[[["DateResolvable"]]]},{"name":"reason","description":"The reason for changing the scheduled start time","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":302,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setScheduledEndTime","description":"Sets a new time to end the event at.","examples":["// Set end time of a guild scheduled event\nguildScheduledEvent.setScheduledEndTime('2022-09-25T00:00:00+05:30')\n .then(guildScheduledEvent => console.log(`Set the end time to: ${guildScheduledEvent.scheduledEndTime}`))\n .catch(console.error);"],"params":[{"name":"scheduledEndTime","description":"The time to end the event at","type":[[["DateResolvable"]]]},{"name":"reason","description":"The reason for changing the scheduled end time","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":318,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setDescription","description":"Sets the new description of the guild scheduled event.","examples":["// Set description of a guild scheduled event\nguildScheduledEvent.setDescription('A virtual birthday party')\n .then(guildScheduledEvent => console.log(`Set the description to: ${guildScheduledEvent.description}`))\n .catch(console.error);"],"params":[{"name":"description","description":"The description of the guild scheduled event","type":[[["string"]]]},{"name":"reason","description":"The reason for changing the description","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":333,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setStatus","description":"Sets the new status of the guild scheduled event.\nIf you're working with TypeScript, use this method in conjunction with status type-guards\nlike {@link GuildScheduledEvent#isScheduled} to get only valid status as suggestion","examples":["// Set status of a guild scheduled event\nguildScheduledEvent.setStatus('ACTIVE')\n .then(guildScheduledEvent => console.log(`Set the status to: ${guildScheduledEvent.status}`))\n .catch(console.error);"],"params":[{"name":"status","description":"The status of the guild scheduled event","type":[[["GuildScheduledEventStatus"]],[["number"]]]},{"name":"reason","description":"The reason for changing the status","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":350,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setLocation","description":"Sets the new location of the guild scheduled event.","examples":["// Set location of a guild scheduled event\nguildScheduledEvent.setLocation('Earth')\n .then(guildScheduledEvent => console.log(`Set the location to: ${guildScheduledEvent.entityMetadata.location}`))\n .catch(console.error);"],"params":[{"name":"location","description":"The location of the guild scheduled event","type":[[["string"]]]},{"name":"reason","description":"The reason for changing the location","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":365,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"fetchSubscribers","description":"Fetches subscribers of this guild scheduled event.","params":[{"name":"options","description":"Options for fetching the subscribers","optional":true,"type":[[["FetchGuildScheduledEventSubscribersOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildScheduledEventUser",">>"]]],"meta":{"line":374,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically concatenates the event's URL instead of the object.","examples":["// Logs: Event: https://discord.com/events/412345678901234567/499876543211234567\nconsole.log(`Event: ${guildScheduledEvent}`);"],"returns":[[["string"]]],"meta":{"line":385,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isActive","description":"Indicates whether this guild scheduled event has an `ACTIVE` status.","returns":[[["boolean"]]],"meta":{"line":393,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isCanceled","description":"Indicates whether this guild scheduled event has a `CANCELED` status.","returns":[[["boolean"]]],"meta":{"line":401,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isCompleted","description":"Indicates whether this guild scheduled event has a `COMPLETED` status.","returns":[[["boolean"]]],"meta":{"line":409,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isScheduled","description":"Indicates whether this guild scheduled event has a `SCHEDULED` status.","returns":[[["boolean"]]],"meta":{"line":417,"file":"GuildScheduledEvent.js","path":"src/structures"}}],"meta":{"line":17,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"GuildTemplate","description":"Represents the template for a guild.","extends":[[["Base"]]],"props":[{"name":"code","description":"The unique code of this template","type":[[["string"]]],"meta":{"line":24,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"name","description":"The name of this template","type":[[["string"]]],"meta":{"line":32,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"description","description":"The description of this template","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"usageCount","description":"The amount of times this template has been used","type":[[["number"]]],"meta":{"line":48,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"creatorId","description":"The id of the user that created this template","type":[[["Snowflake"]]],"meta":{"line":56,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"creator","description":"The user that created this template","type":[[["User"]]],"meta":{"line":64,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"createdAt","description":"The time when this template was created at","type":[[["Date"]]],"meta":{"line":72,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"updatedAt","description":"The time when this template was last synced to the guild","type":[[["Date"]]],"meta":{"line":80,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild that this template belongs to","type":[[["Snowflake"]]],"meta":{"line":88,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"serializedGuild","description":"The data of the guild that this template would create","type":[[["APIGuild"]]],"meta":{"line":96,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"unSynced","description":"Whether this template has unsynced changes","nullable":true,"type":[[["boolean"]]],"meta":{"line":103,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp of when this template was created at","readonly":true,"type":[[["number"]]],"meta":{"line":187,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"updatedTimestamp","description":"The timestamp of when this template was last synced to the guild","readonly":true,"type":[[["number"]]],"meta":{"line":196,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"guild","description":"The guild that this template belongs to","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":205,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"url","description":"The URL of this template","readonly":true,"type":[[["string"]]],"meta":{"line":214,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}},{"name":"GUILD_TEMPLATES_PATTERN","description":"Regular expression that globally matches guild template links","scope":"static","type":[[["RegExp"]]],"meta":{"line":234,"file":"GuildTemplate.js","path":"src/structures"}}],"methods":[{"name":"createGuild","description":"Creates a guild based on this template.\nThis is only available to bots in fewer than 10 guilds.","params":[{"name":"name","description":"The name of the guild","type":[[["string"]]]},{"name":"icon","description":"The icon for the guild","optional":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":115,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"edit","description":"Updates the metadata of this template.","params":[{"name":"options","description":"Options for editing the template","optional":true,"type":[[["EditGuildTemplateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":159,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"delete","description":"Deletes this template.","async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":168,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"sync","description":"Syncs this template to the current state of the guild.","async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":177,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the template's code instead of the template object.","examples":["// Logs: Template: FKvmczH2HyUf\nconsole.log(`Template: ${guildTemplate}!`);"],"returns":[[["string"]]],"meta":{"line":225,"file":"GuildTemplate.js","path":"src/structures"}}],"meta":{"line":12,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"Integration","description":"Represents a guild integration.","props":[{"name":"guild","description":"The guild this integration belongs to","type":[[["Guild"]]],"meta":{"line":32,"file":"Integration.js","path":"src/structures"}},{"name":"id","description":"The integration id","type":[[["Snowflake"]],[["string"]]],"meta":{"line":38,"file":"Integration.js","path":"src/structures"}},{"name":"name","description":"The integration name","type":[[["string"]]],"meta":{"line":44,"file":"Integration.js","path":"src/structures"}},{"name":"type","description":"The integration type","type":[[["IntegrationType"]]],"meta":{"line":50,"file":"Integration.js","path":"src/structures"}},{"name":"enabled","description":"Whether this integration is enabled","type":[[["boolean"]]],"meta":{"line":56,"file":"Integration.js","path":"src/structures"}},{"name":"syncing","description":"Whether this integration is syncing","nullable":true,"type":[[["boolean"]]],"meta":{"line":62,"file":"Integration.js","path":"src/structures"}},{"name":"role","description":"The role that this integration uses for subscribers","nullable":true,"type":[[["Role"]]],"meta":{"line":68,"file":"Integration.js","path":"src/structures"}},{"name":"enableEmoticons","description":"Whether emoticons should be synced for this integration (twitch only currently)","nullable":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"Integration.js","path":"src/structures"}},{"name":"user","description":"The user for this integration","nullable":true,"type":[[["User"]]],"meta":{"line":85,"file":"Integration.js","path":"src/structures"}},{"name":"account","description":"The account integration information","type":[[["IntegrationAccount"]]],"meta":{"line":94,"file":"Integration.js","path":"src/structures"}},{"name":"syncedAt","description":"The last time this integration was last synced","nullable":true,"type":[[["number"]]],"meta":{"line":100,"file":"Integration.js","path":"src/structures"}},{"name":"subscriberCount","description":"How many subscribers this integration has","nullable":true,"type":[[["number"]]],"meta":{"line":107,"file":"Integration.js","path":"src/structures"}},{"name":"revoked","description":"Whether this integration has been revoked","nullable":true,"type":[[["boolean"]]],"meta":{"line":117,"file":"Integration.js","path":"src/structures"}},{"name":"roles","description":"All roles that are managed by this integration","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":130,"file":"Integration.js","path":"src/structures"}},{"name":"expireBehavior","description":"The behavior of expiring subscribers","nullable":true,"type":[[["number"]]],"meta":{"line":141,"file":"Integration.js","path":"src/structures"}},{"name":"expireGracePeriod","description":"The grace period before expiring subscribers","nullable":true,"type":[[["number"]]],"meta":{"line":149,"file":"Integration.js","path":"src/structures"}},{"name":"application","description":"The application for this integration","nullable":true,"type":[[["IntegrationApplication"]]],"meta":{"line":160,"file":"Integration.js","path":"src/structures"}}],"methods":[{"name":"delete","description":"Deletes this integration.","params":[{"name":"reason","description":"Reason for deleting this integration","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Integration",">"]]],"meta":{"line":172,"file":"Integration.js","path":"src/structures"}}],"meta":{"line":24,"file":"Integration.js","path":"src/structures"}},{"name":"IntegrationApplication","description":"Represents an Integration's OAuth2 Application.","extends":[[["Application"]]],"props":[{"name":"bot","description":"The bot user for this application","nullable":true,"type":[[["User"]]],"meta":{"line":18,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"termsOfServiceURL","description":"The URL of the application's terms of service","nullable":true,"type":[[["string"]]],"meta":{"line":28,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"privacyPolicyURL","description":"The URL of the application's privacy policy","nullable":true,"type":[[["string"]]],"meta":{"line":38,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"rpcOrigins","description":"The Array of RPC origin URLs","type":[[["Array","<"],["string",">"]]],"meta":{"line":48,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"summary","description":"The application's summary","nullable":true,"type":[[["string"]]],"meta":{"line":58,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"hook","description":"Whether the application can be default hooked by the client","nullable":true,"type":[[["boolean"]]],"meta":{"line":68,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"cover","description":"The hash of the application's cover image","nullable":true,"type":[[["string"]]],"meta":{"line":78,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"verifyKey","description":"The hex-encoded key for verification in interactions and the GameSDK's GetTicket","nullable":true,"type":[[["string"]]],"meta":{"line":88,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"id","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"name","description":"The name of the application","nullable":true,"type":[[["string"]]],"meta":{"line":34,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"description","description":"The application's description","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"icon","description":"The application's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":54,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdTimestamp","description":"The timestamp the application was created at","readonly":true,"type":[[["number"]]],"meta":{"line":65,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdAt","description":"The time the application was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":74,"file":"Application.js","path":"src/structures/interfaces"}}],"methods":[{"name":"iconURL","description":"A link to the application's icon.","inherits":"Application#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"coverURL","description":"A link to this application's cover image.","inherits":"Application#coverURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"fetchAssets","description":"Gets the application's rich presence assets.","inherits":"Application#fetchAssets","inherited":true,"async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationAsset",">>"]]],"meta":{"line":110,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the application's name instead of the\nApplication object.","inherits":"Application#toString","inherited":true,"examples":["// Logs: Application name: My App\nconsole.log(`Application name: ${application}`);"],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":127,"file":"Application.js","path":"src/structures/interfaces"}}],"meta":{"line":9,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"Interaction","description":"Represents an interaction.","extends":[[["Base"]]],"props":[{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":12,"file":"Interaction.js","path":"src/structures"}},{"name":"InteractionCollector","description":"Collects interactions.\nWill automatically stop if the message ({@link Client#event:messageDelete messageDelete} or\n{@link Client#event:messageDeleteBulk messageDeleteBulk}),\nchannel ({@link Client#event:channelDelete channelDelete}), or\nguild ({@link Client#event:guildDelete guildDelete}) is deleted.\nInteraction collectors that do not specify `time` or `idle` may be prone to always running.\nEnsure your interaction collectors end via either of these options or manual cancellation.","extends":[[["Collector"]]],"construct":{"name":"InteractionCollector","params":[{"name":"client","description":"The client on which to collect interactions","type":[[["Client"]]]},{"name":"options","description":"The options to apply to this collector","optional":true,"default":"{}","type":[[["InteractionCollectorOptions"]]]}]},"props":[{"name":"messageId","description":"The message from which to collect interactions, if provided","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":42,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"channelId","description":"The channel from which to collect interactions, if provided","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":48,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"guildId","description":"The guild from which to collect interactions, if provided","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":57,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"interactionType","description":"The type of interaction to collect","nullable":true,"type":[[["InteractionType"]]],"meta":{"line":67,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"componentType","description":"The type of component to collect","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":76,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"users","description":"The users that have interacted with this collector","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":85,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"total","description":"The total number of interactions collected","type":[[["number"]]],"meta":{"line":91,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":192,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"collect","description":"Handles an incoming interaction for possible collection.","access":"private","params":[{"name":"interaction","description":"The interaction to possibly collect","type":[[["Interaction"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":142,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Handles an interaction for possible disposal.","params":[{"name":"interaction","description":"The interaction that could be disposed of","type":[[["Interaction"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":162,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"empty","description":"Empties this interaction collector.","meta":{"line":180,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleMessageDeletion","description":"Handles checking if the message has been deleted, and if so, stops the collector with the reason 'messageDelete'.","access":"private","params":[{"name":"message","description":"The message that was deleted","type":[[["Message"]]]}],"returns":[[["void"]]],"meta":{"line":205,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleChannelDeletion","description":"Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.","access":"private","params":[{"name":"channel","description":"The channel that was deleted","type":[[["GuildChannel"]]]}],"returns":[[["void"]]],"meta":{"line":217,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleThreadDeletion","description":"Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.","access":"private","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"returns":[[["void"]]],"meta":{"line":229,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleGuildDeletion","description":"Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.","access":"private","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"returns":[[["void"]]],"meta":{"line":241,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","inherits":"Collector#handleCollect","inherited":true,"emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","inherits":"Collector#handleDispose","inherited":true,"emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","inherits":"Collector#stop","inherited":true,"emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","inherits":"Collector#resetTimer","inherited":true,"params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","inherits":"Collector#checkEnd","inherited":true,"returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}}],"events":[{"name":"collect","description":"Emitted whenever an interaction is collected.","params":[{"name":"interaction","description":"The interaction that was collected","type":[[["Interaction"]]]}],"meta":{"line":143,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Emitted whenever an interaction is disposed of.","params":[{"name":"interaction","description":"The interaction that was disposed of","type":[[["Interaction"]]]}],"meta":{"line":163,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":30,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"InteractionWebhook","description":"Represents a webhook for an Interaction","implements":[[["Webhook"]]],"construct":{"name":"InteractionWebhook","params":[{"name":"client","description":"The instantiating client","type":[[["Client"]]]},{"name":"id","description":"The application's id","type":[[["Snowflake"]]]},{"name":"token","description":"The interaction's token","type":[[["string"]]]}]},"props":[{"name":"client","description":"The client that instantiated the interaction webhook","readonly":true,"type":[[["Client"]]],"meta":{"line":16,"file":"InteractionWebhook.js","path":"src/structures"}},{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]],"meta":{"line":56,"file":"Webhook.js","path":"src/structures"}},{"name":"url","description":"The URL of this webhook","readonly":true,"type":[[["string"]]],"meta":{"line":402,"file":"Webhook.js","path":"src/structures"}}],"methods":[{"name":"send","description":"Sends a message with this webhook.","implements":["Webhook#send"],"params":[{"name":"options","description":"The content for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":34,"file":"InteractionWebhook.js","path":"src/structures"}},{"name":"fetchMessage","description":"Gets a message that was sent by this webhook.","implements":["Webhook#fetchMessage"],"params":[{"name":"message","description":"The id of the message to fetch","type":[[["Snowflake"]],[["original","'"]]]},{"name":"cacheOrOptions","description":"The options to provide to fetch the message.\nA **deprecated** boolean may be passed instead to specify whether to cache the message.","optional":true,"default":"{}","type":[[["WebhookFetchMessageOptions"]],[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":281,"file":"Webhook.js","path":"src/structures"}},{"name":"editMessage","description":"Edits a message that was sent by this webhook.","implements":["Webhook#editMessage"],"params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":316,"file":"Webhook.js","path":"src/structures"}},{"name":"deleteMessage","description":"Delete a message that was sent by this webhook.","implements":["Webhook#deleteMessage"],"params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"threadId","description":"The id of the thread this message belongs to","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":365,"file":"Webhook.js","path":"src/structures"}}],"meta":{"line":9,"file":"InteractionWebhook.js","path":"src/structures"}},{"name":"Application","description":"Represents an OAuth2 Application.","abstract":true,"props":[{"name":"id","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"name","description":"The name of the application","nullable":true,"type":[[["string"]]],"meta":{"line":34,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"description","description":"The application's description","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"icon","description":"The application's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":54,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdTimestamp","description":"The timestamp the application was created at","readonly":true,"type":[[["number"]]],"meta":{"line":65,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdAt","description":"The time the application was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":74,"file":"Application.js","path":"src/structures/interfaces"}}],"methods":[{"name":"iconURL","description":"A link to the application's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"coverURL","description":"A link to this application's cover image.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"fetchAssets","description":"Gets the application's rich presence assets.","async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationAsset",">>"]]],"meta":{"line":110,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the application's name instead of the\nApplication object.","examples":["// Logs: Application name: My App\nconsole.log(`Application name: ${application}`);"],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":127,"file":"Application.js","path":"src/structures/interfaces"}}],"meta":{"line":13,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"Collector","description":"Abstract class for defining a new Collector.","abstract":true,"props":[{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"abstract":true,"type":[[["string"]]],"meta":{"line":275,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collect","description":"Handles incoming events from the `handleCollect` function. Returns null if the event should not\nbe collected, or returns an object describing the data that should be stored.","see":["Collector#handleCollect"],"abstract":true,"params":[{"name":"args","description":"Any args the event listener emits","variable":true,"type":[["*"]]}],"returns":{"types":[["*"],[["Promise",""],["*",">"]]],"description":"Data to insert into collection, if any","nullable":true},"meta":{"line":285,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"dispose","description":"Handles incoming events from the `handleDispose`. Returns null if the event should not\nbe disposed, or returns the key that should be removed.","see":["Collector#handleDispose"],"abstract":true,"params":[{"name":"args","description":"Any args the event listener emits","variable":true,"type":[["*"]]}],"returns":{"types":[["*"]],"description":"Key to remove from the collection, if any","nullable":true},"meta":{"line":295,"file":"Collector.js","path":"src/structures/interfaces"}}],"events":[{"name":"collect","description":"Emitted whenever an element is collected.","params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"meta":{"line":104,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"dispose","description":"Emitted whenever an element is disposed of.","params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"meta":{"line":132,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":30,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"Invite","description":"Represents an invitation to a guild channel.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild the invite is for including welcome screen data if present","nullable":true,"type":[[["Guild"]],[["InviteGuild"]]],"meta":{"line":29,"file":"Invite.js","path":"src/structures"}},{"name":"code","description":"The code for this invite","type":[[["string"]]],"meta":{"line":39,"file":"Invite.js","path":"src/structures"}},{"name":"presenceCount","description":"The approximate number of online members of the guild this invite is for\nThis is only available when the invite was fetched through {@link Client#fetchInvite}.","nullable":true,"type":[[["number"]]],"meta":{"line":48,"file":"Invite.js","path":"src/structures"}},{"name":"memberCount","description":"The approximate total number of members of the guild this invite is for\nThis is only available when the invite was fetched through {@link Client#fetchInvite}.","nullable":true,"type":[[["number"]]],"meta":{"line":59,"file":"Invite.js","path":"src/structures"}},{"name":"temporary","description":"Whether or not this invite only grants temporary membership\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["boolean"]]],"meta":{"line":71,"file":"Invite.js","path":"src/structures"}},{"name":"maxAge","description":"The maximum age of the invite, in seconds, 0 if never expires\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["number"]]],"meta":{"line":83,"file":"Invite.js","path":"src/structures"}},{"name":"uses","description":"How many times this invite has been used\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["number"]]],"meta":{"line":95,"file":"Invite.js","path":"src/structures"}},{"name":"maxUses","description":"The maximum uses of this invite\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["number"]]],"meta":{"line":107,"file":"Invite.js","path":"src/structures"}},{"name":"inviterId","description":"The user's id who created this invite","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":117,"file":"Invite.js","path":"src/structures"}},{"name":"inviter","description":"The user who created this invite","nullable":true,"type":[[["User"]]],"meta":{"line":128,"file":"Invite.js","path":"src/structures"}},{"name":"targetUser","description":"The user whose stream to display for this voice channel stream invite","nullable":true,"type":[[["User"]]],"meta":{"line":139,"file":"Invite.js","path":"src/structures"}},{"name":"targetApplication","description":"The embedded application to open for this voice channel embedded application invite","nullable":true,"type":[[["IntegrationApplication"]]],"meta":{"line":149,"file":"Invite.js","path":"src/structures"}},{"name":"targetType","description":"The target type","nullable":true,"type":[[["TargetType"]]],"meta":{"line":167,"file":"Invite.js","path":"src/structures"}},{"name":"channelId","description":"The channel's id this invite is for","type":[[["Snowflake"]]],"meta":{"line":177,"file":"Invite.js","path":"src/structures"}},{"name":"channel","description":"The channel this invite is for","type":[[["Channel"]]],"meta":{"line":186,"file":"Invite.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this invite was created at","nullable":true,"type":[[["number"]]],"meta":{"line":195,"file":"Invite.js","path":"src/structures"}},{"name":"stageInstance","description":"The stage instance data if there is a public {@link StageInstance} in the stage channel this invite is for","nullable":true,"type":[[["InviteStageInstance"]]],"meta":{"line":208,"file":"Invite.js","path":"src/structures"}},{"name":"guildScheduledEvent","description":"The guild scheduled event data if there is a {@link GuildScheduledEvent} in the channel this invite is for","nullable":true,"type":[[["GuildScheduledEvent"]]],"meta":{"line":218,"file":"Invite.js","path":"src/structures"}},{"name":"createdAt","description":"The time the invite was created at","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":229,"file":"Invite.js","path":"src/structures"}},{"name":"deletable","description":"Whether the invite is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":238,"file":"Invite.js","path":"src/structures"}},{"name":"expiresTimestamp","description":"The timestamp the invite will expire at","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":253,"file":"Invite.js","path":"src/structures"}},{"name":"expiresAt","description":"The time the invite will expire at","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":265,"file":"Invite.js","path":"src/structures"}},{"name":"url","description":"The URL to the invite","readonly":true,"type":[[["string"]]],"meta":{"line":275,"file":"Invite.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}},{"name":"INVITES_PATTERN","description":"Regular expression that globally matches Discord invite links","scope":"static","type":[[["RegExp"]]],"meta":{"line":348,"file":"Invite.js","path":"src/structures"}}],"methods":[{"name":"delete","description":"Deletes this invite.","params":[{"name":"reason","description":"Reason for deleting this invite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":284,"file":"Invite.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically concatenates the invite's URL instead of the object.","examples":["// Logs: Invite: https://discord.gg/A1b2C3\nconsole.log(`Invite: ${invite}`);"],"returns":[[["string"]]],"meta":{"line":296,"file":"Invite.js","path":"src/structures"}},{"name":"acceptInvite","description":"Join this Guild using this invite.","examples":["await client.fetchInvite('code').then(async invite => {\n await invite.acceptInvite();\n});"],"params":[{"name":"autoVerify","description":"Whether to automatically verify member","default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":326,"file":"Invite.js","path":"src/structures"}}],"meta":{"line":17,"file":"Invite.js","path":"src/structures"}},{"name":"InviteGuild","description":"Represents a guild received from an invite, includes welcome screen data if available.","extends":[[["AnonymousGuild"]]],"props":[{"name":"welcomeScreen","description":"The welcome screen for this invite guild","nullable":true,"type":[[["WelcomeScreen"]]],"meta":{"line":18,"file":"InviteGuild.js","path":"src/structures"}},{"name":"splash","description":"The hash of the guild invite splash image","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"banner","description":"The hash of the guild banner","nullable":true,"type":[[["string"]]],"meta":{"line":33,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"description","description":"The description of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":41,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"verificationLevel","description":"The verification level of the guild","type":[[["VerificationLevel"]]],"meta":{"line":49,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"vanityURLCode","description":"The vanity invite code of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":57,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"nsfwLevel","description":"The NSFW level of this guild","type":[[["NSFWLevel"]]],"meta":{"line":65,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"bannerURL","description":"The URL to this guild's banner.","inherits":"AnonymousGuild#bannerURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":74,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"splashURL","description":"The URL to this guild's invite splash image.","inherits":"AnonymousGuild#splashURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":10,"file":"InviteGuild.js","path":"src/structures"}},{"name":"InviteStageInstance","description":"Represents the data about a public {@link StageInstance} in an {@link Invite}.","extends":[[["Base"]]],"props":[{"name":"channelId","description":"The id of the stage channel this invite is for","type":[[["Snowflake"]]],"meta":{"line":18,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"guildId","description":"The stage channel's guild id","type":[[["Snowflake"]]],"meta":{"line":24,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"members","description":"The members speaking in the stage channel","type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":30,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"topic","description":"The topic of the stage instance","type":[[["string"]]],"meta":{"line":41,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"participantCount","description":"The number of users in the stage channel","type":[[["number"]]],"meta":{"line":49,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"speakerCount","description":"The number of users speaking in the stage channel","type":[[["number"]]],"meta":{"line":57,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"channel","description":"The stage channel this invite is for","readonly":true,"nullable":true,"type":[[["StageChannel"]]],"meta":{"line":72,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"guild","description":"The guild of the stage channel this invite is for","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":81,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":10,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"Message","description":"Represents a message on Discord.","extends":[[["Base"]]],"props":[{"name":"channelId","description":"The id of the channel the message was sent in","type":[[["Snowflake"]]],"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the message was sent in, if any","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":51,"file":"Message.js","path":"src/structures"}},{"name":"id","description":"The message's id","type":[[["Snowflake"]]],"meta":{"line":61,"file":"Message.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the message was sent at","type":[[["number"]]],"meta":{"line":67,"file":"Message.js","path":"src/structures"}},{"name":"type","description":"The type of the message","nullable":true,"type":[[["MessageType"]]],"meta":{"line":74,"file":"Message.js","path":"src/structures"}},{"name":"system","description":"Whether or not this message was sent by Discord, not actually a user (e.g. pin notifications)","nullable":true,"type":[[["boolean"]]],"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"name":"content","description":"The content of the message","nullable":true,"type":[[["string"]]],"meta":{"line":91,"file":"Message.js","path":"src/structures"}},{"name":"author","description":"The author of the message","nullable":true,"type":[[["User"]]],"meta":{"line":101,"file":"Message.js","path":"src/structures"}},{"name":"pinned","description":"Whether or not this message is pinned","nullable":true,"type":[[["boolean"]]],"meta":{"line":111,"file":"Message.js","path":"src/structures"}},{"name":"tts","description":"Whether or not the message was Text-To-Speech","nullable":true,"type":[[["boolean"]]],"meta":{"line":121,"file":"Message.js","path":"src/structures"}},{"name":"nonce","description":"A random number or string used for checking message delivery\nThis is only received after the message was sent successfully, and\nlost if re-fetched","nullable":true,"type":[[["string"]]],"meta":{"line":133,"file":"Message.js","path":"src/structures"}},{"name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","type":[[["Array","<"],["MessageEmbed",">"]]],"meta":{"line":143,"file":"Message.js","path":"src/structures"}},{"name":"components","description":"A list of MessageActionRows in the message","type":[[["Array","<"],["MessageActionRow",">"]]],"meta":{"line":153,"file":"Message.js","path":"src/structures"}},{"name":"attachments","description":"A collection of attachments in the message - e.g. Pictures - mapped by their ids","type":[[["Collection","<"],["Snowflake",", "],["MessageAttachment",">"]]],"meta":{"line":163,"file":"Message.js","path":"src/structures"}},{"name":"stickers","description":"A collection of stickers in the message","type":[[["Collection","<"],["Snowflake",", "],["Sticker",">"]]],"meta":{"line":178,"file":"Message.js","path":"src/structures"}},{"name":"editedTimestamp","description":"The timestamp the message was last edited at (if applicable)","nullable":true,"type":[[["number"]]],"meta":{"line":191,"file":"Message.js","path":"src/structures"}},{"name":"reactions","description":"A manager of the reactions belonging to this message","type":[[["ReactionManager"]]],"meta":{"line":201,"file":"Message.js","path":"src/structures"}},{"name":"mentions","description":"All valid mentions that the message contains","type":[[["MessageMentions"]]],"meta":{"line":216,"file":"Message.js","path":"src/structures"}},{"name":"webhookId","description":"The id of the webhook that sent the message, if applicable","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":240,"file":"Message.js","path":"src/structures"}},{"name":"groupActivityApplication","description":"Supplemental application information for group activities","nullable":true,"type":[[["ClientApplication"]]],"meta":{"line":250,"file":"Message.js","path":"src/structures"}},{"name":"applicationId","description":"The id of the application of the interaction that sent this message, if any","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":260,"file":"Message.js","path":"src/structures"}},{"name":"activity","description":"Group activity","nullable":true,"type":[[["MessageActivity"]]],"meta":{"line":270,"file":"Message.js","path":"src/structures"}},{"name":"flags","description":"Flags that are applied to the message","type":[[["Readonly","<"],["MessageFlags",">"]]],"meta":{"line":293,"file":"Message.js","path":"src/structures"}},{"name":"reference","description":"Message reference data","nullable":true,"type":[[["MessageReference"]]],"meta":{"line":318,"file":"Message.js","path":"src/structures"}},{"name":"interaction","description":"Partial data of the interaction that this message is a reply to","nullable":true,"type":[[["MessageInteraction"]]],"meta":{"line":348,"file":"Message.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":364,"file":"Message.js","path":"src/structures"}},{"name":"channel","description":"The channel that the message was sent in","readonly":true,"type":[[["TextChannel"]],[["DMChannel"]],[["NewsChannel"]],[["ThreadChannel"]]],"meta":{"line":394,"file":"Message.js","path":"src/structures"}},{"name":"partial","description":"Whether or not this message is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":403,"file":"Message.js","path":"src/structures"}},{"name":"member","description":"Represents the author of the message as a guild member.\nOnly available if the message comes from a guild where the author is still a member","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":413,"file":"Message.js","path":"src/structures"}},{"name":"createdAt","description":"The time the message was sent at","readonly":true,"type":[[["Date"]]],"meta":{"line":422,"file":"Message.js","path":"src/structures"}},{"name":"editedAt","description":"The time the message was last edited at (if applicable)","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":431,"file":"Message.js","path":"src/structures"}},{"name":"guild","description":"The guild the message was sent in (if in a guild channel)","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":440,"file":"Message.js","path":"src/structures"}},{"name":"hasThread","description":"Whether this message has a thread associated with it","readonly":true,"type":[[["boolean"]]],"meta":{"line":449,"file":"Message.js","path":"src/structures"}},{"name":"thread","description":"The thread started by this message\nThis property is not suitable for checking whether a message has a thread,\nuse {@link Message#hasThread} instead.","readonly":true,"nullable":true,"type":[[["ThreadChannel"]]],"meta":{"line":460,"file":"Message.js","path":"src/structures"}},{"name":"url","description":"The URL to jump to this message","readonly":true,"type":[[["string"]]],"meta":{"line":469,"file":"Message.js","path":"src/structures"}},{"name":"cleanContent","description":"The message contents with all mentions replaced by the equivalent text.\nIf mentions cannot be resolved to a name, the relevant mention in the message content will not be converted.","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":479,"file":"Message.js","path":"src/structures"}},{"name":"editable","description":"Whether the message is editable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":591,"file":"Message.js","path":"src/structures"}},{"name":"deletable","description":"Whether the message is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":608,"file":"Message.js","path":"src/structures"}},{"name":"pinnable","description":"Whether the message is pinnable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":637,"file":"Message.js","path":"src/structures"}},{"name":"crosspostable","description":"Whether the message is crosspostable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":666,"file":"Message.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"createReactionCollector","description":"Creates a reaction collector.","examples":["// Create a reaction collector\nconst filter = (reaction, user) => reaction.emoji.name === '👌' && user.id === 'someId';\nconst collector = message.createReactionCollector({ filter, time: 15_000 });\ncollector.on('collect', r => console.log(`Collected ${r.emoji.name}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["ReactionCollectorOptions"]]]}],"returns":[[["ReactionCollector"]]],"meta":{"line":495,"file":"Message.js","path":"src/structures"}},{"name":"awaitReactions","description":"Similar to createReactionCollector but in promise form.\nResolves with a collection of reactions that pass the specified filter.","examples":["// Create a reaction collector\nconst filter = (reaction, user) => reaction.emoji.name === '👌' && user.id === 'someId'\nmessage.awaitReactions({ filter, time: 15_000 })\n .then(collected => console.log(`Collected ${collected.size} reactions`))\n .catch(console.error);"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitReactionsOptions"]]]}],"returns":[[["Promise","<"],["Collection","<("],["string","|"],["Snowflake","), "],["MessageReaction",">>"]]],"meta":{"line":517,"file":"Message.js","path":"src/structures"}},{"name":"createMessageComponentCollector","description":"Creates a message component interaction collector.","examples":["// Create a message component interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = message.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":546,"file":"Message.js","path":"src/structures"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nmessage.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":574,"file":"Message.js","path":"src/structures"}},{"name":"fetchReference","description":"Fetches the Message this crosspost/reply/pin-add references, if available to the client","async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":652,"file":"Message.js","path":"src/structures"}},{"name":"edit","description":"Edits the content of the message.","examples":["// Update the content of a message\nmessage.edit('This is my new content!')\n .then(msg => console.log(`Updated the content of a message to ${msg.content}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageEditOptions"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":705,"file":"Message.js","path":"src/structures"}},{"name":"crosspost","description":"Publishes a message in an announcement channel to all channels following it.","examples":["// Crosspost a message\nif (message.channel.type === 'GUILD_NEWS') {\n message.crosspost()\n .then(() => console.log('Crossposted message'))\n .catch(console.error);\n}"],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":721,"file":"Message.js","path":"src/structures"}},{"name":"pin","description":"Pins this message to the channel's pinned messages.","examples":["// Pin a message\nmessage.pin()\n .then(console.log)\n .catch(console.error)"],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":735,"file":"Message.js","path":"src/structures"}},{"name":"unpin","description":"Unpins this message from the channel's pinned messages.","examples":["// Unpin a message\nmessage.unpin()\n .then(console.log)\n .catch(console.error)"],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":750,"file":"Message.js","path":"src/structures"}},{"name":"react","description":"Adds a reaction to the message.","examples":["// React to a message with a unicode emoji\nmessage.react('🤔')\n .then(console.log)\n .catch(console.error);","// React to a message with a custom emoji\nmessage.react(message.guild.emojis.cache.get('123456789012345678'))\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"emoji","description":"The emoji to react with","type":[[["EmojiIdentifierResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":771,"file":"Message.js","path":"src/structures"}},{"name":"delete","description":"Deletes the message.","examples":["// Delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author.username}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":795,"file":"Message.js","path":"src/structures"}},{"name":"reply","description":"Send an inline reply to this message.","examples":["// Reply to a message\nmessage.reply('This is a reply!')\n .then(() => console.log(`Replied to message \"${message.content}\"`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["ReplyMessageOptions"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":819,"file":"Message.js","path":"src/structures"}},{"name":"startThread","description":"Create a new public thread from this message","see":["ThreadManager#create"],"params":[{"name":"options","description":"Options for starting a thread on this message","optional":true,"type":[[["StartThreadOptions"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":863,"file":"Message.js","path":"src/structures"}},{"name":"fetch","description":"Fetch this message.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":879,"file":"Message.js","path":"src/structures"}},{"name":"fetchWebhook","description":"Fetches the webhook used to create this message.","returns":[[["Promise",""],["Webhook",">"]]],"meta":{"line":888,"file":"Message.js","path":"src/structures"}},{"name":"suppressEmbeds","description":"Suppresses or unsuppresses embeds on a message.","params":[{"name":"suppress","description":"If the embeds should be suppressed or not","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":901,"file":"Message.js","path":"src/structures"}},{"name":"removeAttachments","description":"Removes the attachments from this message.","returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":917,"file":"Message.js","path":"src/structures"}},{"name":"resolveComponent","description":"Resolves a component by a custom id.","params":[{"name":"customId","description":"The custom id to resolve against","type":[[["string"]]]}],"returns":{"types":[[["MessageActionRowComponent"]]],"nullable":true},"meta":{"line":926,"file":"Message.js","path":"src/structures"}},{"name":"equals","description":"Used mainly internally. Whether two messages are identical in properties. If you want to compare messages\nwithout checking all the properties, use `message.id === message2.id`, which is much more efficient. This\nmethod allows you to see if there are differences in content, embeds, attachments, nonce and tts properties.","params":[{"name":"message","description":"The message to compare it to","type":[[["Message"]]]},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":[[["APIMessage"]]]}],"returns":[[["boolean"]]],"meta":{"line":938,"file":"Message.js","path":"src/structures"}},{"name":"inGuild","description":"Whether this message is from a guild.","returns":[[["boolean"]]],"meta":{"line":968,"file":"Message.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically concatenates the message's content instead of the object.","examples":["// Logs: Message: This is a message!\nconsole.log(`Message: ${message}`);"],"returns":[[["string"]]],"meta":{"line":979,"file":"Message.js","path":"src/structures"}},{"name":"markUnread","description":"Marks the message as unread.","async":true,"returns":[[["boolean"]]],"meta":{"line":999,"file":"Message.js","path":"src/structures"}},{"name":"clickButton","description":"Click specific button [Suggestion: Dux#2925]","params":[{"name":"buttonID","description":"Button ID","type":[[["string","<"],["ButtoncustomId",">"]]]}],"async":true,"returns":[[["Promise","<"],["pending",">"]]],"meta":{"line":1020,"file":"Message.js","path":"src/structures"}},{"name":"selectMenu","description":"Select specific menu or First Menu","params":[{"name":"menuID","description":"Select Menu specific id or auto select first Menu","type":[[["string","<"],["MessageSelectMenucustomID",">"]],[["Array","<"],["MenuOptions",">"]]]},{"name":"options","description":"Menu Options","type":[[["Array","<"],["MenuOptions",">"]]]}],"async":true,"meta":{"line":1046,"file":"Message.js","path":"src/structures"}},{"name":"contextMenu","description":"Send context Menu v2","params":[{"name":"botID","description":"Bot id","type":[[["DiscordBotID"]]]},{"name":"commandName","description":"Command name in Context Menu","type":[[["string","<"],["ApplicationCommandname",">"]]]}],"async":true,"returns":[[["Promise","<"],["pending",">"]]],"meta":{"line":1080,"file":"Message.js","path":"src/structures"}}],"meta":{"line":37,"file":"Message.js","path":"src/structures"}},{"name":"MessageActionRow","description":"Represents an action row containing message components.","extends":[[["BaseMessageComponent"]]],"construct":{"name":"MessageActionRow","params":[{"name":"data","description":"MessageActionRow to clone or raw data","optional":true,"default":"{}","type":[[["MessageActionRow"]],[["MessageActionRowOptions"]]]},{"name":"client","description":"The client constructing this MessageActionRow, if provided","optional":true,"default":null,"type":[[["Client"]]]}]},"props":[{"name":"components","description":"The components in this action row","type":[[["Array","<"],["MessageActionRowComponent",">"]]],"meta":{"line":49,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":50,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"addComponents","description":"Adds components to the action row.","params":[{"name":"components","description":"The components to add","variable":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"returns":[[["MessageActionRow"]]],"meta":{"line":57,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"setComponents","description":"Sets the components of the action row.","params":[{"name":"components","description":"The components to set","variable":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"returns":[[["MessageActionRow"]]],"meta":{"line":67,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"spliceComponents","description":"Removes, replaces, and inserts components in the action row.","params":[{"name":"index","description":"The index to start at","type":[[["number"]]]},{"name":"deleteCount","description":"The number of components to remove","type":[[["number"]]]},{"name":"components","description":"The replacing components","optional":true,"variable":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"returns":[[["MessageActionRow"]]],"meta":{"line":79,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the action row to a plain object.","returns":{"types":[[["APIMessageComponent"]]],"description":"The raw data of this action row"},"meta":{"line":88,"file":"MessageActionRow.js","path":"src/structures"}}],"meta":{"line":10,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageAttachment","description":"Represents an attachment in a message.","construct":{"name":"MessageAttachment","params":[{"name":"attachment","description":"The file","type":[[["BufferResolvable"]],[["Stream"]]]},{"name":"name","description":"The name of the file, if any","optional":true,"default":null,"type":[[["string"]]]},{"name":"data","description":"Extra data","optional":true,"type":[[["APIAttachment"]]]}]},"props":[{"name":"name","description":"The name of this attachment","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"id","description":"The attachment's id","type":[[["Snowflake"]]],"meta":{"line":79,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"size","description":"The size of this attachment in bytes","type":[[["number"]]],"meta":{"line":86,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"url","description":"The URL to this attachment","type":[[["string"]]],"meta":{"line":94,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"proxyURL","description":"The Proxy URL to this attachment","type":[[["string"]]],"meta":{"line":102,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"height","description":"The height of this attachment (if an image or video)","nullable":true,"type":[[["number"]]],"meta":{"line":110,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"width","description":"The width of this attachment (if an image or video)","nullable":true,"type":[[["number"]]],"meta":{"line":120,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"contentType","description":"This media type of this attachment","nullable":true,"type":[[["string"]]],"meta":{"line":130,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"description","description":"The description (alt text) of this attachment","nullable":true,"type":[[["string"]]],"meta":{"line":140,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether this attachment is ephemeral","type":[[["boolean"]]],"meta":{"line":149,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"spoiler","description":"Whether or not this attachment has been marked as a spoiler","readonly":true,"type":[[["boolean"]]],"meta":{"line":157,"file":"MessageAttachment.js","path":"src/structures"}}],"methods":[{"name":"setDescription","description":"Sets the description of this attachment.","params":[{"name":"description","description":"The description of the file","type":[[["string"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":29,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"setFile","description":"Sets the file of this attachment.","params":[{"name":"attachment","description":"The file","type":[[["BufferResolvable"]],[["Stream"]]]},{"name":"name","description":"The name of the file, if any","optional":true,"default":null,"type":[[["string"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":40,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"setName","description":"Sets the name of this attachment.","params":[{"name":"name","description":"The name of the file","type":[[["string"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":51,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"setSpoiler","description":"Sets whether this attachment is a spoiler","params":[{"name":"spoiler","description":"Whether the attachment should be marked as a spoiler","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":61,"file":"MessageAttachment.js","path":"src/structures"}}],"meta":{"line":8,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"MessageButton","description":"Represents a button message component.","extends":[[["BaseMessageComponent"]]],"construct":{"name":"MessageButton","params":[{"name":"data","description":"MessageButton to clone or raw data","optional":true,"default":"{}","type":[[["MessageButton"]],[["MessageButtonOptions"]]]}]},"props":[{"name":"label","description":"The text to be displayed on this button","nullable":true,"type":[[["string"]]],"meta":{"line":38,"file":"MessageButton.js","path":"src/structures"}},{"name":"customId","description":"A unique string to be sent in the interaction when clicked","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"MessageButton.js","path":"src/structures"}},{"name":"style","description":"The style of this button","nullable":true,"type":[[["MessageButtonStyle"]]],"meta":{"line":50,"file":"MessageButton.js","path":"src/structures"}},{"name":"emoji","description":"Emoji for this button","nullable":true,"type":[[["RawEmoji"]]],"meta":{"line":56,"file":"MessageButton.js","path":"src/structures"}},{"name":"url","description":"The URL this button links to, if it is a Link style button","nullable":true,"type":[[["string"]]],"meta":{"line":62,"file":"MessageButton.js","path":"src/structures"}},{"name":"disabled","description":"Whether this button is currently disabled","type":[[["boolean"]]],"meta":{"line":68,"file":"MessageButton.js","path":"src/structures"}},{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":50,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"setCustomId","description":"Sets the custom id for this button","params":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","type":[[["string"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":76,"file":"MessageButton.js","path":"src/structures"}},{"name":"setDisabled","description":"Sets the interactive status of the button","params":[{"name":"disabled","description":"Whether this button should be disabled","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":86,"file":"MessageButton.js","path":"src/structures"}},{"name":"setEmoji","description":"Set the emoji of this button","params":[{"name":"emoji","description":"The emoji to be displayed on this button","type":[[["EmojiIdentifierResolvable"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":96,"file":"MessageButton.js","path":"src/structures"}},{"name":"setLabel","description":"Sets the label of this button","params":[{"name":"label","description":"The text to be displayed on this button","type":[[["string"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":106,"file":"MessageButton.js","path":"src/structures"}},{"name":"setStyle","description":"Sets the style of this button","params":[{"name":"style","description":"The style of this button","type":[[["MessageButtonStyleResolvable"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":116,"file":"MessageButton.js","path":"src/structures"}},{"name":"setURL","description":"Sets the URL of this button.\nMessageButton#style must be LINK when setting a URL","params":[{"name":"url","description":"The URL of this button","type":[[["string"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":127,"file":"MessageButton.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the button to a plain object.","returns":{"types":[[["APIMessageButton"]]],"description":"The raw data of this button"},"meta":{"line":136,"file":"MessageButton.js","path":"src/structures"}},{"name":"click","description":"Click the button","params":[{"name":"message","description":"Discord Message","type":[[["Message"]]]}],"async":true,"returns":[[["boolean"]]],"meta":{"line":170,"file":"MessageButton.js","path":"src/structures"}},{"name":"resolveStyle","description":"Resolves the style of a button","scope":"static","access":"private","params":[{"name":"style","description":"The style to resolve","type":[[["MessageButtonStyleResolvable"]]]}],"returns":[[["MessageButtonStyle"]]],"meta":{"line":161,"file":"MessageButton.js","path":"src/structures"}}],"meta":{"line":13,"file":"MessageButton.js","path":"src/structures"}},{"name":"MessageCollector","description":"Collects messages on a channel.\nWill automatically stop if the channel ({@link Client#event:channelDelete channelDelete}),\nthread ({@link Client#event:threadDelete threadDelete}), or\nguild ({@link Client#event:guildDelete guildDelete}) is deleted.","extends":[[["Collector"]]],"construct":{"name":"MessageCollector","params":[{"name":"channel","description":"The channel","type":[[["TextBasedChannels"]]]},{"name":"options","description":"The options to be applied to this collector","type":[[["MessageCollectorOptions"]]]}]},"props":[{"name":"channel","description":"The channel","type":[[["TextBasedChannels"]]],"meta":{"line":32,"file":"MessageCollector.js","path":"src/structures"}},{"name":"received","description":"Total number of messages that were received in the channel during message collection","type":[[["number"]]],"meta":{"line":38,"file":"MessageCollector.js","path":"src/structures"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":103,"file":"MessageCollector.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"collect","description":"Handles a message for possible collection.","access":"private","params":[{"name":"message","description":"The message that could be collected","type":[[["Message"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":73,"file":"MessageCollector.js","path":"src/structures"}},{"name":"dispose","description":"Handles a message for possible disposal.","params":[{"name":"message","description":"The message that could be disposed of","type":[[["Message"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":89,"file":"MessageCollector.js","path":"src/structures"}},{"name":"_handleChannelDeletion","description":"Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.","access":"private","params":[{"name":"channel","description":"The channel that was deleted","type":[[["GuildChannel"]]]}],"returns":[[["void"]]],"meta":{"line":115,"file":"MessageCollector.js","path":"src/structures"}},{"name":"_handleThreadDeletion","description":"Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.","access":"private","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"returns":[[["void"]]],"meta":{"line":127,"file":"MessageCollector.js","path":"src/structures"}},{"name":"_handleGuildDeletion","description":"Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.","access":"private","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"returns":[[["void"]]],"meta":{"line":139,"file":"MessageCollector.js","path":"src/structures"}},{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","inherits":"Collector#handleCollect","inherited":true,"emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","inherits":"Collector#handleDispose","inherited":true,"emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","inherits":"Collector#stop","inherited":true,"emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","inherits":"Collector#resetTimer","inherited":true,"params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","inherits":"Collector#checkEnd","inherited":true,"returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}}],"events":[{"name":"collect","description":"Emitted whenever a message is collected.","params":[{"name":"message","description":"The message that was collected","type":[[["Message"]]]}],"meta":{"line":74,"file":"MessageCollector.js","path":"src/structures"}},{"name":"dispose","description":"Emitted whenever a message is disposed of.","params":[{"name":"message","description":"The message that was disposed of","type":[[["Message"]]]}],"meta":{"line":90,"file":"MessageCollector.js","path":"src/structures"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":19,"file":"MessageCollector.js","path":"src/structures"}},{"name":"MessageComponentInteraction","description":"Represents a message component interaction.","extends":[[["Interaction"]]],"implements":[[["InteractionResponses"]]],"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":17,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"message","description":"The message to which the component was attached","type":[[["Message"]],[["APIMessage"]]],"meta":{"line":27,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"customId","description":"The custom id of the component which was interacted with","type":[[["string"]]],"meta":{"line":33,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"componentType","description":"The type of component which was interacted with","type":[[["string"]]],"meta":{"line":39,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":45,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":57,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":63,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"component","description":"The component which was interacted with","readonly":true,"type":[[["MessageActionRowComponent"]],[["APIMessageActionRowComponent"]]],"meta":{"line":78,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","implements":["InteractionResponses#deferUpdate"],"examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":179,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","implements":["InteractionResponses#update"],"examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":205,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"resolveType","description":"Resolves the type of a MessageComponent","scope":"static","access":"private","params":[{"name":"type","description":"The type to resolve","type":[[["MessageComponentTypeResolvable"]]]}],"returns":[[["MessageComponentType"]]],"meta":{"line":90,"file":"MessageComponentInteraction.js","path":"src/structures"}}],"meta":{"line":13,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"MessageContextMenuInteraction","description":"Represents a message context menu interaction.","extends":[[["ContextMenuInteraction"]]],"props":[{"name":"targetMessage","description":"The message this interaction was sent from","readonly":true,"type":[[["Message"]],[["APIMessage"]]],"meta":{"line":15,"file":"MessageContextMenuInteraction.js","path":"src/structures"}},{"name":"options","description":"The target of the interaction, parsed into options","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetId","description":"The id of the target of the interaction","type":[[["Snowflake"]]],"meta":{"line":28,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetType","description":"The type of the target of the interaction; either USER or MESSAGE","type":[[["ApplicationCommandType"]]],"meta":{"line":34,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":29,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":35,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":41,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":47,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":53,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":59,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":66,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"resolveContextMenuOptions","description":"Resolves and transforms options received from the API for a context menu interaction.","access":"private","inherits":"ContextMenuInteraction#resolveContextMenuOptions","inherited":true,"params":[{"name":"data","description":"The interaction data","type":[[["APIApplicationCommandInteractionData"]]]}],"returns":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":43,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":87,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":151,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"MessageContextMenuInteraction.js","path":"src/structures"}},{"name":"MessageEmbed","description":"Represents an embed in a message (image/video preview, rich embed, etc.)","construct":{"name":"MessageEmbed","params":[{"name":"data","description":"MessageEmbed to clone or raw embed data","optional":true,"default":"{}","type":[[["MessageEmbed"]],[["MessageEmbedOptions"]],[["APIEmbed"]]]}]},"props":[{"name":"type","description":"The type of this embed, either:\n* `rich` - a generic embed rendered from embed attributes\n* `image` - an image embed\n* `video` - a video embed\n* `gifv` - an animated gif image embed rendered as a video embed\n* `article` - an article embed\n* `link` - a link embed","see":["{@link https://discord.com/developers/docs/resources/channel#embed-object-embed-types}"],"deprecated":true,"type":[[["string"]]],"meta":{"line":60,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"title","description":"The title of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":66,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"description","description":"The description of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":72,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"url","description":"The URL of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":78,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"color","description":"The color of this embed","nullable":true,"type":[[["number"]]],"meta":{"line":84,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"timestamp","description":"The timestamp of this embed","nullable":true,"type":[[["number"]]],"meta":{"line":90,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"fields","description":"The fields of this embed","type":[[["Array","<"],["EmbedField",">"]]],"meta":{"line":104,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"thumbnail","description":"The thumbnail of this embed (if there is one)","nullable":true,"type":[[["MessageEmbedThumbnail"]]],"meta":{"line":122,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"image","description":"The image of this embed, if there is one","nullable":true,"type":[[["MessageEmbedImage"]]],"meta":{"line":144,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"video","description":"The video of this embed (if there is one)","readonly":true,"nullable":true,"type":[[["MessageEmbedVideo"]]],"meta":{"line":167,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"author","description":"The author of this embed (if there is one)","nullable":true,"type":[[["MessageEmbedAuthor"]]],"meta":{"line":189,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"provider","description":"The provider of this embed (if there is one)","nullable":true,"type":[[["MessageEmbedProvider"]]],"meta":{"line":209,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"footer","description":"The footer of this embed","nullable":true,"type":[[["MessageEmbedFooter"]]],"meta":{"line":228,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"createdAt","description":"The date displayed on this embed","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":242,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"hexColor","description":"The hexadecimal version of the embed color, with a leading hash","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":251,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"length","description":"The accumulated length for the embed title, description, fields, footer text, and author name","readonly":true,"type":[[["number"]]],"meta":{"line":260,"file":"MessageEmbed.js","path":"src/structures"}}],"methods":[{"name":"equals","description":"Checks if this embed is equal to another one by comparing every single one of their properties.","params":[{"name":"embed","description":"The embed to compare with","type":[[["MessageEmbed"]],[["APIEmbed"]]]}],"returns":[[["boolean"]]],"meta":{"line":277,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"_fieldEquals","description":"Compares two given embed fields to see if they are equal","access":"private","params":[{"name":"field","description":"The first field to compare","type":[[["EmbedFieldData"]]]},{"name":"other","description":"The second field to compare","type":[[["EmbedFieldData"]]]}],"returns":[[["boolean"]]],"meta":{"line":307,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"addField","description":"Adds a field to the embed (max 25).","params":[{"name":"name","description":"The name of this field","type":[[["string"]]]},{"name":"value","description":"The value of this field","type":[[["string"]]]},{"name":"inline","description":"If this field will be displayed inline","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":318,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"addFields","description":"Adds fields to the embed (max 25).","params":[{"name":"fields","description":"The fields to add","variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":327,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"spliceFields","description":"Removes, replaces, and inserts fields in the embed (max 25).","params":[{"name":"index","description":"The index to start at","type":[[["number"]]]},{"name":"deleteCount","description":"The number of fields to remove","type":[[["number"]]]},{"name":"fields","description":"The replacing field objects","optional":true,"variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":339,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setFields","description":"Sets the embed's fields (max 25).","params":[{"name":"fields","description":"The fields to set","variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":349,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setAuthor","description":"Sets the author of this embed.","params":[{"name":"options","description":"The options to provide for the author.\nProvide `null` to remove the author data.","type":[[["string"]],[["EmbedAuthorData"]],[["null"]]]},{"name":"deprecatedIconURL","description":"The icon URL of this author.\nThis parameter is **deprecated**. Use the `options` parameter instead.","optional":true,"type":[[["string"]]]},{"name":"deprecatedURL","description":"The URL of this author.\nThis parameter is **deprecated**. Use the `options` parameter instead.","optional":true,"type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":372,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setColor","description":"Sets the color of this embed.","params":[{"name":"color","description":"The color of the embed","type":[[["ColorResolvable"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":401,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setDescription","description":"Sets the description of this embed.","params":[{"name":"description","description":"The description","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":411,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setFooter","description":"Sets the footer of this embed.","params":[{"name":"options","description":"The options to provide for the footer.\nProvide `null` to remove the footer data.","type":[[["string"]],[["EmbedFooterData"]],[["null"]]]},{"name":"deprecatedIconURL","description":"The icon URL of this footer.\nThis parameter is **deprecated**. Use the `options` parameter instead.","optional":true,"type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":431,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setImage","description":"Sets the image of this embed.","params":[{"name":"url","description":"The URL of the image","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":460,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setThumbnail","description":"Sets the thumbnail of this embed.","params":[{"name":"url","description":"The URL of the thumbnail","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":470,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setTimestamp","description":"Sets the timestamp of this embed.","params":[{"name":"timestamp","description":"The timestamp or date.\nIf `null` then the timestamp will be unset (i.e. when editing an existing {@link MessageEmbed})","optional":true,"default":"Date.now()","type":[[["Date"]],[["number"]],[["null"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":481,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setTitle","description":"Sets the title of this embed.","params":[{"name":"title","description":"The title","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":492,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setURL","description":"Sets the URL of this embed.","params":[{"name":"url","description":"The URL","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":502,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the embed to a plain object.","returns":{"types":[[["APIEmbed"]]],"description":"The raw data of this embed"},"meta":{"line":511,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"normalizeField","description":"Normalizes field input and verifies strings.","scope":"static","params":[{"name":"name","description":"The name of the field","type":[[["string"]]]},{"name":"value","description":"The value of the field","type":[[["string"]]]},{"name":"inline","description":"Set the field to display inline","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["EmbedField"]]],"meta":{"line":541,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"normalizeFields","description":"Normalizes field input and resolves strings.","scope":"static","params":[{"name":"fields","description":"Fields to normalize","variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["Array","<"],["EmbedField",">"]]],"meta":{"line":561,"file":"MessageEmbed.js","path":"src/structures"}}],"meta":{"line":15,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageMentions","description":"Keeps track of mentions in a {@link Message}.","props":[{"name":"everyone","description":"Whether `@everyone` or `@here` were mentioned","type":[[["boolean"]]],"meta":{"line":38,"file":"MessageMentions.js","path":"src/structures"}},{"name":"users","description":"Any users that were mentioned\nOrder as received from the API, not as they appear in the message content","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":47,"file":"MessageMentions.js","path":"src/structures"}},{"name":"roles","description":"Any roles that were mentioned\nOrder as received from the API, not as they appear in the message content","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":68,"file":"MessageMentions.js","path":"src/structures"}},{"name":"_members","description":"Cached members for {@link MessageMentions#members}","access":"private","nullable":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":87,"file":"MessageMentions.js","path":"src/structures"}},{"name":"_channels","description":"Cached channels for {@link MessageMentions#channels}","access":"private","nullable":true,"type":[[["Collection","<"],["Snowflake",", "],["Channel",">"]]],"meta":{"line":94,"file":"MessageMentions.js","path":"src/structures"}},{"name":"crosspostedChannels","description":"A collection of crossposted channels\nOrder as received from the API, not as they appear in the message content","type":[[["Collection","<"],["Snowflake",", "],["CrosspostedChannel",">"]]],"meta":{"line":112,"file":"MessageMentions.js","path":"src/structures"}},{"name":"repliedUser","description":"The author of the message that this message is a reply to","nullable":true,"type":[[["User"]]],"meta":{"line":134,"file":"MessageMentions.js","path":"src/structures"}},{"name":"members","description":"Any members that were mentioned (only in {@link Guild}s)\nOrder as received from the API, not as they appear in the message content","readonly":true,"nullable":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":143,"file":"MessageMentions.js","path":"src/structures"}},{"name":"channels","description":"Any channels that were mentioned\nOrder as they appear first in the message content","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Channel",">"]]],"meta":{"line":160,"file":"MessageMentions.js","path":"src/structures"}},{"name":"EVERYONE_PATTERN","description":"Regular expression that globally matches `@everyone` and `@here`","scope":"static","type":[[["RegExp"]]],"meta":{"line":215,"file":"MessageMentions.js","path":"src/structures"}},{"name":"USERS_PATTERN","description":"Regular expression that globally matches user mentions like `<@81440962496172032>`","scope":"static","type":[[["RegExp"]]],"meta":{"line":221,"file":"MessageMentions.js","path":"src/structures"}},{"name":"ROLES_PATTERN","description":"Regular expression that globally matches role mentions like `<@&297577916114403338>`","scope":"static","type":[[["RegExp"]]],"meta":{"line":227,"file":"MessageMentions.js","path":"src/structures"}},{"name":"CHANNELS_PATTERN","description":"Regular expression that globally matches channel mentions like `<#222079895583457280>`","scope":"static","type":[[["RegExp"]]],"meta":{"line":233,"file":"MessageMentions.js","path":"src/structures"}}],"methods":[{"name":"has","description":"Checks if a user, guild member, role, or channel is mentioned.\nTakes into account user mentions, role mentions, and `@everyone`/`@here` mentions.","params":[{"name":"data","description":"The User/Role/Channel to check for","type":[[["UserResolvable"]],[["RoleResolvable"]],[["ChannelResolvable"]]]},{"name":"options","description":"The options for the check","optional":true,"type":[[["MessageMentionsHasOptions"]]]}],"returns":[[["boolean"]]],"meta":{"line":186,"file":"MessageMentions.js","path":"src/structures"}}],"meta":{"line":10,"file":"MessageMentions.js","path":"src/structures"}},{"name":"MessagePayload","description":"Represents a message to be sent to the API.","construct":{"name":"MessagePayload","params":[{"name":"target","description":"The target for this message to be sent to","type":[[["MessageTarget"]]]},{"name":"options","description":"Options passed in from send","type":[[["MessageOptions"]],[["WebhookMessageOptions"]]]}]},"props":[{"name":"target","description":"The target for this message to be sent to","type":[[["MessageTarget"]]],"meta":{"line":25,"file":"MessagePayload.js","path":"src/structures"}},{"name":"options","description":"Options passed in from send","type":[[["MessageOptions"]],[["WebhookMessageOptions"]]],"meta":{"line":31,"file":"MessagePayload.js","path":"src/structures"}},{"name":"data","description":"Data sendable to the API","nullable":true,"type":[[["APIMessage"]]],"meta":{"line":37,"file":"MessagePayload.js","path":"src/structures"}},{"name":"files","description":"Files sendable to the API","nullable":true,"type":[[["Array","<"],["MessageFile",">"]]],"meta":{"line":50,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isWebhook","description":"Whether or not the target is a {@link Webhook} or a {@link WebhookClient}","readonly":true,"type":[[["boolean"]]],"meta":{"line":58,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isUser","description":"Whether or not the target is a {@link User}","readonly":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isMessage","description":"Whether or not the target is a {@link Message}","readonly":true,"type":[[["boolean"]]],"meta":{"line":80,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isMessageManager","description":"Whether or not the target is a {@link MessageManager}","readonly":true,"type":[[["boolean"]]],"meta":{"line":90,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isInteraction","description":"Whether or not the target is an {@link Interaction} or an {@link InteractionWebhook}","readonly":true,"type":[[["boolean"]]],"meta":{"line":100,"file":"MessagePayload.js","path":"src/structures"}}],"methods":[{"name":"makeContent","description":"Makes the content of this message.","returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":110,"file":"MessagePayload.js","path":"src/structures"}},{"name":"resolveData","description":"Resolves data.","async":true,"returns":[[["MessagePayload"]]],"meta":{"line":125,"file":"MessagePayload.js","path":"src/structures"}},{"name":"resolveFiles","description":"Resolves files.","async":true,"returns":[[["Promise","<"],["MessagePayload",">"]]],"meta":{"line":245,"file":"MessagePayload.js","path":"src/structures"}},{"name":"resolveFile","description":"Resolves a single file into an object sendable to the API.","scope":"static","params":[{"name":"fileLike","description":"Something that could be resolved to a file","type":[[["BufferResolvable"]],[["Stream"]],[["FileOptions"]],[["MessageAttachment"]]]}],"async":true,"returns":[[["Promise","<"],["MessageFile",">"]]],"meta":{"line":257,"file":"MessagePayload.js","path":"src/structures"}},{"name":"create","description":"Creates a {@link MessagePayload} from user-level arguments.","scope":"static","params":[{"name":"target","description":"Target to send to","type":[[["MessageTarget"]]]},{"name":"options","description":"Options or content to use","type":[[["string"]],[["MessageOptions"]],[["WebhookMessageOptions"]]]},{"name":"extra","description":"Extra options to add onto specified options","optional":true,"default":"{}","type":[[["MessageOptions"]],[["WebhookMessageOptions"]]]}],"returns":[[["MessagePayload"]]],"meta":{"line":294,"file":"MessagePayload.js","path":"src/structures"}}],"meta":{"line":15,"file":"MessagePayload.js","path":"src/structures"}},{"name":"MessageReaction","description":"Represents a reaction to a message.","props":[{"name":"client","description":"The client that instantiated this message reaction","readonly":true,"type":[[["Client"]]],"meta":{"line":13,"file":"MessageReaction.js","path":"src/structures"}},{"name":"message","description":"The message that this reaction refers to","type":[[["Message"]]],"meta":{"line":25,"file":"MessageReaction.js","path":"src/structures"}},{"name":"me","description":"Whether the client has given this reaction","type":[[["boolean"]]],"meta":{"line":31,"file":"MessageReaction.js","path":"src/structures"}},{"name":"users","description":"A manager of the users that have given this reaction","type":[[["ReactionUserManager"]]],"meta":{"line":37,"file":"MessageReaction.js","path":"src/structures"}},{"name":"count","description":"The number of people that have given the same reaction","nullable":true,"type":[[["number"]]],"meta":{"line":50,"file":"MessageReaction.js","path":"src/structures"}},{"name":"emoji","description":"The emoji of this reaction. Either a {@link GuildEmoji} object for known custom emojis, or a {@link ReactionEmoji}\nobject which has fewer properties. Whatever the prototype of the emoji, it will still have\n`name`, `id`, `identifier` and `toString()`","readonly":true,"type":[[["GuildEmoji"]],[["ReactionEmoji"]]],"meta":{"line":74,"file":"MessageReaction.js","path":"src/structures"}},{"name":"partial","description":"Whether or not this reaction is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":93,"file":"MessageReaction.js","path":"src/structures"}}],"methods":[{"name":"remove","description":"Removes all users from this reaction.","async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":58,"file":"MessageReaction.js","path":"src/structures"}},{"name":"fetch","description":"Fetch this reaction.","async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":101,"file":"MessageReaction.js","path":"src/structures"}}],"meta":{"line":11,"file":"MessageReaction.js","path":"src/structures"}},{"name":"MessageSelectMenu","description":"Represents a select menu message component","extends":[[["BaseMessageComponent"]]],"construct":{"name":"MessageSelectMenu","params":[{"name":"data","description":"MessageSelectMenu to clone or raw data","optional":true,"default":"{}","type":[[["MessageSelectMenu"]],[["MessageSelectMenuOptions"]]]}]},"props":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","nullable":true,"type":[[["string"]]],"meta":{"line":55,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"placeholder","description":"Custom placeholder text to display when nothing is selected","nullable":true,"type":[[["string"]]],"meta":{"line":61,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"minValues","description":"The minimum number of selections required","nullable":true,"type":[[["number"]]],"meta":{"line":67,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"maxValues","description":"The maximum number of selections allowed","nullable":true,"type":[[["number"]]],"meta":{"line":73,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"options","description":"Options for the select menu","type":[[["Array","<"],["MessageSelectOption",">"]]],"meta":{"line":79,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"disabled","description":"Whether this select menu is currently disabled","type":[[["boolean"]]],"meta":{"line":85,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":50,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"setCustomId","description":"Sets the custom id of this select menu","params":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","type":[[["string"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":93,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setDisabled","description":"Sets the interactive status of the select menu","params":[{"name":"disabled","description":"Whether this select menu should be disabled","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":103,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setMaxValues","description":"Sets the maximum number of selections allowed for this select menu","params":[{"name":"maxValues","description":"Number of selections to be allowed","type":[[["number"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":113,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setMinValues","description":"Sets the minimum number of selections required for this select menu\nThis will default the maxValues to the number of options, unless manually set","params":[{"name":"minValues","description":"Number of selections to be required","type":[[["number"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":124,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setPlaceholder","description":"Sets the placeholder of this select menu","params":[{"name":"placeholder","description":"Custom placeholder text to display when nothing is selected","type":[[["string"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":134,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"addOptions","description":"Adds options to the select menu.","params":[{"name":"options","description":"The options to add","variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":144,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setOptions","description":"Sets the options of the select menu.","params":[{"name":"options","description":"The options to set","variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":154,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"spliceOptions","description":"Removes, replaces, and inserts options in the select menu.","params":[{"name":"index","description":"The index to start at","type":[[["number"]]]},{"name":"deleteCount","description":"The number of options to remove","type":[[["number"]]]},{"name":"options","description":"The replacing option objects","optional":true,"variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":166,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the select menu into a plain object","returns":{"types":[[["APIMessageSelectMenu"]]],"description":"The raw data of this select menu"},"meta":{"line":175,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"select","description":"Mesage select menu","params":[{"name":"message","description":"The message this select menu is for","type":[[["Message"]]]},{"name":"values","description":"The values of the select menu","type":[[["Array","<"],["string",">"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":218,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"normalizeOption","description":"Normalizes option input and resolves strings and emojis.","scope":"static","params":[{"name":"option","description":"The select menu option to normalize","type":[[["MessageSelectOptionData"]]]}],"returns":[[["MessageSelectOption"]]],"meta":{"line":192,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"normalizeOptions","description":"Normalizes option input and resolves strings and emojis.","scope":"static","params":[{"name":"options","description":"The select menu options to normalize","variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["Array","<"],["MessageSelectOption",">"]]],"meta":{"line":208,"file":"MessageSelectMenu.js","path":"src/structures"}}],"meta":{"line":12,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"NewsChannel","description":"Represents a guild news channel on Discord.","extends":[[["BaseGuildTextChannel"]]],"props":[{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":24,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"threads","description":"A manager of the threads belonging to this channel","type":[[["ThreadManager"]]],"meta":{"line":30,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":36,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"topic","description":"The topic of the text channel","nullable":true,"type":[[["string"]]],"meta":{"line":49,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in the channel, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":61,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":69,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for newly created threads in this channel","nullable":true,"type":[[["ThreadAutoArchiveDuration"]]],"meta":{"line":77,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":261,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"addFollower","description":"Adds the target to this channel's followers.","examples":["if (channel.type === 'GUILD_NEWS') {\n channel.addFollower('222197033908436994', 'Important announcements')\n .then(() => console.log('Added follower'))\n .catch(console.error);\n}"],"params":[{"name":"channel","description":"The channel where the webhook should be created","type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for creating the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["NewsChannel",">"]]],"meta":{"line":23,"file":"NewsChannel.js","path":"src/structures"}},{"name":"setDefaultAutoArchiveDuration","description":"Sets the default auto archive duration for all newly created threads in this channel.","inherits":"BaseGuildTextChannel#setDefaultAutoArchiveDuration","inherited":true,"params":[{"name":"defaultAutoArchiveDuration","description":"The new default auto archive duration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the channel's default auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":91,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setNSFW","description":"Sets whether this channel is flagged as NSFW.","inherits":"BaseGuildTextChannel#setNSFW","inherited":true,"params":[{"name":"nsfw","description":"Whether the channel should be considered NSFW","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the channel's NSFW flag","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":101,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setType","description":"Sets the type of this channel (only conversion between text and news is supported)","inherits":"BaseGuildTextChannel#setType","inherited":true,"params":[{"name":"type","description":"The new channel type","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the channel's type","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":111,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the channel.","inherits":"BaseGuildTextChannel#fetchWebhooks","inherited":true,"examples":["// Fetch webhooks\nchannel.fetchWebhooks()\n .then(hooks => console.log(`This channel has ${hooks.size} hooks`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":124,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createWebhook","description":"Creates a webhook for the channel.","inherits":"BaseGuildTextChannel#createWebhook","inherited":true,"examples":["// Create a webhook for the current channel\nchannel.createWebhook('Snek', {\n avatar: 'https://i.imgur.com/mI8XcpG.jpg',\n reason: 'Needed a cool new Webhook'\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"name","description":"The name of the webhook","type":[[["string"]]]},{"name":"options","description":"Options for creating the webhook","optional":true,"type":[[["ChannelWebhookCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Webhook",">"]]],"description":"Returns the created Webhook"},"meta":{"line":152,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","inherits":"BaseGuildTextChannel#setTopic","inherited":true,"examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":177,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildTextChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":207,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildTextChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":217,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","inherits":"BaseGuildTextChannel#send","inherited":true,"implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","inherits":"BaseGuildTextChannel#sendTyping","inherited":true,"implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":188,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","inherits":"BaseGuildTextChannel#createMessageCollector","inherited":true,"implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":203,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","inherits":"BaseGuildTextChannel#awaitMessages","inherited":true,"implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":226,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a button interaction collector.","inherits":"BaseGuildTextChannel#createMessageComponentCollector","inherited":true,"implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":250,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseGuildTextChannel#awaitMessageComponent","inherited":true,"implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":270,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","inherits":"BaseGuildTextChannel#bulkDelete","inherited":true,"implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":294,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":10,"file":"NewsChannel.js","path":"src/structures"}},{"name":"OAuth2Guild","description":"A partial guild received when using {@link GuildManager#fetch} to fetch multiple guilds.","extends":[[["BaseGuild"]]],"props":[{"name":"owner","description":"Whether the client user is the owner of the guild","type":[[["boolean"]]],"meta":{"line":18,"file":"OAuth2Guild.js","path":"src/structures"}},{"name":"permissions","description":"The permissions that the client user has in this guild","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":24,"file":"OAuth2Guild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":10,"file":"OAuth2Guild.js","path":"src/structures"}},{"name":"PartialGroupDMChannel","description":"Represents a Partial Group DM Channel on Discord.","extends":[[["Channel"]]],"props":[{"name":"name","description":"The name of this Group DM Channel","nullable":true,"type":[[["string"]]],"meta":{"line":23,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"icon","description":"The hash of the channel icon","nullable":true,"type":[[["string"]]],"meta":{"line":29,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"recipients","description":"The recipients of this Group DM Channel.","type":[[["Array","<"],["PartialRecipient",">"]]],"meta":{"line":41,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"messages","description":"Messages data","type":[[["Collection"]]],"meta":{"line":47,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"Last Message ID","nullable":true,"type":[[["snowflake","<"],["Messageid",">"]]],"meta":{"line":53,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"Last Pin Timestamp","type":[[["UnixTimestamp"]]],"meta":{"line":59,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"owner","description":"The owner of this Group DM Channel","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":66,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"invites","description":"Invites fetch","type":[[["Collection","<"],["string",", "],["Invite",">"]]],"meta":{"line":73,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"_setup","access":"private","params":[{"name":"client","description":"Discord Bot Client","type":[[["DiscordClient"]]]},{"name":"data","description":"Channel Data","type":[[["Object"]]]}],"meta":{"line":84,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"edit","access":"private","params":[{"name":"data","description":"name, icon","type":[[["Object"]]]}],"async":true,"returns":{"types":[[["any"]]],"description":"any data .-."},"meta":{"line":107,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this channel's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":125,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"call","description":"Call this DMChannel. [TEST only]","returns":[[["Promise","<"],["void",">"]]],"meta":{"line":210,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"Channel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":130,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":16,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"PermissionOverwrites","description":"Represents a permission overwrite for a role or member in a guild channel.","extends":[[["Base"]]],"props":[{"name":"channel","description":"The GuildChannel this overwrite is for","readonly":true,"type":[[["GuildChannel"]]],"meta":{"line":17,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"id","description":"The overwrite's id, either a {@link User} or a {@link Role} id","type":[[["Snowflake"]]],"meta":{"line":33,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"type","description":"The type of this overwrite","type":[[["OverwriteType"]]],"meta":{"line":40,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"deny","description":"The permissions that are denied for the user or role.","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":48,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"allow","description":"The permissions that are allowed for the user or role.","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":56,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits this Permission Overwrite.","examples":["// Update permission overwrites\npermissionOverwrites.edit({\n SEND_MESSAGES: false\n})\n .then(channel => console.log(channel.permissionOverwrites.get(message.author.id)))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"reason","description":"Reason for creating/editing this overwrite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["PermissionOverwrites",">"]]],"meta":{"line":73,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"delete","description":"Deletes this Permission Overwrite.","params":[{"name":"reason","description":"Reason for deleting this overwrite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["PermissionOverwrites",">"]]],"meta":{"line":83,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"resolveOverwriteOptions","description":"Resolves bitfield permissions overwrites from an object.","scope":"static","params":[{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"initialPermissions","description":"The initial permissions","type":[[["ResolvedOverwriteOptions"]]]}],"returns":[[["ResolvedOverwriteOptions"]]],"meta":{"line":121,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"resolve","description":"Resolves an overwrite into {@link RawOverwriteData}.","scope":"static","params":[{"name":"overwrite","description":"The overwrite-like data to resolve","type":[[["OverwriteResolvable"]]]},{"name":"guild","description":"The guild to resolve from","optional":true,"type":[[["Guild"]]]}],"returns":[[["RawOverwriteData"]]],"meta":{"line":172,"file":"PermissionOverwrites.js","path":"src/structures"}}],"meta":{"line":13,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"Presence","description":"Represents a user's presence.","extends":[[["Base"]]],"props":[{"name":"userId","description":"The presence's user id","type":[[["Snowflake"]]],"meta":{"line":45,"file":"Presence.js","path":"src/structures"}},{"name":"guild","description":"The guild this presence is in","nullable":true,"type":[[["Guild"]]],"meta":{"line":51,"file":"Presence.js","path":"src/structures"}},{"name":"user","description":"The user of this presence","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":61,"file":"Presence.js","path":"src/structures"}},{"name":"member","description":"The member of this presence","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":70,"file":"Presence.js","path":"src/structures"}},{"name":"status","description":"The status of this presence","type":[[["PresenceStatus"]]],"meta":{"line":80,"file":"Presence.js","path":"src/structures"}},{"name":"activities","description":"The activities of this presence","type":[[["Array","<"],["Activity",">"]]],"meta":{"line":90,"file":"Presence.js","path":"src/structures"}},{"name":"clientStatus","description":"The devices this presence is on","nullable":true,"type":[[["Object"]]],"props":[{"name":"web","description":"The current presence in the web application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"mobile","description":"The current presence in the mobile application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"desktop","description":"The current presence in the desktop application","nullable":true,"type":[[["ClientPresenceStatus"]]]}],"meta":{"line":103,"file":"Presence.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"equals","description":"Whether this presence is equal to another.","params":[{"name":"presence","description":"The presence to compare with","type":[[["Presence"]]]}],"returns":[[["boolean"]]],"meta":{"line":122,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":37,"file":"Presence.js","path":"src/structures"}},{"name":"Activity","description":"Represents an activity that is part of a user's presence.","props":[{"name":"id","description":"The activity's id","type":[[["string"]]],"meta":{"line":159,"file":"Presence.js","path":"src/structures"}},{"name":"name","description":"The activity's name","type":[[["string"]]],"meta":{"line":165,"file":"Presence.js","path":"src/structures"}},{"name":"type","description":"The activity status's type","type":[[["ActivityType"]]],"meta":{"line":171,"file":"Presence.js","path":"src/structures"}},{"name":"url","description":"If the activity is being streamed, a link to the stream","nullable":true,"type":[[["string"]]],"meta":{"line":177,"file":"Presence.js","path":"src/structures"}},{"name":"details","description":"Details about the activity","nullable":true,"type":[[["string"]]],"meta":{"line":183,"file":"Presence.js","path":"src/structures"}},{"name":"state","description":"State of the activity","nullable":true,"type":[[["string"]]],"meta":{"line":189,"file":"Presence.js","path":"src/structures"}},{"name":"applicationId","description":"The id of the application associated with this activity","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":195,"file":"Presence.js","path":"src/structures"}},{"name":"timestamps","description":"Timestamps for the activity","nullable":true,"type":[[["ActivityTimestamps"]]],"meta":{"line":208,"file":"Presence.js","path":"src/structures"}},{"name":"syncId","description":"The Spotify song's id","nullable":true,"type":[[["string"]]],"meta":{"line":219,"file":"Presence.js","path":"src/structures"}},{"name":"platform","description":"The platform the game is being played on","nullable":true,"type":[[["ActivityPlatform"]]],"meta":{"line":225,"file":"Presence.js","path":"src/structures"}},{"name":"party","description":"Party of the activity","nullable":true,"type":[[["ActivityParty"]]],"meta":{"line":238,"file":"Presence.js","path":"src/structures"}},{"name":"assets","description":"Assets for rich presence","nullable":true,"type":[[["RichPresenceAssets"]]],"meta":{"line":244,"file":"Presence.js","path":"src/structures"}},{"name":"flags","description":"Flags that describe the activity","type":[[["Readonly","<"],["ActivityFlags",">"]]],"meta":{"line":250,"file":"Presence.js","path":"src/structures"}},{"name":"emoji","description":"Emoji for a custom activity","nullable":true,"type":[[["Emoji"]]],"meta":{"line":256,"file":"Presence.js","path":"src/structures"}},{"name":"sessionId","description":"The game's or Spotify session's id","nullable":true,"type":[[["string"]]],"meta":{"line":262,"file":"Presence.js","path":"src/structures"}},{"name":"buttons","description":"The labels of the buttons of this rich presence","type":[[["Array","<"],["string",">"]]],"meta":{"line":268,"file":"Presence.js","path":"src/structures"}},{"name":"createdTimestamp","description":"Creation date of the activity","type":[[["number"]]],"meta":{"line":274,"file":"Presence.js","path":"src/structures"}},{"name":"createdAt","description":"The time the activity was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":299,"file":"Presence.js","path":"src/structures"}}],"methods":[{"name":"equals","description":"Whether this activity is equal to another activity.","params":[{"name":"activity","description":"The activity to compare with","type":[[["Activity"]]]}],"returns":[[["boolean"]]],"meta":{"line":282,"file":"Presence.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the activities' name instead of the Activity object.","returns":[[["string"]]],"meta":{"line":307,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":151,"file":"Presence.js","path":"src/structures"}},{"name":"RichPresenceAssets","description":"Assets for a rich presence","props":[{"name":"largeText","description":"Hover text for the large image","nullable":true,"type":[[["string"]]],"meta":{"line":327,"file":"Presence.js","path":"src/structures"}},{"name":"smallText","description":"Hover text for the small image","nullable":true,"type":[[["string"]]],"meta":{"line":333,"file":"Presence.js","path":"src/structures"}},{"name":"largeImage","description":"The large image asset's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":339,"file":"Presence.js","path":"src/structures"}},{"name":"smallImage","description":"The small image asset's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":345,"file":"Presence.js","path":"src/structures"}}],"methods":[{"name":"smallImageURL","description":"Gets the URL of the small image asset","params":[{"name":"options","description":"Options for the image URL","optional":true,"type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":353,"file":"Presence.js","path":"src/structures"}},{"name":"largeImageURL","description":"Gets the URL of the large image asset","params":[{"name":"options","description":"Options for the image URL","optional":true,"type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":368,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":319,"file":"Presence.js","path":"src/structures"}},{"name":"ReactionCollector","description":"Collects reactions on messages.\nWill automatically stop if the message ({@link Client#event:messageDelete messageDelete} or\n{@link Client#event:messageDeleteBulk messageDeleteBulk}),\nchannel ({@link Client#event:channelDelete channelDelete}),\nthread ({@link Client#event:threadDelete threadDelete}), or\nguild ({@link Client#event:guildDelete guildDelete}) is deleted.","extends":[[["Collector"]]],"construct":{"name":"ReactionCollector","params":[{"name":"message","description":"The message upon which to collect reactions","type":[[["Message"]]]},{"name":"options","description":"The options to apply to this collector","optional":true,"default":"{}","type":[[["ReactionCollectorOptions"]]]}]},"props":[{"name":"message","description":"The message upon which to collect reactions","type":[[["Message"]]],"meta":{"line":35,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"users","description":"The users that have reacted to this message","type":[[["Collection"]]],"meta":{"line":41,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"total","description":"The total number of reactions collected","type":[[["number"]]],"meta":{"line":47,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":164,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"collect","description":"Handles an incoming reaction for possible collection.","access":"private","params":[{"name":"reaction","description":"The reaction to possibly collect","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that added the reaction","type":[[["User"]]]}],"returns":{"types":[[["Snowflake"]],[["string"]]],"nullable":true},"meta":{"line":110,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Handles a reaction deletion for possible disposal.","params":[{"name":"reaction","description":"The reaction to possibly dispose of","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that removed the reaction","type":[[["User"]]]}],"returns":{"types":[[["Snowflake"]],[["string"]]],"nullable":true},"meta":{"line":128,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"empty","description":"Empties this reaction collector.","meta":{"line":152,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleMessageDeletion","description":"Handles checking if the message has been deleted, and if so, stops the collector with the reason 'messageDelete'.","access":"private","params":[{"name":"message","description":"The message that was deleted","type":[[["Message"]]]}],"returns":[[["void"]]],"meta":{"line":177,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleChannelDeletion","description":"Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.","access":"private","params":[{"name":"channel","description":"The channel that was deleted","type":[[["GuildChannel"]]]}],"returns":[[["void"]]],"meta":{"line":189,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleThreadDeletion","description":"Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.","access":"private","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"returns":[[["void"]]],"meta":{"line":201,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleGuildDeletion","description":"Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.","access":"private","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"returns":[[["void"]]],"meta":{"line":213,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","inherits":"Collector#handleCollect","inherited":true,"emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","inherits":"Collector#handleDispose","inherited":true,"emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","inherits":"Collector#stop","inherited":true,"emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","inherits":"Collector#resetTimer","inherited":true,"params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","inherits":"Collector#checkEnd","inherited":true,"returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"key","description":"Gets the collector key for a reaction.","scope":"static","params":[{"name":"reaction","description":"The message reaction to get the key for","type":[[["MessageReaction"]]]}],"returns":[[["Snowflake"]],[["string"]]],"meta":{"line":224,"file":"ReactionCollector.js","path":"src/structures"}}],"events":[{"name":"create","description":"Emitted whenever a reaction is newly created on a message. Will emit only when a new reaction is\nadded to the message, as opposed to {@link Collector#collect} which will\nbe emitted even when a reaction has already been added to the message.","params":[{"name":"reaction","description":"The reaction that was added","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that added the reaction","type":[[["User"]]]}],"meta":{"line":82,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"collect","description":"Emitted whenever a reaction is collected.","params":[{"name":"reaction","description":"The reaction that was collected","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that added the reaction","type":[[["User"]]]}],"meta":{"line":111,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Emitted when the reaction had all the users removed and the `dispose` option is set to true.","params":[{"name":"reaction","description":"The reaction that was disposed of","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that removed the reaction","type":[[["User"]]]}],"meta":{"line":129,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"remove","description":"Emitted when the reaction had one user removed and the `dispose` option is set to true.","params":[{"name":"reaction","description":"The reaction that was removed","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that removed the reaction","type":[[["User"]]]}],"meta":{"line":137,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":23,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"ReactionEmoji","description":"Represents a limited emoji set used for both custom and unicode emojis. Custom emojis\nwill use this class opposed to the Emoji class when the client doesn't know enough\ninformation about them.","extends":[[["Emoji"]]],"props":[{"name":"reaction","description":"The message reaction this emoji refers to","type":[[["MessageReaction"]]],"meta":{"line":19,"file":"ReactionEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":12,"file":"ReactionEmoji.js","path":"src/structures"}},{"name":"Role","description":"Represents a role on Discord.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild that the role belongs to","type":[[["Guild"]]],"meta":{"line":32,"file":"Role.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of the role","nullable":true,"type":[[["string"]]],"meta":{"line":38,"file":"Role.js","path":"src/structures"}},{"name":"unicodeEmoji","description":"The unicode emoji for the role","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Role.js","path":"src/structures"}},{"name":"id","description":"The role's id (unique to the guild it is part of)","type":[[["Snowflake"]]],"meta":{"line":54,"file":"Role.js","path":"src/structures"}},{"name":"name","description":"The name of the role","type":[[["string"]]],"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"name":"color","description":"The base 10 color of the role","type":[[["number"]]],"meta":{"line":68,"file":"Role.js","path":"src/structures"}},{"name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","type":[[["boolean"]]],"meta":{"line":76,"file":"Role.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the role from the API","type":[[["number"]]],"meta":{"line":84,"file":"Role.js","path":"src/structures"}},{"name":"permissions","description":"The permissions of the role","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":92,"file":"Role.js","path":"src/structures"}},{"name":"managed","description":"Whether or not the role is managed by an external service","type":[[["boolean"]]],"meta":{"line":100,"file":"Role.js","path":"src/structures"}},{"name":"mentionable","description":"Whether or not the role can be mentioned by anyone","type":[[["boolean"]]],"meta":{"line":108,"file":"Role.js","path":"src/structures"}},{"name":"tags","description":"The tags this role has","nullable":true,"type":[[["Object"]]],"props":[{"name":"botId","description":"The id of the bot this role belongs to","optional":true,"type":[[["Snowflake"]]]},{"name":"integrationId","description":"The id of the integration this role belongs to","optional":true,"type":[[["Snowflake"]],[["string"]]]},{"name":"premiumSubscriberRole","description":"Whether this is the guild's premium subscription role","optional":true,"type":[[["true"]]]}],"meta":{"line":122,"file":"Role.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the role was created at","readonly":true,"type":[[["number"]]],"meta":{"line":141,"file":"Role.js","path":"src/structures"}},{"name":"createdAt","description":"The time the role was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":150,"file":"Role.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the role has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":159,"file":"Role.js","path":"src/structures"}},{"name":"hexColor","description":"The hexadecimal version of the role color, with a leading hashtag","readonly":true,"type":[[["string"]]],"meta":{"line":189,"file":"Role.js","path":"src/structures"}},{"name":"members","description":"The cached guild members that have this role","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":198,"file":"Role.js","path":"src/structures"}},{"name":"editable","description":"Whether the role is editable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":207,"file":"Role.js","path":"src/structures"}},{"name":"position","description":"The position of the role in the role manager","readonly":true,"type":[[["number"]]],"meta":{"line":219,"file":"Role.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"comparePositionTo","description":"Compares this role's position to another role's.","params":[{"name":"role","description":"Role to compare to this one","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["number"]]],"description":"Negative number if this role's position is lower (other role's is higher),\npositive number if this one is higher (other's is lower), 0 if equal"},"meta":{"line":230,"file":"Role.js","path":"src/structures"}},{"name":"edit","description":"Edits the role.","examples":["// Edit a role\nrole.edit({ name: 'new role' })\n .then(updated => console.log(`Edited role name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the role","type":[[["RoleData"]]]},{"name":"reason","description":"Reason for editing this role","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":260,"file":"Role.js","path":"src/structures"}},{"name":"permissionsIn","description":"Returns `channel.permissionsFor(role)`. Returns permissions for a role in a guild channel,\ntaking into account permission overwrites.","params":[{"name":"channel","description":"The guild channel to use as context","type":[[["GuildChannel"]],[["Snowflake"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":271,"file":"Role.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the role.","examples":["// Set the name of the role\nrole.setName('new role')\n .then(updated => console.log(`Updated role name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name of the role","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the role's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":288,"file":"Role.js","path":"src/structures"}},{"name":"setColor","description":"Sets a new color for the role.","examples":["// Set the color of a role\nrole.setColor('#FF0000')\n .then(updated => console.log(`Set color of role to ${updated.color}`))\n .catch(console.error);"],"params":[{"name":"color","description":"The color of the role","type":[[["ColorResolvable"]]]},{"name":"reason","description":"Reason for changing the role's color","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":303,"file":"Role.js","path":"src/structures"}},{"name":"setHoist","description":"Sets whether or not the role should be hoisted.","examples":["// Set the hoist of the role\nrole.setHoist(true)\n .then(updated => console.log(`Role hoisted: ${updated.hoist}`))\n .catch(console.error);"],"params":[{"name":"hoist","description":"Whether or not to hoist the role","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for setting whether or not the role should be hoisted","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":318,"file":"Role.js","path":"src/structures"}},{"name":"setPermissions","description":"Sets the permissions of the role.","examples":["// Set the permissions of the role\nrole.setPermissions([Permissions.FLAGS.KICK_MEMBERS, Permissions.FLAGS.BAN_MEMBERS])\n .then(updated => console.log(`Updated permissions to ${updated.permissions.bitfield}`))\n .catch(console.error);","// Remove all permissions from a role\nrole.setPermissions(0n)\n .then(updated => console.log(`Updated permissions to ${updated.permissions.bitfield}`))\n .catch(console.error);"],"params":[{"name":"permissions","description":"The permissions of the role","type":[[["PermissionResolvable"]]]},{"name":"reason","description":"Reason for changing the role's permissions","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":338,"file":"Role.js","path":"src/structures"}},{"name":"setMentionable","description":"Sets whether this role is mentionable.","examples":["// Make the role mentionable\nrole.setMentionable(true)\n .then(updated => console.log(`Role updated ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"mentionable","description":"Whether this role should be mentionable","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for setting whether or not this role should be mentionable","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":353,"file":"Role.js","path":"src/structures"}},{"name":"setIcon","description":"Sets a new icon for the role.","params":[{"name":"icon","description":"The icon for the role\nThe `EmojiResolvable` should belong to the same guild as the role.\nIf not, pass the emoji's URL directly","nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]],[["EmojiResolvable"]]]},{"name":"reason","description":"Reason for changing the role's icon","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":365,"file":"Role.js","path":"src/structures"}},{"name":"setUnicodeEmoji","description":"Sets a new unicode emoji for the role.","examples":["// Set a new unicode emoji for the role\nrole.setUnicodeEmoji('🤖')\n .then(updated => console.log(`Set unicode emoji for the role to ${updated.unicodeEmoji}`))\n .catch(console.error);"],"params":[{"name":"unicodeEmoji","description":"The new unicode emoji for the role","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the role's unicode emoji","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":380,"file":"Role.js","path":"src/structures"}},{"name":"setPosition","description":"Sets the new position of the role.","examples":["// Set the position of the role\nrole.setPosition(1)\n .then(updated => console.log(`Role position: ${updated.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the role","type":[[["number"]]]},{"name":"options","description":"Options for setting the position","optional":true,"type":[[["SetRolePositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":402,"file":"Role.js","path":"src/structures"}},{"name":"delete","description":"Deletes the role.","examples":["// Delete a role\nrole.delete('The role needed to go')\n .then(deleted => console.log(`Deleted role ${deleted.name}`))\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this role","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":428,"file":"Role.js","path":"src/structures"}},{"name":"iconURL","description":"A link to the role's icon","params":[{"name":"options","description":"Options for the image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":438,"file":"Role.js","path":"src/structures"}},{"name":"equals","description":"Whether this role equals another role. It compares all properties, so for most operations\nit is advisable to just compare `role.id === role2.id` as it is much faster and is often\nwhat most users need.","params":[{"name":"role","description":"Role to compare with","type":[[["Role"]]]}],"returns":[[["boolean"]]],"meta":{"line":450,"file":"Role.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the role's mention instead of the Role object.","examples":["// Logs: Role: <@&123456789012345678>\nconsole.log(`Role: ${role}`);"],"returns":[[["string"]]],"meta":{"line":472,"file":"Role.js","path":"src/structures"}},{"name":"comparePositions","description":"Compares the positions of two roles.","scope":"static","deprecated":"Use {@link RoleManager#comparePositions} instead.","params":[{"name":"role1","description":"First role to compare","type":[[["Role"]]]},{"name":"role2","description":"Second role to compare","type":[[["Role"]]]}],"returns":{"types":[[["number"]]],"description":"Negative number if the first role's position is lower (second role's is higher),\npositive number if the first's is higher (second's is lower), 0 if equal"},"meta":{"line":492,"file":"Role.js","path":"src/structures"}}],"meta":{"line":24,"file":"Role.js","path":"src/structures"}},{"name":"SelectMenuInteraction","description":"Represents a select menu interaction.","extends":[[["MessageComponentInteraction"]]],"props":[{"name":"values","description":"The values selected, if the component which was interacted with was a select menu","type":[[["Array","<"],["string",">"]]],"meta":{"line":17,"file":"SelectMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":17,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"message","description":"The message to which the component was attached","type":[[["Message"]],[["APIMessage"]]],"meta":{"line":27,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"customId","description":"The custom id of the component which was interacted with","type":[[["string"]]],"meta":{"line":33,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"componentType","description":"The type of component which was interacted with","type":[[["string"]]],"meta":{"line":39,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":45,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":57,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":63,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"component","description":"The component which was interacted with","readonly":true,"type":[[["MessageActionRowComponent"]],[["APIMessageActionRowComponent"]]],"meta":{"line":78,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"MessageComponentInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"MessageComponentInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"MessageComponentInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"MessageComponentInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"MessageComponentInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"MessageComponentInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","inherits":"MessageComponentInteraction#deferUpdate","inherited":true,"implements":["InteractionResponses#deferUpdate"],"examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":179,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","inherits":"MessageComponentInteraction#update","inherited":true,"implements":["InteractionResponses#update"],"examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":205,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"SelectMenuInteraction.js","path":"src/structures"}},{"name":"StageChannel","description":"Represents a guild stage channel on Discord.","extends":[[["BaseGuildVoiceChannel"]]],"props":[{"name":"topic","description":"The topic of the stage channel","nullable":true,"type":[[["string"]]],"meta":{"line":18,"file":"StageChannel.js","path":"src/structures"}},{"name":"stageInstance","description":"The stage instance of this stage channel, if it exists","readonly":true,"nullable":true,"type":[[["StageInstance"]]],"meta":{"line":27,"file":"StageChannel.js","path":"src/structures"}},{"name":"rtcRegion","description":"The RTC region for this voice-based channel. This region is automatically selected if `null`.","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"bitrate","description":"The bitrate of this voice-based channel","type":[[["number"]]],"meta":{"line":28,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"userLimit","description":"The maximum amount of users allowed in this channel.","type":[[["number"]]],"meta":{"line":36,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"members","description":"The members in this voice-based channel","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":45,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"full","description":"Checks if the voice-based channel is full","readonly":true,"type":[[["boolean"]]],"meta":{"line":60,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the channel is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"createStageInstance","description":"Creates a stage instance associated with this stage channel.","params":[{"name":"options","description":"The options to create the stage instance","type":[[["StageInstanceCreateOptions"]]]}],"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":36,"file":"StageChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":51,"file":"StageChannel.js","path":"src/structures"}},{"name":"setRTCRegion","description":"Sets the RTC region of the channel.","inherits":"BaseGuildVoiceChannel#setRTCRegion","inherited":true,"examples":["// Set the RTC region to europe\nchannel.setRTCRegion('europe');","// Remove a fixed region for this channel - let Discord decide automatically\nchannel.setRTCRegion(null);"],"params":[{"name":"region","description":"The new region of the channel. Set to `null` to remove a specific region for the channel","nullable":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["BaseGuildVoiceChannel",">"]]],"meta":{"line":94,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildVoiceChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":108,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildVoiceChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":118,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":9,"file":"StageChannel.js","path":"src/structures"}},{"name":"StageInstance","description":"Represents a stage instance.","extends":[[["Base"]]],"props":[{"name":"id","description":"The stage instance's id","type":[[["Snowflake"]]],"meta":{"line":28,"file":"StageInstance.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild associated with the stage channel","type":[[["Snowflake"]]],"meta":{"line":39,"file":"StageInstance.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel associated with the stage channel","type":[[["Snowflake"]]],"meta":{"line":47,"file":"StageInstance.js","path":"src/structures"}},{"name":"topic","description":"The topic of the stage instance","type":[[["string"]]],"meta":{"line":55,"file":"StageInstance.js","path":"src/structures"}},{"name":"privacyLevel","description":"The privacy level of the stage instance","type":[[["PrivacyLevel"]]],"meta":{"line":63,"file":"StageInstance.js","path":"src/structures"}},{"name":"discoverableDisabled","description":"Whether or not stage discovery is disabled","nullable":true,"type":[[["boolean"]]],"meta":{"line":71,"file":"StageInstance.js","path":"src/structures"}},{"name":"channel","description":"The stage channel associated with this stage instance","readonly":true,"nullable":true,"type":[[["StageChannel"]]],"meta":{"line":82,"file":"StageInstance.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the stage instance has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":91,"file":"StageInstance.js","path":"src/structures"}},{"name":"guild","description":"The guild this stage instance belongs to","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":121,"file":"StageInstance.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this stage instances was created at","readonly":true,"type":[[["number"]]],"meta":{"line":174,"file":"StageInstance.js","path":"src/structures"}},{"name":"createdAt","description":"The time this stage instance was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":183,"file":"StageInstance.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits this stage instance.","examples":["// Edit a stage instance\nstageInstance.edit({ topic: 'new topic' })\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error)"],"params":[{"name":"options","description":"The options to edit the stage instance","type":[[["StageInstanceEditOptions"]]]}],"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":135,"file":"StageInstance.js","path":"src/structures"}},{"name":"delete","description":"Deletes this stage instance.","examples":["// Delete a stage instance\nstageInstance.delete()\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":148,"file":"StageInstance.js","path":"src/structures"}},{"name":"setTopic","description":"Sets the topic of this stage instance.","examples":["// Set topic of a stage instance\nstageInstance.setTopic('new topic')\n .then(stageInstance => console.log(`Set the topic to: ${stageInstance.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The topic for the stage instance","type":[[["string"]]]}],"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":165,"file":"StageInstance.js","path":"src/structures"}}],"meta":{"line":20,"file":"StageInstance.js","path":"src/structures"}},{"name":"Sticker","description":"Represents a Sticker.","extends":[[["Base"]]],"props":[{"name":"id","description":"The sticker's id","type":[[["Snowflake"]]],"meta":{"line":32,"file":"Sticker.js","path":"src/structures"}},{"name":"description","description":"The description of the sticker","nullable":true,"type":[[["string"]]],"meta":{"line":39,"file":"Sticker.js","path":"src/structures"}},{"name":"type","description":"The type of the sticker","nullable":true,"type":[[["StickerType"]]],"meta":{"line":49,"file":"Sticker.js","path":"src/structures"}},{"name":"format","description":"The format of the sticker","type":[[["StickerFormatType"]]],"meta":{"line":59,"file":"Sticker.js","path":"src/structures"}},{"name":"name","description":"The name of the sticker","type":[[["string"]]],"meta":{"line":67,"file":"Sticker.js","path":"src/structures"}},{"name":"packId","description":"The id of the pack the sticker is from, for standard stickers","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":75,"file":"Sticker.js","path":"src/structures"}},{"name":"tags","description":"An array of tags for the sticker","nullable":true,"type":[[["Array","<"],["string",">"]]],"meta":{"line":85,"file":"Sticker.js","path":"src/structures"}},{"name":"available","description":"Whether or not the guild sticker is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":95,"file":"Sticker.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild that owns this sticker","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":105,"file":"Sticker.js","path":"src/structures"}},{"name":"user","description":"The user that uploaded the guild sticker","nullable":true,"type":[[["User"]]],"meta":{"line":115,"file":"Sticker.js","path":"src/structures"}},{"name":"sortValue","description":"The standard sticker's sort order within its pack","nullable":true,"type":[[["number"]]],"meta":{"line":125,"file":"Sticker.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the sticker was created at","readonly":true,"type":[[["number"]]],"meta":{"line":136,"file":"Sticker.js","path":"src/structures"}},{"name":"createdAt","description":"The time the sticker was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":145,"file":"Sticker.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the sticker has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":154,"file":"Sticker.js","path":"src/structures"}},{"name":"partial","description":"Whether this sticker is partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":184,"file":"Sticker.js","path":"src/structures"}},{"name":"guild","description":"The guild that owns this sticker","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":193,"file":"Sticker.js","path":"src/structures"}},{"name":"url","description":"A link to the sticker\nIf the sticker's format is LOTTIE, it returns the URL of the Lottie JSON file.","type":[[["string"]]],"meta":{"line":202,"file":"Sticker.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Fetches this sticker.","async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":210,"file":"Sticker.js","path":"src/structures"}},{"name":"fetchPack","description":"Fetches the pack this sticker is part of from Discord, if this is a Nitro sticker.","async":true,"returns":[[["Promise",""],["StickerPack",">"]]],"meta":{"line":220,"file":"Sticker.js","path":"src/structures"}},{"name":"fetchUser","description":"Fetches the user who uploaded this sticker, if this is a guild sticker.","async":true,"returns":[[["Promise",""],["User",">"]]],"meta":{"line":228,"file":"Sticker.js","path":"src/structures"}},{"name":"edit","description":"Edits the sticker.","examples":["// Update the name of a sticker\nsticker.edit({ name: 'new name' })\n .then(s => console.log(`Updated the name of the sticker to ${s.name}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the sticker","optional":true,"type":[[["GuildStickerEditData"]]]},{"name":"reason","description":"Reason for editing this sticker","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":256,"file":"Sticker.js","path":"src/structures"}},{"name":"delete","description":"Deletes the sticker.","examples":["// Delete a message\nsticker.delete()\n .then(s => console.log(`Deleted sticker ${s.name}`))\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this sticker","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":270,"file":"Sticker.js","path":"src/structures"}},{"name":"equals","description":"Whether this sticker is the same as another one.","params":[{"name":"other","description":"The sticker to compare it to","type":[[["Sticker"]],[["APISticker"]]]}],"returns":[[["boolean"]]],"meta":{"line":280,"file":"Sticker.js","path":"src/structures"}}],"meta":{"line":20,"file":"Sticker.js","path":"src/structures"}},{"name":"StickerPack","description":"Represents a pack of standard stickers.","extends":[[["Base"]]],"props":[{"name":"id","description":"The Sticker pack's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"StickerPack.js","path":"src/structures"}},{"name":"stickers","description":"The stickers in the pack","type":[[["Collection","<"],["Snowflake",", "],["Sticker",">"]]],"meta":{"line":25,"file":"StickerPack.js","path":"src/structures"}},{"name":"name","description":"The name of the sticker pack","type":[[["string"]]],"meta":{"line":31,"file":"StickerPack.js","path":"src/structures"}},{"name":"skuId","description":"The id of the pack's SKU","type":[[["Snowflake"]]],"meta":{"line":37,"file":"StickerPack.js","path":"src/structures"}},{"name":"coverStickerId","description":"The id of a sticker in the pack which is shown as the pack's icon","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":43,"file":"StickerPack.js","path":"src/structures"}},{"name":"description","description":"The description of the sticker pack","type":[[["string"]]],"meta":{"line":49,"file":"StickerPack.js","path":"src/structures"}},{"name":"bannerId","description":"The id of the sticker pack's banner image","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":55,"file":"StickerPack.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the sticker was created at","readonly":true,"type":[[["number"]]],"meta":{"line":63,"file":"StickerPack.js","path":"src/structures"}},{"name":"createdAt","description":"The time the sticker was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":72,"file":"StickerPack.js","path":"src/structures"}},{"name":"coverSticker","description":"The sticker which is shown as the pack's icon","readonly":true,"nullable":true,"type":[[["Sticker"]]],"meta":{"line":81,"file":"StickerPack.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"bannerURL","description":"The URL to this sticker pack's banner.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":90,"file":"StickerPack.js","path":"src/structures"}}],"meta":{"line":12,"file":"StickerPack.js","path":"src/structures"}},{"name":"StoreChannel","description":"Represents a guild store channel on Discord.\nStore channels are deprecated and will be removed from Discord in March 2022. See\n[Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/4414590563479)\nfor more information.","extends":[[["GuildChannel"]]],"props":[{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":20,"file":"StoreChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":261,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"createInvite","description":"Creates an invite to this guild channel.","examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":41,"file":"StoreChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":51,"file":"StoreChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":12,"file":"StoreChannel.js","path":"src/structures"}},{"name":"Team","description":"Represents a Client OAuth2 Application Team.","extends":[[["Base"]]],"props":[{"name":"id","description":"The Team's id","type":[[["Snowflake"]]],"meta":{"line":23,"file":"Team.js","path":"src/structures"}},{"name":"name","description":"The name of the Team","type":[[["string"]]],"meta":{"line":30,"file":"Team.js","path":"src/structures"}},{"name":"icon","description":"The Team's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":38,"file":"Team.js","path":"src/structures"}},{"name":"ownerId","description":"The Team's owner id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":48,"file":"Team.js","path":"src/structures"}},{"name":"members","description":"The Team's members","type":[[["Collection","<"],["Snowflake",", "],["TeamMember",">"]]],"meta":{"line":56,"file":"Team.js","path":"src/structures"}},{"name":"owner","description":"The owner of this team","readonly":true,"nullable":true,"type":[[["TeamMember"]]],"meta":{"line":69,"file":"Team.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the team was created at","readonly":true,"type":[[["number"]]],"meta":{"line":78,"file":"Team.js","path":"src/structures"}},{"name":"createdAt","description":"The time the team was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":87,"file":"Team.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"iconURL","description":"A link to the team's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":96,"file":"Team.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the Team's name instead of the\nTeam object.","examples":["// Logs: Team name: My Team\nconsole.log(`Team name: ${team}`);"],"returns":[[["string"]]],"meta":{"line":109,"file":"Team.js","path":"src/structures"}}],"meta":{"line":12,"file":"Team.js","path":"src/structures"}},{"name":"TeamMember","description":"Represents a Client OAuth2 Application Team Member.","extends":[[["Base"]]],"props":[{"name":"team","description":"The Team this member is part of","type":[[["Team"]]],"meta":{"line":18,"file":"TeamMember.js","path":"src/structures"}},{"name":"permissions","description":"The permissions this Team Member has with regard to the team","type":[[["Array","<"],["string",">"]]],"meta":{"line":29,"file":"TeamMember.js","path":"src/structures"}},{"name":"membershipState","description":"The permissions this Team Member has with regard to the team","type":[[["MembershipState"]]],"meta":{"line":37,"file":"TeamMember.js","path":"src/structures"}},{"name":"user","description":"The user for this Team Member","type":[[["User"]]],"meta":{"line":45,"file":"TeamMember.js","path":"src/structures"}},{"name":"id","description":"The Team Member's id","readonly":true,"type":[[["Snowflake"]]],"meta":{"line":54,"file":"TeamMember.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the team member's mention instead of the\nTeamMember object.","examples":["// Logs: Team Member's mention: <@123456789012345678>\nconsole.log(`Team Member's mention: ${teamMember}`);"],"returns":[[["string"]]],"meta":{"line":66,"file":"TeamMember.js","path":"src/structures"}}],"meta":{"line":10,"file":"TeamMember.js","path":"src/structures"}},{"name":"TextChannel","description":"Represents a guild text channel on Discord.","extends":[[["BaseGuildTextChannel"]]],"props":[{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for this channel in seconds","type":[[["number"]]],"meta":{"line":18,"file":"TextChannel.js","path":"src/structures"}},{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":24,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"threads","description":"A manager of the threads belonging to this channel","type":[[["ThreadManager"]]],"meta":{"line":30,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":36,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"topic","description":"The topic of the text channel","nullable":true,"type":[[["string"]]],"meta":{"line":49,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in the channel, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":61,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":69,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for newly created threads in this channel","nullable":true,"type":[[["ThreadAutoArchiveDuration"]]],"meta":{"line":77,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":261,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setRateLimitPerUser","description":"Sets the rate limit per user (slowmode) for this channel.","params":[{"name":"rateLimitPerUser","description":"The new rate limit in seconds","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the channel's rate limit","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":28,"file":"TextChannel.js","path":"src/structures"}},{"name":"setDefaultAutoArchiveDuration","description":"Sets the default auto archive duration for all newly created threads in this channel.","inherits":"BaseGuildTextChannel#setDefaultAutoArchiveDuration","inherited":true,"params":[{"name":"defaultAutoArchiveDuration","description":"The new default auto archive duration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the channel's default auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":91,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setNSFW","description":"Sets whether this channel is flagged as NSFW.","inherits":"BaseGuildTextChannel#setNSFW","inherited":true,"params":[{"name":"nsfw","description":"Whether the channel should be considered NSFW","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the channel's NSFW flag","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":101,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setType","description":"Sets the type of this channel (only conversion between text and news is supported)","inherits":"BaseGuildTextChannel#setType","inherited":true,"params":[{"name":"type","description":"The new channel type","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the channel's type","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":111,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the channel.","inherits":"BaseGuildTextChannel#fetchWebhooks","inherited":true,"examples":["// Fetch webhooks\nchannel.fetchWebhooks()\n .then(hooks => console.log(`This channel has ${hooks.size} hooks`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":124,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createWebhook","description":"Creates a webhook for the channel.","inherits":"BaseGuildTextChannel#createWebhook","inherited":true,"examples":["// Create a webhook for the current channel\nchannel.createWebhook('Snek', {\n avatar: 'https://i.imgur.com/mI8XcpG.jpg',\n reason: 'Needed a cool new Webhook'\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"name","description":"The name of the webhook","type":[[["string"]]]},{"name":"options","description":"Options for creating the webhook","optional":true,"type":[[["ChannelWebhookCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Webhook",">"]]],"description":"Returns the created Webhook"},"meta":{"line":152,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","inherits":"BaseGuildTextChannel#setTopic","inherited":true,"examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":177,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildTextChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":207,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildTextChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":217,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","inherits":"BaseGuildTextChannel#send","inherited":true,"implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","inherits":"BaseGuildTextChannel#sendTyping","inherited":true,"implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":188,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","inherits":"BaseGuildTextChannel#createMessageCollector","inherited":true,"implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":203,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","inherits":"BaseGuildTextChannel#awaitMessages","inherited":true,"implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":226,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a button interaction collector.","inherits":"BaseGuildTextChannel#createMessageComponentCollector","inherited":true,"implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":250,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseGuildTextChannel#awaitMessageComponent","inherited":true,"implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":270,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","inherits":"BaseGuildTextChannel#bulkDelete","inherited":true,"implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":294,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":9,"file":"TextChannel.js","path":"src/structures"}},{"name":"ThreadChannel","description":"Represents a thread channel on Discord.","extends":[[["Channel"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"guild","description":"The guild the thread is in","type":[[["Guild"]]],"meta":{"line":23,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":29,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"messages","description":"A manager of the messages sent to this thread","type":[[["MessageManager"]]],"meta":{"line":35,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"members","description":"A manager of the members that are part of this thread","type":[[["ThreadMemberManager"]]],"meta":{"line":41,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the thread","type":[[["string"]]],"meta":{"line":53,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the parent channel of this thread","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":65,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"locked","description":"Whether the thread is locked","nullable":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"invitable","description":"Whether members without `MANAGE_THREADS` can invite other members without `MANAGE_THREADS`\nAlways `null` in public threads","nullable":true,"type":[[["boolean"]]],"meta":{"line":82,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"archived","description":"Whether the thread is archived","nullable":true,"type":[[["boolean"]]],"meta":{"line":88,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"autoArchiveDuration","description":"The amount of time (in minutes) after which the thread will automatically archive in case of no recent activity","nullable":true,"type":[[["number"]]],"meta":{"line":94,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"archiveTimestamp","description":"The timestamp when the thread's archive status was last changed\nIf the thread was never archived or unarchived, this is the timestamp at which the thread was\ncreated","nullable":true,"type":[[["number"]]],"meta":{"line":102,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"ownerId","description":"The id of the member who created this thread","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":116,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in this thread, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":126,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":136,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for this thread in seconds","nullable":true,"type":[[["number"]]],"meta":{"line":146,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"messageCount","description":"The approximate count of messages in this thread\nThis stops counting at 50. If you need an approximate value higher than that, use\n`ThreadChannel#messages.cache.size`","nullable":true,"type":[[["number"]]],"meta":{"line":158,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"memberCount","description":"The approximate count of users in this thread\nThis stops counting at 50. If you need an approximate value higher than that, use\n`ThreadChannel#members.cache.size`","nullable":true,"type":[[["number"]]],"meta":{"line":170,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"guildMembers","description":"A collection of associated guild member objects of this thread's members","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":184,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"archivedAt","description":"The time at which this thread's archive status was last changed\nIf the thread was never archived or unarchived, this is the time at which the thread was created","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":194,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"parent","description":"The parent channel of this thread","readonly":true,"nullable":true,"type":[[["NewsChannel"]],[["TextChannel"]]],"meta":{"line":204,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"joined","description":"Whether the client user is a member of the thread.","readonly":true,"type":[[["boolean"]]],"meta":{"line":405,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"editable","description":"Whether the thread is editable by the client user (name, archived, autoArchiveDuration)","readonly":true,"type":[[["boolean"]]],"meta":{"line":414,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the thread is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":425,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the thread is manageable by the client user, for deleting or editing rateLimitPerUser or locked.","readonly":true,"type":[[["boolean"]]],"meta":{"line":441,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the thread is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":458,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"sendable","description":"Whether the client user can send messages in this thread","readonly":true,"type":[[["boolean"]]],"meta":{"line":470,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"unarchivable","description":"Whether the thread is unarchivable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":489,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"join","description":"Makes the client user join the thread.","async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":212,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"leave","description":"Makes the client user leave the thread.","async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":221,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this thread's parent channel, taking overwrites into\naccount.","params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":233,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"fetchOwner","description":"Fetches the owner of this thread. If the thread member object isn't needed,\nuse {@link ThreadChannel#ownerId} instead.","params":[{"name":"options","description":"The options for fetching the member","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise",""],["ThreadMember",">"]]],"meta":{"line":243,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"fetchStarterMessage","description":"Fetches the message that started this thread, if any.\nThis only works when the thread started from a message in the parent channel, otherwise the promise will\nreject. If you just need the id of that message, use {@link ThreadChannel#id} instead.","params":[{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":261,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits this thread.","examples":["// Edit a thread\nthread.edit({ name: 'new-thread' })\n .then(editedThread => console.log(editedThread))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for this thread","type":[[["ThreadEditData"]]]},{"name":"reason","description":"Reason for editing this thread","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":289,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setArchived","description":"Sets whether the thread is archived.","examples":["// Archive the thread\nthread.setArchived(true)\n .then(newThread => console.log(`Thread is now ${newThread.archived ? 'archived' : 'active'}`))\n .catch(console.error);"],"params":[{"name":"archived","description":"Whether the thread is archived","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for archiving or unarchiving","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":325,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setAutoArchiveDuration","description":"Sets the duration after which the thread will automatically archive in case of no recent activity.","examples":["// Set the thread's auto archive time to 1 hour\nthread.setAutoArchiveDuration(60)\n .then(newThread => {\n console.log(`Thread will now archive after ${newThread.autoArchiveDuration} minutes of inactivity`);\n });\n .catch(console.error);"],"params":[{"name":"autoArchiveDuration","description":"The amount of time (in minutes) after which the thread\nshould automatically archive in case of no recent activity","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":343,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setInvitable","description":"Sets whether members without the `MANAGE_THREADS` permission can invite other members without the\n`MANAGE_THREADS` permission to this thread.","params":[{"name":"invitable","description":"Whether non-moderators can invite non-moderators to this thread","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing invite","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":354,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setLocked","description":"Sets whether the thread can be **unarchived** by anyone with `SEND_MESSAGES` permission.\nWhen a thread is locked only members with `MANAGE_THREADS` can unarchive it.","examples":["// Set the thread to locked\nthread.setLocked(true)\n .then(newThread => console.log(`Thread is now ${newThread.locked ? 'locked' : 'unlocked'}`))\n .catch(console.error);"],"params":[{"name":"locked","description":"Whether the thread is locked","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for locking or unlocking the thread","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":371,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for this thread.","examples":["// Change the thread's name\nthread.setName('not_general')\n .then(newThread => console.log(`Thread's new name is ${newThread.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the thread","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the thread's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":386,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setRateLimitPerUser","description":"Sets the rate limit per user (slowmode) for this thread.","params":[{"name":"rateLimitPerUser","description":"The new rate limit in seconds","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the thread's rate limit","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":396,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this thread.","examples":["// Delete the thread\nthread.delete('cleaning out old threads')\n .then(deletedThread => console.log(deletedThread))\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this thread","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":503,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":188,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":203,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":226,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a button interaction collector.","implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":250,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":270,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":294,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":15,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"ThreadMember","description":"Represents a Member for a Thread.","extends":[[["Base"]]],"props":[{"name":"thread","description":"The thread that this member is a part of","type":[[["ThreadChannel"]]],"meta":{"line":18,"file":"ThreadMember.js","path":"src/structures"}},{"name":"joinedTimestamp","description":"The timestamp the member last joined the thread at","nullable":true,"type":[[["number"]]],"meta":{"line":24,"file":"ThreadMember.js","path":"src/structures"}},{"name":"id","description":"The id of the thread member","type":[[["Snowflake"]]],"meta":{"line":30,"file":"ThreadMember.js","path":"src/structures"}},{"name":"flags","description":"The flags for this thread member","type":[[["ThreadMemberFlags"]]],"meta":{"line":43,"file":"ThreadMember.js","path":"src/structures"}},{"name":"guildMember","description":"The guild member associated with this thread member","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":52,"file":"ThreadMember.js","path":"src/structures"}},{"name":"joinedAt","description":"The last time this member joined the thread","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":61,"file":"ThreadMember.js","path":"src/structures"}},{"name":"user","description":"The user associated with this thread member","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":70,"file":"ThreadMember.js","path":"src/structures"}},{"name":"manageable","description":"Whether the client user can manage this thread member","readonly":true,"type":[[["boolean"]]],"meta":{"line":79,"file":"ThreadMember.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"remove","description":"Removes this member from the thread.","params":[{"name":"reason","description":"Reason for removing the member","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["ThreadMember"]]],"meta":{"line":88,"file":"ThreadMember.js","path":"src/structures"}}],"meta":{"line":10,"file":"ThreadMember.js","path":"src/structures"}},{"name":"Typing","description":"Represents a typing state for a user in a channel.","extends":[[["Base"]]],"props":[{"name":"channel","description":"The channel the status is from","type":[[["TextBasedChannels"]]],"meta":{"line":17,"file":"Typing.js","path":"src/structures"}},{"name":"user","description":"The user who is typing","type":[[["User"]]],"meta":{"line":23,"file":"Typing.js","path":"src/structures"}},{"name":"startedTimestamp","description":"The UNIX timestamp in milliseconds the user started typing at","type":[[["number"]]],"meta":{"line":34,"file":"Typing.js","path":"src/structures"}},{"name":"startedAt","description":"The time the user started typing at","readonly":true,"type":[[["Date"]]],"meta":{"line":51,"file":"Typing.js","path":"src/structures"}},{"name":"guild","description":"The guild the status is from","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":60,"file":"Typing.js","path":"src/structures"}},{"name":"member","description":"The member who is typing","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":69,"file":"Typing.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"inGuild","description":"Indicates whether the status is received from a guild.","returns":[[["boolean"]]],"meta":{"line":42,"file":"Typing.js","path":"src/structures"}}],"meta":{"line":9,"file":"Typing.js","path":"src/structures"}},{"name":"User","description":"Represents a user on Discord.","extends":[[["Base"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"id","description":"The user's id","type":[[["Snowflake"]]],"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"name":"connectedAccounts","description":"Accounts connected to this user","nullable":true,"type":[[["Array","<"],["ConnectionAccount",">"]]],"meta":{"line":46,"file":"User.js","path":"src/structures"}},{"name":"premiumSince","description":"Time that User has nitro (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":52,"file":"User.js","path":"src/structures"}},{"name":"premiumGuildSince","description":"Time that User has nitro and boost server (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":58,"file":"User.js","path":"src/structures"}},{"name":"bio","description":"About me (User)","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":64,"file":"User.js","path":"src/structures"}},{"name":"mutualGuilds","description":"This user is on the same servers as Client User","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Object",">"]]],"meta":{"line":70,"file":"User.js","path":"src/structures"}},{"name":"applications","description":"[Bot] Interaction command manager","readonly":true,"nullable":true,"type":[[["ApplicationCommandManager"]]],"meta":{"line":76,"file":"User.js","path":"src/structures"}},{"name":"username","description":"The username of the user","nullable":true,"type":[[["string"]]],"meta":{"line":86,"file":"User.js","path":"src/structures"}},{"name":"bot","description":"Whether or not the user is a bot","nullable":true,"type":[[["boolean"]]],"meta":{"line":96,"file":"User.js","path":"src/structures"}},{"name":"discriminator","description":"A discriminator based on username for the user","nullable":true,"type":[[["string"]]],"meta":{"line":109,"file":"User.js","path":"src/structures"}},{"name":"avatar","description":"The user avatar's hash","nullable":true,"type":[[["string"]]],"meta":{"line":119,"file":"User.js","path":"src/structures"}},{"name":"banner","description":"The user banner's hash\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["string"]]],"meta":{"line":130,"file":"User.js","path":"src/structures"}},{"name":"accentColor","description":"The base 10 accent color of the user's banner\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["number"]]],"meta":{"line":141,"file":"User.js","path":"src/structures"}},{"name":"system","description":"Whether the user is an Official Discord System user (part of the urgent message system)","nullable":true,"type":[[["boolean"]]],"meta":{"line":151,"file":"User.js","path":"src/structures"}},{"name":"flags","description":"The flags for this user","nullable":true,"type":[[["UserFlags"]]],"meta":{"line":161,"file":"User.js","path":"src/structures"}},{"name":"relationships","description":"Check relationship status","readonly":true,"type":[[["Relationship"]]],"meta":{"line":170,"file":"User.js","path":"src/structures"}},{"name":"note","description":"Check note","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":180,"file":"User.js","path":"src/structures"}},{"name":"partial","description":"Whether this User is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":263,"file":"User.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the user was created at","readonly":true,"type":[[["number"]]],"meta":{"line":272,"file":"User.js","path":"src/structures"}},{"name":"createdAt","description":"The time the user was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":281,"file":"User.js","path":"src/structures"}},{"name":"defaultAvatarURL","description":"A link to the user's default avatar","readonly":true,"type":[[["string"]]],"meta":{"line":300,"file":"User.js","path":"src/structures"}},{"name":"hexAccentColor","description":"The hexadecimal version of the user accent color, with a leading hash\nThe user must be force fetched for this property to be present","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":320,"file":"User.js","path":"src/structures"}},{"name":"tag","description":"The Discord \"tag\" (e.g. `hydrabolt#0001`) for this user","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":345,"file":"User.js","path":"src/structures"}},{"name":"dmChannel","description":"The DM between the client's user and this user","readonly":true,"nullable":true,"type":[[["DMChannel"]]],"meta":{"line":354,"file":"User.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"getProfile","description":"Get profile from Discord, if client is in a server with the target.","async":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":212,"file":"User.js","path":"src/structures"}},{"name":"setFriend","description":"Friends the user and send Request [If no request]","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":223,"file":"User.js","path":"src/structures"}},{"name":"sendFriendRequest","description":"Send Friend Request to the user","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":231,"file":"User.js","path":"src/structures"}},{"name":"setBlock","description":"Blocks the user","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":238,"file":"User.js","path":"src/structures"}},{"name":"unBlock","description":"Removes the user from your blocks list","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":246,"file":"User.js","path":"src/structures"}},{"name":"unFriend","description":"Removes the user from your friends list","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":254,"file":"User.js","path":"src/structures"}},{"name":"avatarURL","description":"A link to the user's avatar.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":290,"file":"User.js","path":"src/structures"}},{"name":"displayAvatarURL","description":"A link to the user's avatar if they have one.\nOtherwise a link to their default avatar will be returned.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":[[["string"]]],"meta":{"line":310,"file":"User.js","path":"src/structures"}},{"name":"bannerURL","description":"A link to the user's banner.\nThis method will throw an error if called before the user is force fetched.\nSee {@link User#banner} for more info","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":332,"file":"User.js","path":"src/structures"}},{"name":"createDM","description":"Creates a DM channel between the client and the user.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":363,"file":"User.js","path":"src/structures"}},{"name":"deleteDM","description":"Deletes a DM channel (if one exists) between the client and the user. Resolves with the channel if successful.","returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":371,"file":"User.js","path":"src/structures"}},{"name":"equals","description":"Checks if the user is equal to another.\nIt compares id, username, discriminator, avatar, banner, accent color, and bot flags.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","params":[{"name":"user","description":"User to compare with","type":[[["User"]]]}],"returns":[[["boolean"]]],"meta":{"line":382,"file":"User.js","path":"src/structures"}},{"name":"_equals","description":"Compares the user with an API user object","access":"private","params":[{"name":"user","description":"The API user object to compare","type":[[["APIUser"]]]}],"returns":[[["boolean"]]],"meta":{"line":401,"file":"User.js","path":"src/structures"}},{"name":"fetchFlags","description":"Fetches this user's flags.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["UserFlags",">"]]],"meta":{"line":419,"file":"User.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this user.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":428,"file":"User.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the user's mention instead of the User object.","examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${user}!`);"],"returns":[[["string"]]],"meta":{"line":439,"file":"User.js","path":"src/structures"}},{"name":"setNote","description":"Set note to user","params":[{"name":"note","description":"Note to set","default":null,"type":[[["string","<"],["Usernote",">"]]]}],"async":true,"returns":[[["Promise","<"],["Usernote",">"]]],"meta":{"line":464,"file":"User.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":17,"file":"User.js","path":"src/structures"}},{"name":"UserContextMenuInteraction","description":"Represents a user context menu interaction.","extends":[[["ContextMenuInteraction"]]],"props":[{"name":"targetUser","description":"The user this interaction was sent from","readonly":true,"type":[[["User"]]],"meta":{"line":15,"file":"UserContextMenuInteraction.js","path":"src/structures"}},{"name":"targetMember","description":"The member this interaction was sent from","readonly":true,"nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":24,"file":"UserContextMenuInteraction.js","path":"src/structures"}},{"name":"options","description":"The target of the interaction, parsed into options","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetId","description":"The id of the target of the interaction","type":[[["Snowflake"]]],"meta":{"line":28,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetType","description":"The type of the target of the interaction; either USER or MESSAGE","type":[[["ApplicationCommandType"]]],"meta":{"line":34,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":29,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":35,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":41,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":47,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":53,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":59,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":66,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","see":["{@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}"],"type":[[["string"]]],"meta":{"line":83,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":97,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":106,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":115,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"resolveContextMenuOptions","description":"Resolves and transforms options received from the API for a context menu interaction.","access":"private","inherits":"ContextMenuInteraction#resolveContextMenuOptions","inherited":true,"params":[{"name":"data","description":"The interaction data","type":[[["APIApplicationCommandInteractionData"]]]}],"returns":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":43,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":87,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":151,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":140,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":172,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":180,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":188,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":196,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":204,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":212,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"UserContextMenuInteraction.js","path":"src/structures"}},{"name":"VoiceChannel","description":"Represents a guild voice channel on Discord.","extends":[[["BaseGuildVoiceChannel"]]],"props":[{"name":"editable","description":"Whether the channel is editable by the client user","readonly":true,"deprecated":"Use {@link VoiceChannel#manageable} instead","type":[[["boolean"]]],"meta":{"line":20,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the channel is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":38,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"speakable","description":"Checks if the client has permission to send audio to the voice channel","readonly":true,"type":[[["boolean"]]],"meta":{"line":49,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"rtcRegion","description":"The RTC region for this voice-based channel. This region is automatically selected if `null`.","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"bitrate","description":"The bitrate of this voice-based channel","type":[[["number"]]],"meta":{"line":28,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"userLimit","description":"The maximum amount of users allowed in this channel.","type":[[["number"]]],"meta":{"line":36,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"members","description":"The members in this voice-based channel","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":45,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"full","description":"Checks if the voice-based channel is full","readonly":true,"type":[[["boolean"]]],"meta":{"line":60,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":30,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":43,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":64,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":98,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":500,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":509,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":529,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":39,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":49,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":57,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":66,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":75,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setBitrate","description":"Sets the bitrate of the channel.","examples":["// Set the bitrate of a voice channel\nvoiceChannel.setBitrate(48_000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate}bps for ${vc.name}`))\n .catch(console.error);"],"params":[{"name":"bitrate","description":"The new bitrate","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the channel's bitrate","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["VoiceChannel",">"]]],"meta":{"line":71,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"setUserLimit","description":"Sets the user limit of the channel.","examples":["// Set the user limit of a voice channel\nvoiceChannel.setUserLimit(42)\n .then(vc => console.log(`Set user limit to ${vc.userLimit} for ${vc.name}`))\n .catch(console.error);"],"params":[{"name":"userLimit","description":"The new user limit","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the user limit","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["VoiceChannel",">"]]],"meta":{"line":86,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"setRTCRegion","description":"Sets the RTC region of the channel.","inherits":"BaseGuildVoiceChannel#setRTCRegion","inherited":true,"examples":["// Set the RTC region to europe\nchannel.setRTCRegion('europe');","// Remove a fixed region for this channel - let Discord decide automatically\nchannel.setRTCRegion(null);"],"params":[{"name":"region","description":"The new region of the channel. Set to `null` to remove a specific region for the channel","nullable":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["BaseGuildVoiceChannel",">"]]],"meta":{"line":94,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildVoiceChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":108,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildVoiceChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":118,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":159,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":199,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":228,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":248,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":297,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":368,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":390,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":418,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":453,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":475,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":546,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":117,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":140,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":148,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":156,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":164,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":13,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"VoiceRegion","description":"Represents a Discord voice region for guilds.","props":[{"name":"id","description":"The region's id","type":[[["string"]]],"meta":{"line":14,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"name","description":"Name of the region","type":[[["string"]]],"meta":{"line":20,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"vip","description":"Whether the region is VIP-only","type":[[["boolean"]]],"meta":{"line":26,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"deprecated","description":"Whether the region is deprecated","type":[[["boolean"]]],"meta":{"line":32,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"optimal","description":"Whether the region is optimal","type":[[["boolean"]]],"meta":{"line":38,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"custom","description":"Whether the region is custom","type":[[["boolean"]]],"meta":{"line":44,"file":"VoiceRegion.js","path":"src/structures"}}],"meta":{"line":8,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"VoiceState","description":"Represents the voice state for a Guild Member.","props":[{"name":"guild","description":"The guild of this voice state","type":[[["Guild"]]],"meta":{"line":16,"file":"VoiceState.js","path":"src/structures"}},{"name":"id","description":"The id of the member of this voice state","type":[[["Snowflake"]]],"meta":{"line":21,"file":"VoiceState.js","path":"src/structures"}},{"name":"serverDeaf","description":"Whether this member is deafened server-wide","nullable":true,"type":[[["boolean"]]],"meta":{"line":31,"file":"VoiceState.js","path":"src/structures"}},{"name":"serverMute","description":"Whether this member is muted server-wide","nullable":true,"type":[[["boolean"]]],"meta":{"line":41,"file":"VoiceState.js","path":"src/structures"}},{"name":"selfDeaf","description":"Whether this member is self-deafened","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"VoiceState.js","path":"src/structures"}},{"name":"selfMute","description":"Whether this member is self-muted","nullable":true,"type":[[["boolean"]]],"meta":{"line":61,"file":"VoiceState.js","path":"src/structures"}},{"name":"selfVideo","description":"Whether this member's camera is enabled","nullable":true,"type":[[["boolean"]]],"meta":{"line":71,"file":"VoiceState.js","path":"src/structures"}},{"name":"sessionId","description":"The session id for this member's connection","nullable":true,"type":[[["string"]]],"meta":{"line":81,"file":"VoiceState.js","path":"src/structures"}},{"name":"streaming","description":"Whether this member is streaming using \"Screen Share\"","type":[[["boolean"]]],"meta":{"line":93,"file":"VoiceState.js","path":"src/structures"}},{"name":"channelId","description":"The {@link VoiceChannel} or {@link StageChannel} id the member is in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":103,"file":"VoiceState.js","path":"src/structures"}},{"name":"suppress","description":"Whether this member is suppressed from speaking. This property is specific to stage channels only.","type":[[["boolean"]]],"meta":{"line":113,"file":"VoiceState.js","path":"src/structures"}},{"name":"requestToSpeakTimestamp","description":"The time at which the member requested to speak. This property is specific to stage channels only.","nullable":true,"type":[[["number"]]],"meta":{"line":121,"file":"VoiceState.js","path":"src/structures"}},{"name":"member","description":"The member that this voice state belongs to","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":134,"file":"VoiceState.js","path":"src/structures"}},{"name":"channel","description":"The channel that the member is connected to","readonly":true,"nullable":true,"type":[[["VoiceChannel"]],[["StageChannel"]]],"meta":{"line":143,"file":"VoiceState.js","path":"src/structures"}},{"name":"deaf","description":"Whether this member is either self-deafened or server-deafened","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":152,"file":"VoiceState.js","path":"src/structures"}},{"name":"mute","description":"Whether this member is either self-muted or server-muted","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":161,"file":"VoiceState.js","path":"src/structures"}}],"methods":[{"name":"setMute","description":"Mutes/unmutes the member of this voice state.","params":[{"name":"mute","description":"Whether or not the member should be muted","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for muting or unmuting","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":171,"file":"VoiceState.js","path":"src/structures"}},{"name":"setDeaf","description":"Deafens/undeafens the member of this voice state.","params":[{"name":"deaf","description":"Whether or not the member should be deafened","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for deafening or undeafening","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":181,"file":"VoiceState.js","path":"src/structures"}},{"name":"disconnect","description":"Disconnects the member from the channel.","params":[{"name":"reason","description":"Reason for disconnecting the member from the channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":190,"file":"VoiceState.js","path":"src/structures"}},{"name":"setChannel","description":"Moves the member to a different channel, or disconnects them from the one they're in.","params":[{"name":"channel","description":"Channel to move the member to, or `null` if you want to\ndisconnect them from voice.","type":[[["GuildVoiceChannelResolvable"]],[["null"]]]},{"name":"reason","description":"Reason for moving member to another channel or disconnecting","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":201,"file":"VoiceState.js","path":"src/structures"}},{"name":"setRequestToSpeak","description":"Toggles the request to speak in the channel.\nOnly applicable for stage channels and for the client's own voice state.","examples":["// Making the client request to speak in a stage channel (raise its hand)\nguild.me.voice.setRequestToSpeak(true);","// Making the client cancel a request to speak\nguild.me.voice.setRequestToSpeak(false);"],"params":[{"name":"request","description":"Whether or not the client is requesting to become a speaker.","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":217,"file":"VoiceState.js","path":"src/structures"}},{"name":"setSuppressed","description":"Suppress/unsuppress the user. Only applicable for stage channels.","examples":["// Making the client a speaker\nguild.me.voice.setSuppressed(false);","// Making the client an audience member\nguild.me.voice.setSuppressed(true);","// Inviting another user to speak\nvoiceState.setSuppressed(false);","// Moving another user to the audience, or cancelling their invite to speak\nvoiceState.setSuppressed(true);"],"params":[{"name":"suppressed","description":"Whether or not the user should be suppressed.","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":247,"file":"VoiceState.js","path":"src/structures"}},{"name":"getPreview","description":"Get URL Image of the user's streaming video (NOT STREAMING !!!)","async":true,"returns":{"types":[[["string"]]],"description":"URL Image of the user's streaming video"},"meta":{"line":266,"file":"VoiceState.js","path":"src/structures"}}],"meta":{"line":9,"file":"VoiceState.js","path":"src/structures"}},{"name":"WebEmbed","description":"Send Embedlink to Discord","props":[{"name":"shorten","description":"Shorten the link","nullable":true,"type":[[["boolean"]]],"meta":{"line":45,"file":"WebEmbed.js","path":"src/structures"}},{"name":"hidden","description":"Hidden Embed link","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"WebEmbed.js","path":"src/structures"}},{"name":"imageType","description":"Type image of this embed","type":[[["thumbnail"]],[["image"]]],"meta":{"line":62,"file":"WebEmbed.js","path":"src/structures"}},{"name":"title","description":"The title of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":67,"file":"WebEmbed.js","path":"src/structures"}},{"name":"description","description":"The description of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":73,"file":"WebEmbed.js","path":"src/structures"}},{"name":"url","description":"The URL of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":79,"file":"WebEmbed.js","path":"src/structures"}},{"name":"color","description":"The color of this embed","nullable":true,"type":[[["number"]]],"meta":{"line":85,"file":"WebEmbed.js","path":"src/structures"}},{"name":"image","description":"The image of this embed, if there is one","nullable":true,"type":[[["WebEmbedImage"]]],"meta":{"line":100,"file":"WebEmbed.js","path":"src/structures"}},{"name":"thumbnail","description":"The thumbnail of this embed (if there is one)","nullable":true,"type":[[["WebEmbedThumbnail"]]],"meta":{"line":113,"file":"WebEmbed.js","path":"src/structures"}},{"name":"video","description":"The video of this embed (if there is one)","readonly":true,"nullable":true,"type":[[["WebEmbedVideo"]]],"meta":{"line":136,"file":"WebEmbed.js","path":"src/structures"}},{"name":"author","description":"The author of this embed (if there is one)","nullable":true,"type":[[["WebEmbedAuthor"]]],"meta":{"line":158,"file":"WebEmbed.js","path":"src/structures"}},{"name":"provider","description":"The provider of this embed (if there is one)","nullable":true,"type":[[["WebEmbedProvider"]]],"meta":{"line":176,"file":"WebEmbed.js","path":"src/structures"}}],"methods":[{"name":"_setup","access":"private","params":[{"name":"data","description":"The data for the embed","type":[[["Object"]]]}],"meta":{"line":57,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setAuthor","description":"Sets the author of this embed.","params":[{"name":"options","description":"The options to provide for the author.\nProvide `null` to remove the author data.","type":[[["string"]],[["EmbedAuthorData"]],[["null"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":195,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setProvider","description":"Sets the provider of this embed.","params":[{"name":"options","description":"The options to provide for the provider.\nProvide `null` to remove the provider data.","type":[[["string"]],[["EmbedProviderData"]],[["null"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":220,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setColor","description":"Sets the color of this embed.","params":[{"name":"color","description":"The color of the embed","type":[[["ColorResolvable"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":238,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setDescription","description":"Sets the description of this embed.","params":[{"name":"description","description":"The description (Limit 350 characters)","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":248,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setImage","description":"Sets the image of this embed.","params":[{"name":"url","description":"The URL of the image","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":258,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setThumbnail","description":"Sets the thumbnail of this embed.","params":[{"name":"url","description":"The URL of the image","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":273,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setVideo","description":"Sets the video of this embed.","params":[{"name":"url","description":"The URL of the video","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":288,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setTitle","description":"Sets the title of this embed.","params":[{"name":"title","description":"The title","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":298,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setURL","description":"Sets the URL of this embed.","params":[{"name":"url","description":"The URL","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":308,"file":"WebEmbed.js","path":"src/structures"}},{"name":"toMessage","description":"Return Message Content + Embed (if hidden, pls check content length because it has 1000+ length)","async":true,"returns":{"types":[[["string"]]],"description":"Message Content"},"meta":{"line":317,"file":"WebEmbed.js","path":"src/structures"}}],"meta":{"line":12,"file":"WebEmbed.js","path":"src/structures"}},{"name":"Webhook","description":"Represents a webhook.","props":[{"name":"client","description":"The client that instantiated the webhook","readonly":true,"type":[[["Client"]]],"meta":{"line":18,"file":"Webhook.js","path":"src/structures"}},{"name":"name","description":"The name of the webhook","type":[[["string"]]],"meta":{"line":34,"file":"Webhook.js","path":"src/structures"}},{"name":"token","description":"The token for the webhook, unavailable for follower webhooks and webhooks owned by another application.","nullable":true,"type":[[["string"]]],"meta":{"line":37,"file":"Webhook.js","path":"src/structures"}},{"name":"avatar","description":"The avatar for the webhook","nullable":true,"type":[[["string"]]],"meta":{"line":49,"file":"Webhook.js","path":"src/structures"}},{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]],"meta":{"line":56,"file":"Webhook.js","path":"src/structures"}},{"name":"type","description":"The type of the webhook","type":[[["WebhookType"]]],"meta":{"line":63,"file":"Webhook.js","path":"src/structures"}},{"name":"guildId","description":"The guild the webhook belongs to","type":[[["Snowflake"]]],"meta":{"line":71,"file":"Webhook.js","path":"src/structures"}},{"name":"channelId","description":"The channel the webhook belongs to","type":[[["Snowflake"]]],"meta":{"line":79,"file":"Webhook.js","path":"src/structures"}},{"name":"owner","description":"The owner of the webhook","nullable":true,"type":[[["User"]],[["APIUser"]]],"meta":{"line":87,"file":"Webhook.js","path":"src/structures"}},{"name":"sourceGuild","description":"The source guild of the webhook","nullable":true,"type":[[["Guild"]],[["APIGuild"]]],"meta":{"line":97,"file":"Webhook.js","path":"src/structures"}},{"name":"sourceChannel","description":"The source channel of the webhook","nullable":true,"type":[[["NewsChannel"]],[["APIChannel"]]],"meta":{"line":107,"file":"Webhook.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the webhook was created at","readonly":true,"type":[[["number"]]],"meta":{"line":384,"file":"Webhook.js","path":"src/structures"}},{"name":"createdAt","description":"The time the webhook was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":393,"file":"Webhook.js","path":"src/structures"}},{"name":"url","description":"The URL of this webhook","readonly":true,"type":[[["string"]]],"meta":{"line":402,"file":"Webhook.js","path":"src/structures"}}],"methods":[{"name":"send","description":"Sends a message with this webhook.","examples":["// Send a basic message\nwebhook.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a basic message in a thread\nwebhook.send({ content: 'hello!', threadId: '836856309672348295' })\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nwebhook.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nwebhook.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nwebhook.send({\n content: 'This is an embed',\n embeds: [{\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":184,"file":"Webhook.js","path":"src/structures"}},{"name":"sendSlackMessage","description":"Sends a raw slack message with this webhook.","see":["{@link https://api.slack.com/messaging/webhooks}"],"examples":["// Send a slack message\nwebhook.sendSlackMessage({\n 'username': 'Wumpus',\n 'attachments': [{\n 'pretext': 'this looks pretty cool',\n 'color': '#F0F',\n 'footer_icon': 'http://snek.s3.amazonaws.com/topSnek.png',\n 'footer': 'Powered by sneks',\n 'ts': Date.now() / 1_000\n }]\n}).catch(console.error);"],"params":[{"name":"body","description":"The raw body to send","type":[[["Object"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":223,"file":"Webhook.js","path":"src/structures"}},{"name":"edit","description":"Edits this webhook.","params":[{"name":"options","description":"Options for editing the webhook","type":[[["WebhookEditData"]]]},{"name":"reason","description":"Reason for editing the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Webhook",">"]]],"meta":{"line":248,"file":"Webhook.js","path":"src/structures"}},{"name":"fetchMessage","description":"Gets a message that was sent by this webhook.","params":[{"name":"message","description":"The id of the message to fetch","type":[[["Snowflake"]],[["original","'"]]]},{"name":"cacheOrOptions","description":"The options to provide to fetch the message.\nA **deprecated** boolean may be passed instead to specify whether to cache the message.","optional":true,"default":"{}","type":[[["WebhookFetchMessageOptions"]],[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":281,"file":"Webhook.js","path":"src/structures"}},{"name":"editMessage","description":"Edits a message that was sent by this webhook.","params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":316,"file":"Webhook.js","path":"src/structures"}},{"name":"delete","description":"Deletes the webhook.","params":[{"name":"reason","description":"Reason for deleting this webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":355,"file":"Webhook.js","path":"src/structures"}},{"name":"deleteMessage","description":"Delete a message that was sent by this webhook.","params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"threadId","description":"The id of the thread this message belongs to","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":365,"file":"Webhook.js","path":"src/structures"}},{"name":"avatarURL","description":"A link to the webhook's avatar.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":411,"file":"Webhook.js","path":"src/structures"}},{"name":"isChannelFollower","description":"Whether or not this webhook is a channel follower webhook.","returns":[[["boolean"]]],"meta":{"line":420,"file":"Webhook.js","path":"src/structures"}},{"name":"isIncoming","description":"Whether or not this webhook is an incoming webhook.","returns":[[["boolean"]]],"meta":{"line":428,"file":"Webhook.js","path":"src/structures"}}],"meta":{"line":16,"file":"Webhook.js","path":"src/structures"}},{"name":"WelcomeChannel","description":"Represents a channel link in a guild's welcome screen.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild for this welcome channel","type":[[["Guild"]],[["InviteGuild"]]],"meta":{"line":18,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"description","description":"The description of this welcome channel","type":[[["string"]]],"meta":{"line":24,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"_emoji","description":"The raw emoji data","access":"private","type":[[["Object"]]],"meta":{"line":31,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"channelId","description":"The id of this welcome channel","type":[[["Snowflake"]]],"meta":{"line":40,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"channel","description":"The channel of this welcome channel","nullable":true,"type":[[["TextChannel"]],[["NewsChannel"]],[["StoreChannel"]]],"meta":{"line":47,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"emoji","description":"The emoji of this welcome channel","type":[[["GuildEmoji"]],[["Emoji"]]],"meta":{"line":55,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":10,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"WelcomeScreen","description":"Represents a welcome screen.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild for this welcome screen","type":[[["Guild"]]],"meta":{"line":19,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"description","description":"The description of this welcome screen","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"welcomeChannels","description":"Collection of welcome channels belonging to this welcome screen","type":[[["Collection","<"],["Snowflake",", "],["WelcomeChannel",">"]]],"meta":{"line":31,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"enabled","description":"Whether the welcome screen is enabled on the guild or not","type":[[["boolean"]]],"meta":{"line":43,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":11,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"Widget","description":"Represents a Widget.","props":[{"name":"id","description":"The id of the guild.","type":[[["Snowflake"]]],"meta":{"line":29,"file":"Widget.js","path":"src/structures"}},{"name":"name","description":"The name of the guild.","type":[[["string"]]],"meta":{"line":36,"file":"Widget.js","path":"src/structures"}},{"name":"instantInvite","description":"The invite of the guild.","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Widget.js","path":"src/structures"}},{"name":"channels","description":"The list of channels in the guild.","type":[[["Collection","<"],["Snowflake",", "],["WidgetChannel",">"]]],"meta":{"line":51,"file":"Widget.js","path":"src/structures"}},{"name":"members","description":"The list of members in the guild.\nThese strings are just arbitrary numbers, they aren't Snowflakes.","type":[[["Collection","<"],["string",", "],["WidgetMember",">"]]],"meta":{"line":61,"file":"Widget.js","path":"src/structures"}},{"name":"presenceCount","description":"The number of members online.","type":[[["number"]]],"meta":{"line":71,"file":"Widget.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Update the Widget.","async":true,"returns":[[["Promise","<"],["Widget",">"]]],"meta":{"line":79,"file":"Widget.js","path":"src/structures"}}],"meta":{"line":10,"file":"Widget.js","path":"src/structures"}},{"name":"WidgetMember","description":"Represents a WidgetMember.","props":[{"name":"id","description":"The id of the user. It's an arbitrary number.","type":[[["string"]]],"meta":{"line":22,"file":"WidgetMember.js","path":"src/structures"}},{"name":"username","description":"The username of the member.","type":[[["string"]]],"meta":{"line":28,"file":"WidgetMember.js","path":"src/structures"}},{"name":"discriminator","description":"The discriminator of the member.","type":[[["string"]]],"meta":{"line":34,"file":"WidgetMember.js","path":"src/structures"}},{"name":"avatar","description":"The avatar of the member.","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"WidgetMember.js","path":"src/structures"}},{"name":"status","description":"The status of the member.","type":[[["PresenceStatus"]]],"meta":{"line":46,"file":"WidgetMember.js","path":"src/structures"}},{"name":"deaf","description":"If the member is server deafened","nullable":true,"type":[[["boolean"]]],"meta":{"line":52,"file":"WidgetMember.js","path":"src/structures"}},{"name":"mute","description":"If the member is server muted","nullable":true,"type":[[["boolean"]]],"meta":{"line":58,"file":"WidgetMember.js","path":"src/structures"}},{"name":"selfDeaf","description":"If the member is self deafened","nullable":true,"type":[[["boolean"]]],"meta":{"line":64,"file":"WidgetMember.js","path":"src/structures"}},{"name":"selfMute","description":"If the member is self muted","nullable":true,"type":[[["boolean"]]],"meta":{"line":70,"file":"WidgetMember.js","path":"src/structures"}},{"name":"suppress","description":"If the member is suppressed","nullable":true,"type":[[["boolean"]]],"meta":{"line":76,"file":"WidgetMember.js","path":"src/structures"}},{"name":"channelId","description":"The id of the voice channel the member is in, if any","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":82,"file":"WidgetMember.js","path":"src/structures"}},{"name":"avatarURL","description":"The avatar URL of the member.","type":[[["string"]]],"meta":{"line":88,"file":"WidgetMember.js","path":"src/structures"}},{"name":"activity","description":"The activity of the member.","nullable":true,"type":[[["WidgetActivity"]]],"meta":{"line":94,"file":"WidgetMember.js","path":"src/structures"}}],"meta":{"line":8,"file":"WidgetMember.js","path":"src/structures"}},{"name":"ActivityFlags","description":"Data structure that makes it easy to interact with an {@link Activity#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"ActivityFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]],[["bigint"]]],"meta":{"line":17,"file":"BitField.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric activity flags. All available properties:\n* `INSTANCE`\n* `JOIN`\n* `SPECTATE`\n* `JOIN_REQUEST`\n* `SYNC`\n* `PLAY`\n* `PARTY_PRIVACY_FRIENDS`\n* `PARTY_PRIVACY_VOICE_CHANNEL`\n* `EMBEDDED`","see":["{@link https://discord.com/developers/docs/topics/gateway#activity-object-activity-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":32,"file":"ActivityFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"ActivityFlags.js","path":"src/util"}},{"name":"ApplicationFlags","description":"Data structure that makes it easy to interact with a {@link ClientApplication#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"ApplicationFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":18,"file":"ApplicationFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric application flags. All available properties:\n* `GATEWAY_PRESENCE`\n* `GATEWAY_PRESENCE_LIMITED`\n* `GATEWAY_GUILD_MEMBERS`\n* `GATEWAY_GUILD_MEMBERS_LIMITED`\n* `VERIFICATION_PENDING_GUILD_LIMIT`\n* `EMBEDDED`\n* `GATEWAY_MESSAGE_CONTENT`\n* `GATEWAY_MESSAGE_CONTENT_LIMITED`","see":["{@link https://discord.com/developers/docs/resources/application#application-object-application-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":37,"file":"ApplicationFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"ApplicationFlags.js","path":"src/util"}},{"name":"BitField","description":"Data structure that makes it easy to interact with a bitfield.","construct":{"name":"BitField","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":"this.constructor.defaultBit","type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]],[["bigint"]]],"meta":{"line":17,"file":"BitField.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric bitfield flags.\nDefined in extension classes","scope":"static","abstract":true,"type":[[["Object"]]],"meta":{"line":162,"file":"BitField.js","path":"src/util"}},{"name":"defaultBit","scope":"static","access":"private","type":[[["number"]],[["bigint"]]],"meta":{"line":168,"file":"BitField.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}},{"name":"resolve","description":"Resolves bitfields to their numeric form.","scope":"static","params":[{"name":"bit","description":"bit(s) to resolve","optional":true,"type":[[["BitFieldResolvable"]]]}],"returns":[[["number"]],[["bigint"]]],"meta":{"line":143,"file":"BitField.js","path":"src/util"}}],"meta":{"line":8,"file":"BitField.js","path":"src/util"}},{"name":"DataResolver","description":"The DataResolver identifies different objects and tries to resolve a specific piece of information from them.","access":"private","methods":[{"name":"resolveCode","description":"Resolves the string to a code based on the passed regex.","scope":"static","params":[{"name":"data","description":"The string to resolve","type":[[["string"]]]},{"name":"regex","description":"The RegExp used to extract the code","type":[[["RegExp"]]]}],"returns":[[["string"]]],"meta":{"line":36,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveInviteCode","description":"Resolves InviteResolvable to an invite code.","scope":"static","params":[{"name":"data","description":"The invite resolvable to resolve","type":[[["InviteResolvable"]]]}],"returns":[[["string"]]],"meta":{"line":45,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveGuildTemplateCode","description":"Resolves GuildTemplateResolvable to a template code.","scope":"static","params":[{"name":"data","description":"The template resolvable to resolve","type":[[["GuildTemplateResolvable"]]]}],"returns":[[["string"]]],"meta":{"line":54,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveImage","description":"Resolves a Base64Resolvable, a string, or a BufferResolvable to a Base 64 image.","scope":"static","params":[{"name":"image","description":"The image to be resolved","type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"async":true,"returns":[[["Promise",""],["string",">"]]],"meta":{"line":64,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveBase64","description":"Resolves a Base64Resolvable to a Base 64 image.","scope":"static","params":[{"name":"data","description":"The base 64 resolvable you want to resolve","type":[[["Base64Resolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":85,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveFile","description":"Resolves a BufferResolvable to a Buffer or a Stream.","scope":"static","params":[{"name":"resource","description":"The buffer or stream resolvable to resolve","type":[[["BufferResolvable"]],[["Stream"]]]}],"async":true,"returns":[[["Promise","<("],["Buffer","|"],["Stream",")>"]]],"meta":{"line":109,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveFileAsBuffer","description":"Resolves a BufferResolvable to a Buffer.","scope":"static","params":[{"name":"resource","description":"The buffer or stream resolvable to resolve","type":[[["BufferResolvable"]],[["Stream"]]]}],"async":true,"returns":[[["Promise","<"],["Buffer",">"]]],"meta":{"line":135,"file":"DataResolver.js","path":"src/util"}}],"meta":{"line":15,"file":"DataResolver.js","path":"src/util"}},{"name":"Formatters","description":"Contains various Discord-specific functions for formatting messages.","props":[{"name":"TimestampStyles","description":"The message formatting timestamp\n[styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord.","scope":"static","type":[[["Object","<"],["string",", "],["TimestampStylesString",">"]]],"meta":{"line":188,"file":"Formatters.js","path":"src/util"}}],"methods":[{"name":"blockQuote","description":"Formats the content into a block quote. This needs to be at the start of the line for Discord to format it.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":29,"file":"Formatters.js","path":"src/util"}},{"name":"bold","description":"Formats the content into bold text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":38,"file":"Formatters.js","path":"src/util"}},{"name":"channelMention","description":"Formats a channel id into a channel mention.","scope":"static","params":[{"name":"channelId","description":"The channel id to format.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":47,"file":"Formatters.js","path":"src/util"}},{"name":"codeBlock","description":"Wraps the content inside a code block with an optional language.","scope":"static","params":[{"name":"contentOrLanguage","description":"The language to use, content if a second parameter isn't provided.","type":[[["string"]]]},{"name":"content","description":"The content to wrap.","optional":true,"type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":56,"file":"Formatters.js","path":"src/util"}},{"name":"formatEmoji","description":"Formats an emoji id into a fully qualified emoji identifier","scope":"static","params":[{"name":"emojiId","description":"The emoji id to format.","type":[[["string"]]]},{"name":"animated","description":"Whether the emoji is animated or not. Defaults to `false`","optional":true,"type":[[["boolean"]]]}],"returns":[[["string"]]],"meta":{"line":66,"file":"Formatters.js","path":"src/util"}},{"name":"hideLinkEmbed","description":"Wraps the URL into `<>`, which stops it from embedding.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":76,"file":"Formatters.js","path":"src/util"}},{"name":"hyperlink","description":"Formats the content and the URL into a masked URL with an optional title.","scope":"static","params":[{"name":"content","description":"The content to display.","type":[[["string"]]]},{"name":"url","description":"The URL the content links to.","type":[[["string"]]]},{"name":"title","description":"The title shown when hovering on the masked link.","optional":true,"type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":85,"file":"Formatters.js","path":"src/util"}},{"name":"inlineCode","description":"Wraps the content inside \\`backticks\\`, which formats it as inline code.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":96,"file":"Formatters.js","path":"src/util"}},{"name":"italic","description":"Formats the content into italic text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":105,"file":"Formatters.js","path":"src/util"}},{"name":"memberNicknameMention","description":"Formats a user id into a member-nickname mention.","scope":"static","params":[{"name":"memberId","description":"The user id to format.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":114,"file":"Formatters.js","path":"src/util"}},{"name":"quote","description":"Formats the content into a quote. This needs to be at the start of the line for Discord to format it.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":123,"file":"Formatters.js","path":"src/util"}},{"name":"roleMention","description":"Formats a role id into a role mention.","scope":"static","params":[{"name":"roleId","description":"The role id to format.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":132,"file":"Formatters.js","path":"src/util"}},{"name":"spoiler","description":"Formats the content into spoiler text.","scope":"static","params":[{"name":"content","description":"The content to spoiler.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":141,"file":"Formatters.js","path":"src/util"}},{"name":"strikethrough","description":"Formats the content into strike-through text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":150,"file":"Formatters.js","path":"src/util"}},{"name":"time","description":"Formats a date into a short date-time string.","scope":"static","params":[{"name":"date","description":"The date to format.","optional":true,"type":[[["number"]],[["Date"]]]},{"name":"style","description":"The style to use.","optional":true,"type":[[["TimestampStylesString"]]]}],"returns":[[["string"]]],"meta":{"line":159,"file":"Formatters.js","path":"src/util"}},{"name":"underscore","description":"Formats the content into underscored text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":190,"file":"Formatters.js","path":"src/util"}},{"name":"userMention","description":"Formats a user id into a user mention.","scope":"static","params":[{"name":"userId","description":"The user id to format.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":199,"file":"Formatters.js","path":"src/util"}}],"meta":{"line":27,"file":"Formatters.js","path":"src/util"}},{"name":"Intents","description":"Data structure that makes it easy to calculate intents.","extends":[[["BitField"]]],"construct":{"name":"Intents","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["IntentsResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]],[["bigint"]]],"meta":{"line":17,"file":"BitField.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric WebSocket intents. All available properties:\n* `GUILDS`\n* `GUILD_MEMBERS`\n* `GUILD_BANS`\n* `GUILD_EMOJIS_AND_STICKERS`\n* `GUILD_INTEGRATIONS`\n* `GUILD_WEBHOOKS`\n* `GUILD_INVITES`\n* `GUILD_VOICE_STATES`\n* `GUILD_PRESENCES`\n* `GUILD_MESSAGES`\n* `GUILD_MESSAGE_REACTIONS`\n* `GUILD_MESSAGE_TYPING`\n* `DIRECT_MESSAGES`\n* `DIRECT_MESSAGE_REACTIONS`\n* `DIRECT_MESSAGE_TYPING`\n* `GUILD_SCHEDULED_EVENTS`","see":["{@link https://discord.com/developers/docs/topics/gateway#list-of-intents}"],"scope":"static","type":[[["Object"]]],"meta":{"line":47,"file":"Intents.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":8,"file":"Intents.js","path":"src/util"}},{"name":"LimitedCollection","description":"A Collection which holds a max amount of entries and sweeps periodically.","extends":[[["Collection"]]],"construct":{"name":"LimitedCollection","params":[{"name":"options","description":"Options for constructing the Collection.","optional":true,"default":"{}","type":[[["LimitedCollectionOptions"]]]},{"name":"iterable","description":"Optional entries passed to the Map constructor.","optional":true,"default":null,"type":[[["Iterable"]]]}]},"props":[{"name":"maxSize","description":"The max size of the Collection.","type":[[["number"]]],"meta":{"line":63,"file":"LimitedCollection.js","path":"src/util"}},{"name":"keepOverLimit","description":"A function called to check if an entry should be kept when the Collection is at max size.","nullable":true,"type":[[["function"]]],"meta":{"line":69,"file":"LimitedCollection.js","path":"src/util"}},{"name":"sweepFilter","description":"A function called every sweep interval that returns a function passed to `sweep`.","nullable":true,"deprecated":"in favor of {@link Client#sweepers}","type":[[["SweepFilter"]]],"meta":{"line":76,"file":"LimitedCollection.js","path":"src/util"}},{"name":"interval","description":"The id of the interval being used to sweep.","nullable":true,"deprecated":"in favor of {@link Client#sweepers}","type":[[["Timeout"]]],"meta":{"line":83,"file":"LimitedCollection.js","path":"src/util"}}],"methods":[{"name":"filterByLifetime","description":"Create a sweepFilter function that uses a lifetime to determine sweepability.","scope":"static","deprecated":"Use {@link Sweepers.filterByLifetime} instead","params":[{"name":"options","description":"The options used to generate the filter function","optional":true,"default":"{}","type":[[["LifetimeFilterOptions"]]]}],"returns":[[["SweepFilter"]]],"meta":{"line":114,"file":"LimitedCollection.js","path":"src/util"}}],"meta":{"line":37,"file":"LimitedCollection.js","path":"src/util"}},{"name":"MessageFlags","description":"Data structure that makes it easy to interact with a {@link Message#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"MessageFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":18,"file":"MessageFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric message flags. All available properties:\n* `CROSSPOSTED`\n* `IS_CROSSPOST`\n* `SUPPRESS_EMBEDS`\n* `SOURCE_MESSAGE_DELETED`\n* `URGENT`\n* `HAS_THREAD`\n* `EPHEMERAL`\n* `LOADING`","see":["{@link https://discord.com/developers/docs/resources/channel#message-object-message-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":37,"file":"MessageFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"MessageFlags.js","path":"src/util"}},{"name":"Options","description":"Contains various utilities for client options.","props":[{"name":"defaultMakeCacheSettings","description":"The default settings passed to {@link Options.cacheWithLimits}.\nThe caches that this changes are:\n* `MessageManager` - Limit to 200 messages\n* `ChannelManager` - Sweep archived threads\n* `GuildChannelManager` - Sweep archived threads\n* `ThreadManager` - Sweep archived threads\nIf you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.\n`makeCache: Options.cacheWithLimits({ ...Options.defaultMakeCacheSettings, ReactionManager: 0 })`","scope":"static","type":[[["Object","<"],["string",", ("],["LimitedCollectionOptions","|"],["number",")>"]]],"meta":{"line":324,"file":"Options.js","path":"src/util"}},{"name":"defaultSweeperSettings","description":"The default settings passed to {@link Options.sweepers} (for v14).\nThe sweepers that this changes are:\n* `threads` - Sweep archived threads every hour, removing those archived more than 4 hours ago\nIf you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.\n`sweepers: { ...Options.defaultSweeperSettings, messages: { interval: 300, lifetime: 600 } })`","scope":"static","type":[[["SweeperOptions"]]],"meta":{"line":353,"file":"Options.js","path":"src/util"}}],"methods":[{"name":"createDefault","description":"The default client options.","scope":"static","returns":[[["ClientOptions"]]],"meta":{"line":137,"file":"Options.js","path":"src/util"}},{"name":"cacheWithLimits","description":"Create a cache factory using predefined settings to sweep or limit.","scope":"static","examples":["// Store up to 200 messages per channel and discard archived threads if they were archived more than 4 hours ago.\n// Note archived threads will remain in the guild and client caches with these settings\nOptions.cacheWithLimits({\n MessageManager: 200,\n ThreadManager: {\n sweepInterval: 3600,\n sweepFilter: LimitedCollection.filterByLifetime({\n getComparisonTimestamp: e => e.archiveTimestamp,\n excludeFromSweep: e => !e.archived,\n }),\n },\n });","// Sweep messages every 5 minutes, removing messages that have not been edited or created in the last 30 minutes\nOptions.cacheWithLimits({\n // Keep default thread sweeping behavior\n ...Options.defaultMakeCacheSettings,\n // Override MessageManager\n MessageManager: {\n sweepInterval: 300,\n sweepFilter: LimitedCollection.filterByLifetime({\n lifetime: 1800,\n getComparisonTimestamp: e => e.editedTimestamp ?? e.createdTimestamp,\n })\n }\n});"],"params":[{"name":"settings","description":"Settings passed to the relevant constructor.\nIf no setting is provided for a manager, it uses Collection.\nIf a number is provided for a manager, it uses that number as the max size for a LimitedCollection.\nIf LimitedCollectionOptions are provided for a manager, it uses those settings to form a LimitedCollection.","optional":true,"default":"{}","type":[[["Object","<"],["string",", ("],["LimitedCollectionOptions","|"],["number",")>"]]]}],"returns":[[["CacheFactory"]]],"meta":{"line":273,"file":"Options.js","path":"src/util"}},{"name":"cacheEverything","description":"Create a cache factory that always caches everything.","scope":"static","returns":[[["CacheFactory"]]],"meta":{"line":308,"file":"Options.js","path":"src/util"}}],"meta":{"line":132,"file":"Options.js","path":"src/util"}},{"name":"Permissions","description":"Data structure that makes it easy to interact with a permission bitfield. All {@link GuildMember}s have a set of\npermissions in their guild, and each channel in the guild may also have {@link PermissionOverwrites} for the member\nthat override their default permissions.","extends":[[["BitField"]]],"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["bigint"]]],"meta":{"line":12,"file":"Permissions.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric permission flags. All available properties:\n* `CREATE_INSTANT_INVITE` (create invitations to the guild)\n* `KICK_MEMBERS`\n* `BAN_MEMBERS`\n* `ADMINISTRATOR` (implicitly has *all* permissions, and bypasses all channel overwrites)\n* `MANAGE_CHANNELS` (edit and reorder channels)\n* `MANAGE_GUILD` (edit the guild information, region, etc.)\n* `ADD_REACTIONS` (add new reactions to messages)\n* `VIEW_AUDIT_LOG`\n* `PRIORITY_SPEAKER`\n* `STREAM`\n* `VIEW_CHANNEL`\n* `SEND_MESSAGES`\n* `SEND_TTS_MESSAGES`\n* `MANAGE_MESSAGES` (delete messages and reactions)\n* `EMBED_LINKS` (links posted will have a preview embedded)\n* `ATTACH_FILES`\n* `READ_MESSAGE_HISTORY` (view messages that were posted prior to opening Discord)\n* `MENTION_EVERYONE`\n* `USE_EXTERNAL_EMOJIS` (use emojis from different guilds)\n* `VIEW_GUILD_INSIGHTS`\n* `CONNECT` (connect to a voice channel)\n* `SPEAK` (speak in a voice channel)\n* `MUTE_MEMBERS` (mute members across all voice channels)\n* `DEAFEN_MEMBERS` (deafen members across all voice channels)\n* `MOVE_MEMBERS` (move members between voice channels)\n* `USE_VAD` (use voice activity detection)\n* `CHANGE_NICKNAME`\n* `MANAGE_NICKNAMES` (change other members' nicknames)\n* `MANAGE_ROLES`\n* `MANAGE_WEBHOOKS`\n* `MANAGE_EMOJIS_AND_STICKERS`\n* `USE_APPLICATION_COMMANDS`\n* `REQUEST_TO_SPEAK`\n* `MANAGE_EVENTS`\n* `MANAGE_THREADS`\n* `USE_PUBLIC_THREADS` (deprecated)\n* `CREATE_PUBLIC_THREADS`\n* `USE_PRIVATE_THREADS` (deprecated)\n* `CREATE_PRIVATE_THREADS`\n* `USE_EXTERNAL_STICKERS` (use stickers from different guilds)\n* `SEND_MESSAGES_IN_THREADS`\n* `START_EMBEDDED_ACTIVITIES`\n* `MODERATE_MEMBERS`","see":["{@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags}"],"scope":"static","type":[[["Object","<"],["string",", "],["bigint",">"]]],"meta":{"line":114,"file":"Permissions.js","path":"src/util"}},{"name":"ALL","description":"Bitfield representing every permission combined","scope":"static","type":[[["bigint"]]],"meta":{"line":165,"file":"Permissions.js","path":"src/util"}},{"name":"DEFAULT","description":"Bitfield representing the default permissions for users","scope":"static","type":[[["bigint"]]],"meta":{"line":171,"file":"Permissions.js","path":"src/util"}},{"name":"STAGE_MODERATOR","description":"Bitfield representing the permissions required for moderators of stage channels","scope":"static","type":[[["bigint"]]],"meta":{"line":177,"file":"Permissions.js","path":"src/util"}}],"methods":[{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"checkAdmin","description":"Whether to allow the administrator permission to override","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":33,"file":"Permissions.js","path":"src/util"}},{"name":"any","description":"Checks whether the bitfield has a permission, or any of multiple permissions.","params":[{"name":"permission","description":"Permission(s) to check for","type":[[["PermissionResolvable"]]]},{"name":"checkAdmin","description":"Whether to allow the administrator permission to override","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"Permissions.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a permission, or multiple permissions.","params":[{"name":"permission","description":"Permission(s) to check for","type":[[["PermissionResolvable"]]]},{"name":"checkAdmin","description":"Whether to allow the administrator permission to override","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":53,"file":"Permissions.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the permissions available.","returns":[[["Array","<"],["string",">"]]],"meta":{"line":61,"file":"Permissions.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}}],"meta":{"line":11,"file":"Permissions.js","path":"src/util"}},{"name":"SnowflakeUtil","description":"A container for useful snowflake-related methods.","props":[{"name":"EPOCH","description":"Discord's epoch value (2015-01-01T00:00:00.000Z).","scope":"static","readonly":true,"type":[[["number"]]],"meta":{"line":87,"file":"SnowflakeUtil.js","path":"src/util"}}],"methods":[{"name":"generate","description":"Generates a Discord snowflake.\nThis hardcodes the worker's id as 1 and the process's id as 0.","scope":"static","params":[{"name":"timestamp","description":"Timestamp or date of the snowflake to generate","optional":true,"default":"Date.now()","type":[[["number"]],[["Date"]]]}],"returns":{"types":[[["Snowflake"]]],"description":"The generated snowflake"},"meta":{"line":30,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"deconstruct","description":"Deconstructs a Discord snowflake.","scope":"static","params":[{"name":"snowflake","description":"Snowflake to deconstruct","type":[[["Snowflake"]]]}],"returns":[[["DeconstructedSnowflake"]]],"meta":{"line":59,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"timestampFrom","description":"Retrieves the timestamp field's value from a Discord snowflake.","scope":"static","params":[{"name":"snowflake","description":"Snowflake to get the timestamp value from","type":[[["Snowflake"]]]}],"returns":[[["number"]]],"meta":{"line":78,"file":"SnowflakeUtil.js","path":"src/util"}}],"meta":{"line":10,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"Sweepers","description":"A container for all cache sweeping intervals and their associated sweep methods.","props":[{"name":"options","description":"The options the sweepers were instantiated with","type":[[["SweeperOptions"]]],"meta":{"line":30,"file":"Sweepers.js","path":"src/util"}},{"name":"intervals","description":"A record of interval timeout that is used to sweep the indicated items, or null if not being swept","type":[[["Object","<"],["SweeperKey",", ?"],["Timeout",">"]]],"meta":{"line":36,"file":"Sweepers.js","path":"src/util"}}],"methods":[{"name":"sweepApplicationCommands","description":"Sweeps all guild and global application commands and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which commands will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of commands that were removed from the caches"},"meta":{"line":68,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepBans","description":"Sweeps all guild bans and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which bans will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of bans that were removed from the caches"},"meta":{"line":85,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepEmojis","description":"Sweeps all guild emojis and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which emojis will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of emojis that were removed from the caches"},"meta":{"line":94,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepInvites","description":"Sweeps all guild invites and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which invites will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of invites that were removed from the caches"},"meta":{"line":103,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepGuildMembers","description":"Sweeps all guild members and removes the ones which are indicated by the filter.\nIt is highly recommended to keep the client guild member cached","params":[{"name":"filter","description":"The function used to determine which guild members will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of guild members that were removed from the caches"},"meta":{"line":113,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepMessages","description":"Sweeps all text-based channels' messages and removes the ones which are indicated by the filter.","examples":["// Remove all messages older than 1800 seconds from the messages cache\nconst amount = sweepers.sweepMessages(\n Sweepers.filterByLifetime({\n lifetime: 1800,\n getComparisonTimestamp: m => m.editedTimestamp ?? m.createdTimestamp,\n })(),\n);\nconsole.log(`Successfully removed ${amount} messages from the cache.`);"],"params":[{"name":"filter","description":"The function used to determine which messages will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of messages that were removed from the caches"},"meta":{"line":131,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepPresences","description":"Sweeps all presences and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which presences will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of presences that were removed from the caches"},"meta":{"line":153,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepReactions","description":"Sweeps all message reactions and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which reactions will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of reactions that were removed from the caches"},"meta":{"line":162,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepStageInstances","description":"Sweeps all guild stage instances and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which stage instances will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of stage instances that were removed from the caches"},"meta":{"line":191,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepThreadMembers","description":"Sweeps all thread members and removes the ones which are indicated by the filter.\nIt is highly recommended to keep the client thread member cached","params":[{"name":"filter","description":"The function used to determine which thread members will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of thread members that were removed from the caches"},"meta":{"line":201,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepThreads","description":"Sweeps all threads and removes the ones which are indicated by the filter.","examples":["// Remove all threads archived greater than 1 day ago from all the channel caches\nconst amount = sweepers.sweepThreads(\n Sweepers.filterByLifetime({\n getComparisonTimestamp: t => t.archivedTimestamp,\n excludeFromSweep: t => !t.archived,\n })(),\n);\nconsole.log(`Successfully removed ${amount} threads from the cache.`);"],"params":[{"name":"filter","description":"The function used to determine which threads will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"filter Amount of threads that were removed from the caches"},"meta":{"line":231,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepUsers","description":"Sweeps all users and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which users will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of users that were removed from the caches"},"meta":{"line":253,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepVoiceStates","description":"Sweeps all guild voice states and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which voice states will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of voice states that were removed from the caches"},"meta":{"line":270,"file":"Sweepers.js","path":"src/util"}},{"name":"destroy","description":"Cancels all sweeping intervals","returns":[[["void"]]],"meta":{"line":278,"file":"Sweepers.js","path":"src/util"}},{"name":"_sweepGuildDirectProp","description":"Sweep a direct sub property of all guilds","access":"private","params":[{"name":"key","description":"The name of the property","type":[[["string"]]]},{"name":"filter","description":"Filter function passed to sweep","type":[[["function"]]]},{"name":"eventOptions","description":"Options for the Client event emitted here","optional":true,"default":"{}","type":[[["SweepEventOptions"]]]}],"returns":{"types":[[["Object"]]],"description":"Object containing the number of guilds swept and the number of items swept"},"meta":{"line":382,"file":"Sweepers.js","path":"src/util"}},{"name":"_validateProperties","description":"Validates a set of properties","access":"private","params":[{"name":"key","description":"Key of the options object to check","type":[[["string"]]]}],"meta":{"line":409,"file":"Sweepers.js","path":"src/util"}},{"name":"_initInterval","description":"Initialize an interval for sweeping","access":"private","params":[{"name":"intervalKey","description":"The name of the property that stores the interval for this sweeper","type":[[["string"]]]},{"name":"sweepKey","description":"The name of the function that sweeps the desired caches","type":[[["string"]]]},{"name":"opts","description":"Validated options for a sweep","type":[[["Object"]]]}],"meta":{"line":436,"file":"Sweepers.js","path":"src/util"}},{"name":"filterByLifetime","description":"Create a sweepFilter function that uses a lifetime to determine sweepability.","scope":"static","params":[{"name":"options","description":"The options used to generate the filter function","optional":true,"default":"{}","type":[[["LifetimeFilterOptions"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":300,"file":"Sweepers.js","path":"src/util"}},{"name":"archivedThreadSweepFilter","description":"Creates a sweep filter that sweeps archived threads","scope":"static","params":[{"name":"lifetime","description":"How long a thread has to be archived to be valid for sweeping","optional":true,"default":14400,"type":[[["number"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":334,"file":"Sweepers.js","path":"src/util"}},{"name":"expiredInviteSweepFilter","description":"Creates a sweep filter that sweeps expired invites","scope":"static","params":[{"name":"lifetime","description":"How long ago an invite has to have expired to be valid for sweeping","optional":true,"default":14400,"type":[[["number"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":347,"file":"Sweepers.js","path":"src/util"}},{"name":"outdatedMessageSweepFilter","description":"Creates a sweep filter that sweeps outdated messages (edits taken into account)","scope":"static","params":[{"name":"lifetime","description":"How long ago a message has to have been sent or edited to be valid for sweeping","optional":true,"default":3600,"type":[[["number"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":359,"file":"Sweepers.js","path":"src/util"}}],"meta":{"line":17,"file":"Sweepers.js","path":"src/util"}},{"name":"SystemChannelFlags","description":"Data structure that makes it easy to interact with a {@link Guild#systemChannelFlags} bitfield.\nNote that all event message types are enabled by default,\nand by setting their corresponding flags you are disabling them","extends":[[["BitField"]]],"construct":{"name":"SystemChannelFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["SystemChannelFlagsResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":20,"file":"SystemChannelFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric system channel flags. All available properties:\n* `SUPPRESS_JOIN_NOTIFICATIONS` (Suppress member join notifications)\n* `SUPPRESS_PREMIUM_SUBSCRIPTIONS` (Suppress server boost notifications)\n* `SUPPRESS_GUILD_REMINDER_NOTIFICATIONS` (Suppress server setup tips)\n* `SUPPRESS_JOIN_NOTIFICATION_REPLIES` (Hide member join sticker reply buttons)","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":44,"file":"SystemChannelFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":11,"file":"SystemChannelFlags.js","path":"src/util"}},{"name":"ThreadMemberFlags","description":"Data structure that makes it easy to interact with a {@link ThreadMember#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"ThreadMemberFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":18,"file":"ThreadMemberFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric thread member flags. There are currently no bitflags relevant to bots for this.","scope":"static","type":[[["Object","<"],["string",", "],["number",">"]]],"meta":{"line":28,"file":"ThreadMemberFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"ThreadMemberFlags.js","path":"src/util"}},{"name":"UserFlags","description":"Data structure that makes it easy to interact with a {@link User#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"UserFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":17,"file":"UserFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric user flags. All available properties:\n* `DISCORD_EMPLOYEE`\n* `PARTNERED_SERVER_OWNER`\n* `HYPESQUAD_EVENTS`\n* `BUGHUNTER_LEVEL_1`\n* `HOUSE_BRAVERY`\n* `HOUSE_BRILLIANCE`\n* `HOUSE_BALANCE`\n* `EARLY_SUPPORTER`\n* `TEAM_USER`\n* `BUGHUNTER_LEVEL_2`\n* `VERIFIED_BOT`\n* `EARLY_VERIFIED_BOT_DEVELOPER`\n* `DISCORD_CERTIFIED_MODERATOR`\n* `BOT_HTTP_INTERACTIONS`","see":["{@link https://discord.com/developers/docs/resources/user#user-object-user-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":42,"file":"UserFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":8,"file":"UserFlags.js","path":"src/util"}},{"name":"Util","description":"Contains various general-purpose utility methods.","methods":[{"name":"flatten","description":"Flatten an object. Any properties that are collections will get converted to an array of keys.","scope":"static","params":[{"name":"obj","description":"The object to flatten.","type":[[["Object"]]]},{"name":"props","description":"Specific properties to include/exclude.","optional":true,"variable":true,"type":[[["Object","<"],["string",", ("],["boolean","|"],["string",")>"]]]}],"returns":[[["Object"]]],"meta":{"line":25,"file":"Util.js","path":"src/util"}},{"name":"splitMessage","description":"Splits a string into multiple chunks at a designated character that do not exceed a specific length.","scope":"static","params":[{"name":"text","description":"Content to split","type":[[["string"]]]},{"name":"options","description":"Options controlling the behavior of the split","optional":true,"type":[[["SplitOptions"]]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":75,"file":"Util.js","path":"src/util"}},{"name":"escapeMarkdown","description":"Escapes any Discord-flavour markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]},{"name":"options","description":"Options for escaping the markdown","optional":true,"default":"{}","type":[[["EscapeMarkdownOptions"]]]}],"returns":[[["string"]]],"meta":{"line":124,"file":"Util.js","path":"src/util"}},{"name":"escapeCodeBlock","description":"Escapes code block markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":186,"file":"Util.js","path":"src/util"}},{"name":"escapeInlineCode","description":"Escapes inline code markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":195,"file":"Util.js","path":"src/util"}},{"name":"escapeItalic","description":"Escapes italic markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":204,"file":"Util.js","path":"src/util"}},{"name":"escapeBold","description":"Escapes bold markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":222,"file":"Util.js","path":"src/util"}},{"name":"escapeUnderline","description":"Escapes underline markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":235,"file":"Util.js","path":"src/util"}},{"name":"escapeStrikethrough","description":"Escapes strikethrough markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":248,"file":"Util.js","path":"src/util"}},{"name":"escapeSpoiler","description":"Escapes spoiler markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":257,"file":"Util.js","path":"src/util"}},{"name":"fetchRecommendedShards","description":"Gets the recommended shard count from Discord.","scope":"static","params":[{"name":"token","description":"Discord auth token","type":[[["string"]]]},{"name":"options","description":"Options for fetching the recommended shard count","optional":true,"type":[[["FetchRecommendedShardsOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["number",">"]]],"description":"The recommended number of shards"},"meta":{"line":273,"file":"Util.js","path":"src/util"}},{"name":"parseEmoji","description":"Parses emoji info out of a string. The string must be one of:\n* A UTF-8 emoji (no id)\n* A URL-encoded UTF-8 emoji (no id)\n* A Discord custom emoji (`<:name:id>` or ``)","scope":"static","access":"private","params":[{"name":"text","description":"Emoji string to parse","type":[[["string"]]]}],"returns":{"types":[[["APIEmoji"]]],"description":"Object with `animated`, `name`, and `id` properties"},"meta":{"line":297,"file":"Util.js","path":"src/util"}},{"name":"resolvePartialEmoji","description":"Resolves a partial emoji object from an {@link EmojiIdentifierResolvable}, without checking a Client.","scope":"static","access":"private","params":[{"name":"emoji","description":"Emoji identifier to resolve","type":[[["EmojiIdentifierResolvable"]]]}],"returns":{"types":[[["RawEmoji"]]],"nullable":true},"meta":{"line":310,"file":"Util.js","path":"src/util"}},{"name":"cloneObject","description":"Shallow-copies an object with its class/prototype intact.","scope":"static","access":"private","params":[{"name":"obj","description":"Object to clone","type":[[["Object"]]]}],"returns":[[["Object"]]],"meta":{"line":324,"file":"Util.js","path":"src/util"}},{"name":"mergeDefault","description":"Sets default properties on an object that aren't already specified.","scope":"static","access":"private","params":[{"name":"def","description":"Default properties","type":[[["Object"]]]},{"name":"given","description":"Object to assign defaults to","type":[[["Object"]]]}],"returns":[[["Object"]]],"meta":{"line":335,"file":"Util.js","path":"src/util"}},{"name":"makeError","description":"Makes an Error from a plain info object.","scope":"static","access":"private","params":[{"name":"obj","description":"Error info","type":[[["MakeErrorOptions"]]]}],"returns":[[["Error"]]],"meta":{"line":362,"file":"Util.js","path":"src/util"}},{"name":"makePlainError","description":"Makes a plain error info object from an Error.","scope":"static","access":"private","params":[{"name":"err","description":"Error to get info from","type":[[["Error"]]]}],"returns":[[["MakeErrorOptions"]]],"meta":{"line":375,"file":"Util.js","path":"src/util"}},{"name":"moveElementInArray","description":"Moves an element in an array *in place*.","scope":"static","access":"private","params":[{"name":"array","description":"Array to modify","type":[[["Array","<"],["*",">"]]]},{"name":"element","description":"Element to move","type":[["*"]]},{"name":"newIndex","description":"Index or offset to move the element to","type":[[["number"]]]},{"name":"offset","description":"Move the element by an offset amount rather than to a set index","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["number"]]],"meta":{"line":392,"file":"Util.js","path":"src/util"}},{"name":"verifyString","description":"Verifies the provided data is a string, otherwise throws provided error.","scope":"static","params":[{"name":"data","description":"The string resolvable to resolve","type":[[["string"]]]},{"name":"error","description":"The Error constructor to instantiate. Defaults to Error","optional":true,"type":[[["function"]]]},{"name":"errorMessage","description":"The error message to throw with. Defaults to \"Expected string, got instead.\"","optional":true,"type":[[["string"]]]},{"name":"allowEmpty","description":"Whether an empty string should be allowed","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["string"]]],"meta":{"line":410,"file":"Util.js","path":"src/util"}},{"name":"resolveColor","description":"Resolves a ColorResolvable into a color number.","scope":"static","params":[{"name":"color","description":"Color to resolve","type":[[["ColorResolvable"]]]}],"returns":{"types":[[["number"]]],"description":"A color"},"meta":{"line":466,"file":"Util.js","path":"src/util"}},{"name":"discordSort","description":"Sorts by Discord's position and id.","scope":"static","params":[{"name":"collection","description":"Collection of objects to sort","type":[[["Collection"]]]}],"returns":[[["Collection"]]],"meta":{"line":486,"file":"Util.js","path":"src/util"}},{"name":"setPosition","description":"Sets the position of a Channel or Role.","scope":"static","access":"private","params":[{"name":"item","description":"Object to set the position of","type":[[["Channel"]],[["Role"]]]},{"name":"position","description":"New position for the object","type":[[["number"]]]},{"name":"relative","description":"Whether `position` is relative to its current position","type":[[["boolean"]]]},{"name":"sorted","description":"A collection of the objects sorted properly","type":[[["Collection","<"],["string",", ("],["Channel","|"],["Role",")>"]]]},{"name":"route","description":"Route to call PATCH on","type":[[["APIRouter"]]]},{"name":"reason","description":"Reason for the change","optional":true,"type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Array","<"],["Channel",">|"],["Array","<"],["Role",">)>"]]],"description":"Updated item list, with `id` and `position` properties"},"meta":{"line":506,"file":"Util.js","path":"src/util"}},{"name":"basename","description":"Alternative to Node's `path.basename`, removing query string after the extension if it exists.","scope":"static","access":"private","params":[{"name":"path","description":"Path to get the basename of","type":[[["string"]]]},{"name":"ext","description":"File extension to remove","optional":true,"type":[[["string"]]]}],"returns":{"types":[[["string"]]],"description":"Basename of the path"},"meta":{"line":521,"file":"Util.js","path":"src/util"}},{"name":"removeMentions","description":"Breaks user, role and everyone/here mentions by adding a zero width space after every @ character","scope":"static","deprecated":"Use {@link BaseMessageOptions#allowedMentions} instead.","params":[{"name":"str","description":"The string to sanitize","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":532,"file":"Util.js","path":"src/util"}},{"name":"cleanContent","description":"The content to have all mentions replaced by the equivalent text.\nWhen {@link Util.removeMentions} is removed, this method will no longer sanitize mentions.\nUse {@link BaseMessageOptions#allowedMentions} instead to prevent mentions when sending a message.","scope":"static","params":[{"name":"str","description":"The string to be converted","type":[[["string"]]]},{"name":"channel","description":"The channel the string was sent in","type":[[["TextBasedChannels"]]]}],"returns":[[["string"]]],"meta":{"line":557,"file":"Util.js","path":"src/util"}},{"name":"cleanCodeBlockContent","description":"The content to put in a code block with all code block fences replaced by the equivalent backticks.","scope":"static","params":[{"name":"text","description":"The string to be converted","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":591,"file":"Util.js","path":"src/util"}},{"name":"archivedThreadSweepFilter","description":"Creates a sweep filter that sweeps archived threads","scope":"static","deprecated":"When not using with `makeCache` use `Sweepers.archivedThreadSweepFilter` instead","params":[{"name":"lifetime","description":"How long a thread has to be archived to be valid for sweeping","optional":true,"default":14400,"type":[[["number"]]]}],"returns":[[["SweepFilter"]]],"meta":{"line":601,"file":"Util.js","path":"src/util"}}],"meta":{"line":18,"file":"Util.js","path":"src/util"}}],"interfaces":[{"name":"InteractionResponses","description":"Interface for classes that support shared interaction response types.","methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":54,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":89,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":122,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":137,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":154,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":164,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":179,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":205,"file":"InteractionResponses.js","path":"src/structures/interfaces"}}],"meta":{"line":12,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features.","props":[{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":23,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastMessageId","description":"The channel's last message id, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":29,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":35,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"methods":[{"name":"send","description":"Sends a message to this channel.","examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":158,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":188,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":203,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":226,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a button interaction collector.","examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":250,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":270,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":294,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendSlash","description":"Send Slash to this channel","params":[{"name":"botId","description":"Bot Id","type":[[["Snowflake"]]]},{"name":"commandName","description":"Command name","type":[[["string"]]]},{"name":"args","description":"Command arguments","nullable":true,"type":[[["Array","<"],["string",">"]]]}],"async":true,"returns":[[["Promise","<"],["pending",">"]]],"meta":{"line":340,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":17,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"typedefs":[{"name":"ClientFetchInviteOptions","description":"Options used when fetching an invite from Discord.","type":[[["Object"]]],"props":[{"name":"guildScheduledEventId","description":"The id of the guild scheduled event to include with\nthe invite","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":370,"file":"Client.js","path":"src/client"}},{"name":"InviteGenerationOptions","description":"Options for {@link Client#generateInvite}.","type":[[["Object"]]],"props":[{"name":"scopes","description":"Scopes that should be requested","type":[[["Array","<"],["InviteScope",">"]]]},{"name":"permissions","description":"Permissions to request","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"guild","description":"Guild to preselect","optional":true,"type":[[["GuildResolvable"]]]},{"name":"disableGuildSelect","description":"Whether to disable the guild selection","optional":true,"type":[[["boolean"]]]}],"meta":{"line":558,"file":"Client.js","path":"src/client"}},{"name":"WebhookClientData","description":"The data for the webhook client containing either an id and token or just a URL","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the webhook","optional":true,"type":[[["Snowflake"]]]},{"name":"token","description":"The token of the webhook","optional":true,"type":[[["string"]]]},{"name":"url","description":"The full URL for the webhook client","optional":true,"type":[[["string"]]]}],"meta":{"line":13,"file":"WebhookClient.js","path":"src/client"}},{"name":"GuildMembersChunk","description":"Represents the properties of a guild members chunk","type":[[["Object"]]],"props":[{"name":"index","description":"Index of the received chunk","type":[[["number"]]]},{"name":"count","description":"Number of chunks the client should receive","type":[[["number"]]]},{"name":"nonce","description":"Nonce for this chunk","nullable":true,"type":[[["string"]]]}],"meta":{"line":16,"file":"GUILD_MEMBERS_CHUNK.js","path":"src/client/websocket/handlers"}},{"name":"ApplicationCommandResolvable","description":"Data that resolves to give an ApplicationCommand object. This can be:\n* An ApplicationCommand object\n* A Snowflake","type":[[["ApplicationCommand"]],[["Snowflake"]]],"meta":{"line":50,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"BaseFetchOptions","description":"Options used to fetch data from Discord","type":[[["Object"]]],"props":[{"name":"cache","description":"Whether to cache the fetched data if it wasn't already","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":57,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"FetchApplicationCommandOptions","description":"Options used to fetch Application Commands from Discord","type":[[["BaseFetchOptions"]]],"props":[{"name":"guildId","description":"The guild's id to fetch commands for, for when the guild is not cached","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":64,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"ApplicationCommandPermissionData","description":"Data for setting the permissions of an application command.","type":[[["Object"]]],"props":[{"name":"id","description":"The role or user's id","type":[[["Snowflake"]]]},{"name":"type","description":"Whether this permission is for a role or a user","type":[[["ApplicationCommandPermissionType"]],[["number"]]]},{"name":"permission","description":"Whether the role or user has the permission to use this command","type":[[["boolean"]]]}],"meta":{"line":58,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"ApplicationCommandPermissions","description":"The object returned when fetching permissions for an application command.","type":[[["Object"]]],"props":[{"name":"id","description":"The role or user's id","type":[[["Snowflake"]]]},{"name":"type","description":"Whether this permission is for a role or a user","type":[[["ApplicationCommandPermissionType"]]]},{"name":"permission","description":"Whether the role or user has the permission to use this command","type":[[["boolean"]]]}],"meta":{"line":66,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"BaseApplicationCommandPermissionsOptions","description":"Options for managing permissions for one or more Application Commands\nWhen passing these options to a manager where `guildId` is `null`,\n`guild` is a required parameter","type":[[["Object"]]],"props":[{"name":"guild","description":"The guild to modify / check permissions for\nIgnored when the manager has a non-null `guildId` property","optional":true,"type":[[["GuildResolvable"]]]},{"name":"command","description":"The command to modify / check permissions for\nIgnored when the manager has a non-null `commandId` property","optional":true,"type":[[["ApplicationCommandResolvable"]]]}],"meta":{"line":74,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"GuildApplicationCommandPermissionData","description":"Data used for overwriting the permissions for all application commands in a guild.","type":[[["Object"]]],"props":[{"name":"id","description":"The command's id","type":[[["Snowflake"]]]},{"name":"permissions","description":"The permissions for this command","type":[[["Array","<"],["ApplicationCommandPermissionData",">"]]]}],"meta":{"line":118,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"SetApplicationCommandPermissionsOptions","description":"Options used to set permissions for one or more Application Commands in a guild\nOne of `command` AND `permissions`, OR `fullPermissions` is required.\n`fullPermissions` is not a valid option when passing to a manager where `commandId` is non-null","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"permissions","description":"The new permissions for the command","optional":true,"type":[[["Array","<"],["ApplicationCommandPermissionData",">"]]]},{"name":"fullPermissions","description":"The new permissions for all commands\nin a guild When this parameter is set, `permissions` and `command` are ignored","optional":true,"type":[[["Array","<"],["GuildApplicationCommandPermissionData",">"]]]}],"meta":{"line":125,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"AddApplicationCommandPermissionsOptions","description":"Options used to add permissions to a command\nThe `command` parameter is not optional when the managers `commandId` is `null`","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"permissions","description":"The permissions to add to the command","type":[[["Array","<"],["ApplicationCommandPermissionData",">"]]]}],"meta":{"line":205,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"RemoveApplicationCommandPermissionsOptions","description":"Options used to remove permissions from a command\nThe `command` parameter is not optional when the managers `commandId` is `null`","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"users","description":"The user(s) to remove from the command permissions\nOne of `users` or `roles` is required","optional":true,"type":[[["UserResolvable"]],[["Array","<"],["UserResolvable",">"]]]},{"name":"roles","description":"The role(s) to remove from the command permissions\nOne of `users` or `roles` is required","optional":true,"type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]]]}],"meta":{"line":253,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"HasApplicationCommandPermissionsOptions","description":"Options used to check the existence of permissions on a command\nThe `command` parameter is not optional when the managers `commandId` is `null`","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"permissionId","description":"The user or role to check if a permission exists for\non this command.","type":[[["UserResolvable"]],[["RoleResolvable"]]]}],"meta":{"line":338,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"EmojiResolvable","description":"Data that can be resolved into a GuildEmoji object. This can be:\n* A Snowflake\n* A GuildEmoji object\n* A ReactionEmoji object","type":[[["Snowflake"]],[["GuildEmoji"]],[["ReactionEmoji"]]],"meta":{"line":23,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"EmojiIdentifierResolvable","description":"Data that can be resolved to give an emoji identifier. This can be:\n* The unicode representation of an emoji\n* The ``, `<:name:id>`, `a:name:id` or `name:id` emoji identifier string of an emoji\n* An EmojiResolvable","type":[[["string"]],[["EmojiResolvable"]]],"meta":{"line":51,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A Snowflake\n* A Message object (resolves to the message author)\n* A GuildMember object\n* A ThreadMember object","type":[[["User"]],[["Snowflake"]],[["Message"]],[["GuildMember"]],[["ThreadMember"]]],"meta":{"line":24,"file":"UserManager.js","path":"src/managers"}},{"name":"ChannelResolvable","description":"Data that can be resolved to give a Channel object. This can be:\n* A Channel object\n* A Snowflake","type":[[["Channel"]],[["Snowflake"]]],"meta":{"line":68,"file":"ChannelManager.js","path":"src/managers"}},{"name":"FetchChannelOptions","description":"Options for fetching a channel from Discord","type":[[["BaseFetchOptions"]]],"props":[{"name":"allowUnknownGuild","description":"Allows the channel to be returned even if the guild is not in cache,\nit will not be cached. Many of the properties and methods on the returned channel will throw errors","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":93,"file":"ChannelManager.js","path":"src/managers"}},{"name":"CustomStatusOption","description":"CustomStatus Object","type":[[["Object"]]],"props":[{"name":"text","description":"Text to set","type":[[["string"]],[["null"]]]},{"name":"status","description":"The status to set: 'online', 'idle', 'dnd', 'invisible' or null.","type":[[["string"]],[["null"]]]},{"name":"emoji","description":"UnicodeEmoji, DiscordEmoji, or null.","type":[[["any"]]]},{"name":"expires","description":"The number of seconds until the status expires, or null.","type":[[["number"]],[["null"]]]}],"meta":{"line":207,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"GuildBanResolvable","description":"Data that resolves to give a GuildBan object. This can be:\n* A GuildBan object\n* A User resolvable","type":[[["GuildBan"]],[["UserResolvable"]]],"meta":{"line":34,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"FetchBanOptions","description":"Options used to fetch a single ban from a guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"user","description":"The ban to fetch","type":[[["UserResolvable"]]]}],"meta":{"line":50,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"FetchBansOptions","description":"Options used to fetch all bans from a guild.","type":[[["Object"]]],"props":[{"name":"cache","description":"Whether or not to cache the fetched bans","type":[[["boolean"]]]}],"meta":{"line":56,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"BanOptions","description":"Options used to ban a user from a guild.","type":[[["Object"]]],"props":[{"name":"days","description":"Number of days of messages to delete, must be between 0 and 7, inclusive","optional":true,"default":0,"type":[[["number"]]]},{"name":"reason","description":"The reason for the ban","optional":true,"type":[[["string"]]]}],"meta":{"line":119,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"GuildChannelResolvable","description":"Data that can be resolved to give a Guild Channel object. This can be:\n* A GuildChannel object\n* A ThreadChannel object\n* A Snowflake","type":[[["GuildChannel"]],[["ThreadChannel"]],[["Snowflake"]]],"meta":{"line":68,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"GuildChannelCreateOptions","description":"Options used to create a new channel in a guild.","type":[[["CategoryCreateChannelOptions"]]],"props":[{"name":"parent","description":"Parent of the new channel","optional":true,"type":[[["CategoryChannelResolvable"]]]}],"meta":{"line":96,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"GuildEmojiCreateOptions","description":"Options used for creating an emoji in a guild.","type":[[["Object"]]],"props":[{"name":"roles","description":"The roles to limit the emoji to","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"reason","description":"The reason for creating the emoji","optional":true,"type":[[["string"]]]}],"meta":{"line":27,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"InviteResolvable","description":"Data that can be resolved to give an invite code. This can be:\n* An invite code\n* An invite URL","type":[[["string"]]],"meta":{"line":16,"file":"DataResolver.js","path":"src/util"}},{"name":"GuildInvitableChannelResolvable","description":"Data that can be resolved to a channel that an invite can be created on. This can be:\n* TextChannel\n* VoiceChannel\n* NewsChannel\n* StoreChannel\n* StageChannel\n* Snowflake","type":[[["TextChannel"]],[["VoiceChannel"]],[["NewsChannel"]],[["StoreChannel"]],[["StageChannel"]],[["Snowflake"]]],"meta":{"line":41,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"FetchInviteOptions","description":"Options used to fetch a single invite from a guild.","type":[[["Object"]]],"props":[{"name":"code","description":"The invite to fetch","type":[[["InviteResolvable"]]]},{"name":"cache","description":"Whether or not to cache the fetched invite","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":71,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"FetchInvitesOptions","description":"Options used to fetch all invites from a guild.","type":[[["Object"]]],"props":[{"name":"channelId","description":"The channel to fetch all invites from","optional":true,"type":[[["GuildInvitableChannelResolvable"]]]},{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":79,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object\n* A GuildChannel object\n* A GuildEmoji object\n* A Role object\n* A Snowflake\n* An Invite object","type":[[["Guild"]],[["GuildChannel"]],[["GuildMember"]],[["GuildEmoji"]],[["Role"]],[["Snowflake"]],[["Invite"]]],"meta":{"line":51,"file":"GuildManager.js","path":"src/managers"}},{"name":"PartialRoleData","description":"Partial data for a Role.","type":[[["Object"]]],"props":[{"name":"id","description":"The role's id, used to set channel overrides,\nthis is a placeholder and will be replaced by the API after consumption","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"name","description":"The name of the role","optional":true,"type":[[["string"]]]},{"name":"color","description":"The color of the role, either a hex string or a base 10 number","optional":true,"type":[[["ColorResolvable"]]]},{"name":"hoist","description":"Whether or not the role should be hoisted","optional":true,"type":[[["boolean"]]]},{"name":"position","description":"The position of the role","optional":true,"type":[[["number"]]]},{"name":"permissions","description":"The permissions of the role","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"mentionable","description":"Whether or not the role should be mentionable","optional":true,"type":[[["boolean"]]]}],"meta":{"line":62,"file":"GuildManager.js","path":"src/managers"}},{"name":"PartialOverwriteData","description":"Partial overwrite data.","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the {@link Role} or {@link User} this overwrite belongs to","type":[[["Snowflake"]],[["number"]]]},{"name":"type","description":"The type of this overwrite","optional":true,"type":[[["OverwriteType"]]]},{"name":"allow","description":"The permissions to allow","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"deny","description":"The permissions to deny","optional":true,"type":[[["PermissionResolvable"]]]}],"meta":{"line":75,"file":"GuildManager.js","path":"src/managers"}},{"name":"PartialChannelData","description":"Partial data for a Channel.","type":[[["Object"]]],"props":[{"name":"id","description":"The channel's id, used to set its parent,\nthis is a placeholder and will be replaced by the API after consumption","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"parentId","description":"The parent id for this channel","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"type","description":"The type of the channel","optional":true,"type":[[["ChannelType"]],[["number"]]]},{"name":"name","description":"The name of the channel","type":[[["string"]]]},{"name":"topic","description":"The topic of the text channel","optional":true,"type":[[["string"]]]},{"name":"nsfw","description":"Whether the channel is NSFW","optional":true,"type":[[["boolean"]]]},{"name":"bitrate","description":"The bitrate of the voice channel","optional":true,"type":[[["number"]]]},{"name":"userLimit","description":"The user limit of the channel","optional":true,"type":[[["number"]]]},{"name":"rtcRegion","description":"The RTC region of the channel","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"permissionOverwrites","description":"Overwrites of the channel","optional":true,"type":[[["Array","<"],["PartialOverwriteData",">"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) of the channel in seconds","optional":true,"type":[[["number"]]]}],"meta":{"line":84,"file":"GuildManager.js","path":"src/managers"}},{"name":"GuildCreateOptions","description":"Options used to create a guild.","type":[[["Object"]]],"props":[{"name":"afkChannelId","description":"The AFK channel's id","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"afkTimeout","description":"The AFK timeout in seconds","optional":true,"type":[[["number"]]]},{"name":"channels","description":"The channels for this guild","optional":true,"default":"[]","type":[[["Array","<"],["PartialChannelData",">"]]]},{"name":"defaultMessageNotifications","description":"The default message notifications\nfor the guild","optional":true,"type":[[["DefaultMessageNotificationLevel"]],[["number"]]]},{"name":"explicitContentFilter","description":"The explicit content filter level for the guild","optional":true,"type":[[["ExplicitContentFilterLevel"]]]},{"name":"icon","description":"The icon for the guild","optional":true,"default":null,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"roles","description":"The roles for this guild,\nthe first element of this array is used to change properties of the guild's everyone role.","optional":true,"default":"[]","type":[[["Array","<"],["PartialRoleData",">"]]]},{"name":"systemChannelId","description":"The system channel's id","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"systemChannelFlags","description":"The flags of the system channel","optional":true,"type":[[["SystemChannelFlagsResolvable"]]]},{"name":"verificationLevel","description":"The verification level for the guild","optional":true,"type":[[["VerificationLevel"]]]}],"meta":{"line":144,"file":"GuildManager.js","path":"src/managers"}},{"name":"FetchGuildOptions","description":"Options used to fetch a single guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"guild","description":"The guild to fetch","type":[[["GuildResolvable"]]]},{"name":"withCounts","description":"Whether the approximate member and presence counts should be returned","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":259,"file":"GuildManager.js","path":"src/managers"}},{"name":"FetchGuildsOptions","description":"Options used to fetch multiple guilds.","type":[[["Object"]]],"props":[{"name":"before","description":"Get guilds before this guild id","optional":true,"type":[[["Snowflake"]]]},{"name":"after","description":"Get guilds after this guild id","optional":true,"type":[[["Snowflake"]]]},{"name":"limit","description":"Maximum number of guilds to request (1-200)","optional":true,"default":200,"type":[[["number"]]]}],"meta":{"line":266,"file":"GuildManager.js","path":"src/managers"}},{"name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User resolvable","type":[[["GuildMember"]],[["UserResolvable"]]],"meta":{"line":39,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"AddGuildMemberOptions","description":"Options used to add a user to a guild using OAuth2.","type":[[["Object"]]],"props":[{"name":"accessToken","description":"An OAuth2 access token for the user with the `guilds.join` scope granted to the\nbot's application","type":[[["string"]]]},{"name":"nick","description":"The nickname to give to the member (requires `MANAGE_NICKNAMES`)","optional":true,"type":[[["string"]]]},{"name":"roles","description":"The roles to add to the member\n(requires `MANAGE_ROLES`)","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"mute","description":"Whether the member should be muted (requires `MUTE_MEMBERS`)","optional":true,"type":[[["boolean"]]]},{"name":"deaf","description":"Whether the member should be deafened (requires `DEAFEN_MEMBERS`)","optional":true,"type":[[["boolean"]]]},{"name":"force","description":"Whether to skip the cache check and call the API directly","optional":true,"type":[[["boolean"]]]},{"name":"fetchWhenExisting","description":"Whether to fetch the user if not cached and already a member","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":71,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"FetchMemberOptions","description":"Options used to fetch a single member from a guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]}],"meta":{"line":121,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"FetchMembersOptions","description":"Options used to fetch multiple members from a guild.","type":[[["Object"]]],"props":[{"name":"user","description":"The user(s) to fetch","type":[[["UserResolvable"]],[["Array","<"],["UserResolvable",">"]]]},{"name":"query","description":"Limit fetch to members with similar usernames","nullable":true,"type":[[["string"]]]},{"name":"limit","description":"Maximum number of members to request","optional":true,"default":0,"type":[[["number"]]]},{"name":"withPresences","description":"Whether or not to include the presences","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"time","description":"Timeout for receipt of members","optional":true,"default":"120e3","type":[[["number"]]]},{"name":"nonce","description":"Nonce for this request (32 characters max - default to base 16 now timestamp)","nullable":true,"type":[[["string"]]]},{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":127,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildSearchMembersOptions","description":"Options used for searching guild members.","type":[[["Object"]]],"props":[{"name":"query","description":"Filter members whose username or nickname start with this query","type":[[["string"]]]},{"name":"limit","description":"Maximum number of members to search","optional":true,"default":1,"type":[[["number"]]]},{"name":"cache","description":"Whether or not to cache the fetched member(s)","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":192,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildListMembersOptions","description":"Options used for listing guild members.","type":[[["Object"]]],"props":[{"name":"after","description":"Limit fetching members to those with an id greater than the supplied id","optional":true,"type":[[["Snowflake"]]]},{"name":"limit","description":"Maximum number of members to list","optional":true,"default":1,"type":[[["number"]]]},{"name":"cache","description":"Whether or not to cache the fetched member(s)","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":210,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildMemberEditData","description":"The data for editing a guild member.","type":[[["Object"]]],"props":[{"name":"nick","description":"The nickname to set for the member","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"roles","description":"The roles or role ids to apply","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"mute","description":"Whether or not the member should be muted","optional":true,"type":[[["boolean"]]]},{"name":"deaf","description":"Whether or not the member should be deafened","optional":true,"type":[[["boolean"]]]},{"name":"channel","description":"Channel to move the member to\n(if they are connected to voice), or `null` if you want to disconnect them from voice","optional":true,"type":[[["GuildVoiceChannelResolvable"]],[["null"]]]},{"name":"communicationDisabledUntil","description":"The date or timestamp\nfor the member's communication to be disabled until. Provide `null` to enable communication again.","optional":true,"type":[[["DateResolvable"]],[["null"]]]}],"meta":{"line":228,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildPruneMembersOptions","description":"Options used for pruning guild members.\nIt's recommended to set {@link GuildPruneMembersOptions#count options.count}\nto `false` for large guilds.","type":[[["Object"]]],"props":[{"name":"days","description":"Number of days of inactivity required to kick","optional":true,"default":7,"type":[[["number"]]]},{"name":"dry","description":"Get the number of users that will be kicked, without actually kicking them","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"count","description":"Whether or not to return the number of users that have been kicked.","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"roles","description":"Array of roles to bypass the \"...and no roles\" constraint when pruning","optional":true,"type":[[["Array","<"],["RoleResolvable",">"]]]},{"name":"reason","description":"Reason for this prune","optional":true,"type":[[["string"]]]}],"meta":{"line":286,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildScheduledEventResolvable","description":"Data that resolves to give a GuildScheduledEvent object. This can be:\n* A Snowflake\n* A GuildScheduledEvent object","type":[[["Snowflake"]],[["GuildScheduledEvent"]]],"meta":{"line":30,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventCreateOptions","description":"Options used to create a guild scheduled event.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the guild scheduled event","type":[[["string"]]]},{"name":"scheduledStartTime","description":"The time to schedule the event at","type":[[["DateResolvable"]]]},{"name":"scheduledEndTime","description":"The time to end the event at\nThis is required if `entityType` is 'EXTERNAL'","optional":true,"type":[[["DateResolvable"]]]},{"name":"privacyLevel","description":"The privacy level of the guild scheduled event","type":[[["PrivacyLevel"]],[["number"]]]},{"name":"entityType","description":"The scheduled entity type of the event","type":[[["GuildScheduledEventEntityType"]],[["number"]]]},{"name":"description","description":"The description of the guild scheduled event","optional":true,"type":[[["string"]]]},{"name":"channel","description":"The channel of the guild scheduled event\nThis is required if `entityType` is 'STAGE_INSTANCE' or `VOICE`","optional":true,"type":[[["GuildVoiceChannelResolvable"]]]},{"name":"entityMetadata","description":"The entity metadata of the\nguild scheduled event\nThis is required if `entityType` is 'EXTERNAL'","optional":true,"type":[[["GuildScheduledEventEntityMetadataOptions"]]]},{"name":"reason","description":"The reason for creating the guild scheduled event","optional":true,"type":[[["string"]]]}],"meta":{"line":37,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventEntityMetadataOptions","description":"Options used to set entity metadata of a guild scheduled event.","type":[[["Object"]]],"props":[{"name":"location","description":"The location of the guild scheduled event\nThis is required if `entityType` is 'EXTERNAL'","optional":true,"type":[[["string"]]]}],"meta":{"line":55,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"FetchGuildScheduledEventOptions","description":"Options used to fetch a single guild scheduled event from a guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"guildScheduledEvent","description":"The guild scheduled event to fetch","type":[[["GuildScheduledEventResolvable"]]]},{"name":"withUserCount","description":"Whether to fetch the number of users subscribed to the scheduled event","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":111,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"FetchGuildScheduledEventsOptions","description":"Options used to fetch multiple guild scheduled events from a guild.","type":[[["Object"]]],"props":[{"name":"cache","description":"Whether or not to cache the fetched guild scheduled events","optional":true,"type":[[["boolean"]]]},{"name":"withUserCount","description":"Whether to fetch the number of users subscribed to each scheduled event\nshould be returned","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":118,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventEditOptions","description":"Options used to edit a guild scheduled event.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the guild scheduled event","optional":true,"type":[[["string"]]]},{"name":"scheduledStartTime","description":"The time to schedule the event at","optional":true,"type":[[["DateResolvable"]]]},{"name":"scheduledEndTime","description":"The time to end the event at","optional":true,"type":[[["DateResolvable"]]]},{"name":"privacyLevel","description":"The privacy level of the guild scheduled event","optional":true,"type":[[["PrivacyLevel"]],[["number"]]]},{"name":"entityType","description":"The scheduled entity type of the event","optional":true,"type":[[["GuildScheduledEventEntityType"]],[["number"]]]},{"name":"description","description":"The description of the guild scheduled event","optional":true,"type":[[["string"]]]},{"name":"channel","description":"The channel of the guild scheduled event","optional":true,"nullable":true,"type":[[["GuildVoiceChannelResolvable"]]]},{"name":"status","description":"The status of the guild scheduled event","optional":true,"type":[[["GuildScheduledEventStatus"]],[["number"]]]},{"name":"entityMetadata","description":"The entity metadata of the\nguild scheduled event\nThis can be modified only if `entityType` of the `GuildScheduledEvent` to be edited is 'EXTERNAL'","optional":true,"type":[[["GuildScheduledEventEntityMetadataOptions"]]]},{"name":"reason","description":"The reason for editing the guild scheduled event","optional":true,"type":[[["string"]]]}],"meta":{"line":161,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"FetchGuildScheduledEventSubscribersOptions","description":"Options used to fetch subscribers of a guild scheduled event","type":[[["Object"]]],"props":[{"name":"limit","description":"The maximum numbers of users to fetch","optional":true,"type":[[["number"]]]},{"name":"withMember","description":"Whether to fetch guild member data of the users","optional":true,"type":[[["boolean"]]]},{"name":"before","description":"Consider only users before this user id","optional":true,"type":[[["Snowflake"]]]},{"name":"after","description":"Consider only users after this user id\nIf both `before` and `after` are provided, only `before` is respected","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":243,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventUser","description":"Represents a subscriber of a {@link GuildScheduledEvent}","type":[[["Object"]]],"props":[{"name":"guildScheduledEventId","description":"The id of the guild scheduled event which the user subscribed to","type":[[["Snowflake"]]]},{"name":"user","description":"The user that subscribed to the guild scheduled event","type":[[["User"]]]},{"name":"member","description":"The guild member associated with the user, if any","nullable":true,"type":[[["GuildMember"]]]}],"meta":{"line":253,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildStickerCreateOptions","description":"Options for creating a guild sticker.","type":[[["Object"]]],"props":[{"name":"description","description":"The description for the sticker","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for creating the sticker","optional":true,"type":[[["string"]]]}],"meta":{"line":34,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"StickerResolvable","description":"Data that resolves to give a Sticker object. This can be:\n* A Sticker object\n* A Snowflake","type":[[["Sticker"]],[["Snowflake"]]],"meta":{"line":72,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"ChannelLogsQueryOptions","description":"The parameters to pass in when requesting previous messages from a channel. `around`, `before` and\n`after` are mutually exclusive. All the parameters are optional.","type":[[["Object"]]],"props":[{"name":"limit","description":"Number of messages to acquire","optional":true,"default":50,"type":[[["number"]]]},{"name":"before","description":"The message's id to get the messages that were posted before it","optional":true,"type":[[["Snowflake"]]]},{"name":"after","description":"The message's id to get the messages that were posted after it","optional":true,"type":[[["Snowflake"]]]},{"name":"around","description":"The message's id to get the messages that were posted around it","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":36,"file":"MessageManager.js","path":"src/managers"}},{"name":"MessageResolvable","description":"Data that can be resolved to a Message object. This can be:\n* A Message\n* A Snowflake","type":[[["Message"]],[["Snowflake"]]],"meta":{"line":92,"file":"MessageManager.js","path":"src/managers"}},{"name":"GuildChannelOverwriteOptions","description":"Extra information about the overwrite","type":[[["Object"]]],"props":[{"name":"reason","description":"Reason for creating/editing this overwrite","optional":true,"type":[[["string"]]]},{"name":"type","description":"The type of overwrite, either `0` for a role or `1` for a member. Use this to bypass\nautomatic resolution of type that results in an error for uncached structure","optional":true,"type":[[["number"]]]}],"meta":{"line":74,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"PresenceResolvable","description":"Data that can be resolved to a Presence object. This can be:\n* A Presence\n* A UserResolvable\n* A Snowflake","type":[[["Presence"]],[["UserResolvable"]],[["Snowflake"]]],"meta":{"line":25,"file":"PresenceManager.js","path":"src/managers"}},{"name":"MessageReactionResolvable","description":"Data that can be resolved to a MessageReaction object. This can be:\n* A MessageReaction\n* A Snowflake","type":[[["MessageReaction"]],[["Snowflake"]]],"meta":{"line":31,"file":"ReactionManager.js","path":"src/managers"}},{"name":"FetchReactionUsersOptions","description":"Options used to fetch users who gave a reaction.","type":[[["Object"]]],"props":[{"name":"limit","description":"The maximum amount of users to fetch, defaults to `100`","optional":true,"default":100,"type":[[["number"]]]},{"name":"after","description":"Limit fetching users to those with an id greater than the supplied id","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":28,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"RoleResolvable","description":"Data that can be resolved to a Role object. This can be:\n* A Role\n* A Snowflake","type":[[["Role"]],[["Snowflake"]]],"meta":{"line":75,"file":"RoleManager.js","path":"src/managers"}},{"name":"CreateRoleOptions","description":"Options used to create a new role.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the new role","optional":true,"type":[[["string"]]]},{"name":"color","description":"The data to create the role with","optional":true,"type":[[["ColorResolvable"]]]},{"name":"hoist","description":"Whether or not the new role should be hoisted","optional":true,"type":[[["boolean"]]]},{"name":"permissions","description":"The permissions for the new role","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"position","description":"The position of the new role","optional":true,"type":[[["number"]]]},{"name":"mentionable","description":"Whether or not the new role should be mentionable","optional":true,"type":[[["boolean"]]]},{"name":"icon","description":"The icon for the role\nThe `EmojiResolvable` should belong to the same guild as the role.\nIf not, pass the emoji's URL directly","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]],[["EmojiResolvable"]]]},{"name":"unicodeEmoji","description":"The unicode emoji for the role","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"reason","description":"The reason for creating this role","optional":true,"type":[[["string"]]]}],"meta":{"line":100,"file":"RoleManager.js","path":"src/managers"}},{"name":"StageInstanceCreateOptions","description":"Options used to create a stage instance.","type":[[["Object"]]],"props":[{"name":"topic","description":"The topic of the stage instance","type":[[["string"]]]},{"name":"privacyLevel","description":"The privacy level of the stage instance","optional":true,"type":[[["PrivacyLevel"]],[["number"]]]}],"meta":{"line":29,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"StageChannelResolvable","description":"Data that can be resolved to a Stage Channel object. This can be:\n* A StageChannel\n* A Snowflake","type":[[["StageChannel"]],[["Snowflake"]]],"meta":{"line":36,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"StageInstanceEditOptions","description":"Options used to edit an existing stage instance.","type":[[["Object"]]],"props":[{"name":"topic","description":"The new topic of the stage instance","optional":true,"type":[[["string"]]]},{"name":"privacyLevel","description":"The new privacy level of the stage instance","optional":true,"type":[[["PrivacyLevel"]],[["number"]]]}],"meta":{"line":100,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"ThreadChannelResolvable","description":"Data that can be resolved to a Thread Channel object. This can be:\n* A ThreadChannel object\n* A Snowflake","type":[[["ThreadChannel"]],[["Snowflake"]]],"meta":{"line":37,"file":"ThreadManager.js","path":"src/managers"}},{"name":"ThreadCreateOptions","description":"Options for creating a thread. Only one of `startMessage` or `type` can be defined.","type":[[["StartThreadOptions"]]],"props":[{"name":"startMessage","description":"The message to start a thread from. If this is defined then type\nof thread gets automatically defined and cannot be changed. The provided `type` field will be ignored","optional":true,"type":[[["MessageResolvable"]]]},{"name":"type","description":"The type of thread to create. Defaults to `GUILD_PUBLIC_THREAD` if\ncreated in a {@link TextChannel} When creating threads in a {@link NewsChannel} this is ignored and is always\n`GUILD_NEWS_THREAD`","optional":true,"type":[[["ThreadChannelTypes"]],[["number"]]]},{"name":"invitable","description":"Whether non-moderators can add other non-moderators to the thread\nCan only be set when type will be `GUILD_PRIVATE_THREAD`","optional":true,"type":[[["boolean"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the new channel in seconds","optional":true,"type":[[["number"]]]}],"meta":{"line":62,"file":"ThreadManager.js","path":"src/managers"}},{"name":"FetchThreadsOptions","description":"The options for fetching multiple threads, the properties are mutually exclusive","type":[[["Object"]]],"props":[{"name":"archived","description":"The options used to fetch archived threads","optional":true,"type":[[["FetchArchivedThreadOptions"]]]},{"name":"active","description":"When true, fetches active threads. If `archived` is set, this is ignored!","optional":true,"type":[[["boolean"]]]}],"meta":{"line":146,"file":"ThreadManager.js","path":"src/managers"}},{"name":"DateResolvable","description":"Data that can be resolved to a Date object. This can be:\n* A Date object\n* A number representing a timestamp\n* An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string","type":[[["Date"]],[["number"]],[["string"]]],"meta":{"line":176,"file":"ThreadManager.js","path":"src/managers"}},{"name":"FetchArchivedThreadOptions","description":"The options used to fetch archived threads.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of threads to fetch, either `public` or `private`","optional":true,"default":"'public'","type":[[["string"]]]},{"name":"fetchAll","description":"Whether to fetch **all** archived threads when type is `private`.\nRequires `MANAGE_THREADS` if true","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"before","description":"Only return threads that were created before this Date\nor Snowflake. Must be a {@link ThreadChannelResolvable} when type is `private` and fetchAll is `false`","optional":true,"type":[[["DateResolvable"]],[["ThreadChannelResolvable"]]]},{"name":"limit","description":"Maximum number of threads to return","optional":true,"type":[[["number"]]]}],"meta":{"line":184,"file":"ThreadManager.js","path":"src/managers"}},{"name":"FetchedThreads","description":"The data returned from a thread fetch that returns multiple threads.","type":[[["Object"]]],"props":[{"name":"threads","description":"The threads that were fetched, with any members returned","type":[[["Collection","<"],["Snowflake",", "],["ThreadChannel",">"]]]},{"name":"hasMore","description":"Whether there are potentially additional threads that require a subsequent call","nullable":true,"type":[[["boolean"]]]}],"meta":{"line":195,"file":"ThreadManager.js","path":"src/managers"}},{"name":"ThreadMemberResolvable","description":"Data that resolves to give a ThreadMember object. This can be:\n* A ThreadMember object\n* A User resolvable","type":[[["ThreadMember"]],[["UserResolvable"]]],"meta":{"line":39,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"HTTPErrorData","description":"The HTTP data that was sent to Discord","type":[[["Object"]]],"props":[{"name":"json","description":"The JSON data that was sent","type":[["*"]]},{"name":"files","description":"The files that were sent with this request, if any","type":[[["Array","<"],["HTTPAttachmentData",">"]]]}],"meta":{"line":35,"file":"HTTPError.js","path":"src/rest"}},{"name":"HTTPAttachmentData","description":"The attachment data that is sent to Discord","type":[[["Object"]]],"props":[{"name":"attachment","description":"The source of this attachment data","type":[[["string"]],[["Buffer"]],[["Stream"]]]},{"name":"name","description":"The file name","type":[[["string"]]]},{"name":"file","description":"The file buffer","type":[[["Buffer"]],[["Stream"]]]}],"meta":{"line":42,"file":"HTTPError.js","path":"src/rest"}},{"name":"APIRequest","description":"Represents a request that will or has been made to the Discord API","type":[[["Object"]]],"props":[{"name":"method","description":"The HTTP method used in this request","type":[[["HTTPMethod"]]]},{"name":"path","description":"The full path used to make the request","type":[[["string"]]]},{"name":"route","description":"The API route identifying the rate limit for this request","type":[[["string"]]]},{"name":"options","description":"Additional options for this request","type":[[["Object"]]]},{"name":"retries","description":"The number of times this request has been attempted","type":[[["number"]]]}],"meta":{"line":166,"file":"RequestHandler.js","path":"src/rest"}},{"name":"InvalidRequestWarningData","type":[[["Object"]]],"props":[{"name":"count","description":"Number of invalid requests that have been made in the window","type":[[["number"]]]},{"name":"remainingTime","description":"Time in ms remaining before the count resets","type":[[["number"]]]}],"meta":{"line":280,"file":"RequestHandler.js","path":"src/rest"}},{"name":"ShardRespawnOptions","description":"Options used to respawn a shard.","type":[[["Object"]]],"props":[{"name":"delay","description":"How long to wait between killing the process/worker and\nrestarting it (in milliseconds)","optional":true,"default":500,"type":[[["number"]]]},{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client}\nhas become ready before resolving (`-1` or `Infinity` for no wait)","optional":true,"default":30000,"type":[[["number"]]]}],"meta":{"line":191,"file":"Shard.js","path":"src/sharding"}},{"name":"ShardingManagerMode","description":"The mode to spawn shards with for a {@link ShardingManager}. Can be either one of:\n* 'process' to use child processes\n* 'worker' to use [Worker threads](https://nodejs.org/api/worker_threads.html)","type":[[["string"]]],"meta":{"line":23,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"ShardingManagerOptions","description":"The options to spawn shards with for a {@link ShardingManager}.","type":[[["Object"]]],"props":[{"name":"totalShards","description":"Number of total shards of all shard managers or \"auto\"","optional":true,"default":"'auto'","type":[[["string"]],[["number"]]]},{"name":"shardList","description":"List of shards to spawn or \"auto\"","optional":true,"default":"'auto'","type":[[["string"]],[["Array","<"],["number",">"]]]},{"name":"mode","description":"Which mode to use for shards","optional":true,"default":"'process'","type":[[["ShardingManagerMode"]]]},{"name":"respawn","description":"Whether shards should automatically respawn upon exiting","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"shardArgs","description":"Arguments to pass to the shard script when spawning\n(only available when mode is set to 'process')","optional":true,"default":"[]","type":[[["Array","<"],["string",">"]]]},{"name":"execArgv","description":"Arguments to pass to the shard script executable when spawning\n(only available when mode is set to 'process')","optional":true,"default":"[]","type":[[["string"]]]},{"name":"token","description":"Token to use for automatic shard count and passing to shards","optional":true,"type":[[["string"]]]}],"meta":{"line":30,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"MultipleShardSpawnOptions","description":"Options used to spawn multiple shards.","type":[[["Object"]]],"props":[{"name":"amount","description":"Number of shards to spawn","optional":true,"default":"this.totalShards","type":[[["number"]],[["string"]]]},{"name":"delay","description":"How long to wait in between spawning each shard (in milliseconds)","optional":true,"default":5500,"type":[[["number"]]]},{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client} has become ready","optional":true,"default":30000,"type":[[["number"]]]}],"meta":{"line":170,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"BroadcastEvalOptions","description":"Options for {@link ShardingManager#broadcastEval} and {@link ShardClientUtil#broadcastEval}.","type":[[["Object"]]],"props":[{"name":"shard","description":"Shard to run script on, all if undefined","optional":true,"type":[[["number"]]]},{"name":"context","description":"The JSON-serializable values to call the script with","optional":true,"type":[["*"]]}],"meta":{"line":237,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"MultipleShardRespawnOptions","description":"Options used to respawn all shards.","type":[[["Object"]]],"props":[{"name":"shardDelay","description":"How long to wait between shards (in milliseconds)","optional":true,"default":5000,"type":[[["number"]]]},{"name":"respawnDelay","description":"How long to wait between killing a shard's process and restarting it\n(in milliseconds)","optional":true,"default":500,"type":[[["number"]]]},{"name":"timeout","description":"The amount in milliseconds to wait for a shard to become ready before\ncontinuing to another (`-1` or `Infinity` for no wait)","optional":true,"default":30000,"type":[[["number"]]]}],"meta":{"line":292,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"ApplicationCommandData","description":"Data for creating or editing an application command.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the command","type":[[["string"]]]},{"name":"description","description":"The description of the command","type":[[["string"]]]},{"name":"type","description":"The type of the command","optional":true,"type":[[["ApplicationCommandType"]]]},{"name":"options","description":"Options for the command","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]},{"name":"defaultPermission","description":"Whether the command is enabled by default when the app is added to a guild","optional":true,"type":[[["boolean"]]]}],"meta":{"line":130,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"ApplicationCommandOptionData","description":"An option for an application command or subcommand.\nIn addition to the listed properties, when used as a parameter,\nAPI style `snake_case` properties can be used for compatibility with generators like `@discordjs/builders`.\nNote that providing a value for the `camelCase` counterpart for any `snake_case` property\nwill discard the provided `snake_case` property.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of the option","type":[[["ApplicationCommandOptionType"]],[["number"]]]},{"name":"name","description":"The name of the option","type":[[["string"]]]},{"name":"description","description":"The description of the option","type":[[["string"]]]},{"name":"autocomplete","description":"Whether the option is an autocomplete option","optional":true,"type":[[["boolean"]]]},{"name":"required","description":"Whether the option is required","optional":true,"type":[[["boolean"]]]},{"name":"choices","description":"The choices of the option for the user to pick from","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionChoice",">"]]]},{"name":"options","description":"Additional options if this option is a subcommand (group)","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]},{"name":"channelTypes","description":"When the option type is channel,\nthe allowed types of channels that can be selected","optional":true,"type":[[["Array","<"],["ChannelType",">"]],[["Array","<"],["number",">"]]]},{"name":"minValue","description":"The minimum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]},{"name":"maxValue","description":"The maximum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]}],"meta":{"line":140,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"ApplicationCommandOption","description":"An option for an application command or subcommand.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of the option","type":[[["ApplicationCommandOptionType"]]]},{"name":"name","description":"The name of the option","type":[[["string"]]]},{"name":"description","description":"The description of the option","type":[[["string"]]]},{"name":"required","description":"Whether the option is required","optional":true,"type":[[["boolean"]]]},{"name":"autocomplete","description":"Whether the option is an autocomplete option","optional":true,"type":[[["boolean"]]]},{"name":"choices","description":"The choices of the option for the user to pick from","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionChoice",">"]]]},{"name":"options","description":"Additional options if this option is a subcommand (group)","optional":true,"type":[[["Array","<"],["ApplicationCommandOption",">"]]]},{"name":"channelTypes","description":"When the option type is channel,\nthe allowed types of channels that can be selected","optional":true,"type":[[["Array","<"],["ChannelType",">"]]]},{"name":"minValue","description":"The minimum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]},{"name":"maxValue","description":"The maximum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]}],"meta":{"line":347,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"ApplicationCommandOptionChoice","description":"A choice for an application command option.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the choice","type":[[["string"]]]},{"name":"value","description":"The value of the choice","type":[[["string"]],[["number"]]]}],"meta":{"line":363,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"CommandInteractionResolvedData","description":"Represents the resolved data of a received command interaction.","type":[[["Object"]]],"props":[{"name":"users","description":"The resolved users","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["User",">"]]]},{"name":"members","description":"The resolved guild members","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["GuildMember","|"],["APIGuildMember",")>"]]]},{"name":"roles","description":"The resolved roles","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["Role","|"],["APIRole",")>"]]]},{"name":"channels","description":"The resolved channels","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["Channel","|"],["APIChannel",")>"]]]},{"name":"messages","description":"The resolved messages","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["Message","|"],["APIMessage",")>"]]]}],"meta":{"line":71,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"CommandInteractionOption","description":"Represents an option of a received command interaction.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the option","type":[[["string"]]]},{"name":"type","description":"The type of the option","type":[[["ApplicationCommandOptionType"]]]},{"name":"autocomplete","description":"Whether the option is an autocomplete option","optional":true,"type":[[["boolean"]]]},{"name":"value","description":"The value of the option","optional":true,"type":[[["string"]],[["number"]],[["boolean"]]]},{"name":"options","description":"Additional options if this option is a\nsubcommand (group)","optional":true,"type":[[["Array","<"],["CommandInteractionOption",">"]]]},{"name":"user","description":"The resolved user","optional":true,"type":[[["User"]]]},{"name":"member","description":"The resolved member","optional":true,"type":[[["GuildMember"]],[["APIGuildMember"]]]},{"name":"channel","description":"The resolved channel","optional":true,"type":[[["GuildChannel"]],[["ThreadChannel"]],[["APIChannel"]]]},{"name":"role","description":"The resolved role","optional":true,"type":[[["Role"]],[["APIRole"]]]}],"meta":{"line":129,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ChannelWebhookCreateOptions","description":"Options used to create a {@link Webhook} in a {@link TextChannel} or a {@link NewsChannel}.","type":[[["Object"]]],"props":[{"name":"avatar","description":"Avatar for the webhook","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"reason","description":"Reason for creating the webhook","optional":true,"type":[[["string"]]]}],"meta":{"line":131,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"CreateInviteOptions","description":"Options used to create an invite to a guild channel.","type":[[["Object"]]],"props":[{"name":"temporary","description":"Whether members that joined via the invite should be automatically\nkicked after 24 hours if they have not yet received a role","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"maxAge","description":"How long the invite should last (in seconds, 0 for forever)","optional":true,"default":86400,"type":[[["number"]]]},{"name":"maxUses","description":"Maximum number of uses","optional":true,"default":0,"type":[[["number"]]]},{"name":"unique","description":"Create a unique invite, or use an existing one with similar settings","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"targetUser","description":"The user whose stream to display for this invite,\nrequired if `targetType` is 1, the user must be streaming in the channel","optional":true,"type":[[["UserResolvable"]]]},{"name":"targetApplication","description":"The embedded application to open for this invite,\nrequired if `targetType` is 2, the application must have the `EMBEDDED` flag","optional":true,"type":[[["ApplicationResolvable"]]]},{"name":"targetType","description":"The type of the target for this voice channel invite","optional":true,"type":[[["TargetType"]]]},{"name":"reason","description":"The reason for creating the invite","optional":true,"type":[[["string"]]]}],"meta":{"line":181,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"BaseMessageComponentOptions","description":"Options for a BaseMessageComponent","type":[[["Object"]]],"props":[{"name":"type","description":"The type of this component","type":[[["MessageComponentTypeResolvable"]]]}],"meta":{"line":11,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"MessageComponentOptions","description":"Data that can be resolved into options for a MessageComponent. This can be:\n* MessageActionRowOptions\n* MessageButtonOptions\n* MessageSelectMenuOptions","type":[[["MessageActionRowOptions"]],[["MessageButtonOptions"]],[["MessageSelectMenuOptions"]]],"meta":{"line":17,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"MessageComponent","description":"Components that can be sent in a message. These can be:\n* MessageActionRow\n* MessageButton\n* MessageSelectMenu","see":["{@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}"],"type":[[["MessageActionRow"]],[["MessageButton"]],[["MessageSelectMenu"]]],"meta":{"line":25,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"MessageComponentTypeResolvable","description":"Data that can be resolved to a MessageComponentType. This can be:\n* MessageComponentType\n* string\n* number","type":[[["string"]],[["number"]],[["MessageComponentType"]]],"meta":{"line":34,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"CategoryCreateChannelOptions","description":"Options for creating a channel using {@link CategoryChannel#createChannel}.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of the new channel.","optional":true,"default":"'GUILD_TEXT'","type":[[["ChannelType"]],[["number"]]]},{"name":"topic","description":"The topic for the new channel","optional":true,"type":[[["string"]]]},{"name":"nsfw","description":"Whether the new channel is NSFW","optional":true,"type":[[["boolean"]]]},{"name":"bitrate","description":"Bitrate of the new channel in bits (only voice)","optional":true,"type":[[["number"]]]},{"name":"userLimit","description":"Maximum amount of users allowed in the new channel (only voice)","optional":true,"type":[[["number"]]]},{"name":"permissionOverwrites","description":"Permission overwrites of the new channel","optional":true,"type":[[["Array","<"],["OverwriteResolvable",">"]],[["Collection","<"],["Snowflake",", "],["OverwriteResolvable",">"]]]},{"name":"position","description":"Position of the new channel","optional":true,"type":[[["number"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the new channel in seconds","optional":true,"type":[[["number"]]]},{"name":"rtcRegion","description":"The specific region of the new channel.","optional":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for creating the new channel","optional":true,"type":[[["string"]]]}],"meta":{"line":30,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"ClientUserEditData","description":"Data used to edit the logged in client","type":[[["Object"]]],"props":[{"name":"username","description":"The new username","optional":true,"type":[[["string"]]]},{"name":"avatar","description":"The new avatar","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"meta":{"line":84,"file":"ClientUser.js","path":"src/structures"}},{"name":"ActivitiesOptions","description":"Options for setting activities","type":[[["Object"]]],"props":[{"name":"name","description":"Name of the activity","optional":true,"type":[[["string"]]]},{"name":"type","description":"Type of the activity","optional":true,"type":[[["ActivityType"]],[["number"]]]},{"name":"url","description":"Twitch / YouTube stream URL","optional":true,"type":[[["string"]]]}],"meta":{"line":323,"file":"ClientUser.js","path":"src/structures"}},{"name":"PresenceData","description":"Data resembling a raw Discord presence.","type":[[["Object"]]],"props":[{"name":"status","description":"Status of the user","optional":true,"type":[[["PresenceStatusData"]]]},{"name":"afk","description":"Whether the user is AFK","optional":true,"type":[[["boolean"]]]},{"name":"activities","description":"Activity the user is playing","optional":true,"type":[[["Array","<"],["ActivitiesOptions",">"]]]},{"name":"shardId","description":"Shard id(s) to have the activity set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"meta":{"line":331,"file":"ClientUser.js","path":"src/structures"}},{"name":"PresenceStatusData","description":"A user's status. Must be one of:\n* `online`\n* `idle`\n* `invisible`\n* `dnd` (do not disturb)","type":[[["string"]]],"meta":{"line":352,"file":"ClientUser.js","path":"src/structures"}},{"name":"ActivityOptions","description":"Options for setting an activity.","type":[[["Object"]]],"props":[{"name":"name","description":"Name of the activity","optional":true,"type":[[["string"]]]},{"name":"url","description":"Twitch / YouTube stream URL","optional":true,"type":[[["string"]]]},{"name":"type","description":"Type of the activity","optional":true,"type":[[["ActivityType"]],[["number"]]]},{"name":"shardId","description":"Shard Id(s) to have the activity set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"meta":{"line":374,"file":"ClientUser.js","path":"src/structures"}},{"name":"RawEmoji","description":"Represents raw emoji data from the API","type":[[["APIEmoji"]]],"props":[{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]]},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]]},{"name":"animated","description":"Whether the emoji is animated","nullable":true,"type":[[["boolean"]]]}],"meta":{"line":15,"file":"Emoji.js","path":"src/structures"}},{"name":"Features","description":"An array of enabled guild features, here are the possible values:\n* ANIMATED_ICON\n* BANNER\n* COMMERCE\n* COMMUNITY\n* DISCOVERABLE\n* FEATURABLE\n* INVITE_SPLASH\n* MEMBER_VERIFICATION_GATE_ENABLED\n* NEWS\n* PARTNERED\n* PREVIEW_ENABLED\n* VANITY_URL\n* VERIFIED\n* VIP_REGIONS\n* WELCOME_SCREEN_ENABLED\n* TICKETED_EVENTS_ENABLED\n* MONETIZATION_ENABLED\n* MORE_STICKERS\n* THREE_DAY_THREAD_ARCHIVE\n* SEVEN_DAY_THREAD_ARCHIVE\n* PRIVATE_THREADS\n* ROLE_ICONS","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}"],"type":[[["string"]]],"meta":{"line":218,"file":"Guild.js","path":"src/structures"}},{"name":"GuildSearchInteractionOptions","description":"Options for guildSearchInteraction","type":[[["Object"]]],"props":[{"name":"type","description":"{@link ApplicationCommandTypes}","optional":true,"default":1,"type":[[["number"]],[["string"]]]},{"name":"query","description":"Command name","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"limit","description":"Maximum number of results","optional":true,"default":1,"nullable":true,"type":[[["number"]]]},{"name":"offset","description":"Only return entries for actions made by this user","optional":true,"default":0,"nullable":true,"type":[[["number"]]]},{"name":"botId","description":"Array of bot IDs to filter by","type":[[["Array","<"],["Snowflake",">"]]]}],"meta":{"line":623,"file":"Guild.js","path":"src/structures"}},{"name":"Vanity","description":"An object containing information about a guild's vanity invite.","type":[[["Object"]]],"props":[{"name":"code","description":"Vanity invite code","nullable":true,"type":[[["string"]]]},{"name":"uses","description":"How many times this invite has been used","type":[[["number"]]]}],"meta":{"line":741,"file":"Guild.js","path":"src/structures"}},{"name":"GuildWidgetSettings","description":"Data for the Guild Widget Settings object","type":[[["Object"]]],"props":[{"name":"enabled","description":"Whether the widget is enabled","type":[[["boolean"]]]},{"name":"channel","description":"The widget invite channel","nullable":true,"type":[[["GuildChannel"]]]}],"meta":{"line":802,"file":"Guild.js","path":"src/structures"}},{"name":"GuildWidgetSettingsData","description":"The Guild Widget Settings object","type":[[["Object"]]],"props":[{"name":"enabled","description":"Whether the widget is enabled","type":[[["boolean"]]]},{"name":"channel","description":"The widget invite channel","nullable":true,"type":[[["GuildChannelResolvable"]]]}],"meta":{"line":809,"file":"Guild.js","path":"src/structures"}},{"name":"GuildAuditLogsFetchOptions","description":"Options used to fetch audit logs.","type":[[["Object"]]],"props":[{"name":"before","description":"Only return entries before this entry","optional":true,"type":[[["Snowflake"]],[["GuildAuditLogsEntry"]]]},{"name":"limit","description":"The number of entries to return","optional":true,"type":[[["number"]]]},{"name":"user","description":"Only return entries for actions made by this user","optional":true,"type":[[["UserResolvable"]]]},{"name":"type","description":"Only return entries for this action type","optional":true,"type":[[["AuditLogAction"]],[["number"]]]}],"meta":{"line":835,"file":"Guild.js","path":"src/structures"}},{"name":"GuildEditData","description":"The data for editing a guild.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the guild","optional":true,"type":[[["string"]]]},{"name":"verificationLevel","description":"The verification level of the guild","optional":true,"type":[[["VerificationLevel"]],[["number"]]]},{"name":"explicitContentFilter","description":"The level of the explicit content filter","optional":true,"type":[[["ExplicitContentFilterLevel"]],[["number"]]]},{"name":"afkChannel","description":"The AFK channel of the guild","optional":true,"type":[[["VoiceChannelResolvable"]]]},{"name":"systemChannel","description":"The system channel of the guild","optional":true,"type":[[["TextChannelResolvable"]]]},{"name":"afkTimeout","description":"The AFK timeout of the guild","optional":true,"type":[[["number"]]]},{"name":"icon","description":"The icon of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"owner","description":"The owner of the guild","optional":true,"type":[[["GuildMemberResolvable"]]]},{"name":"splash","description":"The invite splash image of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"discoverySplash","description":"The discovery splash image of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"banner","description":"The banner of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"defaultMessageNotifications","description":"The default message notification\nlevel of the guild","optional":true,"type":[[["DefaultMessageNotificationLevel"]],[["number"]]]},{"name":"systemChannelFlags","description":"The system channel flags of the guild","optional":true,"type":[[["SystemChannelFlagsResolvable"]]]},{"name":"rulesChannel","description":"The rules channel of the guild","optional":true,"type":[[["TextChannelResolvable"]]]},{"name":"publicUpdatesChannel","description":"The community updates channel of the guild","optional":true,"type":[[["TextChannelResolvable"]]]},{"name":"preferredLocale","description":"The preferred locale of the guild","optional":true,"type":[[["string"]]]},{"name":"premiumProgressBarEnabled","description":"Whether the guild's premium progress bar is enabled","optional":true,"type":[[["boolean"]]]},{"name":"description","description":"The discovery description of the guild","optional":true,"type":[[["string"]]]},{"name":"features","description":"The features of the guild","optional":true,"type":[[["Array","<"],["Features",">"]]]}],"meta":{"line":873,"file":"Guild.js","path":"src/structures"}},{"name":"TextChannelResolvable","description":"Data that can be resolved to a Text Channel object. This can be:\n* A TextChannel\n* A Snowflake","type":[[["TextChannel"]],[["Snowflake"]]],"meta":{"line":898,"file":"Guild.js","path":"src/structures"}},{"name":"VoiceChannelResolvable","description":"Data that can be resolved to a Voice Channel object. This can be:\n* A VoiceChannel\n* A Snowflake","type":[[["VoiceChannel"]],[["Snowflake"]]],"meta":{"line":905,"file":"Guild.js","path":"src/structures"}},{"name":"WelcomeChannelData","description":"Welcome channel data","type":[[["Object"]]],"props":[{"name":"description","description":"The description to show for this welcome channel","type":[[["string"]]]},{"name":"channel","description":"The channel to link for this welcome channel","type":[[["TextChannel"]],[["NewsChannel"]],[["StoreChannel"]],[["Snowflake"]]]},{"name":"emoji","description":"The emoji to display for this welcome channel","optional":true,"type":[[["EmojiIdentifierResolvable"]]]}],"meta":{"line":989,"file":"Guild.js","path":"src/structures"}},{"name":"WelcomeScreenEditData","description":"Welcome screen edit data","type":[[["Object"]]],"props":[{"name":"enabled","description":"Whether the welcome screen is enabled","optional":true,"type":[[["boolean"]]]},{"name":"description","description":"The description for the welcome screen","optional":true,"type":[[["string"]]]},{"name":"welcomeChannels","description":"The welcome channel data for the welcome screen","optional":true,"type":[[["Array","<"],["WelcomeChannelData",">"]]]}],"meta":{"line":997,"file":"Guild.js","path":"src/structures"}},{"name":"GuildTextChannelResolvable","description":"Data that can be resolved to a GuildTextChannel object. This can be:\n* A TextChannel\n* A NewsChannel\n* A Snowflake","type":[[["TextChannel"]],[["NewsChannel"]],[["Snowflake"]]],"meta":{"line":1005,"file":"Guild.js","path":"src/structures"}},{"name":"GuildVoiceChannelResolvable","description":"Data that can be resolved to a GuildVoiceChannel object. This can be:\n* A VoiceChannel\n* A StageChannel\n* A Snowflake","type":[[["VoiceChannel"]],[["StageChannel"]],[["Snowflake"]]],"meta":{"line":1013,"file":"Guild.js","path":"src/structures"}},{"name":"CategoryChannelResolvable","description":"Data that can be resolved to give a Category Channel object. This can be:\n* A CategoryChannel object\n* A Snowflake","type":[[["CategoryChannel"]],[["Snowflake"]]],"meta":{"line":1337,"file":"Guild.js","path":"src/structures"}},{"name":"ChannelPosition","description":"The data needed for updating a channel's position.","type":[[["Object"]]],"props":[{"name":"channel","description":"Channel to update","type":[[["GuildChannel"]],[["Snowflake"]]]},{"name":"position","description":"New position for the channel","optional":true,"type":[[["number"]]]},{"name":"parent","description":"Parent channel for this channel","optional":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"lockPermissions","description":"If the overwrites should be locked to the parents overwrites","optional":true,"type":[[["boolean"]]]}],"meta":{"line":1344,"file":"Guild.js","path":"src/structures"}},{"name":"GuildRolePosition","description":"The data needed for updating a guild role's position","type":[[["Object"]]],"props":[{"name":"role","description":"The role's id","type":[[["RoleResolvable"]]]},{"name":"position","description":"The position to update","type":[[["number"]]]}],"meta":{"line":1377,"file":"Guild.js","path":"src/structures"}},{"name":"AuditLogTargetType","description":"The target type of an entry. Here are the available types:\n* GUILD\n* CHANNEL\n* USER\n* ROLE\n* INVITE\n* WEBHOOK\n* EMOJI\n* MESSAGE\n* INTEGRATION\n* STAGE_INSTANCE\n* STICKER\n* THREAD\n* GUILD_SCHEDULED_EVENT","type":[[["string"]]],"meta":{"line":14,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogAction","description":"The action of an entry. Here are the available actions:\n* ALL: null\n* GUILD_UPDATE: 1\n* CHANNEL_CREATE: 10\n* CHANNEL_UPDATE: 11\n* CHANNEL_DELETE: 12\n* CHANNEL_OVERWRITE_CREATE: 13\n* CHANNEL_OVERWRITE_UPDATE: 14\n* CHANNEL_OVERWRITE_DELETE: 15\n* MEMBER_KICK: 20\n* MEMBER_PRUNE: 21\n* MEMBER_BAN_ADD: 22\n* MEMBER_BAN_REMOVE: 23\n* MEMBER_UPDATE: 24\n* MEMBER_ROLE_UPDATE: 25\n* MEMBER_MOVE: 26\n* MEMBER_DISCONNECT: 27\n* BOT_ADD: 28,\n* ROLE_CREATE: 30\n* ROLE_UPDATE: 31\n* ROLE_DELETE: 32\n* INVITE_CREATE: 40\n* INVITE_UPDATE: 41\n* INVITE_DELETE: 42\n* WEBHOOK_CREATE: 50\n* WEBHOOK_UPDATE: 51\n* WEBHOOK_DELETE: 52\n* EMOJI_CREATE: 60\n* EMOJI_UPDATE: 61\n* EMOJI_DELETE: 62\n* MESSAGE_DELETE: 72\n* MESSAGE_BULK_DELETE: 73\n* MESSAGE_PIN: 74\n* MESSAGE_UNPIN: 75\n* INTEGRATION_CREATE: 80\n* INTEGRATION_UPDATE: 81\n* INTEGRATION_DELETE: 82\n* STAGE_INSTANCE_CREATE: 83\n* STAGE_INSTANCE_UPDATE: 84\n* STAGE_INSTANCE_DELETE: 85\n* STICKER_CREATE: 90\n* STICKER_UPDATE: 91\n* STICKER_DELETE: 92\n* GUILD_SCHEDULED_EVENT_CREATE: 100\n* GUILD_SCHEDULED_EVENT_UPDATE: 101\n* GUILD_SCHEDULED_EVENT_DELETE: 102\n* THREAD_CREATE: 110\n* THREAD_UPDATE: 111\n* THREAD_DELETE: 112","see":["{@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events}"],"type":[[["number"]],[["string"]]],"meta":{"line":55,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogEntryTarget","description":"The target of an entry. It can be one of:\n* A guild\n* A channel\n* A user\n* A role\n* An invite\n* A webhook\n* An emoji\n* A message\n* An integration\n* A stage instance\n* A sticker\n* A guild scheduled event\n* A thread\n* An object with an id key if target was deleted\n* An object where the keys represent either the new value or the old value","type":[[["Object"]],[["Guild"]],[["Channel"]],[["User"]],[["Role"]],[["Invite"]],[["Webhook"]],[["GuildEmoji"]],[["Message"]],[["Integration"]],[["StageInstance"]],[["Sticker"]],[["GuildScheduledEvent"]]],"meta":{"line":217,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogActionType","description":"The action type of an entry, e.g. `CREATE`. Here are the available types:\n* CREATE\n* DELETE\n* UPDATE\n* ALL","type":[[["string"]]],"meta":{"line":260,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogChange","description":"An entry in the audit log representing a specific change.","type":[[["Object"]]],"props":[{"name":"key","description":"The property that was changed, e.g. `nick` for nickname changes","type":[[["string"]]]},{"name":"old","description":"The old value of the change, e.g. for nicknames, the old nickname","optional":true,"type":[["*"]]},{"name":"new","description":"The new value of the change, e.g. for nicknames, the new nickname","optional":true,"type":[["*"]]}],"meta":{"line":391,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"ChannelData","description":"The data for a guild channel.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the channel","optional":true,"type":[[["string"]]]},{"name":"type","description":"The type of the channel (only conversion between text and news is supported)","optional":true,"type":[[["ChannelType"]]]},{"name":"position","description":"The position of the channel","optional":true,"type":[[["number"]]]},{"name":"topic","description":"The topic of the text channel","optional":true,"type":[[["string"]]]},{"name":"nsfw","description":"Whether the channel is NSFW","optional":true,"type":[[["boolean"]]]},{"name":"bitrate","description":"The bitrate of the voice channel","optional":true,"type":[[["number"]]]},{"name":"userLimit","description":"The user limit of the voice channel","optional":true,"type":[[["number"]]]},{"name":"parent","description":"The parent of the channel","optional":true,"nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"lockPermissions","description":"Lock the permissions of the channel to what the parent's permissions are","optional":true,"type":[[["boolean"]]]},{"name":"permissionOverwrites","description":"Permission overwrites for the channel","optional":true,"type":[[["Array","<"],["OverwriteResolvable",">"]],[["Collection","<"],["Snowflake",", "],["OverwriteResolvable",">"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the channel in seconds","optional":true,"type":[[["number"]]]},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for all new threads in this channel","optional":true,"type":[[["ThreadAutoArchiveDuration"]]]},{"name":"rtcRegion","description":"The RTC region of the channel","optional":true,"nullable":true,"type":[[["string"]]]}],"meta":{"line":265,"file":"GuildChannel.js","path":"src/structures"}},{"name":"SetParentOptions","description":"Options used to set the parent of a channel.","type":[[["Object"]]],"props":[{"name":"lockPermissions","description":"Whether to lock the permissions to what the parent's permissions are","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"The reason for modifying the parent of the channel","optional":true,"type":[[["string"]]]}],"meta":{"line":372,"file":"GuildChannel.js","path":"src/structures"}},{"name":"SetChannelPositionOptions","description":"Options used to set the position of a channel.","type":[[["Object"]]],"props":[{"name":"relative","description":"Whether or not to change the position relative to its current value","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"reason","description":"The reason for changing the position","optional":true,"type":[[["string"]]]}],"meta":{"line":400,"file":"GuildChannel.js","path":"src/structures"}},{"name":"ApplicationResolvable","description":"Data that can be resolved to an Application. This can be:\n* An Application\n* An Activity with associated Application\n* A Snowflake","type":[[["Application"]],[["Snowflake"]]],"meta":{"line":434,"file":"GuildChannel.js","path":"src/structures"}},{"name":"GuildChannelCloneOptions","description":"Options used to clone a guild channel.","type":[[["GuildChannelCreateOptions"]]],"props":[{"name":"name","description":"Name of the new channel","optional":true,"default":"this.name","type":[[["string"]]]}],"meta":{"line":442,"file":"GuildChannel.js","path":"src/structures"}},{"name":"GuildEmojiEditData","description":"Data for editing an emoji.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the emoji","optional":true,"type":[[["string"]]]},{"name":"roles","description":"Roles to restrict emoji to","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]}],"meta":{"line":89,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"GuildScheduledEventEntityMetadata","description":"Represents the additional metadata for a {@link GuildScheduledEvent}","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata}"],"type":[[["Object"]]],"props":[{"name":"location","description":"The location of the guild scheduled event","nullable":true,"type":[[["string"]]]}],"meta":{"line":136,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"CreateGuildScheduledEventInviteURLOptions","description":"Options used to create an invite URL to a {@link GuildScheduledEvent}","type":[[["CreateInviteOptions"]]],"props":[{"name":"channel","description":"The channel to create the invite in.\nThis is required when the `entityType` of `GuildScheduledEvent` is `EXTERNAL`, gets ignored otherwise","optional":true,"type":[[["GuildInvitableChannelResolvable"]]]}],"meta":{"line":225,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"EditGuildTemplateOptions","description":"Options used to edit a guild template.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this template","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of this template","optional":true,"type":[[["string"]]]}],"meta":{"line":147,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"IntegrationAccount","description":"The information account for an integration","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the account","type":[[["Snowflake"]],[["string"]]]},{"name":"name","description":"The name of the account","type":[[["string"]]]}],"meta":{"line":6,"file":"Integration.js","path":"src/structures"}},{"name":"IntegrationType","description":"The type of an {@link Integration}. This can be:\n* `twitch`\n* `youtube`\n* `discord`","type":[[["string"]]],"meta":{"line":13,"file":"Integration.js","path":"src/structures"}},{"name":"InteractionCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"channel","description":"The channel to listen to interactions from","optional":true,"type":[[["TextBasedChannels"]]]},{"name":"componentType","description":"The type of component to listen for","optional":true,"type":[[["MessageComponentType"]]]},{"name":"guild","description":"The guild to listen to interactions from","optional":true,"type":[[["Guild"]]]},{"name":"interactionType","description":"The type of interaction to listen for","optional":true,"type":[[["InteractionType"]]]},{"name":"max","description":"The maximum total amount of interactions to collect","optional":true,"type":[[["number"]]]},{"name":"maxComponents","description":"The maximum number of components to collect","optional":true,"type":[[["number"]]]},{"name":"maxUsers","description":"The maximum number of users to interact","optional":true,"type":[[["number"]]]},{"name":"message","description":"The message to listen to interactions from","optional":true,"type":[[["Message"]],[["APIMessage"]]]}],"meta":{"line":8,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"ApplicationAsset","description":"Asset data.","type":[[["Object"]]],"props":[{"name":"id","description":"The asset's id","type":[[["Snowflake"]]]},{"name":"name","description":"The asset's name","type":[[["string"]]]},{"name":"type","description":"The asset's type","type":[[["string"]]]}],"meta":{"line":98,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"CollectorFilter","description":"Filter to be applied to the collector.","type":[[["function"]]],"params":[{"name":"args","description":"Any arguments received by the listener","variable":true,"type":[["*"]]},{"name":"collection","description":"The items collected by this collector","type":[[["Collection"]]]}],"returns":[[["boolean"]],[["Promise","<"],["boolean",">"]]],"meta":{"line":9,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"CollectorOptions","description":"Options to be applied to the collector.","type":[[["Object"]]],"props":[{"name":"filter","description":"The filter applied to this collector","optional":true,"type":[[["CollectorFilter"]]]},{"name":"time","description":"How long to run the collector for in milliseconds","optional":true,"type":[[["number"]]]},{"name":"idle","description":"How long to stop the collector after inactivity in milliseconds","optional":true,"type":[[["number"]]]},{"name":"dispose","description":"Whether to dispose data when it's deleted","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":17,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"CollectorResetTimerOptions","description":"Options used to reset the timeout and idle timer of a {@link Collector}.","type":[[["Object"]]],"props":[{"name":"time","description":"How long to run the collector for (in milliseconds)","optional":true,"type":[[["number"]]]},{"name":"idle","description":"How long to wait to stop the collector after inactivity (in milliseconds)","optional":true,"type":[[["number"]]]}],"meta":{"line":201,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"InteractionDeferReplyOptions","description":"Options for deferring the reply to an {@link Interaction}.","type":[[["Object"]]],"props":[{"name":"ephemeral","description":"Whether the reply should be ephemeral","optional":true,"type":[[["boolean"]]]},{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]}],"meta":{"line":13,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"InteractionDeferUpdateOptions","description":"Options for deferring and updating the reply to a {@link MessageComponentInteraction}.","type":[[["Object"]]],"props":[{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]}],"meta":{"line":20,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"InteractionReplyOptions","description":"Options for a reply to an {@link Interaction}.","type":[[["BaseMessageOptions"]]],"props":[{"name":"ephemeral","description":"Whether the reply should be ephemeral","optional":true,"type":[[["boolean"]]]},{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]}],"meta":{"line":26,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"InteractionUpdateOptions","description":"Options for updating the message received from a {@link MessageComponentInteraction}.","type":[[["MessageEditOptions"]]],"props":[{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]}],"meta":{"line":33,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"BaseMessageOptions","description":"Base options provided when sending.","type":[[["Object"]]],"props":[{"name":"tts","description":"Whether or not the message should be spoken aloud","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"nonce","description":"The nonce for the message","optional":true,"default":"''","type":[[["string"]]]},{"name":"content","description":"The content for the message","optional":true,"default":"''","type":[[["string"]]]},{"name":"embeds","description":"The embeds for the message\n(see [here](https://discord.com/developers/docs/resources/channel#embed-object) for more details)","optional":true,"type":[[["Array","<"],["WebEmbed",">"]],[["Array","<"],["MessageEmbed",">"]],[["Array","<"],["APIEmbed",">"]]]},{"name":"allowedMentions","description":"Which mentions should be parsed from the message content\n(see [here](https://discord.com/developers/docs/resources/channel#allowed-mentions-object) for more details)","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"files","description":"Files to send with the message","optional":true,"type":[[["Array","<"],["FileOptions",">"]],[["Array","<"],["BufferResolvable",">"]],[["Array","<"],["MessageAttachment",">"]]]},{"name":"components","description":"Action rows containing interactive components for the message (buttons, select menus)","optional":true,"type":[[["Array","<"],["MessageActionRow",">"]],[["Array","<"],["MessageActionRowOptions",">"]]]},{"name":"attachments","description":"Attachments to send in the message","optional":true,"type":[[["Array","<"],["MessageAttachment",">"]]]}],"meta":{"line":56,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"MessageOptions","description":"Options provided when sending or editing a message.","type":[[["BaseMessageOptions"]]],"props":[{"name":"reply","description":"The options for replying to a message","optional":true,"type":[[["ReplyOptions"]]]},{"name":"stickers","description":"Stickers to send in the message","optional":true,"default":"[]","type":[[["Array","<"],["StickerResolvable",">"]]]}],"meta":{"line":72,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"MessageMentionOptions","description":"Options provided to control parsing of mentions by Discord","type":[[["Object"]]],"props":[{"name":"parse","description":"Types of mentions to be parsed","optional":true,"type":[[["Array","<"],["MessageMentionTypes",">"]]]},{"name":"users","description":"Snowflakes of Users to be parsed as mentions","optional":true,"type":[[["Array","<"],["Snowflake",">"]]]},{"name":"roles","description":"Snowflakes of Roles to be parsed as mentions","optional":true,"type":[[["Array","<"],["Snowflake",">"]]]},{"name":"repliedUser","description":"Whether the author of the Message being replied to should be pinged","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":79,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"MessageMentionTypes","description":"Types of mentions to enable in MessageMentionOptions.\n- `roles`\n- `users`\n- `everyone`","type":[[["string"]]],"meta":{"line":88,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"FileOptions","type":[[["Object"]]],"props":[{"name":"attachment","description":"File to attach","type":[[["BufferResolvable"]]]},{"name":"name","description":"Filename of the attachment","optional":true,"default":"'file.jpg'","type":[[["string"]]]},{"name":"description","description":"The description of the file","type":[[["string"]]]}],"meta":{"line":96,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"ReplyOptions","description":"Options for sending a message with a reply.","type":[[["Object"]]],"props":[{"name":"messageReference","description":"The message to reply to (must be in the same channel and not system)","type":[[["MessageResolvable"]]]},{"name":"failIfNotExists","description":"Whether to error if the referenced message\ndoes not exist (creates a standard message in this case when false)","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":103,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"AwaitMessagesOptions","description":"An object containing the same properties as CollectorOptions, but a few more:","type":[[["MessageCollectorOptions"]]],"props":[{"name":"errors","description":"Stop/end reasons that cause the promise to reject","optional":true,"type":[[["Array","<"],["string",">"]]]}],"meta":{"line":207,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"TargetType","description":"The type of the invite target:\n* 1: STREAM\n* 2: EMBEDDED_APPLICATION","see":["{@link https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types}"],"type":[[["number"]]],"meta":{"line":154,"file":"Invite.js","path":"src/structures"}},{"name":"MessageReference","description":"Reference data sent in a message that contains ids identifying the referenced message.\nThis can be present in the following types of message:\n* Crossposted messages (IS_CROSSPOST {@link MessageFlags.FLAGS message flag})\n* CHANNEL_FOLLOW_ADD\n* CHANNEL_PINNED_MESSAGE\n* REPLY\n* THREAD_STARTER_MESSAGE","see":["{@link https://discord.com/developers/docs/resources/channel#message-types}"],"type":[[["Object"]]],"props":[{"name":"channelId","description":"The channel's id the message was referenced","type":[[["Snowflake"]]]},{"name":"guildId","description":"The guild's id the message was referenced","nullable":true,"type":[[["Snowflake"]]]},{"name":"messageId","description":"The message's id that was referenced","nullable":true,"type":[[["Snowflake"]]]}],"meta":{"line":298,"file":"Message.js","path":"src/structures"}},{"name":"MessageInteraction","description":"Partial data of the interaction that a message is a reply to","type":[[["Object"]]],"props":[{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]]},{"name":"type","description":"The type of the interaction","type":[[["InteractionType"]]]},{"name":"commandName","description":"The name of the interaction's application command","type":[[["string"]]]},{"name":"user","description":"The user that invoked the interaction","type":[[["User"]]]}],"meta":{"line":334,"file":"Message.js","path":"src/structures"}},{"name":"AwaitReactionsOptions","description":"An object containing the same properties as CollectorOptions, but a few more:","type":[[["ReactionCollectorOptions"]]],"props":[{"name":"errors","description":"Stop/end reasons that cause the promise to reject","optional":true,"type":[[["Array","<"],["string",">"]]]}],"meta":{"line":499,"file":"Message.js","path":"src/structures"}},{"name":"MessageComponentCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"componentType","description":"The type of component to listen for","optional":true,"type":[[["MessageComponentType"]]]},{"name":"max","description":"The maximum total amount of interactions to collect","optional":true,"type":[[["number"]]]},{"name":"maxComponents","description":"The maximum number of components to collect","optional":true,"type":[[["number"]]]},{"name":"maxUsers","description":"The maximum number of users to interact","optional":true,"type":[[["number"]]]}],"meta":{"line":527,"file":"Message.js","path":"src/structures"}},{"name":"AwaitMessageComponentOptions","description":"An object containing the same properties as CollectorOptions, but a few more:","type":[[["Object"]]],"props":[{"name":"filter","description":"The filter applied to this collector","optional":true,"type":[[["CollectorFilter"]]]},{"name":"time","description":"Time to wait for an interaction before rejecting","optional":true,"type":[[["number"]]]},{"name":"componentType","description":"The type of component interaction to collect","optional":true,"type":[[["MessageComponentType"]]]}],"meta":{"line":554,"file":"Message.js","path":"src/structures"}},{"name":"MessageEditOptions","description":"Options that can be passed into {@link Message#edit}.","type":[[["Object"]]],"props":[{"name":"content","description":"Content to be edited","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"embeds","description":"Embeds to be added/edited","optional":true,"type":[[["Array","<"],["MessageEmbed",">"]],[["Array","<"],["APIEmbed",">"]]]},{"name":"allowedMentions","description":"Which mentions should be parsed from the message content","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"flags","description":"Which flags to set for the message. Only `SUPPRESS_EMBEDS` can be edited.","optional":true,"type":[[["MessageFlags"]]]},{"name":"attachments","description":"An array of attachments to keep,\nall attachments will be kept if omitted","optional":true,"type":[[["Array","<"],["MessageAttachment",">"]]]},{"name":"files","description":"Files to add to the message","optional":true,"type":[[["Array","<"],["FileOptions",">"]],[["Array","<"],["BufferResolvable",">"]],[["Array","<"],["MessageAttachment",">"]]]},{"name":"components","description":"Action rows containing interactive components for the message (buttons, select menus)","optional":true,"type":[[["Array","<"],["MessageActionRow",">"]],[["Array","<"],["MessageActionRowOptions",">"]]]}],"meta":{"line":681,"file":"Message.js","path":"src/structures"}},{"name":"ReplyMessageOptions","description":"Options provided when sending a message as an inline reply.","type":[[["BaseMessageOptions"]]],"props":[{"name":"failIfNotExists","description":"Whether to error if the referenced message\ndoes not exist (creates a standard message in this case when false)","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"stickers","description":"Stickers to send in the message","optional":true,"default":"[]","type":[[["Array","<"],["StickerResolvable",">"]]]}],"meta":{"line":801,"file":"Message.js","path":"src/structures"}},{"name":"ThreadAutoArchiveDuration","description":"A number that is allowed to be the duration (in minutes) of inactivity after which a thread is automatically\narchived. This can be:\n* `60` (1 hour)\n* `1440` (1 day)\n* `4320` (3 days) This is only available when the guild has the `THREE_DAY_THREAD_ARCHIVE` feature.\n* `10080` (7 days) This is only available when the guild has the `SEVEN_DAY_THREAD_ARCHIVE` feature.\n* `'MAX'` Based on the guild's features","type":[[["number"]],[["string"]]],"meta":{"line":836,"file":"Message.js","path":"src/structures"}},{"name":"StartThreadOptions","description":"Options for starting a thread on a message.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the new thread","type":[[["string"]]]},{"name":"autoArchiveDuration","description":"The amount of\ntime (in minutes) after which the thread should automatically archive in case of no recent activity","optional":true,"default":"this.channel.defaultAutoArchiveDuration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for creating the thread","optional":true,"type":[[["string"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the thread in seconds","optional":true,"type":[[["number"]]]}],"meta":{"line":847,"file":"Message.js","path":"src/structures"}},{"name":"MessageActionRowComponent","description":"Components that can be placed in an action row\n* MessageButton\n* MessageSelectMenu","type":[[["MessageButton"]],[["MessageSelectMenu"]]],"meta":{"line":11,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageActionRowComponentOptions","description":"Options for components that can be placed in an action row\n* MessageButtonOptions\n* MessageSelectMenuOptions","type":[[["MessageButtonOptions"]],[["MessageSelectMenuOptions"]]],"meta":{"line":18,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageActionRowComponentResolvable","description":"Data that can be resolved into components that can be placed in an action row\n* MessageActionRowComponent\n* MessageActionRowComponentOptions","type":[[["MessageActionRowComponent"]],[["MessageActionRowComponentOptions"]]],"meta":{"line":25,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageActionRowOptions","type":[[["BaseMessageComponentOptions"]]],"props":[{"name":"components","description":"The components to place in this action row","optional":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"meta":{"line":32,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageButtonOptions","type":[[["BaseMessageComponentOptions"]]],"props":[{"name":"label","description":"The text to be displayed on this button","optional":true,"type":[[["string"]]]},{"name":"customId","description":"A unique string to be sent in the interaction when clicked","optional":true,"type":[[["string"]]]},{"name":"style","description":"The style of this button","optional":true,"type":[[["MessageButtonStyleResolvable"]]]},{"name":"emoji","description":"The emoji to be displayed to the left of the text","optional":true,"type":[[["EmojiIdentifierResolvable"]]]},{"name":"url","description":"Optional URL for link-style buttons","optional":true,"type":[[["string"]]]},{"name":"disabled","description":"Disables the button to prevent interactions","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":14,"file":"MessageButton.js","path":"src/structures"}},{"name":"MessageButtonStyleResolvable","description":"Data that can be resolved to a MessageButtonStyle. This can be\n* MessageButtonStyle\n* number","type":[[["number"]],[["MessageButtonStyle"]]],"meta":{"line":148,"file":"MessageButton.js","path":"src/structures"}},{"name":"MessageCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"max","description":"The maximum amount of messages to collect","type":[[["number"]]]},{"name":"maxProcessed","description":"The maximum amount of messages to process","type":[[["number"]]]}],"meta":{"line":6,"file":"MessageCollector.js","path":"src/structures"}},{"name":"APIMessageActionRowComponent","description":"Raw message components from the API\n* APIMessageButton\n* APIMessageSelectMenu","type":[[["APIMessageButton"]],[["APIMessageSelectMenu"]]],"meta":{"line":66,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"Partial","description":"A `Partial` object is a representation of any existing object.\nThis object contains between 0 and all of the original objects parameters.\nThis is true regardless of whether the parameters are optional in the base object.","type":[[["Object"]]],"meta":{"line":14,"file":"WebEmbed.js","path":"src/structures"}},{"name":"MessageEmbedOptions","description":"Represents the possible options for a MessageEmbed","type":[[["Object"]]],"props":[{"name":"title","description":"The title of this embed","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of this embed","optional":true,"type":[[["string"]]]},{"name":"url","description":"The URL of this embed","optional":true,"type":[[["string"]]]},{"name":"timestamp","description":"The timestamp of this embed","optional":true,"type":[[["Date"]],[["number"]]]},{"name":"color","description":"The color of this embed","optional":true,"type":[[["ColorResolvable"]]]},{"name":"fields","description":"The fields of this embed","optional":true,"type":[[["Array","<"],["EmbedFieldData",">"]]]},{"name":"author","description":"The author of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedAuthor",">"]]]},{"name":"thumbnail","description":"The thumbnail of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedThumbnail",">"]]]},{"name":"image","description":"The image of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedImage",">"]]]},{"name":"video","description":"The video of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedVideo",">"]]]},{"name":"footer","description":"The footer of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedFooter",">"]]]}],"meta":{"line":23,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"EmbedField","description":"Represents a field of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this field","type":[[["string"]]]},{"name":"value","description":"The value of this field","type":[[["string"]]]},{"name":"inline","description":"If this field will be displayed inline","type":[[["boolean"]]]}],"meta":{"line":92,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedThumbnail","description":"Represents the thumbnail of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL for this thumbnail","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this thumbnail","type":[[["string"]]]},{"name":"height","description":"Height of this thumbnail","type":[[["number"]]]},{"name":"width","description":"Width of this thumbnail","type":[[["number"]]]}],"meta":{"line":109,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedImage","description":"Represents the image of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL for this image","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this image","type":[[["string"]]]},{"name":"height","description":"Height of this image","type":[[["number"]]]},{"name":"width","description":"Width of this image","type":[[["number"]]]}],"meta":{"line":131,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedVideo","description":"Represents the video of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL of this video","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this video","type":[[["string"]]]},{"name":"height","description":"Height of this video","type":[[["number"]]]},{"name":"width","description":"Width of this video","type":[[["number"]]]}],"meta":{"line":153,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedAuthor","description":"Represents the author field of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this author","type":[[["string"]]]},{"name":"url","description":"URL of this author","type":[[["string"]]]},{"name":"iconURL","description":"URL of the icon for this author","type":[[["string"]]]},{"name":"proxyIconURL","description":"Proxied URL of the icon for this author","type":[[["string"]]]}],"meta":{"line":176,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedProvider","description":"Represents the provider of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this provider","type":[[["string"]]]},{"name":"url","description":"URL of this provider","type":[[["string"]]]}],"meta":{"line":198,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedFooter","description":"Represents the footer field of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"text","description":"The text of this footer","type":[[["string"]]]},{"name":"iconURL","description":"URL of the icon for this footer","type":[[["string"]]]},{"name":"proxyIconURL","description":"Proxied URL of the icon for this footer","type":[[["string"]]]}],"meta":{"line":216,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"EmbedAuthorData","description":"The options to provide for setting an author for a {@link WebEmbed}.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this author.","type":[[["string"]]]}],"meta":{"line":183,"file":"WebEmbed.js","path":"src/structures"}},{"name":"EmbedFooterData","description":"The options to provide for setting a footer for a {@link MessageEmbed}.","type":[[["Object"]]],"props":[{"name":"text","description":"The text of the footer.","type":[[["string"]]]},{"name":"iconURL","description":"The icon URL of the footer.","optional":true,"type":[[["string"]]]}],"meta":{"line":416,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"EmbedFieldData","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this field","type":[[["string"]]]},{"name":"value","description":"The value of this field","type":[[["string"]]]},{"name":"inline","description":"If this field will be displayed inline","optional":true,"type":[[["boolean"]]]}],"meta":{"line":549,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"CrosspostedChannel","description":"Crossposted channel data.","type":[[["Object"]]],"props":[{"name":"channelId","description":"The mentioned channel's id","type":[[["Snowflake"]]]},{"name":"guildId","description":"The id of the guild that has the channel","type":[[["Snowflake"]]]},{"name":"type","description":"The channel's type","type":[[["ChannelType"]]]},{"name":"name","description":"The channel's name","type":[[["string"]]]}],"meta":{"line":96,"file":"MessageMentions.js","path":"src/structures"}},{"name":"MessageMentionsHasOptions","description":"Options used to check for a mention.","type":[[["Object"]]],"props":[{"name":"ignoreDirect","description":"Whether to ignore direct mentions to the item","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"ignoreRoles","description":"Whether to ignore role mentions to a guild member","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"ignoreEveryone","description":"Whether to ignore everyone/here mentions","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":171,"file":"MessageMentions.js","path":"src/structures"}},{"name":"MessageTarget","description":"A target for a message.","type":[[["TextChannel"]],[["DMChannel"]],[["User"]],[["GuildMember"]],[["Webhook"]],[["WebhookClient"]],[["Interaction"]],[["InteractionWebhook"]],[["Message"]],[["MessageManager"]]],"meta":{"line":304,"file":"MessagePayload.js","path":"src/structures"}},{"name":"MessageFile","type":[[["Object"]]],"props":[{"name":"attachment","description":"The original attachment that generated this file","type":[[["Buffer"]],[["string"]],[["Stream"]]]},{"name":"name","description":"The name of this file","type":[[["string"]]]},{"name":"file","description":"The file to be sent to the API","type":[[["Buffer"]],[["Stream"]]]}],"meta":{"line":39,"file":"MessagePayload.js","path":"src/structures"}},{"name":"MessageSelectMenuOptions","type":[[["BaseMessageComponentOptions"]]],"props":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","optional":true,"type":[[["string"]]]},{"name":"placeholder","description":"Custom placeholder text to display when nothing is selected","optional":true,"type":[[["string"]]]},{"name":"minValues","description":"The minimum number of selections required","optional":true,"type":[[["number"]]]},{"name":"maxValues","description":"The maximum number of selections allowed","optional":true,"type":[[["number"]]]},{"name":"options","description":"Options for the select menu","optional":true,"type":[[["Array","<"],["MessageSelectOption",">"]]]},{"name":"disabled","description":"Disables the select menu to prevent interactions","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":13,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"MessageSelectOption","type":[[["Object"]]],"props":[{"name":"label","description":"The text to be displayed on this option","type":[[["string"]]]},{"name":"value","description":"The value to be sent for this option","type":[[["string"]]]},{"name":"description","description":"Optional description to show for this option","nullable":true,"type":[[["string"]]]},{"name":"emoji","description":"Emoji to display for this option","nullable":true,"type":[[["RawEmoji"]]]},{"name":"default","description":"Render this option as the default selection","type":[[["boolean"]]]}],"meta":{"line":23,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"MessageSelectOptionData","type":[[["Object"]]],"props":[{"name":"label","description":"The text to be displayed on this option","type":[[["string"]]]},{"name":"value","description":"The value to be sent for this option","type":[[["string"]]]},{"name":"description","description":"Optional description to show for this option","optional":true,"type":[[["string"]]]},{"name":"emoji","description":"Emoji to display for this option","optional":true,"type":[[["EmojiIdentifierResolvable"]]]},{"name":"default","description":"Render this option as the default selection","optional":true,"type":[[["boolean"]]]}],"meta":{"line":32,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"PartialRecipient","description":"Recipient data received in a {@link PartialGroupDMChannel}.","type":[[["Object"]]],"props":[{"name":"username","description":"The username of the recipient","type":[[["string"]]]}],"meta":{"line":31,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"PermissionOverwriteOptions","description":"An object mapping permission flags to `true` (enabled), `null` (unset) or `false` (disabled).\n```js\n{\n 'SEND_MESSAGES': true,\n 'EMBED_LINKS': null,\n 'ATTACH_FILES': false,\n}\n```","type":[[["Object"]]],"meta":{"line":97,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"ResolvedOverwriteOptions","type":[[["Object"]]],"props":[{"name":"allow","description":"The allowed permissions","type":[[["Permissions"]]]},{"name":"deny","description":"The denied permissions","type":[[["Permissions"]]]}],"meta":{"line":109,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"RawOverwriteData","description":"The raw data for a permission overwrite","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the {@link Role} or {@link User} this overwrite belongs to","type":[[["Snowflake"]]]},{"name":"allow","description":"The permissions to allow","type":[[["string"]]]},{"name":"deny","description":"The permissions to deny","type":[[["string"]]]},{"name":"type","description":"The type of this OverwriteData","type":[[["number"]]]}],"meta":{"line":141,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"OverwriteResolvable","description":"Data that can be resolved into {@link RawOverwriteData}. This can be:\n* PermissionOverwrites\n* OverwriteData","type":[[["PermissionOverwrites"]],[["OverwriteData"]]],"meta":{"line":150,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"OverwriteData","description":"Data that can be used for a permission overwrite","type":[[["Object"]]],"props":[{"name":"id","description":"Member or role this overwrite is for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"allow","description":"The permissions to allow","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"deny","description":"The permissions to deny","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"type","description":"The type of this OverwriteData","optional":true,"type":[[["OverwriteType"]]]}],"meta":{"line":157,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"MessageActivity","description":"Activity sent in a message.","type":[[["Object"]]],"props":[{"name":"partyId","description":"Id of the party represented in activity","optional":true,"type":[[["string"]]]},{"name":"type","description":"Type of activity sent","optional":true,"type":[[["number"]]]}],"meta":{"line":9,"file":"Presence.js","path":"src/structures"}},{"name":"PresenceStatus","description":"The status of this presence:\n* **`online`** - user is online\n* **`idle`** - user is AFK\n* **`offline`** - user is offline or invisible\n* **`dnd`** - user is in Do Not Disturb","type":[[["string"]]],"meta":{"line":16,"file":"Presence.js","path":"src/structures"}},{"name":"ClientPresenceStatus","description":"The status of this presence:\n* **`online`** - user is online\n* **`idle`** - user is AFK\n* **`dnd`** - user is in Do Not Disturb","type":[[["string"]]],"meta":{"line":25,"file":"Presence.js","path":"src/structures"}},{"name":"ActivityPlatform","description":"The platform of this activity:\n* **`desktop`**\n* **`samsung`** - playing on Samsung Galaxy\n* **`xbox`** - playing on Xbox Live","type":[[["string"]]],"meta":{"line":140,"file":"Presence.js","path":"src/structures"}},{"name":"ActivityTimestamps","description":"Represents timestamps of an activity","type":[[["Object"]]],"props":[{"name":"start","description":"When the activity started","nullable":true,"type":[[["Date"]]]},{"name":"end","description":"When the activity will end","nullable":true,"type":[[["Date"]]]}],"meta":{"line":197,"file":"Presence.js","path":"src/structures"}},{"name":"ActivityParty","description":"Represents a party of an activity","type":[[["Object"]]],"props":[{"name":"id","description":"The party's id","nullable":true,"type":[[["string"]]]},{"name":"size","description":"Size of the party as `[current, max]`","type":[[["Array","<"],["number",">"]]]}],"meta":{"line":227,"file":"Presence.js","path":"src/structures"}},{"name":"ReactionCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"max","description":"The maximum total amount of reactions to collect","type":[[["number"]]]},{"name":"maxEmojis","description":"The maximum number of emojis to collect","type":[[["number"]]]},{"name":"maxUsers","description":"The maximum number of users to react","type":[[["number"]]]}],"meta":{"line":7,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"RoleData","description":"The data for a role.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the role","optional":true,"type":[[["string"]]]},{"name":"color","description":"The color of the role, either a hex string or a base 10 number","optional":true,"type":[[["ColorResolvable"]]]},{"name":"hoist","description":"Whether or not the role should be hoisted","optional":true,"type":[[["boolean"]]]},{"name":"position","description":"The position of the role","optional":true,"type":[[["number"]]]},{"name":"permissions","description":"The permissions of the role","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"mentionable","description":"Whether or not the role should be mentionable","optional":true,"type":[[["boolean"]]]},{"name":"icon","description":"The icon for the role\nThe `EmojiResolvable` should belong to the same guild as the role.\nIf not, pass the emoji's URL directly","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]],[["EmojiResolvable"]]]},{"name":"unicodeEmoji","description":"The unicode emoji for the role","optional":true,"nullable":true,"type":[[["string"]]]}],"meta":{"line":234,"file":"Role.js","path":"src/structures"}},{"name":"SetRolePositionOptions","description":"Options used to set the position of a role.","type":[[["Object"]]],"props":[{"name":"relative","description":"Whether to change the position relative to its current value or not","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"reason","description":"The reason for changing the position","optional":true,"type":[[["string"]]]}],"meta":{"line":384,"file":"Role.js","path":"src/structures"}},{"name":"GuildStickerEditData","description":"Data for editing a sticker.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the sticker","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of the sticker","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"tags","description":"The Discord name of a unicode emoji representing the sticker's expression","optional":true,"type":[[["string"]]]}],"meta":{"line":237,"file":"Sticker.js","path":"src/structures"}},{"name":"ThreadEditData","description":"The options used to edit a thread channel","type":[[["Object"]]],"props":[{"name":"name","description":"The new name for the thread","optional":true,"type":[[["string"]]]},{"name":"archived","description":"Whether the thread is archived","optional":true,"type":[[["boolean"]]]},{"name":"autoArchiveDuration","description":"The amount of time (in minutes) after which the thread\nshould automatically archive in case of no recent activity","optional":true,"type":[[["ThreadAutoArchiveDuration"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the thread in seconds","optional":true,"type":[[["number"]]]},{"name":"locked","description":"Whether the thread is locked","optional":true,"type":[[["boolean"]]]},{"name":"invitable","description":"Whether non-moderators can add other non-moderators to a thread\nCan only be edited on `GUILD_PRIVATE_THREAD`","optional":true,"type":[[["boolean"]]]}],"meta":{"line":265,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"ConnectionAccount","description":"An array of object (connected accounts), containing the following properties:\n* type: string\n* id: string\n* name: string\n* verified: boolean","type":[[["Object"]]],"meta":{"line":33,"file":"User.js","path":"src/structures"}},{"name":"WebEmbedOptions","description":"Represents the possible options for a WebEmbed","type":[[["Object"]]],"props":[{"name":"title","description":"The title of this embed","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of this embed","optional":true,"type":[[["string"]]]},{"name":"url","description":"The URL of this embed","optional":true,"type":[[["string"]]]},{"name":"color","description":"The color of this embed","optional":true,"type":[[["ColorResolvable"]]]},{"name":"author","description":"The author of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedAuthor",">"]]]},{"name":"thumbnail","description":"The thumbnail of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedThumbnail",">"]]]},{"name":"image","description":"The image of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedImage",">"]]]},{"name":"video","description":"The video of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedVideo",">"]]]},{"name":"footer","description":"The footer of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedFooter",">"]]]},{"name":"provider","description":"The provider of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedProvider",">"]]]}],"meta":{"line":21,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedImage","description":"Represents the image of a WebEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL for this image","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this image","type":[[["string"]]]},{"name":"height","description":"Height of this image","type":[[["number"]]]},{"name":"width","description":"Width of this image","type":[[["number"]]]}],"meta":{"line":87,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedVideo","description":"Represents the video of a WebEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL of this video","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this video","type":[[["string"]]]},{"name":"height","description":"Height of this video","type":[[["number"]]]},{"name":"width","description":"Width of this video","type":[[["number"]]]}],"meta":{"line":122,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedAuthor","description":"Represents the author field of a WebEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this author","type":[[["string"]]]},{"name":"url","description":"URL of this author","type":[[["string"]]]},{"name":"iconURL","description":"URL of the icon for this author","type":[[["string"]]]},{"name":"proxyIconURL","description":"Proxied URL of the icon for this author","type":[[["string"]]]}],"meta":{"line":145,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedProvider","description":"Represents the provider of a WebEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this provider","type":[[["string"]]]},{"name":"url","description":"URL of this provider","type":[[["string"]]]}],"meta":{"line":165,"file":"WebEmbed.js","path":"src/structures"}},{"name":"EmbedProviderData","description":"The options to provide for setting an provider for a {@link WebEmbed}.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this provider.","type":[[["string"]]]}],"meta":{"line":208,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebhookMessageOptions","description":"Options that can be passed into send.","type":[[["BaseMessageOptions"]]],"props":[{"name":"username","description":"Username override for the message","optional":true,"default":"this.name","type":[[["string"]]]},{"name":"avatarURL","description":"Avatar URL override for the message","optional":true,"type":[[["string"]]]},{"name":"threadId","description":"The id of the thread in the channel to send to.\nFor interaction webhooks, this property is ignored","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":113,"file":"Webhook.js","path":"src/structures"}},{"name":"WebhookEditMessageOptions","description":"Options that can be passed into editMessage.","type":[[["Object"]]],"props":[{"name":"embeds","description":"See {@link WebhookMessageOptions#embeds}","optional":true,"type":[[["Array","<"],["MessageEmbed",">"]],[["Array","<"],["APIEmbed",">"]]]},{"name":"content","description":"See {@link BaseMessageOptions#content}","optional":true,"type":[[["string"]]]},{"name":"files","description":"See {@link BaseMessageOptions#files}","optional":true,"type":[[["Array","<"],["FileOptions",">"]],[["Array","<"],["BufferResolvable",">"]],[["Array","<"],["MessageAttachment",">"]]]},{"name":"allowedMentions","description":"See {@link BaseMessageOptions#allowedMentions}","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"attachments","description":"Attachments to send with the message","optional":true,"type":[[["Array","<"],["MessageAttachment",">"]]]},{"name":"components","description":"Action rows containing interactive components for the message (buttons, select menus)","optional":true,"type":[[["Array","<"],["MessageActionRow",">"]],[["Array","<"],["MessageActionRowOptions",">"]]]},{"name":"threadId","description":"The id of the thread this message belongs to\nFor interaction webhooks, this property is ignored","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":122,"file":"Webhook.js","path":"src/structures"}},{"name":"WebhookEditData","description":"Options used to edit a {@link Webhook}.","type":[[["Object"]]],"props":[{"name":"name","description":"The new name for the webhook","optional":true,"default":"this.name","type":[[["string"]]]},{"name":"avatar","description":"The new avatar for the webhook","optional":true,"nullable":true,"type":[[["BufferResolvable"]]]},{"name":"channel","description":"The new channel for the webhook","optional":true,"type":[[["GuildTextChannelResolvable"]]]}],"meta":{"line":234,"file":"Webhook.js","path":"src/structures"}},{"name":"WebhookFetchMessageOptions","description":"Options that can be passed into fetchMessage.","type":[[["options"]]],"props":[{"name":"cache","description":"Whether to cache the message.","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"threadId","description":"The id of the thread this message belongs to.\nFor interaction webhooks, this property is ignored","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":265,"file":"Webhook.js","path":"src/structures"}},{"name":"WidgetChannel","description":"Represents a channel in a Widget","type":[[["Object"]]],"props":[{"name":"id","description":"Id of the channel","type":[[["Snowflake"]]]},{"name":"name","description":"Name of the channel","type":[[["string"]]]},{"name":"position","description":"Position of the channel","type":[[["number"]]]}],"meta":{"line":16,"file":"Widget.js","path":"src/structures"}},{"name":"WidgetActivity","description":"Activity sent in a {@link WidgetMember}.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the activity","type":[[["string"]]]}],"meta":{"line":9,"file":"WidgetMember.js","path":"src/structures"}},{"name":"BitFieldResolvable","description":"Data that can be resolved to give a bitfield. This can be:\n* A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS})\n* A string bit number\n* An instance of BitField\n* An Array of BitFieldResolvable","type":[[["number"]],[["string"]],[["bigint"]],[["BitField"]],[["Array","<"],["BitFieldResolvable",">"]]],"meta":{"line":129,"file":"BitField.js","path":"src/util"}},{"name":"Constants","description":"Constants that can be used in an enum or object-like way.","type":[[["Object"]]],"props":[{"name":"ActivityTypes","description":"The type of an activity of a users presence.","type":[[["ActivityType"]]]},{"name":"APIErrors","description":"An error encountered while performing an API request.","type":[[["APIError"]]]},{"name":"ApplicationCommandOptionTypes","description":"The type of an {@link ApplicationCommandOption} object.","type":[[["ApplicationCommandOptionType"]]]},{"name":"ApplicationCommandPermissionTypes","description":"The type of an {@link ApplicationCommandPermissions} object.","type":[[["ApplicationCommandPermissionType"]]]},{"name":"ChannelTypes","description":"All available channel types.","type":[[["ChannelType"]]]},{"name":"DefaultMessageNotificationLevels","description":"The value set for a guild's default message notifications.","type":[[["DefaultMessageNotificationLevel"]]]},{"name":"ExplicitContentFilterLevels","description":"The value set for the explicit content filter levels for a guild.","type":[[["ExplicitContentFilterLevel"]]]},{"name":"GuildScheduledEventStatuses","description":"The status of a {@link GuildScheduledEvent} object.","type":[[["GuildScheduledEventStatus"]]]},{"name":"GuildScheduledEventEntityTypes","description":"The entity type of a\n{@link GuildScheduledEvent} object.","type":[[["GuildScheduledEventEntityType"]]]},{"name":"GuildScheduledEventPrivacyLevels","description":"Privacy level of a\n{@link GuildScheduledEvent} object.","type":[[["GuildScheduledEventPrivacyLevel"]]]},{"name":"InteractionResponseTypes","description":"The type of an interaction response.","type":[[["InteractionResponseType"]]]},{"name":"InteractionTypes","description":"The type of an {@link Interaction} object.","type":[[["InteractionType"]]]},{"name":"MembershipStates","description":"The value set for a team member's membership state.","type":[[["MembershipState"]]]},{"name":"MessageButtonStyles","description":"The style of a message button.","type":[[["MessageButtonStyle"]]]},{"name":"MessageComponentTypes","description":"The type of a message component.","type":[[["MessageComponentType"]]]},{"name":"MFALevels","description":"The required MFA level for a guild.","type":[[["MFALevel"]]]},{"name":"NSFWLevels","description":"NSFW level of a guild.","type":[[["NSFWLevel"]]]},{"name":"OverwriteTypes","description":"An overwrite type.","type":[[["OverwriteType"]]]},{"name":"PartialTypes","description":"The type of Structure allowed to be a partial.","type":[[["PartialType"]]]},{"name":"PremiumTiers","description":"The premium tier (Server Boost level) of a guild.","type":[[["PremiumTier"]]]},{"name":"PrivacyLevels","description":"Privacy level of a {@link StageInstance} object.","type":[[["PrivacyLevel"]]]},{"name":"Status","description":"The available statuses of the client.","type":[[["Status"]]]},{"name":"StickerFormatTypes","description":"The value set for a sticker's format type.","type":[[["StickerFormatType"]]]},{"name":"StickerTypes","description":"The value set for a sticker's type.","type":[[["StickerType"]]]},{"name":"VerificationLevels","description":"The value set for the verification levels for a guild.","type":[[["VerificationLevel"]]]},{"name":"WebhookTypes","description":"The value set for a webhook's type.","type":[[["WebhookType"]]]},{"name":"WSEvents","description":"The type of a WebSocket message event.","type":[[["WSEventType"]]]}],"meta":{"line":1346,"file":"Constants.js","path":"src/util"}},{"name":"ImageURLOptions","description":"Options for Image URLs.","type":[[["StaticImageURLOptions"]]],"props":[{"name":"dynamic","description":"If true, the format will dynamically change to `gif` for animated avatars.","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":108,"file":"Constants.js","path":"src/util"}},{"name":"StaticImageURLOptions","description":"Options for static Image URLs.","type":[[["Object"]]],"props":[{"name":"format","description":"One of `webp`, `png`, `jpg`, `jpeg`.","optional":true,"default":"'webp'","type":[[["string"]]]},{"name":"size","description":"One of `16`, `32`, `56`, `64`, `96`, `128`, `256`, `300`, `512`, `600`, `1024`, `2048`,\n`4096`","optional":true,"type":[[["number"]]]}],"meta":{"line":114,"file":"Constants.js","path":"src/util"}},{"name":"Status","description":"The current status of the client. Here are the available statuses:\n* READY: 0\n* CONNECTING: 1\n* RECONNECTING: 2\n* IDLE: 3\n* NEARLY: 4\n* DISCONNECTED: 5\n* WAITING_FOR_GUILDS: 6\n* IDENTIFYING: 7\n* RESUMING: 8","type":[[["number"]]],"meta":{"line":166,"file":"Constants.js","path":"src/util"}},{"name":"PartialType","description":"The type of Structure allowed to be a partial:\n* USER\n* CHANNEL (only affects DMChannels)\n* GUILD_MEMBER\n* MESSAGE\n* REACTION\n* GUILD_SCHEDULED_EVENT\nPartials require you to put checks in place when handling data. See the \"Partial Structures\" topic on the\n[guide](https://discordjs.guide/popular-topics/partials.html) for more information.","type":[[["string"]]],"meta":{"line":343,"file":"Constants.js","path":"src/util"}},{"name":"WSEventType","description":"The type of a WebSocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:\n* READY\n* RESUMED\n* APPLICATION_COMMAND_CREATE (deprecated)\n* APPLICATION_COMMAND_DELETE (deprecated)\n* APPLICATION_COMMAND_UPDATE (deprecated)\n* GUILD_CREATE\n* GUILD_DELETE\n* GUILD_UPDATE\n* INVITE_CREATE\n* INVITE_DELETE\n* GUILD_MEMBER_ADD\n* GUILD_MEMBER_REMOVE\n* GUILD_MEMBER_UPDATE\n* GUILD_MEMBERS_CHUNK\n* GUILD_INTEGRATIONS_UPDATE\n* GUILD_ROLE_CREATE\n* GUILD_ROLE_DELETE\n* GUILD_ROLE_UPDATE\n* GUILD_BAN_ADD\n* GUILD_BAN_REMOVE\n* GUILD_EMOJIS_UPDATE\n* CHANNEL_CREATE\n* CHANNEL_DELETE\n* CHANNEL_UPDATE\n* CHANNEL_PINS_UPDATE\n* MESSAGE_CREATE\n* MESSAGE_DELETE\n* MESSAGE_UPDATE\n* MESSAGE_DELETE_BULK\n* MESSAGE_REACTION_ADD\n* MESSAGE_REACTION_REMOVE\n* MESSAGE_REACTION_REMOVE_ALL\n* MESSAGE_REACTION_REMOVE_EMOJI\n* THREAD_CREATE\n* THREAD_UPDATE\n* THREAD_DELETE\n* THREAD_LIST_SYNC\n* THREAD_MEMBER_UPDATE\n* THREAD_MEMBERS_UPDATE\n* USER_UPDATE\n* PRESENCE_UPDATE\n* TYPING_START\n* VOICE_STATE_UPDATE\n* VOICE_SERVER_UPDATE\n* WEBHOOKS_UPDATE\n* INTERACTION_CREATE\n* STAGE_INSTANCE_CREATE\n* STAGE_INSTANCE_UPDATE\n* STAGE_INSTANCE_DELETE\n* GUILD_STICKERS_UPDATE\n* GUILD_SCHEDULED_EVENT_CREATE\n* GUILD_SCHEDULED_EVENT_UPDATE\n* GUILD_SCHEDULED_EVENT_DELETE\n* GUILD_SCHEDULED_EVENT_USER_ADD\n* GUILD_SCHEDULED_EVENT_USER_REMOVE","see":["{@link https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events}"],"type":[[["string"]]],"meta":{"line":357,"file":"Constants.js","path":"src/util"}},{"name":"InviteScope","description":"A valid scope to request when generating an invite link.\nScopes that require whitelist are not considered valid for this generator\n* `applications.builds.read`: allows reading build data for a users applications\n* `applications.commands`: allows this bot to create commands in the server\n* `applications.entitlements`: allows reading entitlements for a users applications\n* `applications.store.update`: allows reading and updating of store data for a users applications\n* `bot`: makes the bot join the selected guild\n* `connections`: makes the endpoint for getting a users connections available\n* `email`: allows the `/users/@me` endpoint return with an email\n* `identify`: allows the `/users/@me` endpoint without an email\n* `guilds`: makes the `/users/@me/guilds` endpoint available for a user\n* `guilds.join`: allows the bot to join the user to any guild it is in using Guild#addMember\n* `gdm.join`: allows joining the user to a group dm\n* `webhook.incoming`: generates a webhook to a channel","see":["{@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}"],"type":[[["string"]]],"meta":{"line":475,"file":"Constants.js","path":"src/util"}},{"name":"IntegrationExpireBehavior","description":"The behavior of expiring subscribers for Integrations. This can be:\n* REMOVE_ROLE\n* KICK","see":["{@link https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors}"],"type":[[["string"]]],"meta":{"line":509,"file":"Constants.js","path":"src/util"}},{"name":"MessageType","description":"The type of a message, e.g. `DEFAULT`. Here are the available types:\n* DEFAULT\n* RECIPIENT_ADD\n* RECIPIENT_REMOVE\n* CALL\n* CHANNEL_NAME_CHANGE\n* CHANNEL_ICON_CHANGE\n* CHANNEL_PINNED_MESSAGE\n* GUILD_MEMBER_JOIN\n* USER_PREMIUM_GUILD_SUBSCRIPTION\n* USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1\n* USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2\n* USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3\n* CHANNEL_FOLLOW_ADD\n* GUILD_DISCOVERY_DISQUALIFIED\n* GUILD_DISCOVERY_REQUALIFIED\n* GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING\n* GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING\n* THREAD_CREATED\n* REPLY\n* APPLICATION_COMMAND\n* THREAD_STARTER_MESSAGE\n* GUILD_INVITE_REMINDER\n* CONTEXT_MENU_COMMAND","see":["{@link https://discord.com/developers/docs/resources/channel#message-object-message-types}"],"type":[[["string"]]],"meta":{"line":518,"file":"Constants.js","path":"src/util"}},{"name":"SweeperKey","description":"The name of an item to be swept in Sweepers\n* `applicationCommands` - both global and guild commands\n* `bans`\n* `emojis`\n* `invites` - accepts the `lifetime` property, using it will sweep based on expires timestamp\n* `guildMembers`\n* `messages` - accepts the `lifetime` property, using it will sweep based on edited or created timestamp\n* `presences`\n* `reactions`\n* `stageInstances`\n* `stickers`\n* `threadMembers`\n* `threads` - accepts the `lifetime` property, using it will sweep archived threads based on archived timestamp\n* `users`\n* `voiceStates`","type":[[["string"]]],"meta":{"line":573,"file":"Constants.js","path":"src/util"}},{"name":"SystemMessageType","description":"The types of messages that are `System`. The available types are `MessageTypes` excluding:\n* DEFAULT\n* REPLY\n* APPLICATION_COMMAND\n* CONTEXT_MENU_COMMAND","type":[[["string"]]],"meta":{"line":608,"file":"Constants.js","path":"src/util"}},{"name":"ActivityType","description":"Bots cannot set a `CUSTOM` activity type, it is only for custom statuses received from users\nThe type of an activity of a user's presence. Here are the available types:\n* PLAYING\n* STREAMING\n* LISTENING\n* WATCHING\n* CUSTOM\n* COMPETING","see":["{@link https://discord.com/developers/docs/game-sdk/activities#data-models-activitytype-enum}"],"type":[[["string"]]],"meta":{"line":620,"file":"Constants.js","path":"src/util"}},{"name":"ChannelType","description":"All available channel types:\n* `GUILD_TEXT` - a guild text channel\n* `DM` - a DM channel\n* `GUILD_VOICE` - a guild voice channel\n* `GROUP_DM` - a group DM channel\n* `GUILD_CATEGORY` - a guild category channel\n* `GUILD_NEWS` - a guild news channel\n* `GUILD_STORE` - a guild store channel\nStore channels are deprecated and will be removed from Discord in March 2022. See\n[Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/4414590563479)\nfor more information.\n* `GUILD_NEWS_THREAD` - a guild news channel's public thread channel\n* `GUILD_PUBLIC_THREAD` - a guild text channel's public thread channel\n* `GUILD_PRIVATE_THREAD` - a guild text channel's private thread channel\n* `GUILD_STAGE_VOICE` - a guild stage voice channel\n* `UNKNOWN` - a generic channel of unknown type, could be Channel or GuildChannel","see":["{@link https://discord.com/developers/docs/resources/channel#channel-object-channel-types}"],"type":[[["string"]]],"meta":{"line":634,"file":"Constants.js","path":"src/util"}},{"name":"TextBasedChannels","description":"The channels that are text-based.\n* DMChannel\n* TextChannel\n* NewsChannel\n* ThreadChannel","type":[[["DMChannel"]],[["TextChannel"]],[["NewsChannel"]],[["ThreadChannel"]]],"meta":{"line":670,"file":"Constants.js","path":"src/util"}},{"name":"TextBasedChannelTypes","description":"The types of channels that are text-based. The available types are:\n* DM\n* GUILD_TEXT\n* GUILD_NEWS\n* GUILD_NEWS_THREAD\n* GUILD_PUBLIC_THREAD\n* GUILD_PRIVATE_THREAD","type":[[["string"]]],"meta":{"line":679,"file":"Constants.js","path":"src/util"}},{"name":"ThreadChannelTypes","description":"The types of channels that are threads. The available types are:\n* GUILD_NEWS_THREAD\n* GUILD_PUBLIC_THREAD\n* GUILD_PRIVATE_THREAD","type":[[["string"]]],"meta":{"line":698,"file":"Constants.js","path":"src/util"}},{"name":"VoiceBasedChannelTypes","description":"The types of channels that are voice-based. The available types are:\n* GUILD_VOICE\n* GUILD_STAGE_VOICE","type":[[["string"]]],"meta":{"line":707,"file":"Constants.js","path":"src/util"}},{"name":"ExplicitContentFilterLevel","description":"The value set for the explicit content filter levels for a guild:\n* DISABLED\n* MEMBERS_WITHOUT_ROLES\n* ALL_MEMBERS","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level}"],"type":[[["string"]]],"meta":{"line":753,"file":"Constants.js","path":"src/util"}},{"name":"VerificationLevel","description":"The value set for the verification levels for a guild:\n* NONE\n* LOW\n* MEDIUM\n* HIGH\n* VERY_HIGH","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}"],"type":[[["string"]]],"meta":{"line":763,"file":"Constants.js","path":"src/util"}},{"name":"APIError","description":"An error encountered while performing an API request. Here are the potential errors:\n* UNKNOWN_ACCOUNT\n* UNKNOWN_APPLICATION\n* UNKNOWN_CHANNEL\n* UNKNOWN_GUILD\n* UNKNOWN_INTEGRATION\n* UNKNOWN_INVITE\n* UNKNOWN_MEMBER\n* UNKNOWN_MESSAGE\n* UNKNOWN_OVERWRITE\n* UNKNOWN_PROVIDER\n* UNKNOWN_ROLE\n* UNKNOWN_TOKEN\n* UNKNOWN_USER\n* UNKNOWN_EMOJI\n* UNKNOWN_WEBHOOK\n* UNKNOWN_WEBHOOK_SERVICE\n* UNKNOWN_SESSION\n* UNKNOWN_BAN\n* UNKNOWN_SKU\n* UNKNOWN_STORE_LISTING\n* UNKNOWN_ENTITLEMENT\n* UNKNOWN_BUILD\n* UNKNOWN_LOBBY\n* UNKNOWN_BRANCH\n* UNKNOWN_STORE_DIRECTORY_LAYOUT\n* UNKNOWN_REDISTRIBUTABLE\n* UNKNOWN_GIFT_CODE\n* UNKNOWN_STREAM\n* UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN\n* UNKNOWN_GUILD_TEMPLATE\n* UNKNOWN_DISCOVERABLE_SERVER_CATEGORY\n* UNKNOWN_STICKER\n* UNKNOWN_INTERACTION\n* UNKNOWN_APPLICATION_COMMAND\n* UNKNOWN_APPLICATION_COMMAND_PERMISSIONS\n* UNKNOWN_STAGE_INSTANCE\n* UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM\n* UNKNOWN_GUILD_WELCOME_SCREEN\n* UNKNOWN_GUILD_SCHEDULED_EVENT\n* UNKNOWN_GUILD_SCHEDULED_EVENT_USER\n* BOT_PROHIBITED_ENDPOINT\n* BOT_ONLY_ENDPOINT\n* CANNOT_SEND_EXPLICIT_CONTENT\n* NOT_AUTHORIZED\n* SLOWMODE_RATE_LIMIT\n* ACCOUNT_OWNER_ONLY\n* ANNOUNCEMENT_EDIT_LIMIT_EXCEEDED\n* CHANNEL_HIT_WRITE_RATELIMIT\n* SERVER_HIT_WRITE_RATELIMIT\n* CONTENT_NOT_ALLOWED\n* GUILD_PREMIUM_LEVEL_TOO_LOW\n* MAXIMUM_GUILDS\n* MAXIMUM_FRIENDS\n* MAXIMUM_PINS\n* MAXIMUM_RECIPIENTS\n* MAXIMUM_ROLES\n* MAXIMUM_WEBHOOKS\n* MAXIMUM_EMOJIS\n* MAXIMUM_REACTIONS\n* MAXIMUM_CHANNELS\n* MAXIMUM_ATTACHMENTS\n* MAXIMUM_INVITES\n* MAXIMUM_ANIMATED_EMOJIS\n* MAXIMUM_SERVER_MEMBERS\n* MAXIMUM_NUMBER_OF_SERVER_CATEGORIES\n* GUILD_ALREADY_HAS_TEMPLATE\n* MAXIMUM_THREAD_PARTICIPANTS\n* MAXIMUM_NON_GUILD_MEMBERS_BANS\n* MAXIMUM_BAN_FETCHES\n* MAXIMUM_NUMBER_OF_UNCOMPLETED_GUILD_SCHEDULED_EVENTS_REACHED\n* MAXIMUM_NUMBER_OF_STICKERS_REACHED\n* MAXIMUM_PRUNE_REQUESTS\n* MAXIMUM_GUILD_WIDGET_SETTINGS_UPDATE\n* UNAUTHORIZED\n* ACCOUNT_VERIFICATION_REQUIRED\n* DIRECT_MESSAGES_TOO_FAST\n* REQUEST_ENTITY_TOO_LARGE\n* FEATURE_TEMPORARILY_DISABLED\n* USER_BANNED\n* TARGET_USER_NOT_CONNECTED_TO_VOICE\n* ALREADY_CROSSPOSTED\n* MISSING_ACCESS\n* INVALID_ACCOUNT_TYPE\n* CANNOT_EXECUTE_ON_DM\n* EMBED_DISABLED\n* CANNOT_EDIT_MESSAGE_BY_OTHER\n* CANNOT_SEND_EMPTY_MESSAGE\n* CANNOT_MESSAGE_USER\n* CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL\n* CHANNEL_VERIFICATION_LEVEL_TOO_HIGH\n* OAUTH2_APPLICATION_BOT_ABSENT\n* MAXIMUM_OAUTH2_APPLICATIONS\n* INVALID_OAUTH_STATE\n* MISSING_PERMISSIONS\n* INVALID_AUTHENTICATION_TOKEN\n* NOTE_TOO_LONG\n* INVALID_BULK_DELETE_QUANTITY\n* CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL\n* INVALID_OR_TAKEN_INVITE_CODE\n* CANNOT_EXECUTE_ON_SYSTEM_MESSAGE\n* CANNOT_EXECUTE_ON_CHANNEL_TYPE\n* INVALID_OAUTH_TOKEN\n* MISSING_OAUTH_SCOPE\n* INVALID_WEBHOOK_TOKEN\n* INVALID_ROLE\n* INVALID_RECIPIENTS\n* BULK_DELETE_MESSAGE_TOO_OLD\n* INVALID_FORM_BODY\n* INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT\n* INVALID_API_VERSION\n* FILE_UPLOADED_EXCEEDS_MAXIMUM_SIZE\n* INVALID_FILE_UPLOADED\n* CANNOT_SELF_REDEEM_GIFT\n* INVALID_GUILD\n* PAYMENT_SOURCE_REQUIRED\n* CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL\n* INVALID_STICKER_SENT\n* INVALID_OPERATION_ON_ARCHIVED_THREAD\n* INVALID_THREAD_NOTIFICATION_SETTINGS\n* PARAMETER_EARLIER_THAN_CREATION\n* GUILD_NOT_AVAILABLE_IN_LOCATION\n* GUILD_MONETIZATION_REQUIRED\n* INSUFFICIENT_BOOSTS\n* INVALID_JSON\n* TWO_FACTOR_REQUIRED\n* NO_USERS_WITH_DISCORDTAG_EXIST\n* REACTION_BLOCKED\n* RESOURCE_OVERLOADED\n* STAGE_ALREADY_OPEN\n* CANNOT_REPLY_WITHOUT_READ_MESSAGE_HISTORY_PERMISSION\n* MESSAGE_ALREADY_HAS_THREAD\n* THREAD_LOCKED\n* MAXIMUM_ACTIVE_THREADS\n* MAXIMUM_ACTIVE_ANNOUNCEMENT_THREAD\n* INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE\n* UPLOADED_LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES\n* STICKER_MAXIMUM_FRAMERATE_EXCEEDED\n* STICKER_FRAME_COUNT_EXCEEDS_MAXIMUM_OF_1000_FRAMES\n* LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS_EXCEEDED\n* STICKER_FRAME_RATE_IS_TOO_SMALL_OR_TOO_LARGE\n* STICKER_ANIMATION_DURATION_EXCEEDS_MAXIMUM_OF_5_SECONDS\n* CANNOT_UPDATE_A_FINISHED_EVENT\n* FAILED_TO_CREATE_STAGE_NEEDED_FOR_STAGE_EVENT","see":["{@link https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes}"],"type":[[["string"]]],"meta":{"line":775,"file":"Constants.js","path":"src/util"}},{"name":"DefaultMessageNotificationLevel","description":"The value set for a guild's default message notifications, e.g. `ALL_MESSAGES`. Here are the available types:\n* ALL_MESSAGES\n* ONLY_MENTIONS","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level}"],"type":[[["string"]]],"meta":{"line":1069,"file":"Constants.js","path":"src/util"}},{"name":"MembershipState","description":"The value set for a team member's membership state:\n* INVITED\n* ACCEPTED","see":["{@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}"],"type":[[["string"]]],"meta":{"line":1078,"file":"Constants.js","path":"src/util"}},{"name":"WebhookType","description":"The value set for a webhook's type:\n* Incoming\n* Channel Follower\n* Application","see":["{@link https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types}"],"type":[[["string"]]],"meta":{"line":1087,"file":"Constants.js","path":"src/util"}},{"name":"StickerType","description":"The value set for a sticker's type:\n* STANDARD\n* GUILD","see":["{@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types}"],"type":[[["string"]]],"meta":{"line":1097,"file":"Constants.js","path":"src/util"}},{"name":"StickerFormatType","description":"The value set for a sticker's format type:\n* PNG\n* APNG\n* LOTTIE","see":["{@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types}"],"type":[[["string"]]],"meta":{"line":1106,"file":"Constants.js","path":"src/util"}},{"name":"OverwriteType","description":"An overwrite type:\n* role\n* member","see":["{@link https://discord.com/developers/docs/resources/channel#overwrite-object-overwrite-structure}"],"type":[[["string"]]],"meta":{"line":1116,"file":"Constants.js","path":"src/util"}},{"name":"ApplicationCommandType","description":"The type of an {@link ApplicationCommand} object:\n* CHAT_INPUT\n* USER\n* MESSAGE","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types}"],"type":[[["string"]]],"meta":{"line":1126,"file":"Constants.js","path":"src/util"}},{"name":"ApplicationCommandOptionType","description":"The type of an {@link ApplicationCommandOption} object:\n* SUB_COMMAND\n* SUB_COMMAND_GROUP\n* STRING\n* INTEGER\n* BOOLEAN\n* USER\n* CHANNEL\n* ROLE\n* MENTIONABLE\n* NUMBER","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type}"],"type":[[["string"]]],"meta":{"line":1136,"file":"Constants.js","path":"src/util"}},{"name":"ApplicationCommandPermissionType","description":"The type of an {@link ApplicationCommandPermissions} object:\n* ROLE\n* USER","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type}"],"type":[[["string"]]],"meta":{"line":1165,"file":"Constants.js","path":"src/util"}},{"name":"InteractionType","description":"The type of an {@link Interaction} object:\n* PING\n* APPLICATION_COMMAND\n* MESSAGE_COMPONENT\n* APPLICATION_COMMAND_AUTOCOMPLETE","see":["{@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type}"],"type":[[["string"]]],"meta":{"line":1174,"file":"Constants.js","path":"src/util"}},{"name":"InteractionResponseType","description":"The type of an interaction response:\n* PONG\n* CHANNEL_MESSAGE_WITH_SOURCE\n* DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE\n* DEFERRED_MESSAGE_UPDATE\n* UPDATE_MESSAGE\n* APPLICATION_COMMAND_AUTOCOMPLETE_RESULT","see":["{@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type}"],"type":[[["string"]]],"meta":{"line":1191,"file":"Constants.js","path":"src/util"}},{"name":"MessageComponentType","description":"The type of a message component\n* ACTION_ROW\n* BUTTON\n* SELECT_MENU","see":["{@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}"],"type":[[["string"]]],"meta":{"line":1214,"file":"Constants.js","path":"src/util"}},{"name":"MessageButtonStyle","description":"The style of a message button\n* PRIMARY\n* SECONDARY\n* SUCCESS\n* DANGER\n* LINK","see":["{@link https://discord.com/developers/docs/interactions/message-components#button-object-button-styles}"],"type":[[["string"]]],"meta":{"line":1224,"file":"Constants.js","path":"src/util"}},{"name":"MFALevel","description":"The required MFA level for a guild\n* NONE\n* ELEVATED","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-mfa-level}"],"type":[[["string"]]],"meta":{"line":1236,"file":"Constants.js","path":"src/util"}},{"name":"NSFWLevel","description":"NSFW level of a Guild:\n* DEFAULT\n* EXPLICIT\n* SAFE\n* AGE_RESTRICTED","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level}"],"type":[[["string"]]],"meta":{"line":1245,"file":"Constants.js","path":"src/util"}},{"name":"PrivacyLevel","description":"Privacy level of a {@link StageInstance} object:\n* PUBLIC\n* GUILD_ONLY","see":["{@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level}"],"type":[[["string"]]],"meta":{"line":1256,"file":"Constants.js","path":"src/util"}},{"name":"GuildScheduledEventPrivacyLevel","description":"Privacy level of a {@link GuildScheduledEvent} object:\n* GUILD_ONLY","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level}"],"type":[[["string"]]],"meta":{"line":1265,"file":"Constants.js","path":"src/util"}},{"name":"RelationshipType","description":"Relationship Enum\n* FRIEND\n* BLOCKED\n* INCOMING_REQUEST\n* OUTGOING_REQUEST","see":["{@link https://luna.gitlab.io/discord-unofficial-docs/relationships.html}"],"type":[[["string"]]],"meta":{"line":1273,"file":"Constants.js","path":"src/util"}},{"name":"PremiumTier","description":"The premium tier (Server Boost level) of a guild:\n* NONE\n* TIER_1\n* TIER_2\n* TIER_3","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-premium-tier}"],"type":[[["string"]]],"meta":{"line":1293,"file":"Constants.js","path":"src/util"}},{"name":"GuildScheduledEventStatus","description":"The status of a {@link GuildScheduledEvent}:\n* SCHEDULED\n* ACTIVE\n* COMPLETED\n* CANCELED","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status}"],"type":[[["string"]]],"meta":{"line":1304,"file":"Constants.js","path":"src/util"}},{"name":"GuildScheduledEventEntityType","description":"The entity type of a {@link GuildScheduledEvent}:\n* NONE\n* STAGE_INSTANCE\n* VOICE\n* EXTERNAL","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types}"],"type":[[["string"]]],"meta":{"line":1315,"file":"Constants.js","path":"src/util"}},{"name":"GuildTemplateResolvable","description":"Data that can be resolved to give a template code. This can be:\n* A template code\n* A template URL","type":[[["string"]]],"meta":{"line":23,"file":"DataResolver.js","path":"src/util"}},{"name":"Base64Resolvable","description":"Data that resolves to give a Base64 string, typically for image uploading. This can be:\n* A Buffer\n* A base64 string","type":[[["Buffer"]],[["string"]]],"meta":{"line":73,"file":"DataResolver.js","path":"src/util"}},{"name":"BufferResolvable","description":"Data that can be resolved to give a Buffer. This can be:\n* A Buffer\n* The path to a local file\n* A URL When provided a URL, discord.js will fetch the URL internally in order to create a Buffer.\nThis can pose a security risk when the URL has not been sanitized","type":[[["string"]],[["Buffer"]]],"meta":{"line":90,"file":"DataResolver.js","path":"src/util"}},{"name":"TimestampStylesString","description":"A message formatting timestamp style, as defined in\n[here](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles).\n* `t` Short time format, consisting of hours and minutes, e.g. 16:20.\n* `T` Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30.\n* `d` Short date format, consisting of day, month, and year, e.g. 20/04/2021.\n* `D` Long date format, consisting of day, month, and year, e.g. 20 April 2021.\n* `f` Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20.\n* `F` Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20.\n* `R` Relative time format, consisting of a relative duration format, e.g. 2 months ago.","type":[[["string"]]],"meta":{"line":169,"file":"Formatters.js","path":"src/util"}},{"name":"IntentsResolvable","description":"Data that can be resolved to give a permission number. This can be:\n* A string (see {@link Intents.FLAGS})\n* An intents flag\n* An instance of Intents\n* An array of IntentsResolvable","type":[[["string"]],[["number"]],[["Intents"]],[["Array","<"],["IntentsResolvable",">"]]],"meta":{"line":17,"file":"Intents.js","path":"src/util"}},{"name":"SweepFilter","type":[[["function"]]],"params":[{"name":"collection","description":"The collection being swept","type":[[["LimitedCollection"]]]}],"returns":{"types":[[["function"]],[["null"]]],"description":"Return `null` to skip sweeping, otherwise a function passed to `sweep()`,\nSee {@link [Collection#sweep](https://discord.js.org/#/docs/collection/main/class/Collection?scrollTo=sweep)}\nfor the definition of this function."},"meta":{"line":9,"file":"LimitedCollection.js","path":"src/util"}},{"name":"LimitedCollectionOptions","description":"Options for defining the behavior of a LimitedCollection","type":[[["Object"]]],"props":[{"name":"maxSize","description":"The maximum size of the Collection","optional":true,"default":"Infinity","nullable":true,"type":[[["number"]]]},{"name":"keepOverLimit","description":"A function, which is passed the value and key of an entry, ran to decide\nto keep an entry past the maximum size","optional":true,"default":null,"nullable":true,"type":[[["function"]]]},{"name":"sweepFilter","description":"DEPRECATED: There is no direct alternative to this,\nhowever most of its purpose is fulfilled by {@link Client#sweepers}\nA function ran every `sweepInterval` to determine how to sweep","optional":true,"default":null,"nullable":true,"type":[[["SweepFilter"]]]},{"name":"sweepInterval","description":"DEPRECATED: There is no direct alternative to this,\nhowever most of its purpose is fulfilled by {@link Client#sweepers}\nHow frequently, in seconds, to sweep the collection.","optional":true,"default":0,"nullable":true,"type":[[["number"]]]}],"meta":{"line":17,"file":"LimitedCollection.js","path":"src/util"}},{"name":"RateLimitData","description":"Rate limit data","type":[[["Object"]]],"props":[{"name":"timeout","description":"Time until this rate limit ends, in ms","type":[[["number"]]]},{"name":"limit","description":"The maximum amount of requests of this endpoint","type":[[["number"]]]},{"name":"method","description":"The HTTP method of this request","type":[[["string"]]]},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]]},{"name":"route","description":"The route of the request relative to the HTTP endpoint","type":[[["string"]]]},{"name":"global","description":"Whether this is a global rate limit","type":[[["boolean"]]]}],"meta":{"line":6,"file":"Options.js","path":"src/util"}},{"name":"RateLimitQueueFilter","description":"Whether this rate limit should throw an Error","type":[[["function"]]],"params":[{"name":"rateLimitData","description":"The data of this rate limit","type":[[["RateLimitData"]]]}],"returns":[[["boolean"]],[["Promise","<"],["boolean",">"]]],"meta":{"line":17,"file":"Options.js","path":"src/util"}},{"name":"CacheFactory","type":[[["function"]]],"params":[{"name":"manager","description":"The manager class the cache is being requested from.","type":[[["function"]]]},{"name":"holds","description":"The class that the cache will hold.","type":[[["function"]]]}],"returns":{"types":[[["Collection"]]],"description":"A Collection used to store the cache of the manager."},"meta":{"line":24,"file":"Options.js","path":"src/util"}},{"name":"ClientOptions","description":"Options for a client.","type":[[["Object"]]],"props":[{"name":"shards","description":"The shard's id to run, or an array of shard ids. If not specified,\nthe client will spawn {@link ClientOptions#shardCount} shards. If set to `auto`, it will fetch the\nrecommended amount of shards from Discord and spawn that amount","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]],[["string"]]]},{"name":"checkUpdate","description":"Check for module updates at startup","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"readyStatus","description":"Sync state with Discord Client","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"autoCookie","description":"Automatically add Cookies to Request on startup","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"shardCount","description":"The total amount of shards used by all processes of this bot\n(e.g. recommended shard count, shard count of the ShardingManager)","optional":true,"default":1,"type":[[["number"]]]},{"name":"makeCache","description":"Function to create a cache.\nYou can use your own function, or the {@link Options} class to customize the Collection used for the cache.\nOverriding the cache used in `GuildManager`, `ChannelManager`, `GuildChannelManager`, `RoleManager`,\nand `PermissionOverwriteManager` is unsupported and **will** break functionality","optional":true,"type":[[["CacheFactory"]]]},{"name":"messageCacheLifetime","description":"DEPRECATED: Pass `lifetime` to `sweepers.messages` instead.\nHow long a message should stay in the cache until it is considered sweepable (in seconds, 0 for forever)","optional":true,"default":0,"type":[[["number"]]]},{"name":"messageSweepInterval","description":"DEPRECATED: Pass `interval` to `sweepers.messages` instead.\nHow frequently to remove messages from the cache that are older than the message cache lifetime\n(in seconds, 0 for never)","optional":true,"default":0,"type":[[["number"]]]},{"name":"allowedMentions","description":"Default value for {@link MessageOptions#allowedMentions}","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"invalidRequestWarningInterval","description":"The number of invalid REST requests (those that return\n401, 403, or 429) in a 10 minute window between emitted warnings (0 for no warnings). That is, if set to 500,\nwarnings will be emitted at invalid request number 500, 1000, 1500, and so on.","optional":true,"default":0,"type":[[["number"]]]},{"name":"partials","description":"Structures allowed to be partial. This means events can be emitted even when\nthey're missing all the data for a particular structure. See the \"Partial Structures\" topic on the\n[guide](https://discordjs.guide/popular-topics/partials.html) for some\nimportant usage information, as partials require you to put checks in place when handling data.","optional":true,"default":"['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT']","type":[[["Array","<"],["PartialType",">"]]]},{"name":"restWsBridgeTimeout","description":"Maximum time permitted between REST responses and their\ncorresponding WebSocket events","optional":true,"default":5000,"type":[[["number"]]]},{"name":"restTimeOffset","description":"Extra time in milliseconds to wait before continuing to make REST\nrequests (higher values will reduce rate-limiting errors on bad connections)","optional":true,"default":500,"type":[[["number"]]]},{"name":"restRequestTimeout","description":"Time to wait before cancelling a REST request, in milliseconds","optional":true,"default":15000,"type":[[["number"]]]},{"name":"restSweepInterval","description":"How frequently to delete inactive request buckets, in seconds\n(or 0 for never)","optional":true,"default":60,"type":[[["number"]]]},{"name":"restGlobalRateLimit","description":"How many requests to allow sending per second (0 for unlimited, 50 for\nthe standard global limit used by Discord)","optional":true,"default":0,"type":[[["number"]]]},{"name":"rejectOnRateLimit","description":"Decides how rate limits and pre-emptive throttles\nshould be handled. If this option is an array containing the prefix of the request route (e.g. /channels to match any\nroute starting with /channels, such as /channels/222197033908436994/messages) or a function returning true, a\n{@link RateLimitError} will be thrown. Otherwise the request will be queued for later","optional":true,"type":[[["Array","<"],["string",">"]],[["RateLimitQueueFilter"]]]},{"name":"retryLimit","description":"How many times to retry on 5XX errors\n(Infinity for an indefinite amount of retries)","optional":true,"default":1,"type":[[["number"]]]},{"name":"failIfNotExists","description":"Default value for {@link ReplyMessageOptions#failIfNotExists}","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"userAgentSuffix","description":"An array of additional bot info to be appended to the end of the required\n[User Agent](https://discord.com/developers/docs/reference#user-agent) header","optional":true,"type":[[["Array","<"],["string",">"]]]},{"name":"presence","description":"Presence data to use upon login","optional":true,"default":"{}","type":[[["PresenceData"]]]},{"name":"intents","description":"Intents to enable for this connection","optional":true,"type":[[["IntentsResolvable"]]]},{"name":"waitGuildTimeout","description":"Time in milliseconds that Clients with the GUILDS intent should wait for\nmissing guilds to be recieved before starting the bot. If not specified, the default is 15 seconds.","optional":true,"default":"15_000","type":[[["number"]]]},{"name":"sweepers","description":"Options for cache sweeping","optional":true,"default":"{}","type":[[["SweeperOptions"]]]},{"name":"ws","description":"Options for the WebSocket","optional":true,"type":[[["WebsocketOptions"]]]},{"name":"http","description":"HTTP options","optional":true,"type":[[["HTTPOptions"]]]}],"meta":{"line":31,"file":"Options.js","path":"src/util"}},{"name":"SweeperOptions","description":"Options for {@link Sweepers} defining the behavior of cache sweeping","type":[[["Object","<"],["SweeperKey",", "],["SweepOptions",">"]]],"meta":{"line":86,"file":"Options.js","path":"src/util"}},{"name":"SweepOptions","description":"Options for sweeping a single type of item from cache","type":[[["Object"]]],"props":[{"name":"interval","description":"The interval (in seconds) at which to perform sweeping of the item","type":[[["number"]]]},{"name":"lifetime","description":"How long an item should stay in cache until it is considered sweepable.\nThis property is only valid for the `invites`, `messages`, and `threads` keys. The `filter` property\nis mutually exclusive to this property and takes priority","optional":true,"type":[[["number"]]]},{"name":"filter","description":"The function used to determine the function passed to the sweep method\nThis property is optional when the key is `invites`, `messages`, or `threads` and `lifetime` is set","type":[[["GlobalSweepFilter"]]]}],"meta":{"line":91,"file":"Options.js","path":"src/util"}},{"name":"WebsocketOptions","description":"WebSocket options (these are left as snake_case to match the API)","type":[[["Object"]]],"props":[{"name":"large_threshold","description":"Number of members in a guild after which offline users will no longer be\nsent in the initial guild member list, must be between 50 and 250","optional":true,"default":50,"type":[[["number"]]]}],"meta":{"line":102,"file":"Options.js","path":"src/util"}},{"name":"AgentOptions","description":"HTTPS Agent options.","see":["{@link https://nodejs.org/api/https.html#https_class_https_agent}","{@link https://nodejs.org/api/http.html#http_new_agent_options}"],"type":[[["Object"]]],"meta":{"line":109,"file":"Options.js","path":"src/util"}},{"name":"HTTPOptions","description":"HTTP options","type":[[["Object"]]],"props":[{"name":"version","description":"API version to use","optional":true,"default":9,"type":[[["number"]]]},{"name":"agent","description":"HTTPS Agent options","optional":true,"default":"{}","type":[[["AgentOptions"]]]},{"name":"api","description":"Base URL of the API","optional":true,"default":"'https://discord.com/api'","type":[[["string"]]]},{"name":"cdn","description":"Base URL of the CDN","optional":true,"default":"'https://cdn.discordapp.com'","type":[[["string"]]]},{"name":"invite","description":"Base URL of invites","optional":true,"default":"'https://discord.gg'","type":[[["string"]]]},{"name":"template","description":"Base URL of templates","optional":true,"default":"'https://discord.new'","type":[[["string"]]]},{"name":"headers","description":"Additional headers to send for all API requests","optional":true,"type":[[["Object"]]]},{"name":"scheduledEvent","description":"Base URL of guild scheduled events","optional":true,"default":"'https://discord.com/events'","type":[[["string"]]]}],"meta":{"line":116,"file":"Options.js","path":"src/util"}},{"name":"PermissionResolvable","description":"Data that can be resolved to give a permission number. This can be:\n* A string (see {@link Permissions.FLAGS})\n* A permission number\n* An instance of Permissions\n* An Array of PermissionResolvable","type":[[["string"]],[["bigint"]],[["Permissions"]],[["Array","<"],["PermissionResolvable",">"]]],"meta":{"line":18,"file":"Permissions.js","path":"src/util"}},{"name":"Snowflake","description":"A {@link https://developer.twitter.com/en/docs/twitter-ids Twitter snowflake},\nexcept the epoch is 2015-01-01T00:00:00.000Z.\n\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n```\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```","type":[[["string"]]],"meta":{"line":11,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"DeconstructedSnowflake","description":"A deconstructed snowflake.","type":[[["Object"]]],"props":[{"name":"timestamp","description":"Timestamp the snowflake was created","type":[[["number"]]]},{"name":"date","description":"Date the snowflake was created","type":[[["Date"]]]},{"name":"workerId","description":"The worker's id in the snowflake","type":[[["number"]]]},{"name":"processId","description":"The process's id in the snowflake","type":[[["number"]]]},{"name":"increment","description":"Increment in the snowflake","type":[[["number"]]]},{"name":"binary","description":"Binary representation of the snowflake","type":[[["string"]]]}],"meta":{"line":43,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"GlobalSweepFilter","type":[[["function"]]],"returns":{"types":[[["function"]],[["null"]]],"description":"Return `null` to skip sweeping, otherwise a function passed to `sweep()`,\nSee {@link [Collection#sweep](https://discord.js.org/#/docs/collection/main/class/Collection?scrollTo=sweep)}\nfor the definition of this function."},"meta":{"line":7,"file":"Sweepers.js","path":"src/util"}},{"name":"LifetimeFilterOptions","description":"Options for generating a filter function based on lifetime","type":[[["Object"]]],"props":[{"name":"lifetime","description":"How long, in seconds, an entry should stay in the collection\nbefore it is considered sweepable.","optional":true,"default":14400,"type":[[["number"]]]},{"name":"getComparisonTimestamp","description":"A function that takes an entry, key,\nand the collection and returns a timestamp to compare against in order to determine the lifetime of the entry.","optional":true,"default":"e => e?.createdTimestamp","type":[[["function"]]]},{"name":"excludeFromSweep","description":"A function that takes an entry, key, and the collection\nand returns a boolean, `true` when the entry should not be checked for sweepability.","optional":true,"default":"() => false","type":[[["function"]]]}],"meta":{"line":284,"file":"Sweepers.js","path":"src/util"}},{"name":"SweepEventOptions","description":"Configuration options for emitting the cache sweep client event","access":"private","type":[[["Object"]]],"props":[{"name":"emit","description":"Whether to emit the client event in this method","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"outputName","description":"A name to output in the client event if it should differ from the key","optional":true,"type":[[["string"]]]}],"meta":{"line":366,"file":"Sweepers.js","path":"src/util"}},{"name":"SystemChannelFlagsResolvable","description":"Data that can be resolved to give a system channel flag bitfield. This can be:\n* A string (see {@link SystemChannelFlags.FLAGS})\n* A system channel flag\n* An instance of SystemChannelFlags\n* An Array of SystemChannelFlagsResolvable","type":[[["string"]],[["number"]],[["SystemChannelFlags"]],[["Array","<"],["SystemChannelFlagsResolvable",">"]]],"meta":{"line":26,"file":"SystemChannelFlags.js","path":"src/util"}},{"name":"SplitOptions","description":"Options for splitting a message.","type":[[["Object"]]],"props":[{"name":"maxLength","description":"Maximum character length per message piece","optional":true,"default":2000,"type":[[["number"]]]},{"name":"char","description":"Character(s) or Regex(es) to split the message with,\nan array can be used to split multiple times","optional":true,"default":"'\\n'","type":[[["string"]],[["Array","<"],["string",">"]],[["RegExp"]],[["Array","<"],["RegExp",">"]]]},{"name":"prepend","description":"Text to prepend to every piece except the first","optional":true,"default":"''","type":[[["string"]]]},{"name":"append","description":"Text to append to every piece except the last","optional":true,"default":"''","type":[[["string"]]]}],"meta":{"line":59,"file":"Util.js","path":"src/util"}},{"name":"EscapeMarkdownOptions","description":"Options used to escape markdown.","type":[[["Object"]]],"props":[{"name":"codeBlock","description":"Whether to escape code blocks or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"inlineCode","description":"Whether to escape inline code or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"bold","description":"Whether to escape bolds or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"italic","description":"Whether to escape italics or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"underline","description":"Whether to escape underlines or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"strikethrough","description":"Whether to escape strikethroughs or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"spoiler","description":"Whether to escape spoilers or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"codeBlockContent","description":"Whether to escape text inside code blocks or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"inlineCodeContent","description":"Whether to escape text inside inline code or not","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":104,"file":"Util.js","path":"src/util"}},{"name":"FetchRecommendedShardsOptions","type":[[["Object"]]],"props":[{"name":"guildsPerShard","description":"Number of guilds assigned per shard","optional":true,"default":1000,"type":[[["number"]]]},{"name":"multipleOf","description":"The multiple the shard count should round up to. (16 for large bot sharding)","optional":true,"default":1,"type":[[["number"]]]}],"meta":{"line":261,"file":"Util.js","path":"src/util"}},{"name":"MakeErrorOptions","description":"Options used to make an error object.","type":[[["Object"]]],"props":[{"name":"name","description":"Error type","type":[[["string"]]]},{"name":"message","description":"Message for the error","type":[[["string"]]]},{"name":"stack","description":"Stack for the error","type":[[["string"]]]}],"meta":{"line":348,"file":"Util.js","path":"src/util"}},{"name":"ColorResolvable","description":"Can be a number, hex string, an RGB array like:\n```js\n[255, 0, 255] // purple\n```\nor one of the following strings:\n- `DEFAULT`\n- `WHITE`\n- `AQUA`\n- `GREEN`\n- `BLUE`\n- `YELLOW`\n- `PURPLE`\n- `LUMINOUS_VIVID_PINK`\n- `FUCHSIA`\n- `GOLD`\n- `ORANGE`\n- `RED`\n- `GREY`\n- `NAVY`\n- `DARK_AQUA`\n- `DARK_GREEN`\n- `DARK_BLUE`\n- `DARK_PURPLE`\n- `DARK_VIVID_PINK`\n- `DARK_GOLD`\n- `DARK_ORANGE`\n- `DARK_RED`\n- `DARK_GREY`\n- `DARKER_GREY`\n- `LIGHT_GREY`\n- `DARK_NAVY`\n- `BLURPLE`\n- `GREYPLE`\n- `DARK_BUT_NOT_BLACK`\n- `NOT_QUITE_BLACK`\n- `RANDOM`","type":[[["string"]],[["number"]],[["Array","<"],["number",">"]]],"meta":{"line":421,"file":"Util.js","path":"src/util"}}],"externals":[{"name":"Collection","see":["{@link https://discord.js.org/#/docs/collection/main/class/Collection}"],"meta":{"line":747,"file":"Client.js","path":"src/client"}},{"name":"Inflate","see":["{@link https://www.npmjs.com/package/zlib-sync}"],"meta":{"line":108,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"CloseEvent","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent}"],"meta":{"line":322,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ErrorEvent","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent}"],"meta":{"line":327,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"MessageEvent","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent}"],"meta":{"line":332,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"APIApplicationCommandPermissions","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure}"],"meta":{"line":422,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"APIError","see":["{@link https://discord.com/developers/docs/reference#error-messages}"],"meta":{"line":79,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"HTTPMethod","see":["{@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods}"],"meta":{"line":371,"file":"RequestHandler.js","path":"src/rest"}},{"name":"Response","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/Response}"],"meta":{"line":376,"file":"RequestHandler.js","path":"src/rest"}},{"name":"APIApplicationCommand","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure}"],"meta":{"line":574,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"APIApplicationCommandOption","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure}"],"meta":{"line":579,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"APIInteractionDataResolved","see":["{@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}"],"meta":{"line":192,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"APIChannel","see":["{@link https://discord.com/developers/docs/resources/channel#channel-object}"],"meta":{"line":237,"file":"Channel.js","path":"src/structures"}},{"name":"APIPresence","see":["{@link https://discord.com/developers/docs/rich-presence/how-to#updating-presence-update-presence-payload-fields}"],"meta":{"line":74,"file":"ClientPresence.js","path":"src/structures"}},{"name":"APIEmoji","see":["{@link https://discord.com/developers/docs/resources/emoji#emoji-object}"],"meta":{"line":145,"file":"Emoji.js","path":"src/structures"}},{"name":"APIGuild","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object}"],"meta":{"line":1589,"file":"Guild.js","path":"src/structures"}},{"name":"APIGuildMember","see":["{@link https://discord.com/developers/docs/resources/guild#guild-member-object}"],"meta":{"line":483,"file":"GuildMember.js","path":"src/structures"}},{"name":"APIMessageComponent","see":["{@link https://discord.com/developers/docs/interactions/message-components#component-object}"],"meta":{"line":98,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"APIAttachment","see":["{@link https://discord.com/developers/docs/resources/channel#attachment-object}"],"meta":{"line":168,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"APIMessageSelectMenu","see":["{@link https://discord.com/developers/docs/interactions/message-components#select-menu-object}"],"meta":{"line":110,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"APIMessageButton","see":["{@link https://discord.com/developers/docs/interactions/message-components#button-object}"],"meta":{"line":115,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"APIEmbed","see":["{@link https://discord.com/developers/docs/resources/channel#embed-object}"],"meta":{"line":572,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"APIMessage","see":["{@link https://discord.com/developers/docs/resources/channel#message-object}"],"meta":{"line":310,"file":"MessagePayload.js","path":"src/structures"}},{"name":"APIRole","see":["{@link https://discord.com/developers/docs/topics/permissions#role-object}"],"meta":{"line":509,"file":"Role.js","path":"src/structures"}},{"name":"APISticker","see":["{@link https://discord.com/developers/docs/resources/sticker#sticker-object}"],"meta":{"line":309,"file":"Sticker.js","path":"src/structures"}},{"name":"APIUser","see":["{@link https://discord.com/developers/docs/resources/user#user-object}"],"meta":{"line":478,"file":"User.js","path":"src/structures"}},{"name":"Stream","see":["{@link https://nodejs.org/api/stream.html}"],"meta":{"line":99,"file":"DataResolver.js","path":"src/util"}}]}
\ No newline at end of file
+{"meta":{"generator":"0.11.1","format":20,"date":1652515352868},"custom":{"general":{"name":"General","files":{"welcome":{"name":"Welcome","type":"md","content":"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n## About\r\n\r\nWelcome to `discord.js-selfbot-v13@v2`, based on `discord.js@13.7.0`\r\n\r\n- discord.js-selfbot-v13 is a [Node.js](https://nodejs.org) module that allows user accounts to interact with the Discord API v9.\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n### I don't take any responsibility for blocked Discord accounts that used this module.\r\n### Using this on a user account is prohibited by the [Discord TOS](https://discord.com/terms) and can lead to the account block.\r\n\r\n\r\n### [Document Website (recommend)](https://www.discordjs-self-v13.cf)\r\nBut if you want to see some specific notes (with pictures) you can go to [here](https://github.com/aiko-chan-ai/discord.js-selfbot-v13/blob/main/Document/DOCUMENT.md) or go to [wiki](https://github.com/aiko-chan-ai/discord.js-selfbot-v13/wiki)\r\n### [Risky actions](https://github.com/Merubokkusu/Discord-S.C.U.M/issues/66)\r\n\r\n## Checklist\r\n- [x] Send + receive messages with Attachment, Embed (WebEmbed), etc.\r\n- [x] Setting Discord App (Missing a lot of functions)\r\n- [X] Requests (add friends, join guilds, etc.)\r\n- [X] Profile Editing (Name, Status, Avatar, Bio, Rich-Presence, etc.)\r\n- [X] Interactions (slash commands, buttons, etc.)\r\n- [X] Voice Channel (Join, Leave, Speak, etc.)\r\n- [X] Documentation\r\n- [ ] Add more guild http api wraps\r\n- [ ] Audio / Video call \r\n- [ ] Everything\r\n\r\n## Installation\r\n\r\n**Node.js 16.6.0 or newer is required**\r\n\r\n```sh-session\r\nnpm install discord.js-selfbot-v13@latest\r\n```\r\n## Example\r\n\r\n```js\r\nconst { Client } = require('discord.js-selfbot-v13');\r\nconst client = new Client(); // All partials are loaded automatically\r\n\r\nclient.on('ready', async () => {\r\n console.log(`${client.user.username} is ready!`);\r\n})\r\n\r\nclient.login('token');\r\n```\r\n\r\nGithub Repo (Play Youtube music) [Here](https://github.com/aiko-chan-ai/Selfbot-Example)\r\n\r\n## Get Token ?\r\n\r\nCopy code to console Discord [Ctrl + Shift + I]\r\n\r\n```js\r\nwindow.webpackChunkdiscord_app.push([\r\n [Math.random()],\r\n {},\r\n req => {\r\n for (const m of Object.keys(req.c)\r\n .map(x => req.c[x].exports)\r\n .filter(x => x)) {\r\n if (m.default && m.default.getToken !== undefined) {\r\n return copy(m.default.getToken());\r\n }\r\n if (m.getToken !== undefined) {\r\n return copy(m.getToken());\r\n }\r\n }\r\n },\r\n]);\r\nconsole.log('%cWorked!', 'font-size: 50px');\r\nconsole.log(`%cYou now have your token in the clipboard!`, 'font-size: 16px');\r\n```\r\n\r\nCredit: [hxr404](https://github.com/hxr404/Discord-Console-hacks)\r\n\r\n## Links Discord.js\r\n\r\n- [Website](https://discord.js.org/) ([source](https://github.com/discordjs/website))\r\n- [Documentation](https://discord.js.org/#/docs)\r\n- [Guide](https://discordjs.guide/) ([source](https://github.com/discordjs/guide))\r\n See also the [Update Guide](https://discordjs.guide/additional-info/changes-in-v13.html), including updated and removed items in the library.\r\n- [discord.js Discord server](https://discord.gg/djs)\r\n- [Discord API Discord server](https://discord.gg/discord-api)\r\n- [GitHub](https://github.com/discordjs/discord.js)\r\n- [npm](https://www.npmjs.com/package/discord.js)\r\n- [Related libraries](https://discord.com/developers/docs/topics/community-resources#libraries)\r\n\r\n## Contributing Discord.js\r\n\r\n- Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the\r\n[documentation](https://discord.js.org/#/docs). \r\n- See [the contribution guide](https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md) if you'd like to submit a PR.\r\n\r\n## Need help?\r\nContact me in Discord: [Shiraori#1782](https://discord.com/users/721746046543331449)\r\n\r\n## Credits\r\n- [Discord.js](https://github.com/discordjs/discord.js)\r\n- [Discord S.C.U.M](https://github.com/Merubokkusu/Discord-S.C.U.M)\r\n- [Discord Console Hack](https://github.com/hxr404/Discord-Console-hacks)\r\n- And the people who submitted the issue, colab, ...\r\n\r\n## Vietnamese\r\nĐược tạo bởi người Việt Nam, dựa trên Discord API v9, đây là một trong những module selfbot được hỗ trợ tốt nhất.\r\n","path":"README.md"}}}},"classes":[{"name":"BaseClient","description":"The base class for all clients.","extends":[[["EventEmitter"]]],"props":[{"name":"options","description":"The options the client was instantiated with","type":[[["ClientOptions"]]],"meta":{"line":20,"file":"BaseClient.js","path":"src/client"}},{"name":"rest","description":"The REST manager of the client","access":"private","type":[[["RESTManager"]]],"meta":{"line":27,"file":"BaseClient.js","path":"src/client"}},{"name":"api","description":"API shortcut","access":"private","readonly":true,"type":[[["Object"]]],"meta":{"line":36,"file":"BaseClient.js","path":"src/client"}}],"methods":[{"name":"destroy","description":"Destroys all assets used by the base client.","returns":[[["void"]]],"meta":{"line":44,"file":"BaseClient.js","path":"src/client"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one, if they are not zero.","access":"private","meta":{"line":52,"file":"BaseClient.js","path":"src/client"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one, if they are not zero.","access":"private","meta":{"line":63,"file":"BaseClient.js","path":"src/client"}}],"events":[{"name":"debug","description":"Emitted for general debugging information.","params":[{"name":"info","description":"The debug information","type":[[["string"]]]}],"meta":{"line":77,"file":"BaseClient.js","path":"src/client"}},{"name":"rateLimit","description":"Emitted when the client hits a rate limit while making a request","params":[{"name":"rateLimitData","description":"Object containing the rate limit info","type":[[["RateLimitData"]]]}],"meta":{"line":126,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiRequest","description":"Emitted before every API request.\nThis event can emit several times for the same request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that is about to be sent","type":[[["APIRequest"]]]}],"meta":{"line":177,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiResponse","description":"Emitted after every API request has received a response.\nThis event does not necessarily correlate to completion of the request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that triggered this response","type":[[["APIRequest"]]]},{"name":"response","description":"The response received from the Discord API","type":[[["Response"]]]}],"meta":{"line":209,"file":"RequestHandler.js","path":"src/rest"}},{"name":"invalidRequestWarning","description":"Emitted periodically when the process sends invalid requests to let users avoid the\n10k invalid requests in 10 minutes threshold that causes a ban","params":[{"name":"invalidRequestWarningData","description":"Object containing the invalid request info","type":[[["InvalidRequestWarningData"]]]}],"meta":{"line":286,"file":"RequestHandler.js","path":"src/rest"}}],"meta":{"line":12,"file":"BaseClient.js","path":"src/client"}},{"name":"Client","description":"The main hub for interacting with the Discord API, and the starting point for any bot.","extends":[[["BaseClient"]]],"construct":{"name":"Client","params":[{"name":"options","description":"Options for the client","type":[[["ClientOptions"]]]}]},"props":[{"name":"_cleanups","description":"Functions called when a cache is garbage collected or the Client is destroyed","access":"private","type":[[["Set","<"],["function","()>"]]],"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"name":"_finalizers","description":"The finalizers used to cleanup items.","access":"private","type":[[["FinalizationRegistry"]]],"meta":{"line":95,"file":"Client.js","path":"src/client"}},{"name":"ws","description":"The WebSocket manager of the client","type":[[["WebSocketManager"]]],"meta":{"line":101,"file":"Client.js","path":"src/client"}},{"name":"actions","description":"The action manager of the client","access":"private","type":[[["ActionsManager"]]],"meta":{"line":108,"file":"Client.js","path":"src/client"}},{"name":"voice","description":"The voice manager of the client","type":[[["ClientVoiceManager"]]],"meta":{"line":114,"file":"Client.js","path":"src/client"}},{"name":"shard","description":"Shard helpers for the client (only if the process was spawned from a {@link ShardingManager})","nullable":true,"type":[[["ShardClientUtil"]]],"meta":{"line":120,"file":"Client.js","path":"src/client"}},{"name":"users","description":"All of the {@link User} objects that have been cached at any point, mapped by their ids","type":[[["UserManager"]]],"meta":{"line":128,"file":"Client.js","path":"src/client"}},{"name":"relationships","description":"All of the relationships {@link User}","type":[[["RelationshipsManager"]]],"meta":{"line":135,"file":"Client.js","path":"src/client"}},{"name":"setting","description":"All of the settings {@link Object}","type":[[["ClientUserSettingManager"]]],"meta":{"line":140,"file":"Client.js","path":"src/client"}},{"name":"guilds","description":"All of the guilds the client is currently handling, mapped by their ids -\nas long as sharding isn't being used, this will be *every* guild the bot is a member of","type":[[["GuildManager"]]],"meta":{"line":146,"file":"Client.js","path":"src/client"}},{"name":"channels","description":"All of the {@link Channel}s that the client is currently handling, mapped by their ids -\nas long as sharding isn't being used, this will be *every* channel in *every* guild the bot\nis a member of. Note that DM channels will not be initially cached, and thus not be present\nin the Manager without their explicit fetching or use.","type":[[["ChannelManager"]]],"meta":{"line":155,"file":"Client.js","path":"src/client"}},{"name":"sweepers","description":"The sweeping functions and their intervals used to periodically sweep caches","type":[[["Sweepers"]]],"meta":{"line":161,"file":"Client.js","path":"src/client"}},{"name":"presence","description":"The presence of the Client","access":"private","type":[[["ClientPresence"]]],"meta":{"line":168,"file":"Client.js","path":"src/client"}},{"name":"token","description":"Authorization token for the logged in bot.\nIf present, this defaults to `process.env.DISCORD_TOKEN` when instantiating the client\nThis should be kept private at all times.","nullable":true,"type":[[["string"]]],"meta":{"line":178,"file":"Client.js","path":"src/client"}},{"name":"user","description":"User that the client is logged in as","nullable":true,"type":[[["ClientUser"]]],"meta":{"line":187,"file":"Client.js","path":"src/client"}},{"name":"application","description":"The application of this bot","nullable":true,"type":[[["ClientApplication"]]],"meta":{"line":193,"file":"Client.js","path":"src/client"}},{"name":"readyAt","description":"Time at which the client was last regarded as being in the `READY` state\n(each time the client disconnects and successfully reconnects, this will be overwritten)","nullable":true,"type":[[["Date"]]],"meta":{"line":200,"file":"Client.js","path":"src/client"}},{"name":"password","description":"Password cache","nullable":true,"type":[[["string"]]],"meta":{"line":206,"file":"Client.js","path":"src/client"}},{"name":"emojis","description":"All custom emojis that the client has access to, mapped by their ids","readonly":true,"type":[[["BaseGuildEmojiManager"]]],"meta":{"line":225,"file":"Client.js","path":"src/client"}},{"name":"readyTimestamp","description":"Timestamp of the time the client was last `READY` at","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":238,"file":"Client.js","path":"src/client"}},{"name":"uptime","description":"How long it has been since the client last entered the `READY` state in milliseconds","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":247,"file":"Client.js","path":"src/client"}},{"name":"options","description":"The options the client was instantiated with","type":[[["ClientOptions"]]],"meta":{"line":20,"file":"BaseClient.js","path":"src/client"}},{"name":"rest","description":"The REST manager of the client","access":"private","type":[[["RESTManager"]]],"meta":{"line":27,"file":"BaseClient.js","path":"src/client"}},{"name":"api","description":"API shortcut","access":"private","readonly":true,"type":[[["Object"]]],"meta":{"line":36,"file":"BaseClient.js","path":"src/client"}}],"methods":[{"name":"updateCookie","description":"Update Cloudflare Cookie and Discord Fingerprint","async":true,"meta":{"line":254,"file":"Client.js","path":"src/client"}},{"name":"login","description":"Logs the client in, establishing a WebSocket connection to Discord.","examples":["client.login('my token');"],"params":[{"name":"token","description":"Token of the account to log in with","optional":true,"default":"this.token","type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["string",">"]]],"description":"Token of the account used"},"meta":{"line":300,"file":"Client.js","path":"src/client"}},{"name":"QRLogin","description":"Sign in with the QR code on your phone.","examples":["client.QRLogin();"],"params":[{"name":"debug","description":"Debug mode","default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["DiscordAuthWebsocket"]]],"description":"nothing :))"},"meta":{"line":337,"file":"Client.js","path":"src/client"}},{"name":"isReady","description":"Returns whether the client has logged in, indicative of being able to access\nproperties such as `user` and `application`.","returns":[[["boolean"]]],"meta":{"line":349,"file":"Client.js","path":"src/client"}},{"name":"destroy","description":"Logs out, terminates the connection to Discord, and destroys the client.","returns":[[["void"]]],"meta":{"line":357,"file":"Client.js","path":"src/client"}},{"name":"fetchInvite","description":"Obtains an invite from Discord.","examples":["client.fetchInvite('https://discord.gg/djs')\n .then(invite => console.log(`Obtained invite with code: ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"invite","description":"Invite code or URL","type":[[["InviteResolvable"]]]},{"name":"options","description":"Options for fetching the invite","optional":true,"type":[[["ClientFetchInviteOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":387,"file":"Client.js","path":"src/client"}},{"name":"redeemNitro","description":"Get Nitro","params":[{"name":"nitro","description":"Nitro Code\ndiscordapp.com/gifts/code | discord.gift/code","type":[[["string","<"],["NitroCode",">"]]]}],"async":true,"returns":[[["Promise"]]],"meta":{"line":409,"file":"Client.js","path":"src/client"}},{"name":"fetchGuildTemplate","description":"Obtains a template from Discord.","examples":["client.fetchGuildTemplate('https://discord.new/FKvmczH2HyUf')\n .then(template => console.log(`Obtained template with code: ${template.code}`))\n .catch(console.error);"],"params":[{"name":"template","description":"Template code or URL","type":[[["GuildTemplateResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":427,"file":"Client.js","path":"src/client"}},{"name":"fetchWebhook","description":"Obtains a webhook from Discord.","examples":["client.fetchWebhook('id', 'token')\n .then(webhook => console.log(`Obtained webhook with name: ${webhook.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]]},{"name":"token","description":"Token for the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Webhook",">"]]],"meta":{"line":443,"file":"Client.js","path":"src/client"}},{"name":"fetchVoiceRegions","description":"Obtains the available voice regions from Discord.","examples":["client.fetchVoiceRegions()\n .then(regions => console.log(`Available regions are: ${regions.map(region => region.name).join(', ')}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["string",", "],["VoiceRegion",">>"]]],"meta":{"line":456,"file":"Client.js","path":"src/client"}},{"name":"fetchSticker","description":"Obtains a sticker from Discord.","examples":["client.fetchSticker('id')\n .then(sticker => console.log(`Obtained sticker with name: ${sticker.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The sticker's id","type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":472,"file":"Client.js","path":"src/client"}},{"name":"fetchPremiumStickerPacks","description":"Obtains the list of sticker packs available to Nitro subscribers from Discord.","examples":["client.fetchPremiumStickerPacks()\n .then(packs => console.log(`Available sticker packs are: ${packs.map(pack => pack.name).join(', ')}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["StickerPack",">>"]]],"meta":{"line":485,"file":"Client.js","path":"src/client"}},{"name":"_finalize","description":"A last ditch cleanup function for garbage collection.","access":"private","params":[{"name":"options.cleanup","description":"The function called to GC","type":[[["function"]]]},{"name":"options.message","description":"The message to send after a successful GC","optional":true,"type":[[["string"]]]},{"name":"options.name","description":"The name of the item being GCed","optional":true,"type":[[["string"]]]}],"meta":{"line":496,"file":"Client.js","path":"src/client"}},{"name":"sweepMessages","description":"Sweeps all text-based channels' messages and removes the ones older than the max message lifetime.\nIf the message has been edited, the time of the edit is used rather than the time of the original message.","examples":["// Remove all messages older than 1800 seconds from the messages cache\nconst amount = client.sweepMessages(1800);\nconsole.log(`Successfully removed ${amount} messages from the cache.`);"],"params":[{"name":"lifetime","description":"Messages that are older than this (in seconds)\nwill be removed from the caches. The default is based on {@link ClientOptions#messageCacheLifetime}","optional":true,"default":"this.options.messageCacheLifetime","type":[[["number"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of messages that were removed from the caches,\nor -1 if the message cache lifetime is unlimited"},"meta":{"line":520,"file":"Client.js","path":"src/client"}},{"name":"fetchGuildPreview","description":"Obtains a guild preview from Discord, available for all guilds the bot is in and all Discoverable guilds.","params":[{"name":"guild","description":"The guild to fetch the preview for","type":[[["GuildResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["GuildPreview",">"]]],"meta":{"line":539,"file":"Client.js","path":"src/client"}},{"name":"fetchGuildWidget","description":"Obtains the widget data of a guild from Discord, available for guilds with the widget enabled.","params":[{"name":"guild","description":"The guild to fetch the widget data for","type":[[["GuildResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["Widget",">"]]],"meta":{"line":551,"file":"Client.js","path":"src/client"}},{"name":"generateInvite","description":"Generates a link that can be used to invite the bot to a guild.","examples":["const link = client.generateInvite({\n scopes: ['applications.commands'],\n});\nconsole.log(`Generated application invite link: ${link}`);","const link = client.generateInvite({\n permissions: [\n Permissions.FLAGS.SEND_MESSAGES,\n Permissions.FLAGS.MANAGE_GUILD,\n Permissions.FLAGS.MENTION_EVERYONE,\n ],\n scopes: ['bot'],\n});\nconsole.log(`Generated bot invite link: ${link}`);"],"params":[{"name":"options","description":"Options for the invite","optional":true,"default":"{}","type":[[["InviteGenerationOptions"]]]}],"returns":[[["string"]]],"meta":{"line":587,"file":"Client.js","path":"src/client"}},{"name":"_eval","description":"Calls {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval} on a script\nwith the client as `this`.","access":"private","params":[{"name":"script","description":"Script to eval","type":[[["string"]]]}],"returns":[["*"]],"meta":{"line":642,"file":"Client.js","path":"src/client"}},{"name":"_validateOptions","description":"Validates the client options.","access":"private","params":[{"name":"options","description":"Options to validate","optional":true,"default":"this.options","type":[[["ClientOptions"]]]}],"meta":{"line":675,"file":"Client.js","path":"src/client"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#incrementMaxListeners","inherited":true,"meta":{"line":52,"file":"BaseClient.js","path":"src/client"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#decrementMaxListeners","inherited":true,"meta":{"line":63,"file":"BaseClient.js","path":"src/client"}}],"events":[{"name":"channelCreate","description":"Emitted whenever a guild channel is created.","params":[{"name":"channel","description":"The channel that was created","type":[[["GuildChannel"]]]}],"meta":{"line":12,"file":"ChannelCreate.js","path":"src/client/actions"}},{"name":"channelDelete","description":"Emitted whenever a channel is deleted.","params":[{"name":"channel","description":"The channel that was deleted","type":[[["DMChannel"]],[["GuildChannel"]]]}],"meta":{"line":27,"file":"ChannelDelete.js","path":"src/client/actions"}},{"name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","params":[{"name":"ban","description":"The ban that occurred","type":[[["GuildBan"]]]}],"meta":{"line":11,"file":"GuildBanAdd.js","path":"src/client/actions"}},{"name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","params":[{"name":"ban","description":"The ban that was removed","type":[[["GuildBan"]]]}],"meta":{"line":12,"file":"GuildBanRemove.js","path":"src/client/actions"}},{"name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","params":[{"name":"guild","description":"The guild that has become unavailable","type":[[["Guild"]]]}],"meta":{"line":23,"file":"GuildDelete.js","path":"src/client/actions"}},{"name":"guildDelete","description":"Emitted whenever a guild kicks the client or the guild is deleted/left.","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"meta":{"line":44,"file":"GuildDelete.js","path":"src/client/actions"}},{"name":"emojiCreate","description":"Emitted whenever a custom emoji is created in a guild.","params":[{"name":"emoji","description":"The emoji that was created","type":[[["GuildEmoji"]]]}],"meta":{"line":10,"file":"GuildEmojiCreate.js","path":"src/client/actions"}},{"name":"emojiDelete","description":"Emitted whenever a custom emoji is deleted in a guild.","params":[{"name":"emoji","description":"The emoji that was deleted","type":[[["GuildEmoji"]]]}],"meta":{"line":11,"file":"GuildEmojiDelete.js","path":"src/client/actions"}},{"name":"emojiUpdate","description":"Emitted whenever a custom emoji is updated in a guild.","params":[{"name":"oldEmoji","description":"The old emoji","type":[[["GuildEmoji"]]]},{"name":"newEmoji","description":"The new emoji","type":[[["GuildEmoji"]]]}],"meta":{"line":9,"file":"GuildEmojiUpdate.js","path":"src/client/actions"}},{"name":"guildIntegrationsUpdate","description":"Emitted whenever a guild integration is updated","params":[{"name":"guild","description":"The guild whose integrations were updated","type":[[["Guild"]]]}],"meta":{"line":10,"file":"GuildIntegrationsUpdate.js","path":"src/client/actions"}},{"name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","params":[{"name":"member","description":"The member that has left/been kicked from the guild","type":[[["GuildMember"]]]}],"meta":{"line":18,"file":"GuildMemberRemove.js","path":"src/client/actions"}},{"name":"guildMemberUpdate","description":"Emitted whenever a guild member changes - i.e. new role, removed role, nickname.","params":[{"name":"oldMember","description":"The member before the update","type":[[["GuildMember"]]]},{"name":"newMember","description":"The member after the update","type":[[["GuildMember"]]]}],"meta":{"line":23,"file":"GuildMemberUpdate.js","path":"src/client/actions"}},{"name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large guild.","params":[{"name":"member","description":"The member that became available","type":[[["GuildMember"]]]}],"meta":{"line":32,"file":"GuildMemberUpdate.js","path":"src/client/actions"}},{"name":"roleCreate","description":"Emitted whenever a role is created.","params":[{"name":"role","description":"The role that was created","type":[[["Role"]]]}],"meta":{"line":14,"file":"GuildRoleCreate.js","path":"src/client/actions"}},{"name":"roleDelete","description":"Emitted whenever a guild role is deleted.","params":[{"name":"role","description":"The role that was deleted","type":[[["Role"]]]}],"meta":{"line":18,"file":"GuildRoleDelete.js","path":"src/client/actions"}},{"name":"roleUpdate","description":"Emitted whenever a guild role is updated.","params":[{"name":"oldRole","description":"The role before the update","type":[[["Role"]]]},{"name":"newRole","description":"The role after the update","type":[[["Role"]]]}],"meta":{"line":17,"file":"GuildRoleUpdate.js","path":"src/client/actions"}},{"name":"guildScheduledEventCreate","description":"Emitted whenever a guild scheduled event is created.","params":[{"name":"guildScheduledEvent","description":"The created guild scheduled event","type":[[["GuildScheduledEvent"]]]}],"meta":{"line":13,"file":"GuildScheduledEventCreate.js","path":"src/client/actions"}},{"name":"guildScheduledEventDelete","description":"Emitted whenever a guild scheduled event is deleted.","params":[{"name":"guildScheduledEvent","description":"The deleted guild scheduled event","type":[[["GuildScheduledEvent"]]]}],"meta":{"line":16,"file":"GuildScheduledEventDelete.js","path":"src/client/actions"}},{"name":"guildScheduledEventUpdate","description":"Emitted whenever a guild scheduled event gets updated.","params":[{"name":"oldGuildScheduledEvent","description":"The guild scheduled event object before the update","nullable":true,"type":[[["GuildScheduledEvent"]]]},{"name":"newGuildScheduledEvent","description":"The guild scheduled event object after the update","type":[[["GuildScheduledEvent"]]]}],"meta":{"line":15,"file":"GuildScheduledEventUpdate.js","path":"src/client/actions"}},{"name":"guildScheduledEventUserAdd","description":"Emitted whenever a user subscribes to a guild scheduled event","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event","type":[[["GuildScheduledEvent"]]]},{"name":"user","description":"The user who subscribed","type":[[["User"]]]}],"meta":{"line":16,"file":"GuildScheduledEventUserAdd.js","path":"src/client/actions"}},{"name":"guildScheduledEventUserRemove","description":"Emitted whenever a user unsubscribes from a guild scheduled event","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event","type":[[["GuildScheduledEvent"]]]},{"name":"user","description":"The user who unsubscribed","type":[[["User"]]]}],"meta":{"line":16,"file":"GuildScheduledEventUserRemove.js","path":"src/client/actions"}},{"name":"stickerCreate","description":"Emitted whenever a custom sticker is created in a guild.","params":[{"name":"sticker","description":"The sticker that was created","type":[[["Sticker"]]]}],"meta":{"line":10,"file":"GuildStickerCreate.js","path":"src/client/actions"}},{"name":"stickerDelete","description":"Emitted whenever a custom sticker is deleted in a guild.","params":[{"name":"sticker","description":"The sticker that was deleted","type":[[["Sticker"]]]}],"meta":{"line":11,"file":"GuildStickerDelete.js","path":"src/client/actions"}},{"name":"stickerUpdate","description":"Emitted whenever a custom sticker is updated in a guild.","params":[{"name":"oldSticker","description":"The old sticker","type":[[["Sticker"]]]},{"name":"newSticker","description":"The new sticker","type":[[["Sticker"]]]}],"meta":{"line":9,"file":"GuildStickerUpdate.js","path":"src/client/actions"}},{"name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","params":[{"name":"oldGuild","description":"The guild before the update","type":[[["Guild"]]]},{"name":"newGuild","description":"The guild after the update","type":[[["Guild"]]]}],"meta":{"line":13,"file":"GuildUpdate.js","path":"src/client/actions"}},{"name":"interactionCreate","description":"Emitted when an interaction is created.","params":[{"name":"interaction","description":"The interaction which was created","type":[[["Interaction"]]]}],"meta":{"line":77,"file":"InteractionCreate.js","path":"src/client/actions"}},{"name":"interaction","description":"Emitted when an interaction is created.","deprecated":"Use {@link Client#event:interactionCreate} instead","params":[{"name":"interaction","description":"The interaction which was created","type":[[["Interaction"]]]}],"meta":{"line":84,"file":"InteractionCreate.js","path":"src/client/actions"}},{"name":"inviteCreate","description":"Emitted when an invite is created.\n This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,\nor `MANAGE_CHANNELS` permissions for the channel.","params":[{"name":"invite","description":"The invite that was created","type":[[["Invite"]]]}],"meta":{"line":16,"file":"InviteCreate.js","path":"src/client/actions"}},{"name":"inviteDelete","description":"Emitted when an invite is deleted.\n This event only triggers if the client has `MANAGE_GUILD` permissions for the guild,\nor `MANAGE_CHANNELS` permissions for the channel.","params":[{"name":"invite","description":"The invite that was deleted","type":[[["Invite"]]]}],"meta":{"line":18,"file":"InviteDelete.js","path":"src/client/actions"}},{"name":"messageCreate","description":"Emitted whenever a message is created.","params":[{"name":"message","description":"The created message","type":[[["Message"]]]}],"meta":{"line":21,"file":"MessageCreate.js","path":"src/client/actions"}},{"name":"message","description":"Emitted whenever a message is created.","deprecated":"Use {@link Client#event:messageCreate} instead","params":[{"name":"message","description":"The created message","type":[[["Message"]]]}],"meta":{"line":28,"file":"MessageCreate.js","path":"src/client/actions"}},{"name":"messageDelete","description":"Emitted whenever a message is deleted.","params":[{"name":"message","description":"The deleted message","type":[[["Message"]]]}],"meta":{"line":19,"file":"MessageDelete.js","path":"src/client/actions"}},{"name":"messageDeleteBulk","description":"Emitted whenever messages are deleted in bulk.","params":[{"name":"messages","description":"The deleted messages, mapped by their id","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]]]}],"meta":{"line":34,"file":"MessageDeleteBulk.js","path":"src/client/actions"}},{"name":"messageReactionAdd","description":"Emitted whenever a reaction is added to a cached message.","params":[{"name":"messageReaction","description":"The reaction object","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that applied the guild or reaction emoji","type":[[["User"]]]}],"meta":{"line":43,"file":"MessageReactionAdd.js","path":"src/client/actions"}},{"name":"messageReactionRemove","description":"Emitted whenever a reaction is removed from a cached message.","params":[{"name":"messageReaction","description":"The reaction object","type":[[["MessageReaction"]]]},{"name":"user","description":"The user whose emoji or reaction emoji was removed","type":[[["User"]]]}],"meta":{"line":33,"file":"MessageReactionRemove.js","path":"src/client/actions"}},{"name":"messageReactionRemoveAll","description":"Emitted whenever all reactions are removed from a cached message.","params":[{"name":"message","description":"The message the reactions were removed from","type":[[["Message"]]]},{"name":"reactions","description":"The cached message reactions that were removed.","type":[[["Collection","<("],["string","|"],["Snowflake","), "],["MessageReaction",">"]]]}],"meta":{"line":26,"file":"MessageReactionRemoveAll.js","path":"src/client/actions"}},{"name":"messageReactionRemoveEmoji","description":"Emitted when a bot removes an emoji reaction from a cached message.","params":[{"name":"reaction","description":"The reaction that was removed","type":[[["MessageReaction"]]]}],"meta":{"line":18,"file":"MessageReactionRemoveEmoji.js","path":"src/client/actions"}},{"name":"presenceUpdate","description":"Emitted whenever a guild member's presence (e.g. status, activity) is changed.","params":[{"name":"oldPresence","description":"The presence before the update, if one at all","nullable":true,"type":[[["Presence"]]]},{"name":"newPresence","description":"The presence after the update","type":[[["Presence"]]]}],"meta":{"line":31,"file":"PresenceUpdate.js","path":"src/client/actions"}},{"name":"stageInstanceCreate","description":"Emitted whenever a stage instance is created.","params":[{"name":"stageInstance","description":"The created stage instance","type":[[["StageInstance"]]]}],"meta":{"line":14,"file":"StageInstanceCreate.js","path":"src/client/actions"}},{"name":"stageInstanceDelete","description":"Emitted whenever a stage instance is deleted.","params":[{"name":"stageInstance","description":"The deleted stage instance","type":[[["StageInstance"]]]}],"meta":{"line":18,"file":"StageInstanceDelete.js","path":"src/client/actions"}},{"name":"stageInstanceUpdate","description":"Emitted whenever a stage instance gets updated - e.g. change in topic or privacy level","params":[{"name":"oldStageInstance","description":"The stage instance before the update","nullable":true,"type":[[["StageInstance"]]]},{"name":"newStageInstance","description":"The stage instance after the update","type":[[["StageInstance"]]]}],"meta":{"line":15,"file":"StageInstanceUpdate.js","path":"src/client/actions"}},{"name":"threadCreate","description":"Emitted whenever a thread is created or when the client user is added to a thread.","params":[{"name":"thread","description":"The thread that was created","type":[[["ThreadChannel"]]]},{"name":"newlyCreated","description":"Whether the thread was newly created","type":[[["boolean"]]]}],"meta":{"line":12,"file":"ThreadCreate.js","path":"src/client/actions"}},{"name":"threadDelete","description":"Emitted whenever a thread is deleted.","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"meta":{"line":20,"file":"ThreadDelete.js","path":"src/client/actions"}},{"name":"threadListSync","description":"Emitted whenever the client user gains access to a text or news channel that contains threads","params":[{"name":"threads","description":"The threads that were synced","type":[[["Collection","<"],["Snowflake",", "],["ThreadChannel",">"]]]}],"meta":{"line":38,"file":"ThreadListSync.js","path":"src/client/actions"}},{"name":"threadMembersUpdate","description":"Emitted whenever members are added or removed from a thread. Requires `GUILD_MEMBERS` privileged intent","params":[{"name":"oldMembers","description":"The members before the update","type":[[["Collection","<"],["Snowflake",", "],["ThreadMember",">"]]]},{"name":"newMembers","description":"The members after the update","type":[[["Collection","<"],["Snowflake",", "],["ThreadMember",">"]]]}],"meta":{"line":22,"file":"ThreadMembersUpdate.js","path":"src/client/actions"}},{"name":"threadMemberUpdate","description":"Emitted whenever the client user's thread member is updated.","params":[{"name":"oldMember","description":"The member before the update","type":[[["ThreadMember"]]]},{"name":"newMember","description":"The member after the update","type":[[["ThreadMember"]]]}],"meta":{"line":18,"file":"ThreadMemberUpdate.js","path":"src/client/actions"}},{"name":"typingStart","description":"Emitted whenever a user starts typing in a channel.","params":[{"name":"typing","description":"The typing state","type":[[["Typing"]]]}],"meta":{"line":19,"file":"TypingStart.js","path":"src/client/actions"}},{"name":"userUpdate","description":"Emitted whenever a user's details (e.g. username) are changed.\nTriggered by the Discord gateway events USER_UPDATE, GUILD_MEMBER_UPDATE, and PRESENCE_UPDATE.","params":[{"name":"oldUser","description":"The user before the update","type":[[["User"]]]},{"name":"newUser","description":"The user after the update","type":[[["User"]]]}],"meta":{"line":14,"file":"UserUpdate.js","path":"src/client/actions"}},{"name":"voiceStateUpdate","description":"Emitted whenever a member changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","params":[{"name":"oldState","description":"The voice state before the update","type":[[["VoiceState"]]]},{"name":"newState","description":"The voice state after the update","type":[[["VoiceState"]]]}],"meta":{"line":32,"file":"VoiceStateUpdate.js","path":"src/client/actions"}},{"name":"webhookUpdate","description":"Emitted whenever a channel has its webhooks changed.","params":[{"name":"channel","description":"The channel that had a webhook update","type":[[["TextChannel"]],[["NewsChannel"]]]}],"meta":{"line":10,"file":"WebhooksUpdate.js","path":"src/client/actions"}},{"name":"warn","description":"Emitted for general warnings.","params":[{"name":"info","description":"The warning","type":[[["string"]]]}],"meta":{"line":741,"file":"Client.js","path":"src/client"}},{"name":"applicationCommandCreate","description":"Emitted when a guild application command is created.","deprecated":"See {@link https://github.com/discord/discord-api-docs/issues/3690 this issue} for more information.","params":[{"name":"command","description":"The command which was created","type":[[["ApplicationCommand"]]]}],"meta":{"line":11,"file":"APPLICATION_COMMAND_CREATE.js","path":"src/client/websocket/handlers"}},{"name":"applicationCommandDelete","description":"Emitted when a guild application command is deleted.","deprecated":"See {@link https://github.com/discord/discord-api-docs/issues/3690 this issue} for more information.","params":[{"name":"command","description":"The command which was deleted","type":[[["ApplicationCommand"]]]}],"meta":{"line":13,"file":"APPLICATION_COMMAND_DELETE.js","path":"src/client/websocket/handlers"}},{"name":"applicationCommandUpdate","description":"Emitted when a guild application command is updated.","deprecated":"See {@link https://github.com/discord/discord-api-docs/issues/3690 this issue} for more information.","params":[{"name":"oldCommand","description":"The command before the update","nullable":true,"type":[[["ApplicationCommand"]]]},{"name":"newCommand","description":"The command after the update","type":[[["ApplicationCommand"]]]}],"meta":{"line":12,"file":"APPLICATION_COMMAND_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"channelPinsUpdate","description":"Emitted whenever the pins of a channel are updated. Due to the nature of the WebSocket event,\nnot much information can be provided easily here - you need to manually check the pins yourself.","params":[{"name":"channel","description":"The channel that the pins update occurred in","type":[[["TextBasedChannels"]]]},{"name":"time","description":"The time of the pins update","type":[[["Date"]]]}],"meta":{"line":13,"file":"CHANNEL_PINS_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change, channel type change.","params":[{"name":"oldChannel","description":"The channel before the update","type":[[["DMChannel"]],[["GuildChannel"]]]},{"name":"newChannel","description":"The channel after the update","type":[[["DMChannel"]],[["GuildChannel"]]]}],"meta":{"line":8,"file":"CHANNEL_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"guildCreate","description":"Emitted whenever the client joins a guild.","params":[{"name":"guild","description":"The created guild","type":[[["Guild"]]]}],"meta":{"line":17,"file":"GUILD_CREATE.js","path":"src/client/websocket/handlers"}},{"name":"guildMemberAdd","description":"Emitted whenever a user joins a guild.","params":[{"name":"member","description":"The member that has joined a guild","type":[[["GuildMember"]]]}],"meta":{"line":11,"file":"GUILD_MEMBER_ADD.js","path":"src/client/websocket/handlers"}},{"name":"guildMembersChunk","description":"Emitted whenever a chunk of guild members is received (all members come from the same guild).","params":[{"name":"members","description":"The members in the chunk","type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]]},{"name":"guild","description":"The guild related to the member chunk","type":[[["Guild"]]]},{"name":"chunk","description":"Properties of the received chunk","type":[[["GuildMembersChunk"]]]}],"meta":{"line":24,"file":"GUILD_MEMBERS_CHUNK.js","path":"src/client/websocket/handlers"}},{"name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","params":[{"name":"oldMessage","description":"The message before the update","type":[[["Message"]]]},{"name":"newMessage","description":"The message after the update","type":[[["Message"]]]}],"meta":{"line":8,"file":"MESSAGE_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"relationshipAdd","description":"Emitted whenever a relationship is updated.","params":[{"name":"user","description":"The userID that was updated","type":[[["UserId"]]]},{"name":"type","description":"The new relationship type","type":[[["Number"]]]}],"meta":{"line":10,"file":"RELATIONSHIP_ADD.js","path":"src/client/websocket/handlers"}},{"name":"relationshipRemove","description":"Emitted whenever a relationship is updated.","params":[{"name":"user","description":"The userID that was updated","type":[[["UserId"]]]}],"meta":{"line":7,"file":"RELATIONSHIP_REMOVE.js","path":"src/client/websocket/handlers"}},{"name":"shardResume","description":"Emitted when a shard resumes successfully.","params":[{"name":"id","description":"The shard id that resumed","type":[[["number"]]]},{"name":"replayedEvents","description":"The amount of replayed events","type":[[["number"]]]}],"meta":{"line":7,"file":"RESUMED.js","path":"src/client/websocket/handlers"}},{"name":"threadUpdate","description":"Emitted whenever a thread is updated - e.g. name change, archive state change, locked state change.","params":[{"name":"oldThread","description":"The thread before the update","type":[[["ThreadChannel"]]]},{"name":"newThread","description":"The thread after the update","type":[[["ThreadChannel"]]]}],"meta":{"line":8,"file":"THREAD_UPDATE.js","path":"src/client/websocket/handlers"}},{"name":"shardReady","description":"Emitted when a shard turns ready.","params":[{"name":"id","description":"The shard id that turned ready","type":[[["number"]]]},{"name":"unavailableGuilds","description":"Set of unavailable guild ids, if any","nullable":true,"type":[[["Set","<"],["Snowflake",">"]]]}],"meta":{"line":180,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardDisconnect","description":"Emitted when a shard's WebSocket disconnects and will no longer reconnect.","params":[{"name":"event","description":"The WebSocket close event","type":[[["CloseEvent"]]]},{"name":"id","description":"The shard id that disconnected","type":[[["number"]]]}],"meta":{"line":194,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardReconnecting","description":"Emitted when a shard is attempting to reconnect or re-identify.","params":[{"name":"id","description":"The shard id that is attempting to reconnect","type":[[["number"]]]}],"meta":{"line":210,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"invalidated","description":"Emitted when the client's session becomes invalidated.\nYou are expected to handle closing the process gracefully and preventing a boot loop\nif you are listening to this event.","meta":{"line":289,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"ready","description":"Emitted when the client becomes ready to start working.","params":[{"name":"client","description":"The client","type":[[["Client"]]]}],"meta":{"line":382,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardError","description":"Emitted whenever a shard's WebSocket encounters a connection error.","params":[{"name":"error","description":"The encountered error","type":[[["Error"]]]},{"name":"shardId","description":"The shard that encountered this error","type":[[["number"]]]}],"meta":{"line":313,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"error","description":"Emitted when the client encounters an error.","params":[{"name":"error","description":"The error encountered","type":[[["Error"]]]}],"meta":{"line":211,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"debug","description":"Emitted for general debugging information.","params":[{"name":"info","description":"The debug information","type":[[["string"]]]}],"meta":{"line":77,"file":"BaseClient.js","path":"src/client"}},{"name":"rateLimit","description":"Emitted when the client hits a rate limit while making a request","params":[{"name":"rateLimitData","description":"Object containing the rate limit info","type":[[["RateLimitData"]]]}],"meta":{"line":126,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiRequest","description":"Emitted before every API request.\nThis event can emit several times for the same request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that is about to be sent","type":[[["APIRequest"]]]}],"meta":{"line":177,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiResponse","description":"Emitted after every API request has received a response.\nThis event does not necessarily correlate to completion of the request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that triggered this response","type":[[["APIRequest"]]]},{"name":"response","description":"The response received from the Discord API","type":[[["Response"]]]}],"meta":{"line":209,"file":"RequestHandler.js","path":"src/rest"}},{"name":"invalidRequestWarning","description":"Emitted periodically when the process sends invalid requests to let users avoid the\n10k invalid requests in 10 minutes threshold that causes a ban","params":[{"name":"invalidRequestWarningData","description":"Object containing the invalid request info","type":[[["InvalidRequestWarningData"]]]}],"meta":{"line":286,"file":"RequestHandler.js","path":"src/rest"}}],"meta":{"line":41,"file":"Client.js","path":"src/client"}},{"name":"ClientVoiceManager","description":"Manages voice connections for the client","props":[{"name":"client","description":"The client that instantiated this voice manager","readonly":true,"type":[[["Client"]]],"meta":{"line":10,"file":"ClientVoiceManager.js","path":"src/client/voice"}},{"name":"adapters","description":"Maps guild ids to voice adapters created for use with @discordjs/voice.","type":[[["Map","<"],["Snowflake",", "],["Object",">"]]],"meta":{"line":22,"file":"ClientVoiceManager.js","path":"src/client/voice"}}],"meta":{"line":8,"file":"ClientVoiceManager.js","path":"src/client/voice"}},{"name":"WebhookClient","description":"The webhook client.","extends":[[["BaseClient"]]],"implements":[[["Webhook"]]],"construct":{"name":"WebhookClient","params":[{"name":"data","description":"The data of the webhook","type":[[["WebhookClientData"]]]},{"name":"options","description":"Options for the client","optional":true,"type":[[["ClientOptions"]]]}]},"props":[{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]],"meta":{"line":56,"file":"Webhook.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the webhook was created at","readonly":true,"type":[[["number"]]],"meta":{"line":386,"file":"Webhook.js","path":"src/structures"}},{"name":"createdAt","description":"The time the webhook was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":395,"file":"Webhook.js","path":"src/structures"}},{"name":"url","description":"The URL of this webhook","readonly":true,"type":[[["string"]]],"meta":{"line":404,"file":"Webhook.js","path":"src/structures"}},{"name":"options","description":"The options the client was instantiated with","type":[[["ClientOptions"]]],"meta":{"line":20,"file":"BaseClient.js","path":"src/client"}},{"name":"rest","description":"The REST manager of the client","access":"private","type":[[["RESTManager"]]],"meta":{"line":27,"file":"BaseClient.js","path":"src/client"}},{"name":"api","description":"API shortcut","access":"private","readonly":true,"type":[[["Object"]]],"meta":{"line":36,"file":"BaseClient.js","path":"src/client"}}],"methods":[{"name":"send","description":"Sends a message with this webhook.","implements":["Webhook#send"],"examples":["// Send a basic message\nwebhook.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a basic message in a thread\nwebhook.send({ content: 'hello!', threadId: '836856309672348295' })\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nwebhook.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nwebhook.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nwebhook.send({\n content: 'This is an embed',\n embeds: [{\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":185,"file":"Webhook.js","path":"src/structures"}},{"name":"sendSlackMessage","description":"Sends a raw slack message with this webhook.","see":["{@link https://api.slack.com/messaging/webhooks}"],"implements":["Webhook#sendSlackMessage"],"examples":["// Send a slack message\nwebhook.sendSlackMessage({\n 'username': 'Wumpus',\n 'attachments': [{\n 'pretext': 'this looks pretty cool',\n 'color': '#F0F',\n 'footer_icon': 'http://snek.s3.amazonaws.com/topSnek.png',\n 'footer': 'Powered by sneks',\n 'ts': Date.now() / 1_000\n }]\n}).catch(console.error);"],"params":[{"name":"body","description":"The raw body to send","type":[[["Object"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":225,"file":"Webhook.js","path":"src/structures"}},{"name":"edit","description":"Edits this webhook.","implements":["Webhook#edit"],"params":[{"name":"options","description":"Options for editing the webhook","type":[[["WebhookEditData"]]]},{"name":"reason","description":"Reason for editing the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Webhook",">"]]],"meta":{"line":250,"file":"Webhook.js","path":"src/structures"}},{"name":"fetchMessage","description":"Gets a message that was sent by this webhook.","implements":["Webhook#fetchMessage"],"params":[{"name":"message","description":"The id of the message to fetch","type":[[["Snowflake"]],[["original","'"]]]},{"name":"cacheOrOptions","description":"The options to provide to fetch the message.\nA **deprecated** boolean may be passed instead to specify whether to cache the message.","optional":true,"default":"{}","type":[[["WebhookFetchMessageOptions"]],[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":283,"file":"Webhook.js","path":"src/structures"}},{"name":"editMessage","description":"Edits a message that was sent by this webhook.","implements":["Webhook#editMessage"],"params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":318,"file":"Webhook.js","path":"src/structures"}},{"name":"delete","description":"Deletes the webhook.","implements":["Webhook#delete"],"params":[{"name":"reason","description":"Reason for deleting this webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":357,"file":"Webhook.js","path":"src/structures"}},{"name":"deleteMessage","description":"Delete a message that was sent by this webhook.","implements":["Webhook#deleteMessage"],"params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"threadId","description":"The id of the thread this message belongs to","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":367,"file":"Webhook.js","path":"src/structures"}},{"name":"destroy","description":"Destroys all assets used by the base client.","inherits":"BaseClient#destroy","inherited":true,"returns":[[["void"]]],"meta":{"line":44,"file":"BaseClient.js","path":"src/client"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#incrementMaxListeners","inherited":true,"meta":{"line":52,"file":"BaseClient.js","path":"src/client"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one, if they are not zero.","access":"private","inherits":"BaseClient#decrementMaxListeners","inherited":true,"meta":{"line":63,"file":"BaseClient.js","path":"src/client"}}],"events":[{"name":"debug","description":"Emitted for general debugging information.","params":[{"name":"info","description":"The debug information","type":[[["string"]]]}],"meta":{"line":77,"file":"BaseClient.js","path":"src/client"}},{"name":"rateLimit","description":"Emitted when the client hits a rate limit while making a request","params":[{"name":"rateLimitData","description":"Object containing the rate limit info","type":[[["RateLimitData"]]]}],"meta":{"line":126,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiRequest","description":"Emitted before every API request.\nThis event can emit several times for the same request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that is about to be sent","type":[[["APIRequest"]]]}],"meta":{"line":177,"file":"RequestHandler.js","path":"src/rest"}},{"name":"apiResponse","description":"Emitted after every API request has received a response.\nThis event does not necessarily correlate to completion of the request, e.g. when hitting a rate limit.\nThis is an informational event that is emitted quite frequently,\nit is highly recommended to check `request.path` to filter the data.","params":[{"name":"request","description":"The request that triggered this response","type":[[["APIRequest"]]]},{"name":"response","description":"The response received from the Discord API","type":[[["Response"]]]}],"meta":{"line":209,"file":"RequestHandler.js","path":"src/rest"}},{"name":"invalidRequestWarning","description":"Emitted periodically when the process sends invalid requests to let users avoid the\n10k invalid requests in 10 minutes threshold that causes a ban","params":[{"name":"invalidRequestWarningData","description":"Object containing the invalid request info","type":[[["InvalidRequestWarningData"]]]}],"meta":{"line":286,"file":"RequestHandler.js","path":"src/rest"}}],"meta":{"line":12,"file":"WebhookClient.js","path":"src/client"}},{"name":"WebSocketManager","description":"The WebSocket manager for this client.\nThis class forwards raw dispatch events,\nread more about it here {@link https://discord.com/developers/docs/topics/gateway}","extends":[[["EventEmitter"]]],"props":[{"name":"client","description":"The client that instantiated this WebSocketManager","readonly":true,"type":[[["Client"]]],"meta":{"line":40,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"gateway","description":"The gateway this manager uses","nullable":true,"type":[[["string"]]],"meta":{"line":52,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"totalShards","description":"The amount of shards this manager handles","access":"private","type":[[["number"]]],"meta":{"line":59,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shards","description":"A collection of all shards this manager handles","type":[[["Collection","<"],["number",", "],["WebSocketShard",">"]]],"meta":{"line":65,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"shardQueue","description":"An array of shards to be connected or that need to reconnect","access":"private","type":[[["Set","<"],["WebSocketShard",">"]]],"meta":{"line":67,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"packetQueue","description":"An array of queued events before this WebSocketManager became ready","access":"private","type":[[["Array","<"],["Object",">"]]],"meta":{"line":75,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"status","description":"The current status of this WebSocketManager","type":[[["Status"]]],"meta":{"line":87,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"destroyed","description":"If this manager was destroyed. It will prevent shards from reconnecting","access":"private","type":[[["boolean"]]],"meta":{"line":94,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"reconnecting","description":"If this manager is currently reconnecting one or multiple shards","access":"private","type":[[["boolean"]]],"meta":{"line":101,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"ping","description":"The average ping of all WebSocketShards","readonly":true,"type":[[["number"]]],"meta":{"line":109,"file":"WebSocketManager.js","path":"src/client/websocket"}}],"methods":[{"name":"debug","description":"Emits a debug message.","access":"private","params":[{"name":"message","description":"The debug message","type":[[["string"]]]},{"name":"shard","description":"The shard that emitted this message, if any","optional":true,"nullable":true,"type":[[["WebSocketShard"]]]}],"meta":{"line":120,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"connect","description":"Connects this manager to the gateway.","access":"private","async":true,"meta":{"line":128,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"createShards","description":"Handles the creation of a shard.","access":"private","async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":170,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"reconnect","description":"Handles reconnects for this manager.","access":"private","async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":274,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"broadcast","description":"Broadcasts a packet to every shard this manager handles.","access":"private","params":[{"name":"packet","description":"The packet to send","type":[[["Object"]]]}],"meta":{"line":312,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"destroy","description":"Destroys this manager and all its shards.","access":"private","meta":{"line":320,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"handlePacket","description":"Processes a packet and queues it if this WebSocketManager is not ready.","access":"private","params":[{"name":"packet","description":"The packet to be handled","optional":true,"type":[[["Object"]]]},{"name":"shard","description":"The shard that will handle this packet","optional":true,"type":[[["WebSocketShard"]]]}],"returns":[[["boolean"]]],"meta":{"line":335,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"checkShardsReady","description":"Checks whether the client is ready to be marked as ready.","access":"private","meta":{"line":364,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"triggerClientReady","description":"Causes the client to be marked as ready and emits the ready event.","access":"private","meta":{"line":377,"file":"WebSocketManager.js","path":"src/client/websocket"}}],"meta":{"line":36,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"name":"WebSocketShard","description":"Represents a Shard's WebSocket connection","props":[{"name":"manager","description":"The WebSocketManager of the shard","type":[[["WebSocketManager"]]],"meta":{"line":29,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"id","description":"The shard's id","type":[[["number"]]],"meta":{"line":35,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"status","description":"The current status of the shard","type":[[["Status"]]],"meta":{"line":41,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"sequence","description":"The current sequence of the shard","access":"private","type":[[["number"]]],"meta":{"line":48,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"closeSequence","description":"The sequence of the shard after close","access":"private","type":[[["number"]]],"meta":{"line":55,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"sessionId","description":"The current session id of the shard","access":"private","nullable":true,"type":[[["string"]]],"meta":{"line":62,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ping","description":"The previous heartbeat ping of the shard","type":[[["number"]]],"meta":{"line":68,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"lastPingTimestamp","description":"The last time a ping was sent (a timestamp)","access":"private","type":[[["number"]]],"meta":{"line":75,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"lastHeartbeatAcked","description":"If we received a heartbeat ack back. Used to identify zombie connections","access":"private","type":[[["boolean"]]],"meta":{"line":82,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ratelimit","description":"Contains the rate limit queue and metadata","access":"private","type":[[["Object"]]],"meta":{"line":84,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"connection","description":"The WebSocket connection for the current shard","access":"private","nullable":true,"type":[[["WebSocket"]]],"meta":{"line":100,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"inflate","description":"The compression to use","access":"private","nullable":true,"type":[[["Inflate"]]],"meta":{"line":113,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"helloTimeout","description":"The HELLO timeout","access":"private","nullable":true,"type":[[["NodeJSTimeout"]]],"meta":{"line":121,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"eventsAttached","description":"If the manager attached its event handlers on the shard","access":"private","type":[[["boolean"]]],"meta":{"line":129,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"expectedGuilds","description":"A set of guild ids this shard expects to receive","access":"private","nullable":true,"type":[[["Set","<"],["string",">"]]],"meta":{"line":137,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"readyTimeout","description":"The ready timeout","access":"private","nullable":true,"type":[[["NodeJSTimeout"]]],"meta":{"line":145,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"connectedAt","description":"Time when the WebSocket connection was opened","access":"private","type":[[["number"]]],"meta":{"line":153,"file":"WebSocketShard.js","path":"src/client/websocket"}}],"methods":[{"name":"debug","description":"Emits a debug event.","access":"private","params":[{"name":"message","description":"The debug message","type":[[["string"]]]}],"meta":{"line":167,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"connect","description":"Connects the shard to the gateway.","access":"private","returns":{"types":[[["Promise","<"],["void",">"]]],"description":"A promise that will resolve if the shard turns ready successfully,\nor reject if we couldn't connect"},"meta":{"line":177,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onOpen","description":"Called whenever a connection is opened to the gateway.","access":"private","meta":{"line":268,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onMessage","description":"Called whenever a message is received.","access":"private","params":[{"name":"event","description":"Event received","type":[[["MessageEvent"]]]}],"meta":{"line":278,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onError","description":"Called whenever an error occurs with the WebSocket.","access":"private","params":[{"name":"event","description":"The error that occurred","type":[[["ErrorEvent"]]]}],"meta":{"line":309,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onClose","description":"Called whenever a connection to the gateway is closed.","access":"private","params":[{"name":"event","description":"Close event that was received","type":[[["CloseEvent"]]]}],"meta":{"line":342,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"onPacket","description":"Called whenever a packet is received.","access":"private","params":[{"name":"packet","description":"The received packet","type":[[["Object"]]]}],"meta":{"line":372,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"checkReady","description":"Checks if the shard can be marked as ready","access":"private","meta":{"line":456,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"setHelloTimeout","description":"Sets the HELLO packet timeout.","access":"private","params":[{"name":"time","description":"If set to -1, it will clear the hello timeout","optional":true,"type":[[["number"]]]}],"meta":{"line":510,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"setHeartbeatTimer","description":"Sets the heartbeat timer for this shard.","access":"private","params":[{"name":"time","description":"If -1, clears the interval, any other number sets an interval","type":[[["number"]]]}],"meta":{"line":531,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"sendHeartbeat","description":"Sends a heartbeat to the WebSocket.\nIf this shard didn't receive a heartbeat last time, it will destroy it and reconnect","access":"private","params":[{"name":"tag","description":"What caused this heartbeat to be sent","optional":true,"default":"'HeartbeatTimer'","type":[[["string"]]]},{"name":"ignoreHeartbeatAck","description":"If we should send the heartbeat forcefully.","optional":true,"type":[[["boolean"]]]}],"meta":{"line":553,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ackHeartbeat","description":"Acknowledges a heartbeat.","access":"private","meta":{"line":581,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"identify","description":"Identifies the client on the connection.","access":"private","returns":[[["void"]]],"meta":{"line":593,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"identifyNew","description":"Identifies as a new connection on the gateway.","access":"private","meta":{"line":601,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"identifyResume","description":"Resumes a session on the gateway.","access":"private","meta":{"line":633,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"send","description":"Adds a packet to the queue to be sent to the gateway.\nIf you use this method, make sure you understand that you need to provide\na full [Payload](https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-commands).\nDo not use this method if you don't know what you're doing.","params":[{"name":"data","description":"The full packet to send","type":[[["Object"]]]},{"name":"important","description":"If this packet should be added first in queue","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":661,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"_send","description":"Sends data, bypassing the queue.","access":"private","params":[{"name":"data","description":"Packet to send","type":[[["Object"]]]}],"returns":[[["void"]]],"meta":{"line":672,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"processQueue","description":"Processes the current WebSocket queue.","access":"private","returns":[[["void"]]],"meta":{"line":689,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"destroy","description":"Destroys this shard and closes its WebSocket connection.","access":"private","params":[{"name":"options","description":"Options for destroying the shard","optional":true,"default":"{ closeCode: 1000, reset: false, emit: true, log: true }","type":[[["Object"]]]}],"meta":{"line":711,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"_cleanupConnection","description":"Cleans up the WebSocket connection listeners.","access":"private","meta":{"line":775,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"_emitDestroyed","description":"Emits the DESTROYED event on the shard","access":"private","meta":{"line":783,"file":"WebSocketShard.js","path":"src/client/websocket"}}],"events":[{"name":"close","description":"Emitted when a shard's WebSocket closes.","params":[{"name":"event","description":"The received event","type":[[["CloseEvent"]]]}],"meta":{"line":358,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ready","description":"Emitted when the shard receives the READY payload and is now waiting for guilds","meta":{"line":380,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"resumed","description":"Emitted when the shard resumes successfully","meta":{"line":394,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"allReady","description":"Emitted when the shard is fully ready.\nThis event is emitted if:\n* all guilds were received by this shard\n* the ready timeout expired, and some guilds are unavailable","params":[{"name":"unavailableGuilds","description":"Set of unavailable guilds, if any","nullable":true,"type":[[["Set","<"],["string",">"]]]}],"meta":{"line":467,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"destroyed","description":"Emitted when a shard is destroyed, but no WebSocket connection was present.","meta":{"line":784,"file":"WebSocketShard.js","path":"src/client/websocket"}}],"meta":{"line":21,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ApplicationCommandManager","description":"Manages API methods for application commands and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"permissions","description":"The manager for permissions of arbitrary commands on arbitrary guilds","type":[[["ApplicationCommandPermissionsManager"]]],"meta":{"line":22,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["ApplicationCommand",">"]]],"meta":{"line":26,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"commandPath","description":"The APIRouter path to the commands","access":"private","params":[{"name":"options.id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options.guildId","description":"The guild's id to use in the path,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"returns":[[["Object"]]],"meta":{"line":44,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or multiple application commands from Discord, or the cache if it's already available.","examples":["// Fetch a single command\nclient.application.commands.fetch('123456789012345678')\n .then(command => console.log(`Fetched command ${command.name}`))\n .catch(console.error);","// Fetch all commands\nguild.commands.fetch()\n .then(commands => console.log(`Fetched ${commands.size} commands`))\n .catch(console.error);"],"params":[{"name":"id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["FetchApplicationCommandOptions"]]]}],"async":true,"returns":[[["Promise","<("],["ApplicationCommand","|"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">)>"]]],"meta":{"line":88,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"create","description":"Creates an application command.","examples":["// Create a new command\nclient.application.commands.create({\n name: 'test',\n description: 'A test command',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id to create this command in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":129,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"set","description":"Sets all the commands for this application or guild.","examples":["// Set all commands to just this one\nclient.application.commands.set([\n {\n name: 'test',\n description: 'A test command',\n },\n])\n .then(console.log)\n .catch(console.error);","// Remove all commands\nguild.commands.set([])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"commands","description":"The commands","type":[[["Array","<"],["ApplicationCommandData",">"]],[["Array","<"],["APIApplicationCommand",">"]]]},{"name":"guildId","description":"The guild's id to create the commands in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">>"]]],"meta":{"line":159,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"edit","description":"Edits an application command.","examples":["// Edit an existing command\nclient.application.commands.edit('123456789012345678', {\n description: 'New description',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to edit","type":[[["ApplicationCommandResolvable"]]]},{"name":"data","description":"The data to update the command with","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id where the command registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":182,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an application command.","examples":["// Delete a command\nguild.commands.delete('123456789012345678')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to delete","type":[[["ApplicationCommandResolvable"]]]},{"name":"guildId","description":"The guild's id where the command is registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise",""],["ApplicationCommand",">"]]],"meta":{"line":205,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}},{"name":"transformCommand","description":"Transforms an {@link ApplicationCommandData} object into something that can be used with the API.","scope":"static","access":"private","params":[{"name":"command","description":"The command to transform","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]}],"returns":[[["APIApplicationCommand"]]],"meta":{"line":223,"file":"ApplicationCommandManager.js","path":"src/managers"}}],"meta":{"line":14,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"ApplicationCommandPermissionsManager","description":"Manages API methods for permissions of Application Commands.","extends":[[["BaseManager"]]],"props":[{"name":"manager","description":"The manager or command that this manager belongs to","access":"private","type":[[["ApplicationCommandManager"]],[["ApplicationCommand"]]],"meta":{"line":21,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"guild","description":"The guild that this manager acts on","nullable":true,"type":[[["Guild"]]],"meta":{"line":27,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"guildId","description":"The id of the guild that this manager acts on","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":33,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"commandId","description":"The id of the command this manager acts on","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":39,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"permissionsPath","description":"The APIRouter path to the commands","access":"private","params":[{"name":"guildId","description":"The guild's id to use in the path,","type":[[["Snowflake"]]]},{"name":"commandId","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]}],"returns":[[["Object"]]],"meta":{"line":51,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches the permissions for one or multiple commands.","examples":["// Fetch permissions for one command\nguild.commands.permissions.fetch({ command: '123456789012345678' })\n .then(perms => console.log(`Fetched permissions for ${perms.length} users`))\n .catch(console.error);","// Fetch permissions for all commands in a guild\nclient.application.commands.permissions.fetch({ guild: '123456789012345678' })\n .then(perms => console.log(`Fetched permissions for ${perms.size} commands`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to fetch permissions","optional":true,"type":[[["BaseApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Array","<"],["ApplicationCommandPermissions",">|"],["Collection","<"],["Snowflake",", "],["Array","<"],["ApplicationCommandPermissions",">>)>"]]],"meta":{"line":100,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"set","description":"Sets the permissions for one or more commands.","examples":["// Set the permissions for one command\nclient.application.commands.permissions.set({ guild: '892455839386304532', command: '123456789012345678',\n permissions: [\n {\n id: '876543210987654321',\n type: 'USER',\n permission: false,\n },\n]})\n .then(console.log)\n .catch(console.error);","// Set the permissions for all commands\nguild.commands.permissions.set({ fullPermissions: [\n {\n id: '123456789012345678',\n permissions: [{\n id: '876543210987654321',\n type: 'USER',\n permission: false,\n }],\n },\n]})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to set permissions","type":[[["SetApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Array","<"],["ApplicationCommandPermissions",">|"],["Collection","<"],["Snowflake",", "],["Array","<"],["ApplicationCommandPermissions",">>)>"]]],"meta":{"line":166,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"add","description":"Add permissions to a command.","examples":["// Block a role from the command permissions\nguild.commands.permissions.add({ command: '123456789012345678', permissions: [\n {\n id: '876543211234567890',\n type: 'ROLE',\n permission: false\n },\n]})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to add permissions","type":[[["AddApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationCommandPermissions",">>"]]],"meta":{"line":228,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"remove","description":"Remove permissions from a command.","examples":["// Remove a user permission from this command\nguild.commands.permissions.remove({ command: '123456789012345678', users: '876543210123456789' })\n .then(console.log)\n .catch(console.error);","// Remove multiple roles from this command\nguild.commands.permissions.remove({\n command: '123456789012345678', roles: ['876543210123456789', '765432101234567890']\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to remove permissions","type":[[["RemoveApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationCommandPermissions",">>"]]],"meta":{"line":280,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"has","description":"Check whether a permission exists for a user or role","examples":["// Check whether a user has permission to use a command\nguild.commands.permissions.has({ command: '123456789012345678', permissionId: '876543210123456789' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options used to check permissions","type":[[["AddApplicationCommandPermissionsOptions"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":356,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"transformPermissions","description":"Transforms an {@link ApplicationCommandPermissionData} object into something that can be used with the API.","scope":"static","access":"private","params":[{"name":"permissions","description":"The permissions to transform","type":[[["ApplicationCommandPermissionData"]]]},{"name":"received","description":"Whether these permissions have been received from Discord","optional":true,"type":[[["boolean"]]]}],"returns":[[["APIApplicationCommandPermissions"]]],"meta":{"line":407,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"BaseGuildEmojiManager","description":"Holds methods to resolve GuildEmojis and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of GuildEmojis","type":[[["Collection","<"],["Snowflake",", "],["GuildEmoji",">"]]],"meta":{"line":17,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves an EmojiResolvable to an Emoji object.","params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["GuildEmoji"]]],"nullable":true},"meta":{"line":36,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves an EmojiResolvable to an Emoji id string.","params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":46,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveIdentifier","description":"Resolves an EmojiResolvable to an emoji identifier.","params":[{"name":"emoji","description":"The emoji resolvable to resolve","type":[[["EmojiIdentifierResolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":64,"file":"BaseGuildEmojiManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"BaseManager","description":"Manages the API methods of a data model.","abstract":true,"props":[{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"meta":{"line":7,"file":"BaseManager.js","path":"src/managers"}},{"name":"BlockedManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":18,"file":"BlockedManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link UserResolvable} to a {@link User} object.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["User"]]],"nullable":true},"meta":{"line":39,"file":"BlockedManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"BlockedManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":63,"file":"BlockedManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"BlockedManager.js","path":"src/managers"}},{"name":"CachedManager","description":"Manages the API methods of a data model with a mutable cache of instances.","extends":[[["DataManager"]]],"abstract":true,"props":[{"name":"cache","description":"The cache of items for this manager.","abstract":true,"type":[[["Collection"]]],"meta":{"line":42,"file":"CachedManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"CachedManager.js","path":"src/managers"}},{"name":"ChannelManager","description":"A manager of channels belonging to a client","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of Channels","type":[[["Collection","<"],["Snowflake",", "],["Channel",">"]]],"meta":{"line":32,"file":"ChannelManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a ChannelResolvable to a Channel object.","params":[{"name":"channel","description":"The channel resolvable to resolve","type":[[["ChannelResolvable"]]]}],"returns":{"types":[[["Channel"]]],"nullable":true},"meta":{"line":75,"file":"ChannelManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a ChannelResolvable to a channel id string.","params":[{"name":"channel","description":"The channel resolvable to resolve","type":[[["ChannelResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":84,"file":"ChannelManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a channel from Discord, or the channel cache if it's already available.","examples":["// Fetch a channel by its id\nclient.channels.fetch('222109930545610754')\n .then(channel => console.log(channel.name))\n .catch(console.error);"],"params":[{"name":"id","description":"The channel's id","type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["FetchChannelOptions"]]]}],"async":true,"returns":[[["Promise",""],["Channel",">"]]],"meta":{"line":111,"file":"ChannelManager.js","path":"src/managers"}},{"name":"createGroupDM","description":"Create Group DM","params":[{"name":"recipients","description":"Array of recipients","type":[[["Array","<"],["DiscordUser",">"]]]}],"async":true,"returns":{"types":[[["PartialGroupDMChannel"]]],"description":"Channel"},"meta":{"line":128,"file":"ChannelManager.js","path":"src/managers"}}],"meta":{"line":16,"file":"ChannelManager.js","path":"src/managers"}},{"name":"ClientUserSettingManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of items for this manager.","abstract":true,"type":[[["Collection"]]],"meta":{"line":42,"file":"CachedManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"_patch","description":"Patch data file\nhttps://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/discum/user/user.py","access":"private","params":[{"name":"data","description":"Raw Data to patch","type":[[["Object"]]]}],"meta":{"line":70,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"edit","description":"Edit data","access":"private","params":[{"name":"data","description":"Data to edit","type":[[["Object"]]]}],"async":true,"meta":{"line":166,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setDisplayCompactMode","description":"Set compact mode","params":[{"name":"value","description":"Compact mode enable or disable","type":[[["boolean"]],[["null"]]]}],"async":true,"returns":[[["boolean"]]],"meta":{"line":177,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setTheme","description":"Discord Theme","params":[{"name":"value","description":"Theme to set","type":[[["null"]],[["dark"]],[["light"]]]}],"async":true,"returns":[[["theme"]]],"meta":{"line":192,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setCustomStatus","description":"Set custom status (Setting)","params":[{"name":"options","description":"Object | null","type":[[["CustomStatusOption"]]]}],"meta":{"line":220,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"setLocale","description":"* Locale Setting, must be one of:\n* `DANISH`\n* `GERMAN`\n* `ENGLISH_UK`\n* `ENGLISH_US`\n* `SPANISH`\n* `FRENCH`\n* `CROATIAN`\n* `ITALIAN`\n* `LITHUANIAN`\n* `HUNGARIAN`\n* `DUTCH`\n* `NORWEGIAN`\n* `POLISH`\n* `BRAZILIAN_PORTUGUESE`\n* `ROMANIA_ROMANIAN`\n* `FINNISH`\n* `SWEDISH`\n* `VIETNAMESE`\n* `TURKISH`\n* `CZECH`\n* `GREEK`\n* `BULGARIAN`\n* `RUSSIAN`\n* `UKRAINIAN`\n* `HINDI`\n* `THAI`\n* `CHINA_CHINESE`\n* `JAPANESE`\n* `TAIWAN_CHINESE`\n* `KOREAN`","params":[{"name":"value","description":"Locale to set","type":[[["string"]]]}],"async":true,"returns":[[["locale"]]],"meta":{"line":290,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"_move","access":"private","params":[{"name":"array","description":"Array","type":[[["Array"]]]},{"name":"from","description":"Index1","type":[[["number"]]]},{"name":"to","description":"Index2","type":[[["number"]]]}],"returns":[[["Array"]]],"meta":{"line":310,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"guildChangePosition","description":"Change Guild Position (from * to Folder or Home)","access":"private","params":[{"name":"guildId","description":"guild.id","type":[[["GuildIDResolve"]]]},{"name":"newPosition","description":"Guild Position\n* **WARNING**: Type = `FOLDER`, newPosition is the guild's index in the Folder.","type":[[["number"]]]},{"name":"type","description":"Move to folder or home\n* `FOLDER`: 1\n* `HOME`: 2","type":[[["number"]]]},{"name":"folderId","description":"If you want to move to folder","type":[[["FolderID"]]]}],"meta":{"line":330,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"restrictedGuilds","description":"Restricted guilds setting","params":[{"name":"status","description":"Restricted status","type":[[["boolean"]]]}],"returns":[[["Promise"]]],"meta":{"line":376,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"addRestrictedGuild","description":"Add a guild to the list of restricted guilds.","params":[{"name":"guildId","description":"The guild to add","type":[[["GuildIDResolve"]]]}],"returns":[[["Promise"]]],"meta":{"line":390,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"removeRestrictedGuild","description":"Remove a guild from the list of restricted guilds.","params":[{"name":"guildId","description":"The guild to remove","type":[[["GuildIDResolve"]]]}],"returns":[[["Promise"]]],"meta":{"line":405,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"DataManager","description":"Manages the API methods of a data model along with a collection of instances.","extends":[[["BaseManager"]]],"abstract":true,"props":[{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of items for this manager.","abstract":true,"type":[[["Collection"]]],"meta":{"line":30,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a data entry to a data Object.","params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"DataManager.js","path":"src/managers"}},{"name":"FriendsManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":18,"file":"FriendsManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link UserResolvable} to a {@link User} object.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["User"]]],"nullable":true},"meta":{"line":39,"file":"FriendsManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"FriendsManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":63,"file":"FriendsManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"FriendsManager.js","path":"src/managers"}},{"name":"GuildApplicationCommandManager","description":"An extension for guild-specific application commands.","extends":[[["ApplicationCommandManager"]]],"props":[{"name":"guild","description":"The guild that this manager belongs to","type":[[["Guild"]]],"meta":{"line":18,"file":"GuildApplicationCommandManager.js","path":"src/managers"}},{"name":"permissions","description":"The manager for permissions of arbitrary commands on this guild","type":[[["ApplicationCommandPermissionsManager"]]],"meta":{"line":24,"file":"GuildApplicationCommandManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["ApplicationCommand",">"]]],"meta":{"line":26,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"commandPath","description":"The APIRouter path to the commands","access":"private","inherits":"ApplicationCommandManager#commandPath","inherited":true,"params":[{"name":"options.id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options.guildId","description":"The guild's id to use in the path,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"returns":[[["Object"]]],"meta":{"line":44,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or multiple application commands from Discord, or the cache if it's already available.","inherits":"ApplicationCommandManager#fetch","inherited":true,"examples":["// Fetch a single command\nclient.application.commands.fetch('123456789012345678')\n .then(command => console.log(`Fetched command ${command.name}`))\n .catch(console.error);","// Fetch all commands\nguild.commands.fetch()\n .then(commands => console.log(`Fetched ${commands.size} commands`))\n .catch(console.error);"],"params":[{"name":"id","description":"The application command's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["FetchApplicationCommandOptions"]]]}],"async":true,"returns":[[["Promise","<("],["ApplicationCommand","|"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">)>"]]],"meta":{"line":88,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"create","description":"Creates an application command.","inherits":"ApplicationCommandManager#create","inherited":true,"examples":["// Create a new command\nclient.application.commands.create({\n name: 'test',\n description: 'A test command',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id to create this command in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":129,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"set","description":"Sets all the commands for this application or guild.","inherits":"ApplicationCommandManager#set","inherited":true,"examples":["// Set all commands to just this one\nclient.application.commands.set([\n {\n name: 'test',\n description: 'A test command',\n },\n])\n .then(console.log)\n .catch(console.error);","// Remove all commands\nguild.commands.set([])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"commands","description":"The commands","type":[[["Array","<"],["ApplicationCommandData",">"]],[["Array","<"],["APIApplicationCommand",">"]]]},{"name":"guildId","description":"The guild's id to create the commands in,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["ApplicationCommand",">>"]]],"meta":{"line":159,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"edit","description":"Edits an application command.","inherits":"ApplicationCommandManager#edit","inherited":true,"examples":["// Edit an existing command\nclient.application.commands.edit('123456789012345678', {\n description: 'New description',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to edit","type":[[["ApplicationCommandResolvable"]]]},{"name":"data","description":"The data to update the command with","type":[[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"guildId","description":"The guild's id where the command registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":182,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an application command.","inherits":"ApplicationCommandManager#delete","inherited":true,"examples":["// Delete a command\nguild.commands.delete('123456789012345678')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"command","description":"The command to delete","type":[[["ApplicationCommandResolvable"]]]},{"name":"guildId","description":"The guild's id where the command is registered,\nignored when using a {@link GuildApplicationCommandManager}","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise",""],["ApplicationCommand",">"]]],"meta":{"line":205,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"GuildApplicationCommandManager.js","path":"src/managers"}},{"name":"GuildBanManager","description":"Manages API methods for GuildBans and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this Manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["GuildBan",">"]]],"meta":{"line":24,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a GuildBanResolvable to a GuildBan object.","params":[{"name":"ban","description":"The ban that is in the guild","type":[[["GuildBanResolvable"]]]}],"returns":{"types":[[["GuildBan"]]],"nullable":true},"meta":{"line":46,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches ban(s) from Discord.","examples":["// Fetch multiple bans from a guild\nguild.bans.fetch()\n .then(console.log)\n .catch(console.error);","// Fetch a maximum of 5 bans from a guild without caching\nguild.bans.fetch({ limit: 5, cache: false })\n .then(console.log)\n .catch(console.error);","// Fetch a single ban\nguild.bans.fetch('351871113346809860')\n .then(console.log)\n .catch(console.error);","// Fetch a single ban without checking cache\nguild.bans.fetch({ user, force: true })\n .then(console.log)\n .catch(console.error)","// Fetch a single ban without caching\nguild.bans.fetch({ user, cache: false })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for fetching guild ban(s)","optional":true,"type":[[["UserResolvable"]],[["FetchBanOptions"]],[["FetchBansOptions"]]]}],"returns":[[["Promise","<("],["GuildBan","|"],["Collection","<"],["Snowflake",", "],["GuildBan",">)>"]]],"meta":{"line":95,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"create","description":"Bans a user from the guild.","examples":["// Ban a user by id (or with a user/guild member object)\nguild.bans.create('84484653687267328')\n .then(banInfo => console.log(`Banned ${banInfo.user?.tag ?? banInfo.tag ?? banInfo}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to ban","type":[[["UserResolvable"]]]},{"name":"options","description":"Options for the ban","optional":true,"type":[[["BanOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["GuildMember","|"],["User","|"],["Snowflake",")>"]]],"description":"Result object will be resolved as specifically as possible.\nIf the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot\nbe resolved, the user id will be the result."},"meta":{"line":145,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"remove","description":"Unbans a user from the guild.","examples":["// Unban a user by id (or with a user/guild member object)\nguild.bans.remove('84484653687267328')\n .then(user => console.log(`Unbanned ${user.username} from ${guild.name}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to unban","type":[[["UserResolvable"]]]},{"name":"reason","description":"Reason for unbanning user","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise",""],["User",">"]]],"meta":{"line":175,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"GuildChannelManager","description":"Manages API methods for GuildChannels and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this Manager belongs to","type":[[["Guild"]]],"meta":{"line":43,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"channelCountWithoutThreads","description":"The number of channels in this managers cache excluding thread channels\nthat do not count towards a guild's maximum channels restriction.","readonly":true,"type":[[["number"]]],"meta":{"line":52,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", ("],["GuildChannel","|"],["ThreadChannel",")>"]]],"meta":{"line":59,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a GuildChannelResolvable to a Channel object.","params":[{"name":"channel","description":"The GuildChannel resolvable to resolve","type":[[["GuildChannelResolvable"]]]}],"returns":{"types":[[["GuildChannel"]],[["ThreadChannel"]]],"nullable":true},"meta":{"line":85,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a GuildChannelResolvable to a channel id.","params":[{"name":"channel","description":"The GuildChannel resolvable to resolve","type":[[["GuildChannelResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":95,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"create","description":"Creates a new channel in the guild.","examples":["// Create a new text channel\nguild.channels.create('new-general', { reason: 'Needed a cool new channel' })\n .then(console.log)\n .catch(console.error);","// Create a new channel with permission overwrites\nguild.channels.create('new-voice', {\n type: 'GUILD_VOICE',\n permissionOverwrites: [\n {\n id: message.author.id,\n deny: [Permissions.FLAGS.VIEW_CHANNEL],\n },\n ],\n})"],"params":[{"name":"name","description":"The name of the new channel","type":[[["string"]]]},{"name":"options","description":"Options for creating the new channel","optional":true,"default":"{}","type":[[["GuildChannelCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":128,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"createWebhook","description":"Creates a webhook for the channel.","examples":["// Create a webhook for the current channel\nguild.channels.createWebhook('222197033908436994', 'Snek', {\n avatar: 'https://i.imgur.com/mI8XcpG.jpg',\n reason: 'Needed a cool new Webhook'\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"channel","description":"The channel to create the webhook for","type":[[["GuildChannelResolvable"]]]},{"name":"name","description":"The name of the webhook","type":[[["string"]]]},{"name":"options","description":"Options for creating the webhook","optional":true,"type":[[["ChannelWebhookCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Webhook",">"]]],"description":"Returns the created Webhook"},"meta":{"line":191,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"edit","description":"Edits the channel.","examples":["// Edit a channel\nguild.channels.edit('222197033908436994', { name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"channel","description":"The channel to edit","type":[[["GuildChannelResolvable"]]]},{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":241,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","examples":["// Set a new channel position\nguild.channels.setPosition('222078374472843266', 2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The channel to set the position for","type":[[["GuildChannelResolvable"]]]},{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":304,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more guild channels from Discord, or the channel cache if they're already available.","examples":["// Fetch all channels from the guild (excluding threads)\nmessage.guild.channels.fetch()\n .then(channels => console.log(`There are ${channels.size} channels.`))\n .catch(console.error);","// Fetch a single channel\nmessage.guild.channels.fetch('222197033908436994')\n .then(channel => console.log(`The channel name is: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The channel's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<(?"],["GuildChannel","|"],["Collection","<"],["Snowflake",", "],["GuildChannel",">)>"]]],"meta":{"line":339,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the channel.","examples":["// Fetch webhooks\nguild.channels.fetchWebhooks('769862166131245066')\n .then(hooks => console.log(`This channel has ${hooks.size} hooks`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The channel to fetch webhooks for","type":[[["GuildChannelResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":368,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"setPositions","description":"Batch-updates the guild's channels' positions.\nOnly one channel's parent can be changed at a time","examples":["guild.channels.setPositions([{ channel: channelId, position: newChannelIndex }])\n .then(guild => console.log(`Updated channel positions for ${guild}`))\n .catch(console.error);"],"params":[{"name":"channelPositions","description":"Channel positions to update","type":[[["Array","<"],["ChannelPosition",">"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":401,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"fetchActiveThreads","description":"Obtains all active thread channels in the guild from Discord","examples":["// Fetch all threads from the guild\nmessage.guild.channels.fetchActiveThreads()\n .then(fetched => console.log(`There are ${fetched.threads.size} threads.`))\n .catch(console.error);"],"params":[{"name":"cache","description":"Whether to cache the fetched data","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["FetchedThreads",">"]]],"meta":{"line":426,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes the channel.","examples":["// Delete the channel\nguild.channels.delete('858850993013260338', 'making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"channel","description":"The channel to delete","type":[[["GuildChannelResolvable"]]]},{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":442,"file":"GuildChannelManager.js","path":"src/managers"}}],"meta":{"line":24,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"GuildEmojiManager","description":"Manages API methods for GuildEmojis and stores their cache.","extends":[[["BaseGuildEmojiManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of GuildEmojis","type":[[["Collection","<"],["Snowflake",", "],["GuildEmoji",">"]]],"meta":{"line":17,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new custom emoji in the guild.","examples":["// Create a new emoji from a URL\nguild.emojis.create('https://i.imgur.com/w3duR07.png', 'rip')\n .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`))\n .catch(console.error);","// Create a new emoji from a file on your computer\nguild.emojis.create('./memes/banana.png', 'banana')\n .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`))\n .catch(console.error);"],"params":[{"name":"attachment","description":"The image for the emoji","type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"name","description":"The name for the emoji","type":[[["string"]]]},{"name":"options","description":"Options for creating the emoji","optional":true,"type":[[["GuildEmojiCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Emoji",">"]]],"description":"The created emoji"},"meta":{"line":52,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more emojis from Discord, or the emoji cache if they're already available.","examples":["// Fetch all emojis from the guild\nmessage.guild.emojis.fetch()\n .then(emojis => console.log(`There are ${emojis.size} emojis.`))\n .catch(console.error);","// Fetch a single emoji\nmessage.guild.emojis.fetch('222078108977594368')\n .then(emoji => console.log(`The emoji name is: ${emoji.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The emoji's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<("],["GuildEmoji","|"],["Collection","<"],["Snowflake",", "],["GuildEmoji",">)>"]]],"meta":{"line":89,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an emoji.","params":[{"name":"emoji","description":"The Emoji resolvable to delete","type":[[["EmojiResolvable"]]]},{"name":"reason","description":"Reason for deleting the emoji","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":111,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"edit","description":"Edits an emoji.","params":[{"name":"emoji","description":"The Emoji resolvable to edit","type":[[["EmojiResolvable"]]]},{"name":"data","description":"The new data for the emoji","type":[[["GuildEmojiEditData"]]]},{"name":"reason","description":"Reason for editing this emoji","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":124,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"fetchAuthor","description":"Fetches the author for this emoji","params":[{"name":"emoji","description":"The emoji to fetch the author of","type":[[["EmojiResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":152,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves an EmojiResolvable to an Emoji object.","inherits":"BaseGuildEmojiManager#resolve","inherited":true,"params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["GuildEmoji"]]],"nullable":true},"meta":{"line":36,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves an EmojiResolvable to an Emoji id string.","inherits":"BaseGuildEmojiManager#resolveId","inherited":true,"params":[{"name":"emoji","description":"The Emoji resolvable to identify","type":[[["EmojiResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":46,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"resolveIdentifier","description":"Resolves an EmojiResolvable to an emoji identifier.","inherits":"BaseGuildEmojiManager#resolveIdentifier","inherited":true,"params":[{"name":"emoji","description":"The emoji resolvable to resolve","type":[[["EmojiIdentifierResolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":64,"file":"BaseGuildEmojiManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"GuildEmojiRoleManager","description":"Manages API methods for roles belonging to emojis and stores their cache.","extends":[[["DataManager"]]],"props":[{"name":"emoji","description":"The emoji belonging to this manager","type":[[["GuildEmoji"]]],"meta":{"line":20,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"guild","description":"The guild belonging to this manager","type":[[["Guild"]]],"meta":{"line":25,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of roles belonging to this emoji","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":33,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"add","description":"Adds a role (or multiple roles) to the list of roles that can use this emoji.","params":[{"name":"roleOrRoles","description":"The role or roles to add","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":42,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"remove","description":"Removes a role (or multiple roles) from the list of roles that can use this emoji.","params":[{"name":"roleOrRoles","description":"The role or roles to remove","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":63,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"set","description":"Sets the role(s) that can use this emoji.","examples":["// Set the emoji's roles to a single role\nguildEmoji.roles.set(['391156570408615936'])\n .then(console.log)\n .catch(console.error);","// Remove all roles from an emoji\nguildEmoji.roles.set([])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"roles","description":"The roles or role ids to apply","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":94,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"_patch","description":"Patches the roles for this manager's cache","access":"private","params":[{"name":"roles","description":"The new roles","type":[[["Array","<"],["Snowflake",">"]]]}],"meta":{"line":109,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"GuildEmojiRoleManager.js","path":"src/managers"}},{"name":"GuildInviteManager","description":"Manages API methods for GuildInvites and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this Manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["string",", "],["Invite",">"]]],"meta":{"line":24,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves an InviteResolvable to an Invite object.","params":[{"name":"invite","description":"The invite resolvable to resolve","type":[[["InviteResolvable"]]]}],"returns":{"types":[[["Invite"]]],"nullable":true},"meta":{"line":53,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves an InviteResolvable to an invite code string.","params":[{"name":"invite","description":"The invite resolvable to resolve","type":[[["InviteResolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":62,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches invite(s) from Discord.","examples":["// Fetch all invites from a guild\nguild.invites.fetch()\n .then(console.log)\n .catch(console.error);","// Fetch all invites from a guild without caching\nguild.invites.fetch({ cache: false })\n .then(console.log)\n .catch(console.error);","// Fetch all invites from a channel\nguild.invites.fetch({ channelId: '222197033908436994' })\n .then(console.log)\n .catch(console.error);","// Fetch a single invite\nguild.invites.fetch('bRCvFy9')\n .then(console.log)\n .catch(console.error);","// Fetch a single invite without checking cache\nguild.invites.fetch({ code: 'bRCvFy9', force: true })\n .then(console.log)\n .catch(console.error)","// Fetch a single invite without caching\nguild.invites.fetch({ code: 'bRCvFy9', cache: false })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for fetching guild invite(s)","optional":true,"type":[[["InviteResolvable"]],[["FetchInviteOptions"]],[["FetchInvitesOptions"]]]}],"returns":[[["Promise","<("],["Invite","|"],["Collection","<"],["string",", "],["Invite",">)>"]]],"meta":{"line":122,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"create","description":"Create an invite to the guild from the provided channel.","examples":["// Create an invite to a selected channel\nguild.invites.create('599942732013764608')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"channel","description":"The options for creating the invite from a channel.","type":[[["GuildInvitableChannelResolvable"]]]},{"name":"options","description":"The options for creating the invite from a channel.","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":178,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an invite.","params":[{"name":"invite","description":"The invite to delete","type":[[["InviteResolvable"]]]},{"name":"reason","description":"Reason for deleting the invite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":206,"file":"GuildInviteManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"GuildManager","description":"Manages API methods for Guilds and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["Guild",">"]]],"meta":{"line":46,"file":"GuildManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a GuildResolvable to a Guild object.","params":[{"name":"guild","description":"The guild resolvable to identify","type":[[["GuildResolvable"]]]}],"returns":{"types":[[["Guild"]]],"nullable":true},"meta":{"line":104,"file":"GuildManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link GuildResolvable} to a {@link Guild} id string.","params":[{"name":"guild","description":"The guild resolvable to identify","type":[[["GuildResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":125,"file":"GuildManager.js","path":"src/managers"}},{"name":"create","description":"Creates a guild.\nThis is only available to bots in fewer than 10 guilds.","params":[{"name":"name","description":"The name of the guild","type":[[["string"]]]},{"name":"options","description":"Options for creating the guild","optional":true,"type":[[["GuildCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Guild",">"]]],"description":"The guild that was created"},"meta":{"line":170,"file":"GuildManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or multiple guilds from Discord, or the guild cache if it's already available.","params":[{"name":"options","description":"The guild's id or options","optional":true,"type":[[["GuildResolvable"]],[["FetchGuildOptions"]],[["FetchGuildsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Guild","|"],["Collection","<"],["Snowflake",", "],["OAuth2Guild",">)>"]]],"meta":{"line":286,"file":"GuildManager.js","path":"src/managers"}}],"meta":{"line":34,"file":"GuildManager.js","path":"src/managers"}},{"name":"GuildMemberManager","description":"Manages API methods for GuildMembers and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":26,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":29,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link GuildMemberResolvable} to a {@link GuildMember} object.","params":[{"name":"member","description":"The user that is part of the guild","type":[[["GuildMemberResolvable"]]]}],"returns":{"types":[[["GuildMember"]]],"nullable":true},"meta":{"line":51,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link GuildMemberResolvable} to a member id.","params":[{"name":"member","description":"The user that is part of the guild","type":[[["GuildMemberResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":64,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"add","description":"Adds a user to the guild using OAuth2. Requires the `CREATE_INSTANT_INVITE` permission.","params":[{"name":"user","description":"The user to add to the guild","type":[[["UserResolvable"]]]},{"name":"options","description":"Options for adding the user to the guild","type":[[["AddGuildMemberOptions"]]]}],"async":true,"returns":[[["Promise","<("],["GuildMember","|"],["null",")>"]]],"meta":{"line":91,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches member(s) from Discord, even if they're offline.","examples":["// Fetch all members from a guild\nguild.members.fetch()\n .then(console.log)\n .catch(console.error);","// Fetch a single member\nguild.members.fetch('66564597481480192')\n .then(console.log)\n .catch(console.error);","// Fetch a single member without checking cache\nguild.members.fetch({ user, force: true })\n .then(console.log)\n .catch(console.error)","// Fetch a single member without caching\nguild.members.fetch({ user, cache: false })\n .then(console.log)\n .catch(console.error);","// Fetch by an array of users including their presences\nguild.members.fetch({ user: ['66564597481480192', '191615925336670208'], withPresences: true })\n .then(console.log)\n .catch(console.error);","// Fetch by query\nguild.members.fetch({ query: 'hydra', limit: 1 })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"If a UserResolvable, the user to fetch.\nIf undefined, fetches all members.\nIf a query, it limits the results to users with similar usernames.","optional":true,"type":[[["UserResolvable"]],[["FetchMemberOptions"]],[["FetchMembersOptions"]]]}],"returns":[[["Promise","<("],["GuildMember","|"],["Collection","<"],["Snowflake",", "],["GuildMember",">)>"]]],"meta":{"line":176,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"search","description":"Searches for members in the guild based on a query.","params":[{"name":"options","description":"Options for searching members","type":[[["GuildSearchMembersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildMember",">>"]]],"meta":{"line":205,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"list","description":"Lists up to 1000 members of the guild.","params":[{"name":"options","description":"Options for listing members","optional":true,"type":[[["GuildListMembersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildMember",">>"]]],"meta":{"line":223,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a member of the guild.\nThe user must be a member of the guild","params":[{"name":"user","description":"The member to edit","type":[[["UserResolvable"]]]},{"name":"data","description":"The data to edit the member with","type":[[["GuildMemberEditData"]]]},{"name":"reason","description":"Reason for editing this user","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":249,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"prune","description":"Prunes members from the guild based on how long they have been inactive.","examples":["// See how many members will be pruned\nguild.members.prune({ dry: true })\n .then(pruned => console.log(`This will prune ${pruned} people!`))\n .catch(console.error);","// Actually prune the members\nguild.members.prune({ days: 1, reason: 'too many people!' })\n .then(pruned => console.log(`I just pruned ${pruned} people!`))\n .catch(console.error);","// Include members with a specified role\nguild.members.prune({ days: 7, roles: ['657259391652855808'] })\n .then(pruned => console.log(`I just pruned ${pruned} people!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options for pruning","optional":true,"type":[[["GuildPruneMembersOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["number","|"],["null",")>"]]],"description":"The number of members that were/will be kicked"},"meta":{"line":318,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"kick","description":"Kicks a user from the guild.\nThe user must be a member of the guild","examples":["// Kick a user by id (or with a user/guild member object)\nguild.members.kick('84484653687267328')\n .then(kickInfo => console.log(`Kicked ${kickInfo.user?.tag ?? kickInfo.tag ?? kickInfo}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The member to kick","type":[[["UserResolvable"]]]},{"name":"reason","description":"Reason for kicking","optional":true,"type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["GuildMember","|"],["User","|"],["Snowflake",")>"]]],"description":"Result object will be resolved as specifically as possible.\nIf the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot\nbe resolved, the user's id will be the result."},"meta":{"line":359,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"ban","description":"Bans a user from the guild.","examples":["// Ban a user by id (or with a user/guild member object)\nguild.members.ban('84484653687267328')\n .then(banInfo => console.log(`Banned ${banInfo.user?.tag ?? banInfo.tag ?? banInfo}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to ban","type":[[["UserResolvable"]]]},{"name":"options","description":"Options for the ban","optional":true,"type":[[["BanOptions"]]]}],"returns":{"types":[[["Promise","<("],["GuildMember","|"],["User","|"],["Snowflake",")>"]]],"description":"Result object will be resolved as specifically as possible.\nIf the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot\nbe resolved, the user id will be the result.\nInternally calls the GuildBanManager#create method."},"meta":{"line":382,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"unban","description":"Unbans a user from the guild. Internally calls the {@link GuildBanManager#remove} method.","examples":["// Unban a user by id (or with a user/guild member object)\nguild.members.unban('84484653687267328')\n .then(user => console.log(`Unbanned ${user.username} from ${guild.name}`))\n .catch(console.error);"],"params":[{"name":"user","description":"The user to unban","type":[[["UserResolvable"]]]},{"name":"reason","description":"Reason for unbanning user","optional":true,"type":[[["string"]]]}],"returns":{"types":[[["Promise",""],["User",">"]]],"description":"The user that was unbanned"},"meta":{"line":397,"file":"GuildMemberManager.js","path":"src/managers"}}],"meta":{"line":18,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildMemberRoleManager","description":"Manages API methods for roles of a GuildMember and stores their cache.","extends":[[["DataManager"]]],"props":[{"name":"member","description":"The GuildMember this manager belongs to","type":[[["GuildMember"]]],"meta":{"line":20,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"guild","description":"The Guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":26,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"cache","description":"The roles of this member","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":34,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"hoist","description":"The role of the member used to hoist them in a separate category in the users list","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":44,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"icon","description":"The role of the member used to set their role icon","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":55,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"color","description":"The role of the member used to set their color","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":66,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"highest","description":"The role of the member with the highest position","readonly":true,"type":[[["Role"]]],"meta":{"line":77,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"premiumSubscriberRole","description":"The premium subscriber role of the guild, if present on the member","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":86,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"botRole","description":"The managed role this member created when joining the guild, if any\nOnly ever available on bots","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":96,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"add","description":"Adds a role (or multiple roles) to the member.","params":[{"name":"roleOrRoles","description":"The role or roles to add","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]},{"name":"reason","description":"Reason for adding the role(s)","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":107,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"remove","description":"Removes a role (or multiple roles) from the member.","params":[{"name":"roleOrRoles","description":"The role or roles to remove","type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]],[["Collection","<"],["Snowflake",", "],["Role",">"]]]},{"name":"reason","description":"Reason for removing the role(s)","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":138,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"set","description":"Sets the roles applied to the member.","examples":["// Set the member's roles to a single role\nguildMember.roles.set(['391156570408615936'])\n .then(console.log)\n .catch(console.error);","// Remove all the roles from a member\nguildMember.roles.set([])\n .then(member => console.log(`Member roles is now of ${member.roles.cache.size} size`))\n .catch(console.error);"],"params":[{"name":"roles","description":"The roles or role ids to apply","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"reason","description":"Reason for applying the roles","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":180,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"GuildMemberRoleManager.js","path":"src/managers"}},{"name":"GuildScheduledEventManager","description":"Manages API methods for GuildScheduledEvents and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":22,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["GuildScheduledEvent",">"]]],"meta":{"line":25,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new guild scheduled event.","params":[{"name":"options","description":"Options for creating the guild scheduled event","type":[[["GuildScheduledEventCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":69,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more guild scheduled events from Discord, or the guild cache if it's already available.","params":[{"name":"options","description":"The id of the guild scheduled event or options","optional":true,"type":[[["GuildScheduledEventResolvable"]],[["FetchGuildScheduledEventOptions"]],[["FetchGuildScheduledEventsOptions"]]]}],"async":true,"returns":[[["Promise","<("],["GuildScheduledEvent","|"],["Collection","<"],["Snowflake",", "],["GuildScheduledEvent",">)>"]]],"meta":{"line":136,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a guild scheduled event.","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event to edit","type":[[["GuildScheduledEventResolvable"]]]},{"name":"options","description":"Options to edit the guild scheduled event","type":[[["GuildScheduledEventEditOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":189,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a guild scheduled event.","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event to delete","type":[[["GuildScheduledEventResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":243,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"fetchSubscribers","description":"Fetches subscribers of a guild scheduled event.","params":[{"name":"guildScheduledEvent","description":"The guild scheduled event to fetch subscribers of","type":[[["GuildScheduledEventResolvable"]]]},{"name":"options","description":"Options for fetching the subscribers","optional":true,"default":"{}","type":[[["FetchGuildScheduledEventSubscribersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildScheduledEventUser",">>"]]],"meta":{"line":274,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":14,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildStickerManager","description":"Manages API methods for Guild Stickers and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":21,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of Guild Stickers","type":[[["Collection","<"],["Snowflake",", "],["Sticker",">"]]],"meta":{"line":24,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new custom sticker in the guild.","examples":["// Create a new sticker from a URL\nguild.stickers.create('https://i.imgur.com/w3duR07.png', 'rip', 'headstone')\n .then(sticker => console.log(`Created new sticker with name ${sticker.name}!`))\n .catch(console.error);","// Create a new sticker from a file on your computer\nguild.stickers.create('./memes/banana.png', 'banana', 'banana')\n .then(sticker => console.log(`Created new sticker with name ${sticker.name}!`))\n .catch(console.error);"],"params":[{"name":"file","description":"The file for the sticker","type":[[["BufferResolvable"]],[["Stream"]],[["FileOptions"]],[["MessageAttachment"]]]},{"name":"name","description":"The name for the sticker","type":[[["string"]]]},{"name":"tags","description":"The Discord name of a unicode emoji representing the sticker's expression","type":[[["string"]]]},{"name":"options","description":"Options","optional":true,"type":[[["GuildStickerCreateOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Sticker",">"]]],"description":"The created sticker"},"meta":{"line":59,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a StickerResolvable to a Sticker object.","params":[{"name":"sticker","description":"The Sticker resolvable to identify","type":[[["StickerResolvable"]]]}],"returns":{"types":[[["Sticker"]]],"nullable":true},"meta":{"line":79,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a StickerResolvable to a Sticker id string.","params":[{"name":"sticker","description":"The Sticker resolvable to identify","type":[[["StickerResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":88,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a sticker.","params":[{"name":"sticker","description":"The sticker to edit","type":[[["StickerResolvable"]]]},{"name":"data","description":"The new data for the sticker","optional":true,"type":[[["GuildStickerEditData"]]]},{"name":"reason","description":"Reason for editing this sticker","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":104,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a sticker.","params":[{"name":"sticker","description":"The sticker to delete","type":[[["StickerResolvable"]]]},{"name":"reason","description":"Reason for deleting this sticker","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":128,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains one or more stickers from Discord, or the sticker cache if they're already available.","examples":["// Fetch all stickers from the guild\nmessage.guild.stickers.fetch()\n .then(stickers => console.log(`There are ${stickers.size} stickers.`))\n .catch(console.error);","// Fetch a single sticker\nmessage.guild.stickers.fetch('222078108977594368')\n .then(sticker => console.log(`The sticker name is: ${sticker.name}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The Sticker's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Sticker","|"],["Collection","<"],["Snowflake",", "],["Sticker",">)>"]]],"meta":{"line":151,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"fetchUser","description":"Fetches the user who uploaded this sticker, if this is a guild sticker.","params":[{"name":"sticker","description":"The sticker to fetch the user for","type":[[["StickerResolvable"]]]}],"async":true,"returns":[[["Promise",""],["User",">"]]],"meta":{"line":170,"file":"GuildStickerManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"MessageManager","description":"Manages API methods for Messages and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"channel","description":"The channel that the messages belong to","type":[[["TextBasedChannels"]]],"meta":{"line":23,"file":"MessageManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of Messages","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]]],"meta":{"line":26,"file":"MessageManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"fetch","description":"Gets a message, or messages, from this channel.\nThe returned Collection does not contain reaction users of the messages if they were not cached.\nThose need to be fetched separately in such a case.","examples":["// Get message\nchannel.messages.fetch('99539446449315840')\n .then(message => console.log(message.content))\n .catch(console.error);","// Get messages\nchannel.messages.fetch({ limit: 10 })\n .then(messages => console.log(`Received ${messages.size} messages`))\n .catch(console.error);","// Get messages and filter by user id\nchannel.messages.fetch()\n .then(messages => console.log(`${messages.filter(m => m.author.id === '84484653687267328').size} messages`))\n .catch(console.error);"],"params":[{"name":"message","description":"The id of the message to fetch, or query parameters.","optional":true,"type":[[["Snowflake"]],[["ChannelLogsQueryOptions"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["Collection","<"],["Snowflake",", "],["Message",">)>"]]],"meta":{"line":69,"file":"MessageManager.js","path":"src/managers"}},{"name":"fetchPinned","description":"Fetches the pinned messages of this channel and returns a collection of them.\nThe returned Collection does not contain any reaction data of the messages.\nThose need to be fetched separately.","examples":["// Get pinned messages\nchannel.messages.fetchPinned()\n .then(messages => console.log(`Received ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"cache","description":"Whether to cache the message(s)","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":85,"file":"MessageManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a {@link MessageResolvable} to a {@link Message} object.","params":[{"name":"message","description":"The message resolvable to resolve","type":[[["MessageResolvable"]]]}],"returns":{"types":[[["Message"]]],"nullable":true},"meta":{"line":99,"file":"MessageManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link MessageResolvable} to a {@link Message} id.","params":[{"name":"message","description":"The message resolvable to resolve","type":[[["MessageResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":108,"file":"MessageManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a message, even if it's not cached.","params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]]]},{"name":"options","description":"The options to edit the message","type":[[["string"]],[["MessageEditOptions"]],[["MessagePayload"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":123,"file":"MessageManager.js","path":"src/managers"}},{"name":"crosspost","description":"Publishes a message in an announcement channel to all channels following it, even if it's not cached.","params":[{"name":"message","description":"The message to publish","type":[[["MessageResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":150,"file":"MessageManager.js","path":"src/managers"}},{"name":"pin","description":"Pins a message to the channel's pinned messages, even if it's not cached.","params":[{"name":"message","description":"The message to pin","type":[[["MessageResolvable"]]]},{"name":"reason","description":"Reason for pinning","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":164,"file":"MessageManager.js","path":"src/managers"}},{"name":"unpin","description":"Unpins a message from the channel's pinned messages, even if it's not cached.","params":[{"name":"message","description":"The message to unpin","type":[[["MessageResolvable"]]]},{"name":"reason","description":"Reason for unpinning","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":177,"file":"MessageManager.js","path":"src/managers"}},{"name":"react","description":"Adds a reaction to a message, even if it's not cached.","params":[{"name":"message","description":"The message to react to","type":[[["MessageResolvable"]]]},{"name":"emoji","description":"The emoji to react with","type":[[["EmojiIdentifierResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":190,"file":"MessageManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a message, even if it's not cached.","params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":210,"file":"MessageManager.js","path":"src/managers"}}],"meta":{"line":15,"file":"MessageManager.js","path":"src/managers"}},{"name":"PermissionOverwriteManager","description":"Manages API methods for guild channel permission overwrites and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"channel","description":"The channel of the permission overwrite this manager belongs to","type":[[["GuildChannel"]]],"meta":{"line":32,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["PermissionOverwrites",">"]]],"meta":{"line":41,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"set","description":"Replaces the permission overwrites in this channel.","examples":["message.channel.permissionOverwrites.set([\n {\n id: message.author.id,\n deny: [Permissions.FLAGS.VIEW_CHANNEL],\n },\n], 'Needed to change permissions');"],"params":[{"name":"overwrites","description":"Permission overwrites the channel gets updated with","type":[[["Array","<"],["OverwriteResolvable",">"]],[["Collection","<"],["Snowflake",", "],["OverwriteResolvable",">"]]]},{"name":"reason","description":"Reason for updating the channel overwrites","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":65,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"upsert","description":"Creates or edits permission overwrites for a user or role in this channel.","access":"private","params":[{"name":"userOrRole","description":"The user or role to update","type":[[["RoleResolvable"]],[["UserResolvable"]]]},{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"overwriteOptions","description":"The extra information for the update","optional":true,"type":[[["GuildChannelOverwriteOptions"]]]},{"name":"existing","description":"The existing overwrites to merge with this update","optional":true,"type":[[["PermissionOverwrites"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":91,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"create","description":"Creates permission overwrites for a user or role in this channel, or replaces them if already present.","examples":["// Create or Replace permission overwrites for a message author\nmessage.channel.permissionOverwrites.create(message.author, {\n SEND_MESSAGES: false\n})\n .then(channel => console.log(channel.permissionOverwrites.cache.get(message.author.id)))\n .catch(console.error);"],"params":[{"name":"userOrRole","description":"The user or role to update","type":[[["RoleResolvable"]],[["UserResolvable"]]]},{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"overwriteOptions","description":"The extra information for the update","optional":true,"type":[[["GuildChannelOverwriteOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":126,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"edit","description":"Edits permission overwrites for a user or role in this channel, or creates an entry if not already present.","examples":["// Edit or Create permission overwrites for a message author\nmessage.channel.permissionOverwrites.edit(message.author, {\n SEND_MESSAGES: false\n})\n .then(channel => console.log(channel.permissionOverwrites.cache.get(message.author.id)))\n .catch(console.error);"],"params":[{"name":"userOrRole","description":"The user or role to update","type":[[["RoleResolvable"]],[["UserResolvable"]]]},{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"overwriteOptions","description":"The extra information for the update","optional":true,"type":[[["GuildChannelOverwriteOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":144,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes permission overwrites for a user or role in this channel.","params":[{"name":"userOrRole","description":"The user or role to delete","type":[[["UserResolvable"]],[["RoleResolvable"]]]},{"name":"reason","description":"The reason for deleting the overwrite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":156,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":17,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"PresenceManager","description":"Manages API methods for Presences and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of Presences","type":[[["Collection","<"],["Snowflake",", "],["Presence",">"]]],"meta":{"line":15,"file":"PresenceManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link PresenceResolvable} to a {@link Presence} object.","params":[{"name":"presence","description":"The presence resolvable to resolve","type":[[["PresenceResolvable"]]]}],"returns":{"types":[[["Presence"]]],"nullable":true},"meta":{"line":38,"file":"PresenceManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link PresenceResolvable} to a {@link Presence} id.","params":[{"name":"presence","description":"The presence resolvable to resolve","type":[[["PresenceResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"PresenceManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"PresenceManager.js","path":"src/managers"}},{"name":"ReactionManager","description":"Manages API methods for reactions and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"message","description":"The message that this manager belongs to","type":[[["Message"]]],"meta":{"line":18,"file":"ReactionManager.js","path":"src/managers"}},{"name":"cache","description":"The reaction cache of this manager","type":[[["Collection","<("],["string","|"],["Snowflake","), "],["MessageReaction",">"]]],"meta":{"line":25,"file":"ReactionManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link MessageReactionResolvable} to a {@link MessageReaction} object.","params":[{"name":"reaction","description":"The MessageReaction to resolve","type":[[["MessageReactionResolvable"]]]}],"returns":{"types":[[["MessageReaction"]]],"nullable":true},"meta":{"line":38,"file":"ReactionManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link MessageReactionResolvable} to a {@link MessageReaction} id.","params":[{"name":"reaction","description":"The MessageReaction to resolve","type":[[["MessageReactionResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":47,"file":"ReactionManager.js","path":"src/managers"}},{"name":"removeAll","description":"Removes all reactions from a message.","async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":60,"file":"ReactionManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"ReactionManager.js","path":"src/managers"}},{"name":"ReactionUserManager","description":"Manages API methods for users who reacted to a reaction and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"reaction","description":"The reaction that this manager belongs to","type":[[["MessageReaction"]]],"meta":{"line":19,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["DiscordUser",">"]]],"meta":{"line":22,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"fetch","description":"Fetches all the users that gave this reaction. Resolves with a collection of users, mapped by their ids.","params":[{"name":"options","description":"Options for fetching the users","optional":true,"type":[[["FetchReactionUsersOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["DiscordUser",">>"]]],"meta":{"line":40,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"remove","description":"Removes a user from this reaction.","params":[{"name":"user","description":"The user to remove the reaction of","optional":true,"default":"this.client.user","type":[[["UserResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":59,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":11,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"RelationshipsManager","description":"Manages API methods for Relationships and stores their cache.","methods":[{"name":"_setup","access":"private","params":[{"name":"users","description":"An array of users to add to the cache","type":[[["Array","<"],["User",">"]]]}],"returns":[[["void"]]],"meta":{"line":25,"file":"RelationshipsManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":37,"file":"RelationshipsManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":51,"file":"RelationshipsManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"RelationshipsManager.js","path":"src/managers"}},{"name":"RoleManager","description":"Manages API methods for roles and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild belonging to this manager","type":[[["Guild"]]],"meta":{"line":34,"file":"RoleManager.js","path":"src/managers"}},{"name":"cache","description":"The role cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":37,"file":"RoleManager.js","path":"src/managers"}},{"name":"everyone","description":"The `@everyone` role of the guild","readonly":true,"type":[[["Role"]]],"meta":{"line":326,"file":"RoleManager.js","path":"src/managers"}},{"name":"premiumSubscriberRole","description":"The premium subscriber role of the guild, if any","readonly":true,"nullable":true,"type":[[["Role"]]],"meta":{"line":335,"file":"RoleManager.js","path":"src/managers"}},{"name":"highest","description":"The role with the highest position in the cache","readonly":true,"type":[[["Role"]]],"meta":{"line":344,"file":"RoleManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"fetch","description":"Obtains a role from Discord, or the role cache if they're already available.","examples":["// Fetch all roles from the guild\nmessage.guild.roles.fetch()\n .then(roles => console.log(`There are ${roles.size} roles.`))\n .catch(console.error);","// Fetch a single role\nmessage.guild.roles.fetch('222078108977594368')\n .then(role => console.log(`The role color is: ${role.color}`))\n .catch(console.error);"],"params":[{"name":"id","description":"The role's id","optional":true,"type":[[["Snowflake"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<(?"],["Role","|"],["Collection","<"],["Snowflake",", "],["Role",">)>"]]],"meta":{"line":63,"file":"RoleManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a {@link RoleResolvable} to a {@link Role} object.","params":[{"name":"role","description":"The role resolvable to resolve","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["Role"]]],"nullable":true},"meta":{"line":83,"file":"RoleManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link RoleResolvable} to a {@link Role} id.","params":[{"name":"role","description":"The role resolvable to resolve","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":92,"file":"RoleManager.js","path":"src/managers"}},{"name":"create","description":"Creates a new role in the guild with given information.\nThe position will silently reset to 1 if an invalid one is provided, or none.","examples":["// Create a new role\nguild.roles.create()\n .then(console.log)\n .catch(console.error);","// Create a new role with data and a reason\nguild.roles.create({\n name: 'Super Cool Blue People',\n color: 'BLUE',\n reason: 'we needed a role for Super Cool People',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for creating the new role","optional":true,"type":[[["CreateRoleOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":137,"file":"RoleManager.js","path":"src/managers"}},{"name":"edit","description":"Edits a role of the guild.","examples":["// Edit a role\nguild.roles.edit('222079219327434752', { name: 'buddies' })\n .then(updated => console.log(`Edited role name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"role","description":"The role to edit","type":[[["RoleResolvable"]]]},{"name":"data","description":"The new data for the role","type":[[["RoleData"]]]},{"name":"reason","description":"Reason for editing this role","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":179,"file":"RoleManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes a role.","examples":["// Delete a role\nguild.roles.delete('222079219327434752', 'The role needed to go')\n .then(() => console.log('Deleted the role.'))\n .catch(console.error);"],"params":[{"name":"role","description":"The role to delete","type":[[["RoleResolvable"]]]},{"name":"reason","description":"Reason for deleting the role","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":220,"file":"RoleManager.js","path":"src/managers"}},{"name":"setPosition","description":"Sets the new position of the role.","examples":["// Set the position of the role\nguild.roles.setPosition('222197033908436994', 1)\n .then(updated => console.log(`Role position: ${updated.position}`))\n .catch(console.error);"],"params":[{"name":"role","description":"The role to change the position of","type":[[["RoleResolvable"]]]},{"name":"position","description":"The new position for the role","type":[[["number"]]]},{"name":"options","description":"Options for setting the position","optional":true,"type":[[["SetRolePositionOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":238,"file":"RoleManager.js","path":"src/managers"}},{"name":"setPositions","description":"Batch-updates the guild's role positions","examples":["guild.roles.setPositions([{ role: roleId, position: updatedRoleIndex }])\n .then(guild => console.log(`Role positions updated for ${guild}`))\n .catch(console.error);"],"params":[{"name":"rolePositions","description":"Role positions to update","type":[[["Array","<"],["GuildRolePosition",">"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":273,"file":"RoleManager.js","path":"src/managers"}},{"name":"comparePositions","description":"Compares the positions of two roles.","params":[{"name":"role1","description":"First role to compare","type":[[["RoleResolvable"]]]},{"name":"role2","description":"Second role to compare","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["number"]]],"description":"Negative number if the first role's position is lower (second role's is higher),\npositive number if the first's is higher (second's is lower), 0 if equal"},"meta":{"line":297,"file":"RoleManager.js","path":"src/managers"}},{"name":"botRoleFor","description":"Gets the managed role a user created when joining the guild, if any\nOnly ever available for bots","params":[{"name":"user","description":"The user to access the bot role for","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Role"]]],"nullable":true},"meta":{"line":315,"file":"RoleManager.js","path":"src/managers"}}],"meta":{"line":19,"file":"RoleManager.js","path":"src/managers"}},{"name":"StageInstanceManager","description":"Manages API methods for {@link StageInstance} objects and holds their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":20,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["StageInstance",">"]]],"meta":{"line":23,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"create","description":"Creates a new stage instance.","examples":["// Create a stage instance\nguild.stageInstances.create('1234567890123456789', {\n topic: 'A very creative topic',\n privacyLevel: 'GUILD_ONLY'\n})\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"params":[{"name":"channel","description":"The stage channel to associate the created stage instance to","type":[[["StageChannelResolvable"]]]},{"name":"options","description":"The options to create the stage instance","type":[[["StageInstanceCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":58,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches the stage instance associated with a stage channel, if it exists.","examples":["// Fetch a stage instance\nguild.stageInstances.fetch('1234567890123456789')\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"params":[{"name":"channel","description":"The stage channel whose associated stage instance is to be fetched","type":[[["StageChannelResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":89,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"edit","description":"Edits an existing stage instance.","examples":["// Edit a stage instance\nguild.stageInstances.edit('1234567890123456789', { topic: 'new topic' })\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"params":[{"name":"channel","description":"The stage channel whose associated stage instance is to be edited","type":[[["StageChannelResolvable"]]]},{"name":"options","description":"The options to edit the stage instance","type":[[["StageInstanceEditOptions"]]]}],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":120,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"delete","description":"Deletes an existing stage instance.","params":[{"name":"channel","description":"The stage channel whose associated stage instance is to be deleted","type":[[["StageChannelResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":150,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"ThreadManager","description":"Manages API methods for {@link ThreadChannel} objects and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"channel","description":"The channel this Manager belongs to","type":[[["NewsChannel"]],[["TextChannel"]]],"meta":{"line":22,"file":"ThreadManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["ThreadChannel",">"]]],"meta":{"line":25,"file":"ThreadManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link ThreadChannelResolvable} to a {@link ThreadChannel} object.","params":[{"name":"thread","description":"The ThreadChannel resolvable to resolve","type":[[["ThreadChannelResolvable"]]]}],"returns":{"types":[[["ThreadChannel"]]],"nullable":true},"meta":{"line":45,"file":"ThreadManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link ThreadChannelResolvable} to a {@link ThreadChannel} id.","params":[{"name":"thread","description":"The ThreadChannel resolvable to resolve","type":[[["ThreadChannelResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":54,"file":"ThreadManager.js","path":"src/managers"}},{"name":"create","description":"Creates a new thread in the channel.","examples":["// Create a new public thread\nchannel.threads\n .create({\n name: 'food-talk',\n autoArchiveDuration: 60,\n reason: 'Needed a separate thread for food',\n })\n .then(threadChannel => console.log(threadChannel))\n .catch(console.error);","// Create a new private thread\nchannel.threads\n .create({\n name: 'mod-talk',\n autoArchiveDuration: 60,\n type: 'GUILD_PRIVATE_THREAD',\n reason: 'Needed a separate thread for moderation',\n })\n .then(threadChannel => console.log(threadChannel))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to create a new thread","optional":true,"type":[[["ThreadCreateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":102,"file":"ThreadManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a thread from Discord, or the channel cache if it's already available.","examples":["// Fetch a thread by its id\nchannel.threads.fetch('831955138126104859')\n .then(channel => console.log(channel.name))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to fetch threads. If it is a\nThreadChannelResolvable then the specified thread will be fetched. Fetches all active threads if `undefined`","optional":true,"type":[[["ThreadChannelResolvable"]],[["FetchThreadsOptions"]]]},{"name":"cacheOptions","description":"Additional options for this fetch. The `force` field gets ignored\nif `options` is not a {@link ThreadChannelResolvable}","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","("],["ThreadChannel","|"],["FetchedThreads",")>"]]],"meta":{"line":161,"file":"ThreadManager.js","path":"src/managers"}},{"name":"fetchArchived","description":"Obtains a set of archived threads from Discord, requires `READ_MESSAGE_HISTORY` in the parent channel.","params":[{"name":"options","description":"The options to fetch archived threads","optional":true,"type":[[["FetchArchivedThreadOptions"]]]},{"name":"cache","description":"Whether to cache the new thread objects if they aren't already","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["FetchedThreads",">"]]],"meta":{"line":203,"file":"ThreadManager.js","path":"src/managers"}},{"name":"fetchActive","description":"Obtains the accessible active threads from Discord, requires `READ_MESSAGE_HISTORY` in the parent channel.","params":[{"name":"cache","description":"Whether to cache the new thread objects if they aren't already","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["FetchedThreads",">"]]],"meta":{"line":233,"file":"ThreadManager.js","path":"src/managers"}}],"meta":{"line":14,"file":"ThreadManager.js","path":"src/managers"}},{"name":"ThreadMemberManager","description":"Manages API methods for GuildMembers and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"thread","description":"The thread this manager belongs to","type":[[["ThreadChannel"]]],"meta":{"line":20,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this Manager","type":[[["Collection","<"],["Snowflake",", "],["ThreadMember",">"]]],"meta":{"line":23,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a {@link ThreadMemberResolvable} to a {@link ThreadMember} object.","params":[{"name":"member","description":"The user that is part of the thread","type":[[["ThreadMemberResolvable"]]]}],"returns":{"types":[[["GuildMember"]]],"nullable":true},"meta":{"line":51,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link ThreadMemberResolvable} to a {@link ThreadMember} id string.","params":[{"name":"member","description":"The user that is part of the guild","type":[[["ThreadMemberResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":64,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"add","description":"Adds a member to the thread.","params":[{"name":"member","description":"The member to add","type":[[["UserResolvable"]],[["me","'"]]]},{"name":"reason","description":"The reason for adding this member","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Snowflake",">"]]],"meta":{"line":77,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"remove","description":"Remove a user from the thread.","params":[{"name":"id","description":"The id of the member to remove","type":[[["Snowflake"]],[["me","'"]]]},{"name":"reason","description":"The reason for removing this member from the thread","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Snowflake",">"]]],"meta":{"line":90,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"fetch","description":"Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent.","params":[{"name":"member","description":"The member to fetch. If `undefined`, all members\nin the thread are fetched, and will be cached based on `options.cache`. If boolean, this serves\nthe purpose of `options.cache`.","optional":true,"type":[[["UserResolvable"]],[["boolean"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<("],["ThreadMember","|"],["Collection","<"],["Snowflake",", "],["ThreadMember",">)>"]]],"meta":{"line":118,"file":"ThreadMemberManager.js","path":"src/managers"}}],"meta":{"line":12,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"UserManager","description":"Manages API methods for users and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":18,"file":"UserManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"dmChannel","description":"The DM between the client's user and a user","access":"private","params":[{"name":"userId","description":"The user id","type":[[["Snowflake"]]]}],"returns":{"types":[[["DMChannel"]]],"nullable":true},"meta":{"line":40,"file":"UserManager.js","path":"src/managers"}},{"name":"createDM","description":"Creates a {@link DMChannel} between the client and a user.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":50,"file":"UserManager.js","path":"src/managers"}},{"name":"deleteDM","description":"Deletes a {@link DMChannel} (if one exists) between the client and a user. Resolves with the channel if successful.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":71,"file":"UserManager.js","path":"src/managers"}},{"name":"fetch","description":"Obtains a user from Discord, or the user cache if it's already available.","params":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":86,"file":"UserManager.js","path":"src/managers"}},{"name":"fetchFlags","description":"Fetches a user's flags.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]},{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["UserFlags",">"]]],"meta":{"line":106,"file":"UserManager.js","path":"src/managers"}},{"name":"send","description":"Sends a message to a user.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":116,"file":"UserManager.js","path":"src/managers"}},{"name":"resolve","description":"Resolves a {@link UserResolvable} to a {@link User} object.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["User"]]],"nullable":true},"meta":{"line":125,"file":"UserManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a {@link UserResolvable} to a {@link User} id.","params":[{"name":"user","description":"The UserResolvable to identify","type":[[["UserResolvable"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":136,"file":"UserManager.js","path":"src/managers"}}],"meta":{"line":13,"file":"UserManager.js","path":"src/managers"}},{"name":"VoiceStateManager","description":"Manages API methods for VoiceStates and stores their cache.","extends":[[["CachedManager"]]],"props":[{"name":"guild","description":"The guild this manager belongs to","type":[[["Guild"]]],"meta":{"line":18,"file":"VoiceStateManager.js","path":"src/managers"}},{"name":"cache","description":"The cache of this manager","type":[[["Collection","<"],["Snowflake",", "],["VoiceState",">"]]],"meta":{"line":21,"file":"VoiceStateManager.js","path":"src/managers"}},{"name":"holds","description":"The data structure belonging to this manager.","access":"private","readonly":true,"type":[[["function"]]],"meta":{"line":15,"file":"DataManager.js","path":"src/managers"}},{"name":"client","description":"The client that instantiated this Manager","readonly":true,"type":[[["Client"]]],"meta":{"line":9,"file":"BaseManager.js","path":"src/managers"}}],"methods":[{"name":"resolve","description":"Resolves a data entry to a data Object.","inherits":"DataManager#resolve","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Object"]]],"description":"An instance from this Manager","nullable":true},"meta":{"line":39,"file":"DataManager.js","path":"src/managers"}},{"name":"resolveId","description":"Resolves a data entry to an instance id.","inherits":"DataManager#resolveId","inherited":true,"params":[{"name":"idOrInstance","description":"The id or instance of something in this Manager","type":[[["string"]],[["Object"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":50,"file":"DataManager.js","path":"src/managers"}}],"meta":{"line":10,"file":"VoiceStateManager.js","path":"src/managers"}},{"name":"DiscordAPIError","description":"Represents an error from the Discord API.","extends":[[["Error"]]],"props":[{"name":"method","description":"The HTTP method used for the request","type":[[["string"]]],"meta":{"line":18,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":24,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"code","description":"HTTP error code returned by Discord","type":[[["number"]]],"meta":{"line":30,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"httpStatus","description":"The HTTP status code","type":[[["number"]]],"meta":{"line":36,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"requestData","description":"The data associated with the request that caused this error","type":[[["HTTPErrorData"]]],"meta":{"line":42,"file":"DiscordAPIError.js","path":"src/rest"}}],"methods":[{"name":"flattenErrors","description":"Flattens an errors object returned from the API into an array.","scope":"static","access":"private","params":[{"name":"obj","description":"Discord errors object","type":[[["APIError"]]]},{"name":"key","description":"Used internally to determine key names of nested fields","optional":true,"type":[[["string"]]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":55,"file":"DiscordAPIError.js","path":"src/rest"}}],"meta":{"line":7,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"HTTPError","description":"Represents an HTTP error from a request.","extends":[[["Error"]]],"props":[{"name":"name","description":"The name of the error","type":[[["string"]]],"meta":{"line":15,"file":"HTTPError.js","path":"src/rest"}},{"name":"code","description":"HTTP error code returned from the request","type":[[["number"]]],"meta":{"line":21,"file":"HTTPError.js","path":"src/rest"}},{"name":"method","description":"The HTTP method used for the request","type":[[["string"]]],"meta":{"line":27,"file":"HTTPError.js","path":"src/rest"}},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":33,"file":"HTTPError.js","path":"src/rest"}},{"name":"requestData","description":"The data associated with the request that caused this error","type":[[["HTTPErrorData"]]],"meta":{"line":54,"file":"HTTPError.js","path":"src/rest"}}],"meta":{"line":7,"file":"HTTPError.js","path":"src/rest"}},{"name":"RateLimitError","description":"Represents a RateLimit error from a request.","extends":[[["Error"]]],"props":[{"name":"name","description":"The name of the error","type":[[["string"]]],"meta":{"line":15,"file":"RateLimitError.js","path":"src/rest"}},{"name":"timeout","description":"Time until this rate limit ends, in milliseconds","type":[[["number"]]],"meta":{"line":21,"file":"RateLimitError.js","path":"src/rest"}},{"name":"method","description":"The HTTP method used for the request","type":[[["string"]]],"meta":{"line":27,"file":"RateLimitError.js","path":"src/rest"}},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":33,"file":"RateLimitError.js","path":"src/rest"}},{"name":"route","description":"The route of the request relative to the HTTP endpoint","type":[[["string"]]],"meta":{"line":39,"file":"RateLimitError.js","path":"src/rest"}},{"name":"global","description":"Whether this rate limit is global","type":[[["boolean"]]],"meta":{"line":45,"file":"RateLimitError.js","path":"src/rest"}},{"name":"limit","description":"The maximum amount of requests of this endpoint","type":[[["number"]]],"meta":{"line":51,"file":"RateLimitError.js","path":"src/rest"}}],"meta":{"line":7,"file":"RateLimitError.js","path":"src/rest"}},{"name":"Shard","description":"A self-contained shard created by the {@link ShardingManager}. Each one has a {@link ChildProcess} that contains\nan instance of the bot and its {@link Client}. When its child process/worker exits for any reason, the shard will\nspawn a new one to replace it as necessary.","extends":[[["EventEmitter"]]],"props":[{"name":"manager","description":"Manager that created the shard","type":[[["ShardingManager"]]],"meta":{"line":30,"file":"Shard.js","path":"src/sharding"}},{"name":"id","description":"The shard's id in the manager","type":[[["number"]]],"meta":{"line":36,"file":"Shard.js","path":"src/sharding"}},{"name":"args","description":"Arguments for the shard's process (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":42,"file":"Shard.js","path":"src/sharding"}},{"name":"execArgv","description":"Arguments for the shard's process executable (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":48,"file":"Shard.js","path":"src/sharding"}},{"name":"env","description":"Environment variables for the shard's process, or workerData for the shard's worker","type":[[["Object"]]],"meta":{"line":54,"file":"Shard.js","path":"src/sharding"}},{"name":"ready","description":"Whether the shard's {@link Client} is ready","type":[[["boolean"]]],"meta":{"line":65,"file":"Shard.js","path":"src/sharding"}},{"name":"process","description":"Process of the shard (if {@link ShardingManager#mode} is `process`)","nullable":true,"type":[[["ChildProcess"]]],"meta":{"line":71,"file":"Shard.js","path":"src/sharding"}},{"name":"worker","description":"Worker of the shard (if {@link ShardingManager#mode} is `worker`)","nullable":true,"type":[[["Worker"]]],"meta":{"line":77,"file":"Shard.js","path":"src/sharding"}},{"name":"_evals","description":"Ongoing promises for calls to {@link Shard#eval}, mapped by the `script` they were called with","access":"private","type":[[["Map","<"],["string",", "],["Promise",">"]]],"meta":{"line":84,"file":"Shard.js","path":"src/sharding"}},{"name":"_fetches","description":"Ongoing promises for calls to {@link Shard#fetchClientValue}, mapped by the `prop` they were called with","access":"private","type":[[["Map","<"],["string",", "],["Promise",">"]]],"meta":{"line":91,"file":"Shard.js","path":"src/sharding"}},{"name":"_exitListener","description":"Listener function for the {@link ChildProcess}' `exit` event","access":"private","type":[[["function"]]],"meta":{"line":98,"file":"Shard.js","path":"src/sharding"}}],"methods":[{"name":"spawn","description":"Forks a child process or creates a worker thread for the shard.\nYou should not need to call this manually.","params":[{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client} has become ready\nbefore resolving (`-1` or `Infinity` for no wait)","optional":true,"default":30000,"type":[[["number"]]]}],"returns":[[["Promise","<"],["ChildProcess",">"]]],"meta":{"line":108,"file":"Shard.js","path":"src/sharding"}},{"name":"kill","description":"Immediately kills the shard's process/worker and does not restart it.","meta":{"line":179,"file":"Shard.js","path":"src/sharding"}},{"name":"respawn","description":"Kills and restarts the shard's process/worker.","params":[{"name":"options","description":"Options for respawning the shard","optional":true,"type":[[["ShardRespawnOptions"]]]}],"async":true,"returns":[[["Promise","<"],["ChildProcess",">"]]],"meta":{"line":205,"file":"Shard.js","path":"src/sharding"}},{"name":"send","description":"Sends a message to the shard's process/worker.","params":[{"name":"message","description":"Message to send to the shard","type":[["*"]]}],"returns":[[["Promise","<"],["Shard",">"]]],"meta":{"line":216,"file":"Shard.js","path":"src/sharding"}},{"name":"fetchClientValue","description":"Fetches a client property value of the shard.","examples":["shard.fetchClientValue('guilds.cache.size')\n .then(count => console.log(`${count} guilds in shard ${shard.id}`))\n .catch(console.error);"],"params":[{"name":"prop","description":"Name of the client property to get, using periods for nesting","type":[[["string"]]]}],"returns":[[["Promise","<"],["*",">"]]],"meta":{"line":239,"file":"Shard.js","path":"src/sharding"}},{"name":"eval","description":"Evaluates a script or function on the shard, in the context of the {@link Client}.","params":[{"name":"script","description":"JavaScript to run on the shard","type":[[["string"]],[["function"]]]},{"name":"context","description":"The context for the eval","optional":true,"type":[["*"]]}],"returns":{"types":[[["Promise","<"],["*",">"]]],"description":"Result of the script execution"},"meta":{"line":279,"file":"Shard.js","path":"src/sharding"}},{"name":"_handleMessage","description":"Handles a message received from the child process/worker.","access":"private","params":[{"name":"message","description":"Message received","type":[["*"]]}],"meta":{"line":321,"file":"Shard.js","path":"src/sharding"}},{"name":"_handleExit","description":"Handles the shard's process/worker exiting.","access":"private","params":[{"name":"respawn","description":"Whether to spawn the shard again","optional":true,"default":"this.manager.respawn","type":[[["boolean"]]]},{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client}\nhas become ready (`-1` or `Infinity` for no wait)","optional":true,"type":[[["number"]]]}],"meta":{"line":401,"file":"Shard.js","path":"src/sharding"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one for a given emitter, if they are not zero.","access":"private","params":[{"name":"emitter","description":"The emitter that emits the events.","type":[[["EventEmitter"]],[["process"]]]}],"meta":{"line":423,"file":"Shard.js","path":"src/sharding"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one for a given emitter, if they are not zero.","access":"private","params":[{"name":"emitter","description":"The emitter that emits the events.","type":[[["EventEmitter"]],[["process"]]]}],"meta":{"line":435,"file":"Shard.js","path":"src/sharding"}}],"events":[{"name":"spawn","description":"Emitted upon the creation of the shard's child process/worker.","params":[{"name":"process","description":"Child process/worker that was created","type":[[["ChildProcess"]],[["Worker"]]]}],"meta":{"line":133,"file":"Shard.js","path":"src/sharding"}},{"name":"ready","description":"Emitted upon the shard's {@link Client#event:shardReady} event.","meta":{"line":326,"file":"Shard.js","path":"src/sharding"}},{"name":"disconnect","description":"Emitted upon the shard's {@link Client#event:shardDisconnect} event.","meta":{"line":337,"file":"Shard.js","path":"src/sharding"}},{"name":"reconnecting","description":"Emitted upon the shard's {@link Client#event:shardReconnecting} event.","meta":{"line":348,"file":"Shard.js","path":"src/sharding"}},{"name":"message","description":"Emitted upon receiving a message from the child process/worker.","params":[{"name":"message","description":"Message that was received","type":[["*"]]}],"meta":{"line":386,"file":"Shard.js","path":"src/sharding"}},{"name":"death","description":"Emitted upon the shard's child process/worker exiting.","params":[{"name":"process","description":"Child process/worker that exited","type":[[["ChildProcess"]],[["Worker"]]]}],"meta":{"line":402,"file":"Shard.js","path":"src/sharding"}}],"meta":{"line":19,"file":"Shard.js","path":"src/sharding"}},{"name":"ShardClientUtil","description":"Helper class for sharded clients spawned as a child process/worker, such as from a {@link ShardingManager}.\nUtilises IPC to send and receive data to/from the master process and other shards.","props":[{"name":"client","description":"Client for the shard","type":[[["Client"]]],"meta":{"line":18,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"mode","description":"Mode the shard was spawned with","type":[[["ShardingManagerMode"]]],"meta":{"line":24,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"parentPort","description":"Message port for the master process (only when {@link ShardClientUtil#mode} is `worker`)","nullable":true,"type":[[["MessagePort"]]],"meta":{"line":30,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"ids","description":"Array of shard ids of this client","readonly":true,"type":[[["Array","<"],["number",">"]]],"meta":{"line":63,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"count","description":"Total number of shards","readonly":true,"type":[[["number"]]],"meta":{"line":72,"file":"ShardClientUtil.js","path":"src/sharding"}}],"methods":[{"name":"send","description":"Sends a message to the master process.","emits":["Shard#event:message"],"params":[{"name":"message","description":"Message to send","type":[["*"]]}],"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":82,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"fetchClientValues","description":"Fetches a client property value of each shard, or a given shard.","see":["{@link ShardingManager#fetchClientValues}"],"examples":["client.shard.fetchClientValues('guilds.cache.size')\n .then(results => console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`))\n .catch(console.error);"],"params":[{"name":"prop","description":"Name of the client property to get, using periods for nesting","type":[[["string"]]]},{"name":"shard","description":"Shard to fetch property from, all if undefined","optional":true,"type":[[["number"]]]}],"returns":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"meta":{"line":107,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"broadcastEval","description":"Evaluates a script or function on all shards, or a given shard, in the context of the {@link Client}s.","see":["{@link ShardingManager#broadcastEval}"],"examples":["client.shard.broadcastEval(client => client.guilds.cache.size)\n .then(results => console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`))\n .catch(console.error);"],"params":[{"name":"script","description":"JavaScript to run on each shard","type":[[["function"]]]},{"name":"options","description":"The options for the broadcast","optional":true,"default":"{}","type":[[["BroadcastEvalOptions"]]]}],"returns":{"types":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"description":"Results of the script execution"},"meta":{"line":140,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"respawnAll","description":"Requests a respawn of all shards.","see":["{@link ShardingManager#respawnAll}"],"params":[{"name":"options","description":"Options for respawning shards","optional":true,"type":[[["MultipleShardRespawnOptions"]]]}],"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the message being sent"},"meta":{"line":172,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"_handleMessage","description":"Handles an IPC message.","access":"private","params":[{"name":"message","description":"Message received","type":[["*"]]}],"async":true,"meta":{"line":181,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"_respond","description":"Sends a message to the master process, emitting an error from the client upon failure.","access":"private","params":[{"name":"type","description":"Type of response to send","type":[[["string"]]]},{"name":"message","description":"Message to send","type":[["*"]]}],"meta":{"line":207,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"incrementMaxListeners","description":"Increments max listeners by one for a given emitter, if they are not zero.","access":"private","params":[{"name":"emitter","description":"The emitter that emits the events.","type":[[["EventEmitter"]],[["process"]]]}],"meta":{"line":255,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"decrementMaxListeners","description":"Decrements max listeners by one for a given emitter, if they are not zero.","access":"private","params":[{"name":"emitter","description":"The emitter that emits the events.","type":[[["EventEmitter"]],[["process"]]]}],"meta":{"line":267,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"singleton","description":"Creates/gets the singleton of this class.","scope":"static","params":[{"name":"client","description":"The client to use","type":[[["Client"]]]},{"name":"mode","description":"Mode the shard was spawned with","type":[[["ShardingManagerMode"]]]}],"returns":[[["ShardClientUtil"]]],"meta":{"line":226,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"shardIdForGuildId","description":"Get the shard id for a given guild id.","scope":"static","params":[{"name":"guildId","description":"Snowflake guild id to get shard id for","type":[[["Snowflake"]]]},{"name":"shardCount","description":"Number of shards","type":[[["number"]]]}],"returns":[[["number"]]],"meta":{"line":244,"file":"ShardClientUtil.js","path":"src/sharding"}}],"meta":{"line":12,"file":"ShardClientUtil.js","path":"src/sharding"}},{"name":"ShardingManager","description":"This is a utility class that makes multi-process sharding of a bot an easy and painless experience.\nIt works by spawning a self-contained {@link ChildProcess} or {@link Worker} for each individual shard, each\ncontaining its own instance of your bot's {@link Client}. They all have a line of communication with the master\nprocess, and there are several useful methods that utilise it in order to simplify tasks that are normally difficult\nwith sharding. It can spawn a specific number of shards or the amount that Discord suggests for the bot, and takes a\npath to your main bot script to launch for each one.","extends":[[["EventEmitter"]]],"construct":{"name":"ShardingManager","params":[{"name":"file","description":"Path to your shard script file","type":[[["string"]]]},{"name":"options","description":"Options for the sharding manager","optional":true,"type":[[["ShardingManagerOptions"]]]}]},"props":[{"name":"file","description":"Path to the shard script file","type":[[["string"]]],"meta":{"line":66,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"shardList","description":"List of shards this sharding manager spawns","type":[[["string"]],[["Array","<"],["number",">"]]],"meta":{"line":76,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"totalShards","description":"Amount of shards that all sharding managers spawn in total","type":[[["number"]]],"meta":{"line":96,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"mode","description":"Mode for shards to spawn with","type":[[["ShardingManagerMode"]]],"meta":{"line":111,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"respawn","description":"Whether shards should automatically respawn upon exiting","type":[[["boolean"]]],"meta":{"line":120,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"shardArgs","description":"An array of arguments to pass to shards (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":126,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"execArgv","description":"An array of arguments to pass to the executable (only when {@link ShardingManager#mode} is `process`)","type":[[["Array","<"],["string",">"]]],"meta":{"line":132,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"token","description":"Token to use for obtaining the automatic shard count, and passing to shards","nullable":true,"type":[[["string"]]],"meta":{"line":138,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"shards","description":"A collection of shards that this manager has spawned","type":[[["Collection","<"],["number",", "],["Shard",">"]]],"meta":{"line":144,"file":"ShardingManager.js","path":"src/sharding"}}],"methods":[{"name":"createShard","description":"Creates a single shard.\nUsing this method is usually not necessary if you use the spawn method.","params":[{"name":"id","description":"Id of the shard to create\nThis is usually not necessary to manually specify.","optional":true,"default":"this.shards.size","type":[[["number"]]]}],"returns":{"types":[[["Shard"]]],"description":"Note that the created shard needs to be explicitly spawned using its spawn method."},"meta":{"line":158,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"spawn","description":"Spawns multiple shards.","params":[{"name":"options","description":"Options for spawning shards","optional":true,"type":[[["MultipleShardSpawnOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["number",", "],["Shard",">>"]]],"meta":{"line":183,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"broadcast","description":"Sends a message to all shards.","params":[{"name":"message","description":"Message to be sent to the shards","type":[["*"]]}],"returns":[[["Promise","<"],["Array","<"],["Shard",">>"]]],"meta":{"line":231,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"broadcastEval","description":"Evaluates a script on all shards, or a given shard, in the context of the {@link Client}s.","params":[{"name":"script","description":"JavaScript to run on each shard","type":[[["function"]]]},{"name":"options","description":"The options for the broadcast","optional":true,"default":"{}","type":[[["BroadcastEvalOptions"]]]}],"returns":{"types":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"description":"Results of the script execution"},"meta":{"line":250,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"fetchClientValues","description":"Fetches a client property value of each shard, or a given shard.","examples":["manager.fetchClientValues('guilds.cache.size')\n .then(results => console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`))\n .catch(console.error);"],"params":[{"name":"prop","description":"Name of the client property to get, using periods for nesting","type":[[["string"]]]},{"name":"shard","description":"Shard to fetch property from, all if undefined","optional":true,"type":[[["number"]]]}],"returns":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"meta":{"line":265,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"_performOnShards","description":"Runs a method with given arguments on all shards, or a given shard.","access":"private","params":[{"name":"method","description":"Method name to run on each shard","type":[[["string"]]]},{"name":"args","description":"Arguments to pass through to the method call","type":[[["Array","<"],["*",">"]]]},{"name":"shard","description":"Shard to run on, all if undefined","optional":true,"type":[[["number"]]]}],"returns":{"types":[[["Promise","<("],["*","|"],["Array","<"],["*",">)>"]]],"description":"Results of the method execution"},"meta":{"line":277,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"respawnAll","description":"Kills all running shards and respawns them.","params":[{"name":"options","description":"Options for respawning shards","optional":true,"type":[[["MultipleShardRespawnOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Collection","<"],["number",", "],["Shard",">>"]]],"meta":{"line":307,"file":"ShardingManager.js","path":"src/sharding"}}],"events":[{"name":"shardCreate","description":"Emitted upon creating a shard.","params":[{"name":"shard","description":"Shard that was created","type":[[["Shard"]]]}],"meta":{"line":161,"file":"ShardingManager.js","path":"src/sharding"}}],"meta":{"line":22,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"AnonymousGuild","description":"Bundles common attributes and methods between {@link Guild} and {@link InviteGuild}","extends":[[["BaseGuild"]]],"abstract":true,"props":[{"name":"splash","description":"The hash of the guild invite splash image","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"banner","description":"The hash of the guild banner","nullable":true,"type":[[["string"]]],"meta":{"line":33,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"description","description":"The description of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":41,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"verificationLevel","description":"The verification level of the guild","type":[[["VerificationLevel"]]],"meta":{"line":49,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"vanityURLCode","description":"The vanity invite code of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":57,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"nsfwLevel","description":"The NSFW level of this guild","type":[[["NSFWLevel"]]],"meta":{"line":65,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"premiumSubscriptionCount","description":"The total number of boosts for this server","nullable":true,"type":[[["number"]]],"meta":{"line":73,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"bannerURL","description":"The URL to this guild's banner.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":84,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"splashURL","description":"The URL to this guild's invite splash image.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":11,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"ApplicationCommand","description":"Represents an application command.","extends":[[["Base"]]],"props":[{"name":"id","description":"The command's id","type":[[["Snowflake"]]],"meta":{"line":21,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"applicationId","description":"The parent application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"guild","description":"The guild this command is part of","nullable":true,"type":[[["Guild"]]],"meta":{"line":33,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"guildId","description":"The guild's id this command is part of, this may be non-null when `guild` is `null` if the command\nwas fetched from the `ApplicationCommandManager`","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":40,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"permissions","description":"The manager for permissions of this command on its guild or arbitrary guilds when the command is global","type":[[["ApplicationCommandPermissionsManager"]]],"meta":{"line":46,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"type","description":"The type of this application command","type":[[["ApplicationCommandType"]]],"meta":{"line":52,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"name","description":"The name of this command","type":[[["string"]]],"meta":{"line":65,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"nameLocalizations","description":"The name localizations for this command","nullable":true,"type":[[["Object","<"],["Locale",", "],["string",">"]]],"meta":{"line":73,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"nameLocalized","description":"The localized name for this command","nullable":true,"type":[[["string"]]],"meta":{"line":83,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"description","description":"The description of this command","type":[[["string"]]],"meta":{"line":93,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"descriptionLocalizations","description":"The description localizations for this command","nullable":true,"type":[[["Object","<"],["Locale",", "],["string",">"]]],"meta":{"line":101,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"descriptionLocalized","description":"The localized description for this command","nullable":true,"type":[[["string"]]],"meta":{"line":111,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"options","description":"The options of this command","type":[[["Array","<"],["ApplicationCommandOption",">"]]],"meta":{"line":121,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"defaultPermission","description":"Whether the command is enabled by default when the app is added to a guild","type":[[["boolean"]]],"meta":{"line":131,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"version","description":"Autoincrementing version identifier updated during substantial record changes","type":[[["Snowflake"]]],"meta":{"line":139,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the command was created at","readonly":true,"type":[[["number"]]],"meta":{"line":148,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"createdAt","description":"The time the command was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":157,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"manager","description":"The manager that this command belongs to","readonly":true,"type":[[["ApplicationCommandManager"]]],"meta":{"line":166,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits this application command.","examples":["// Edit the description of this command\ncommand.edit({\n description: 'New description',\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The data to update the command with","type":[[["ApplicationCommandData"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":223,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setName","description":"Edits the name of this ApplicationCommand","params":[{"name":"name","description":"The new name of the command","type":[[["string"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":232,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setNameLocalizations","description":"Edits the localized names of this ApplicationCommand","examples":["// Edit the name localizations of this command\ncommand.setLocalizedNames({\n 'en-GB': 'test',\n 'pt-BR': 'teste',\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"nameLocalizations","description":"The new localized names for the command","type":[[["Object","<"],["Locale",", "],["string",">"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":249,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setDescription","description":"Edits the description of this ApplicationCommand","params":[{"name":"description","description":"The new description of the command","type":[[["string"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":258,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setDescriptionLocalizations","description":"Edits the localized descriptions of this ApplicationCommand","examples":["// Edit the description localizations of this command\ncommand.setLocalizedDescriptions({\n 'en-GB': 'A test command',\n 'pt-BR': 'Um comando de teste',\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"descriptionLocalizations","description":"The new localized descriptions for the command","type":[[["Object","<"],["Locale",", "],["string",">"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":275,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setDefaultPermission","description":"Edits the default permission of this ApplicationCommand","params":[{"name":"defaultPermission","description":"The default permission for this command","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":284,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"setOptions","description":"Edits the options of this ApplicationCommand","params":[{"name":"options","description":"The options to set for this command","type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]}],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":293,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"delete","description":"Deletes this command.","examples":["// Delete this command\ncommand.delete()\n .then(console.log)\n .catch(console.error);"],"returns":[[["Promise","<"],["ApplicationCommand",">"]]],"meta":{"line":306,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"equals","description":"Whether this command equals another command. It compares all properties, so for most operations\nit is advisable to just compare `command.id === command2.id` as it is much faster and is often\nwhat most users need.","params":[{"name":"command","description":"The command to compare with","type":[[["ApplicationCommand"]],[["ApplicationCommandData"]],[["APIApplicationCommand"]]]},{"name":"enforceOptionOrder","description":"Whether to strictly check that options and choices are in the same\norder in the array The client may not always respect this ordering!","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":319,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"sendSlashCommand","description":"Send Slash command to channel","examples":["const botID = '12345678987654321'\nconst user = await client.users.fetch(botID);\nconst application = await user.applications.fetch();\nconst command = application.commands.first();\nawait command.sendSlashCommand(messsage, ['option1', 'option2']);"],"params":[{"name":"message","description":"Discord Message","type":[[["Message"]]]},{"name":"options","description":"The options to Slash Command","type":[[["Array","<"],["string",">"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":516,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"sendContextMenu","description":"Message Context Menu","examples":["const botID = '12345678987654321'\nconst user = await client.users.fetch(botID);\nconst application = await user.applications.fetch();\nconst command = application.commands.first();\nawait command.sendContextMenu(messsage);"],"params":[{"name":"message","description":"Discord Message","type":[[["Message"]]]},{"name":"sendFromMessage","description":"nothing .-. not used","default":false,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":649,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"optionsEqual","description":"Recursively checks that all options for an {@link ApplicationCommand} are equal to the provided options.\nIn most cases it is better to compare using {@link ApplicationCommand#equals}","scope":"static","params":[{"name":"existing","description":"The options on the existing command,\nshould be {@link ApplicationCommand#options}","type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]},{"name":"options","description":"The options to compare against","type":[[["Array","<"],["ApplicationCommandOptionData",">"]],[["Array","<"],["APIApplicationCommandOption",">"]]]},{"name":"enforceOptionOrder","description":"Whether to strictly check that options and choices are in the same\norder in the array The client may not always respect this ordering!","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":355,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"_optionEquals","description":"Checks that an option for an {@link ApplicationCommand} is equal to the provided option\nIn most cases it is better to compare using {@link ApplicationCommand#equals}","scope":"static","access":"private","params":[{"name":"existing","description":"The option on the existing command,\nshould be from {@link ApplicationCommand#options}","type":[[["ApplicationCommandOptionData"]]]},{"name":"option","description":"The option to compare against","type":[[["ApplicationCommandOptionData"]],[["APIApplicationCommandOption"]]]},{"name":"enforceOptionOrder","description":"Whether to strictly check that options or choices are in the same\norder in their array The client may not always respect this ordering!","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":381,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an {@link ApplicationCommandOptionData} object into something that can be used with the API.","scope":"static","access":"private","params":[{"name":"option","description":"The option to transform","type":[[["ApplicationCommandOptionData"]],[["ApplicationCommandOption"]]]},{"name":"received","description":"Whether this option has been received from Discord","optional":true,"type":[[["boolean"]]]}],"returns":[[["APIApplicationCommandOption"]]],"meta":{"line":468,"file":"ApplicationCommand.js","path":"src/structures"}}],"meta":{"line":13,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"AutocompleteInteraction","description":"Represents an autocomplete interaction.","extends":[[["Interaction"]]],"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":15,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":25,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":31,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"responded","description":"Whether this interaction has already received a response","type":[[["boolean"]]],"meta":{"line":37,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"options","description":"The options passed to the command","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":43,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":53,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":64,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"respond","description":"Sends results for the autocomplete of this interaction.","examples":["// respond to autocomplete interaction\ninteraction.respond([\n {\n name: 'Option 1',\n value: 'option1',\n },\n])\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the autocomplete","type":[[["Array","<"],["ApplicationCommandOptionChoiceData",">"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":92,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":11,"file":"AutocompleteInteraction.js","path":"src/structures"}},{"name":"Base","description":"Represents a data model that is identifiable by a Snowflake (i.e. Discord API data models).","abstract":true,"props":[{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":9,"file":"Base.js","path":"src/structures"}},{"name":"BaseCommandInteraction","description":"Represents a command interaction.","extends":[[["Interaction"]]],"implements":[[["InteractionResponses"]]],"abstract":true,"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":20,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":30,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":36,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":42,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":48,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":54,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":60,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":67,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":89,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":162,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":16,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"BaseGuild","description":"The base class for {@link Guild}, {@link OAuth2Guild} and {@link InviteGuild}.","extends":[[["Base"]]],"abstract":true,"props":[{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"iconURL","description":"The URL to this guild's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":11,"file":"BaseGuild.js","path":"src/structures"}},{"name":"BaseGuildEmoji","description":"Parent class for {@link GuildEmoji} and {@link GuildPreviewEmoji}.","extends":[[["Emoji"]]],"abstract":true,"props":[{"name":"guild","description":"The guild this emoji is a part of","type":[[["Guild"]],[["GuildPreview"]]],"meta":{"line":18,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"requiresColons","description":"Whether or not this emoji requires colons surrounding it","nullable":true,"type":[[["boolean"]]],"meta":{"line":35,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"managed","description":"Whether this emoji is managed by an external service","nullable":true,"type":[[["boolean"]]],"meta":{"line":43,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"available","description":"Whether this emoji is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":10,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"BaseGuildTextChannel","description":"Represents a text-based guild channel on Discord.","extends":[[["GuildChannel"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":21,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"threads","description":"A manager of the threads belonging to this channel","type":[[["ThreadManager"]]],"meta":{"line":27,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":33,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"topic","description":"The topic of the text channel","nullable":true,"type":[[["string"]]],"meta":{"line":46,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in the channel, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":58,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":66,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for newly created threads in this channel","nullable":true,"type":[[["number"]]],"meta":{"line":74,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":259,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setDefaultAutoArchiveDuration","description":"Sets the default auto archive duration for all newly created threads in this channel.","params":[{"name":"defaultAutoArchiveDuration","description":"The new default auto archive duration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the channel's default auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":88,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setNSFW","description":"Sets whether this channel is flagged as NSFW.","params":[{"name":"nsfw","description":"Whether the channel should be considered NSFW","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the channel's NSFW flag","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":98,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setType","description":"Sets the type of this channel (only conversion between text and news is supported)","params":[{"name":"type","description":"The new channel type","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the channel's type","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":108,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the channel.","examples":["// Fetch webhooks\nchannel.fetchWebhooks()\n .then(hooks => console.log(`This channel has ${hooks.size} hooks`))\n .catch(console.error);"],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":121,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createWebhook","description":"Creates a webhook for the channel.","examples":["// Create a webhook for the current channel\nchannel.createWebhook('Snek', {\n avatar: 'https://i.imgur.com/mI8XcpG.jpg',\n reason: 'Needed a cool new Webhook'\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"name","description":"The name of the webhook","type":[[["string"]]]},{"name":"options","description":"Options for creating the webhook","optional":true,"type":[[["ChannelWebhookCreateOptions"]]]}],"returns":{"types":[[["Promise","<"],["Webhook",">"]]],"description":"Returns the created Webhook"},"meta":{"line":146,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":161,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":199,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":209,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":189,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":204,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":227,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a component interaction collector.","implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":251,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":271,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":295,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":13,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"BaseGuildVoiceChannel","description":"Represents a voice-based guild channel on Discord.","extends":[[["GuildChannel"]]],"props":[{"name":"rtcRegion","description":"The RTC region for this voice-based channel. This region is automatically selected if `null`.","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"bitrate","description":"The bitrate of this voice-based channel","type":[[["number"]]],"meta":{"line":28,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"userLimit","description":"The maximum amount of users allowed in this channel.","type":[[["number"]]],"meta":{"line":36,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"members","description":"The members in this voice-based channel","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":45,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"full","description":"Checks if the voice-based channel is full","readonly":true,"type":[[["boolean"]]],"meta":{"line":60,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the channel is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setRTCRegion","description":"Sets the RTC region of the channel.","examples":["// Set the RTC region to sydney\nchannel.setRTCRegion('sydney');","// Remove a fixed region for this channel - let Discord decide automatically\nchannel.setRTCRegion(null, 'We want to let Discord decide.');"],"params":[{"name":"rtcRegion","description":"The new region of the channel. Set to `null` to remove a specific region for the channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"The reason for modifying this region.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["BaseGuildVoiceChannel",">"]]],"meta":{"line":95,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":109,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":119,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":11,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"BaseMessageComponent","description":"Represents an interactive component of a Message or Modal. It should not be necessary to construct this directly.\nSee {@link MessageComponent}","construct":{"name":"BaseMessageComponent","params":[{"name":"data","description":"The options for this component","optional":true,"default":"{}","type":[[["BaseMessageComponent"]],[["BaseMessageComponentOptions"]]]}]},"props":[{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":52,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"create","description":"Constructs a component based on the type of the incoming data","scope":"static","access":"private","params":[{"name":"data","description":"Data for a MessageComponent","type":[[["MessageComponentOptions"]]]},{"name":"client","description":"Client constructing this component","optional":true,"type":[[["Client"]],[["WebhookClient"]]]}],"returns":{"types":[[["MessageComponent"]],[["ModalComponent"]]],"nullable":true},"meta":{"line":62,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"resolveType","description":"Resolves the type of a component","scope":"static","access":"private","params":[{"name":"type","description":"The type to resolve","type":[[["MessageComponentTypeResolvable"]]]}],"returns":[[["MessageComponentType"]]],"meta":{"line":105,"file":"BaseMessageComponent.js","path":"src/structures"}}],"meta":{"line":10,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"ButtonInteraction","description":"Represents a button interaction.","extends":[[["MessageComponentInteraction"]]],"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":17,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"message","description":"The message to which the component was attached","type":[[["Message"]],[["APIMessage"]]],"meta":{"line":27,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"customId","description":"The custom id of the component which was interacted with","type":[[["string"]]],"meta":{"line":33,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"componentType","description":"The type of component which was interacted with","type":[[["string"]]],"meta":{"line":39,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":45,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":57,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":63,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"component","description":"The component which was interacted with","readonly":true,"type":[[["MessageActionRowComponent"]],[["APIMessageActionRowComponent"]]],"meta":{"line":78,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"MessageComponentInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"MessageComponentInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"MessageComponentInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"MessageComponentInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"MessageComponentInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"MessageComponentInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","inherits":"MessageComponentInteraction#deferUpdate","inherited":true,"implements":["InteractionResponses#deferUpdate"],"examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":183,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","inherits":"MessageComponentInteraction#update","inherited":true,"implements":["InteractionResponses#update"],"examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":209,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","inherits":"MessageComponentInteraction#showModal","inherited":true,"implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"MessageComponentInteraction#awaitModalSubmit","inherited":true,"implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"ButtonInteraction.js","path":"src/structures"}},{"name":"CategoryChannel","description":"Represents a guild category channel on Discord.","extends":[[["GuildChannel"]]],"props":[{"name":"children","description":"Channels that are a part of this category","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildChannel",">"]]],"meta":{"line":15,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":259,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setParent","description":"Sets the category parent of this channel.\nIt is not currently possible to set the parent of a CategoryChannel.","params":[{"name":"channel","description":"The channel to set as parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":19,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"createChannel","description":"Creates a new channel within this category.\nYou cannot create a channel of type `GUILD_CATEGORY` inside a CategoryChannel.","params":[{"name":"name","description":"The name of the new channel","type":[[["string"]]]},{"name":"options","description":"Options for creating the new channel","type":[[["CategoryCreateChannelOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":53,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":9,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"Channel","description":"Represents any channel on Discord.","extends":[[["Base"]]],"abstract":true,"props":[{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","examples":["// Delete the channel\nchannel.delete()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":131,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":31,"file":"Channel.js","path":"src/structures"}},{"name":"ClientApplication","description":"Represents a Client OAuth2 Application.","extends":[[["Application"]]],"props":[{"name":"commands","description":"The application command manager for this application","type":[[["ApplicationCommandManager"]]],"meta":{"line":28,"file":"ClientApplication.js","path":"src/structures"}},{"name":"tags","description":"The tags this application has (max of 5)","type":[[["Array","<"],["string",">"]]],"meta":{"line":38,"file":"ClientApplication.js","path":"src/structures"}},{"name":"installParams","description":"Settings for this application's default in-app authorization","nullable":true,"type":[[["ClientApplicationInstallParams"]]],"meta":{"line":45,"file":"ClientApplication.js","path":"src/structures"}},{"name":"customInstallURL","description":"This application's custom installation URL","nullable":true,"type":[[["string"]]],"meta":{"line":58,"file":"ClientApplication.js","path":"src/structures"}},{"name":"flags","description":"The flags this application has","type":[[["ApplicationFlags"]]],"meta":{"line":68,"file":"ClientApplication.js","path":"src/structures"}},{"name":"cover","description":"The hash of the application's cover image","nullable":true,"type":[[["string"]]],"meta":{"line":76,"file":"ClientApplication.js","path":"src/structures"}},{"name":"rpcOrigins","description":"The application's RPC origins, if enabled","type":[[["Array","<"],["string",">"]]],"meta":{"line":86,"file":"ClientApplication.js","path":"src/structures"}},{"name":"botRequireCodeGrant","description":"If this application's bot requires a code grant when using the OAuth2 flow","nullable":true,"type":[[["boolean"]]],"meta":{"line":96,"file":"ClientApplication.js","path":"src/structures"}},{"name":"botPublic","description":"If this application's bot is public","nullable":true,"type":[[["boolean"]]],"meta":{"line":106,"file":"ClientApplication.js","path":"src/structures"}},{"name":"owner","description":"The owner of this OAuth application","nullable":true,"type":[[["User"]],[["Team"]]],"meta":{"line":115,"file":"ClientApplication.js","path":"src/structures"}},{"name":"partial","description":"Whether this application is partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":127,"file":"ClientApplication.js","path":"src/structures"}},{"name":"id","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"name","description":"The name of the application","nullable":true,"type":[[["string"]]],"meta":{"line":34,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"description","description":"The application's description","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"icon","description":"The application's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":54,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdTimestamp","description":"The timestamp the application was created at","readonly":true,"type":[[["number"]]],"meta":{"line":65,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdAt","description":"The time the application was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":74,"file":"Application.js","path":"src/structures/interfaces"}}],"methods":[{"name":"fetch","description":"Obtains this application from Discord.","async":true,"returns":[[["Promise","<"],["ClientApplication",">"]]],"meta":{"line":135,"file":"ClientApplication.js","path":"src/structures"}},{"name":"iconURL","description":"A link to the application's icon.","inherits":"Application#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"coverURL","description":"A link to this application's cover image.","inherits":"Application#coverURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"fetchAssets","description":"Gets the application's rich presence assets.","inherits":"Application#fetchAssets","inherited":true,"deprecated":"This will be removed in the next major as it is unsupported functionality.","async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationAsset",">>"]]],"meta":{"line":111,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the application's name instead of the\nApplication object.","inherits":"Application#toString","inherited":true,"examples":["// Logs: Application name: My App\nconsole.log(`Application name: ${application}`);"],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":137,"file":"Application.js","path":"src/structures/interfaces"}}],"meta":{"line":20,"file":"ClientApplication.js","path":"src/structures"}},{"name":"ClientPresence","description":"Represents the client's presence.","extends":[[["Presence"]]],"props":[{"name":"userId","description":"The presence's user id","type":[[["Snowflake"]]],"meta":{"line":45,"file":"Presence.js","path":"src/structures"}},{"name":"guild","description":"The guild this presence is in","nullable":true,"type":[[["Guild"]]],"meta":{"line":51,"file":"Presence.js","path":"src/structures"}},{"name":"user","description":"The user of this presence","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":61,"file":"Presence.js","path":"src/structures"}},{"name":"member","description":"The member of this presence","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":70,"file":"Presence.js","path":"src/structures"}},{"name":"status","description":"The status of this presence","type":[[["PresenceStatus"]]],"meta":{"line":80,"file":"Presence.js","path":"src/structures"}},{"name":"activities","description":"The activities of this presence","type":[[["Array","<"],["Activity",">"]]],"meta":{"line":90,"file":"Presence.js","path":"src/structures"}},{"name":"clientStatus","description":"The devices this presence is on","nullable":true,"type":[[["Object"]]],"props":[{"name":"web","description":"The current presence in the web application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"mobile","description":"The current presence in the mobile application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"desktop","description":"The current presence in the desktop application","nullable":true,"type":[[["ClientPresenceStatus"]]]}],"meta":{"line":103,"file":"Presence.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"set","description":"Sets the client's presence","params":[{"name":"presence","description":"The data to set the presence to","type":[[["PresenceData"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":21,"file":"ClientPresence.js","path":"src/structures"}},{"name":"_parse","description":"Parses presence data into a packet ready to be sent to Discord","access":"private","params":[{"name":"presence","description":"The data to parse","type":[[["PresenceData"]]]}],"returns":[[["APIPresence"]]],"meta":{"line":42,"file":"ClientPresence.js","path":"src/structures"}},{"name":"equals","description":"Whether this presence is equal to another.","inherits":"Presence#equals","inherited":true,"params":[{"name":"presence","description":"The presence to compare with","type":[[["Presence"]]]}],"returns":[[["boolean"]]],"meta":{"line":122,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":11,"file":"ClientPresence.js","path":"src/structures"}},{"name":"ClientUser","description":"Represents the logged in client's Discord user.","extends":[[["User"]]],"props":[{"name":"notes","description":"The notes cache of the client user.","access":"private","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]]],"meta":{"line":25,"file":"ClientUser.js","path":"src/structures"}},{"name":"verified","description":"Whether or not this account has been verified","type":[[["boolean"]]],"meta":{"line":33,"file":"ClientUser.js","path":"src/structures"}},{"name":"mfaEnabled","description":"If the bot's {@link ClientApplication#owner Owner} has MFA enabled on their account","nullable":true,"type":[[["boolean"]]],"meta":{"line":41,"file":"ClientUser.js","path":"src/structures"}},{"name":"presence","description":"Represents the client user's presence","readonly":true,"type":[[["ClientPresence"]]],"meta":{"line":80,"file":"ClientUser.js","path":"src/structures"}},{"name":"id","description":"The user's id","type":[[["Snowflake"]]],"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"name":"connectedAccounts","description":"Accounts connected to this user","nullable":true,"type":[[["Array","<"],["ConnectionAccount",">"]]],"meta":{"line":46,"file":"User.js","path":"src/structures"}},{"name":"premiumSince","description":"Time that User has nitro (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":52,"file":"User.js","path":"src/structures"}},{"name":"premiumGuildSince","description":"Time that User has nitro and boost server (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":58,"file":"User.js","path":"src/structures"}},{"name":"bio","description":"About me (User)","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":64,"file":"User.js","path":"src/structures"}},{"name":"mutualGuilds","description":"This user is on the same servers as Client User","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Object",">"]]],"meta":{"line":70,"file":"User.js","path":"src/structures"}},{"name":"applications","description":"[Bot] Interaction command manager","readonly":true,"nullable":true,"type":[[["ApplicationCommandManager"]]],"meta":{"line":76,"file":"User.js","path":"src/structures"}},{"name":"username","description":"The username of the user","nullable":true,"type":[[["string"]]],"meta":{"line":86,"file":"User.js","path":"src/structures"}},{"name":"bot","description":"Whether or not the user is a bot","nullable":true,"type":[[["boolean"]]],"meta":{"line":96,"file":"User.js","path":"src/structures"}},{"name":"discriminator","description":"A discriminator based on username for the user","nullable":true,"type":[[["string"]]],"meta":{"line":109,"file":"User.js","path":"src/structures"}},{"name":"avatar","description":"The user avatar's hash","nullable":true,"type":[[["string"]]],"meta":{"line":119,"file":"User.js","path":"src/structures"}},{"name":"banner","description":"The user banner's hash\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["string"]]],"meta":{"line":130,"file":"User.js","path":"src/structures"}},{"name":"accentColor","description":"The base 10 accent color of the user's banner\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["number"]]],"meta":{"line":141,"file":"User.js","path":"src/structures"}},{"name":"system","description":"Whether the user is an Official Discord System user (part of the urgent message system)","nullable":true,"type":[[["boolean"]]],"meta":{"line":151,"file":"User.js","path":"src/structures"}},{"name":"flags","description":"The flags for this user","nullable":true,"type":[[["UserFlags"]]],"meta":{"line":161,"file":"User.js","path":"src/structures"}},{"name":"relationships","description":"Check relationship status","readonly":true,"type":[[["Relationship"]]],"meta":{"line":170,"file":"User.js","path":"src/structures"}},{"name":"note","description":"Check note","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":180,"file":"User.js","path":"src/structures"}},{"name":"partial","description":"Whether this User is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":263,"file":"User.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the user was created at","readonly":true,"type":[[["number"]]],"meta":{"line":272,"file":"User.js","path":"src/structures"}},{"name":"createdAt","description":"The time the user was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":281,"file":"User.js","path":"src/structures"}},{"name":"defaultAvatarURL","description":"A link to the user's default avatar","readonly":true,"type":[[["string"]]],"meta":{"line":300,"file":"User.js","path":"src/structures"}},{"name":"hexAccentColor","description":"The hexadecimal version of the user accent color, with a leading hash\nThe user must be force fetched for this property to be present","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":320,"file":"User.js","path":"src/structures"}},{"name":"tag","description":"The Discord \"tag\" (e.g. `hydrabolt#0001`) for this user","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":345,"file":"User.js","path":"src/structures"}},{"name":"dmChannel","description":"The DM between the client's user and this user","readonly":true,"nullable":true,"type":[[["DMChannel"]]],"meta":{"line":354,"file":"User.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits the logged in client.","params":[{"name":"data","description":"The new data","type":[[["ClientUserEditData"]]]}],"async":true,"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":96,"file":"ClientUser.js","path":"src/structures"}},{"name":"setUsername","description":"Sets the username of the logged in client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","examples":["// Set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.error);"],"params":[{"name":"username","description":"The new username","type":[[["string"]]]},{"name":"password","description":"The password of the account","type":[[["string"]]]}],"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":123,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAvatar","description":"Sets the avatar of the logged in client.","examples":["// Set avatar\nclient.user.setAvatar('./avatar.png')\n .then(user => console.log(`New avatar set!`))\n .catch(console.error);"],"params":[{"name":"avatar","description":"The new avatar","nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":143,"file":"ClientUser.js","path":"src/structures"}},{"name":"setBanner","description":"Sets the banner of the logged in client.","examples":["// Set banner\nclient.user.setBanner('./banner.png')\n .then(user => console.log(`New banner set!`))\n .catch(console.error);"],"params":[{"name":"banner","description":"The new banner","nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"returns":[[["Promise","<"],["ClientUser",">"]]],"meta":{"line":156,"file":"ClientUser.js","path":"src/structures"}},{"name":"setHypeSquad","description":"Set HyperSquad House","examples":["// Set HyperSquad HOUSE_BRAVERY\nclient.user.setHypeSquad(1); || client.user.setHypeSquad('HOUSE_BRAVERY');\n// Leave\nclient.user.setHypeSquad(0);"],"params":[{"name":"type","description":"`LEAVE`: 0\n`HOUSE_BRAVERY`: 1\n`HOUSE_BRILLIANCE`: 2\n`HOUSE_BALANCE`: 3","type":[[["HypeSquadOptions","<("],["number","|"],["string",")>"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":177,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAccentColor","description":"Set Accent color","params":[{"name":"color","description":"Color to set","default":null,"type":[[["ColorResolvable"]]]}],"returns":[[["Promise"]]],"meta":{"line":196,"file":"ClientUser.js","path":"src/structures"}},{"name":"setDiscriminator","description":"Set discriminator","params":[{"name":"discriminator","description":"It is #1234","type":[[["Userdiscriminator"]]]},{"name":"password","description":"The password of the account","type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":206,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAboutMe","description":"Set About me","params":[{"name":"bio","description":"Bio to set","default":null,"type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":222,"file":"ClientUser.js","path":"src/structures"}},{"name":"setEmail","description":"Change the email","params":[{"name":"email","description":"Email to change","type":[[["Email","<"],["string",">"]]]},{"name":"password","description":"Password of the account","type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":234,"file":"ClientUser.js","path":"src/structures"}},{"name":"setPassword","description":"Set new password","params":[{"name":"oldPassword","description":"Old password","type":[[["string"]]]},{"name":"newPassword","description":"New password to set","type":[[["string"]]]}],"returns":[[["Promise"]]],"meta":{"line":250,"file":"ClientUser.js","path":"src/structures"}},{"name":"disableAccount","description":"Disable account","params":[{"name":"password","description":"Password of the account","type":[[["string"]]]}],"async":true,"returns":[[["Promise"]]],"meta":{"line":266,"file":"ClientUser.js","path":"src/structures"}},{"name":"setDeaf","description":"Set selfdeaf (Global)","params":[{"name":"status","description":"Whether or not the ClientUser is deafened","type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":283,"file":"ClientUser.js","path":"src/structures"}},{"name":"setMute","description":"Set selfmute (Global)","params":[{"name":"status","description":"Whether or not the ClientUser is muted","type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":297,"file":"ClientUser.js","path":"src/structures"}},{"name":"deleteAccount","description":"Delete account. Warning: Cannot be changed once used!","params":[{"name":"password","description":"Password of the account","type":[[["string"]]]}],"async":true,"returns":[[["Promise"]]],"meta":{"line":311,"file":"ClientUser.js","path":"src/structures"}},{"name":"setPresence","description":"Sets the full presence of the client user.","examples":["// Set the client user's presence\nclient.user.setPresence({ activities: [{ name: 'with discord.js' }], status: 'idle' });"],"params":[{"name":"data","description":"Data for the presence","type":[[["PresenceData"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":348,"file":"ClientUser.js","path":"src/structures"}},{"name":"setStatus","description":"Sets the status of the client user.","examples":["// Set the client user's status\nclient.user.setStatus('idle');"],"params":[{"name":"status","description":"Status to change to","type":[[["PresenceStatusData"]]]},{"name":"shardId","description":"Shard id(s) to have the activity set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":370,"file":"ClientUser.js","path":"src/structures"}},{"name":"setActivity","description":"Sets the activity the client user is playing.","examples":["// Set the client user's activity\nclient.user.setActivity('discord.js', { type: 'WATCHING' });"],"params":[{"name":"name","description":"Activity being played, or options for setting the activity","optional":true,"type":[[["string"]],[["ActivityOptions"]]]},{"name":"options","description":"Options for setting the activity","optional":true,"type":[[["ActivityOptions"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":392,"file":"ClientUser.js","path":"src/structures"}},{"name":"setAFK","description":"Sets/removes the AFK flag for the client user.","params":[{"name":"afk","description":"Whether or not the user is AFK","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"shardId","description":"Shard Id(s) to have the AFK flag set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"returns":[[["ClientPresence"]]],"meta":{"line":410,"file":"ClientUser.js","path":"src/structures"}},{"name":"getInvite","description":"Create an invite [Friend Invites]","see":["https://github.com/13-05/hidden-disc-docs#js-snippet-for-creating-friend-invites"],"examples":["// Create an invite to a selected channel\nclient.user.getInvite({ maxAge: 0, maxUses: 0 });\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite [maxAge and maxUses are available]","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":425,"file":"ClientUser.js","path":"src/structures"}},{"name":"getProfile","description":"Get profile from Discord, if client is in a server with the target.","inherits":"User#getProfile","inherited":true,"async":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":212,"file":"User.js","path":"src/structures"}},{"name":"setFriend","description":"Friends the user and send Request [If no request]","inherits":"User#setFriend","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":223,"file":"User.js","path":"src/structures"}},{"name":"sendFriendRequest","description":"Send Friend Request to the user","inherits":"User#sendFriendRequest","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":231,"file":"User.js","path":"src/structures"}},{"name":"setBlock","description":"Blocks the user","inherits":"User#setBlock","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":238,"file":"User.js","path":"src/structures"}},{"name":"unBlock","description":"Removes the user from your blocks list","inherits":"User#unBlock","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":246,"file":"User.js","path":"src/structures"}},{"name":"unFriend","description":"Removes the user from your friends list","inherits":"User#unFriend","inherited":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":254,"file":"User.js","path":"src/structures"}},{"name":"avatarURL","description":"A link to the user's avatar.","inherits":"User#avatarURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":290,"file":"User.js","path":"src/structures"}},{"name":"displayAvatarURL","description":"A link to the user's avatar if they have one.\nOtherwise a link to their default avatar will be returned.","inherits":"User#displayAvatarURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":[[["string"]]],"meta":{"line":310,"file":"User.js","path":"src/structures"}},{"name":"bannerURL","description":"A link to the user's banner.\nThis method will throw an error if called before the user is force fetched.\nSee {@link User#banner} for more info","inherits":"User#bannerURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":332,"file":"User.js","path":"src/structures"}},{"name":"createDM","description":"Creates a DM channel between the client and the user.","inherits":"User#createDM","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":363,"file":"User.js","path":"src/structures"}},{"name":"deleteDM","description":"Deletes a DM channel (if one exists) between the client and the user. Resolves with the channel if successful.","inherits":"User#deleteDM","inherited":true,"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":371,"file":"User.js","path":"src/structures"}},{"name":"equals","description":"Checks if the user is equal to another.\nIt compares id, username, discriminator, avatar, banner, accent color, and bot flags.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","inherits":"User#equals","inherited":true,"params":[{"name":"user","description":"User to compare with","type":[[["User"]]]}],"returns":[[["boolean"]]],"meta":{"line":382,"file":"User.js","path":"src/structures"}},{"name":"_equals","description":"Compares the user with an API user object","access":"private","inherits":"User#_equals","inherited":true,"params":[{"name":"user","description":"The API user object to compare","type":[[["APIUser"]]]}],"returns":[[["boolean"]]],"meta":{"line":401,"file":"User.js","path":"src/structures"}},{"name":"fetchFlags","description":"Fetches this user's flags.","inherits":"User#fetchFlags","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["UserFlags",">"]]],"meta":{"line":419,"file":"User.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this user.","inherits":"User#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":428,"file":"User.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the user's mention instead of the User object.","inherits":"User#toString","inherited":true,"examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${user}!`);"],"returns":[[["string"]]],"meta":{"line":439,"file":"User.js","path":"src/structures"}},{"name":"setNote","description":"Set note to user","inherits":"User#setNote","inherited":true,"params":[{"name":"note","description":"Note to set","default":null,"type":[[["string","<"],["Usernote",">"]]]}],"async":true,"returns":[[["Promise","<"],["Usernote",">"]]],"meta":{"line":464,"file":"User.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","inherits":"User#send","inherited":true,"implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":13,"file":"ClientUser.js","path":"src/structures"}},{"name":"CommandInteraction","description":"Represents a command interaction.","extends":[[["BaseCommandInteraction"]]],"props":[{"name":"options","description":"The options passed to the command.","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"CommandInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":20,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":30,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":36,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":42,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":48,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":54,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":60,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":67,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"Returns a string representation of the command interaction.\nThis can then be copied by a user and executed again in a new command while keeping the option order.","returns":[[["string"]]],"meta":{"line":30,"file":"CommandInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":89,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":162,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","inherits":"BaseCommandInteraction#showModal","inherited":true,"implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseCommandInteraction#awaitModalSubmit","inherited":true,"implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":10,"file":"CommandInteraction.js","path":"src/structures"}},{"name":"CommandInteractionOptionResolver","description":"A resolver for command interaction options.","props":[{"name":"client","description":"The client that instantiated this.","readonly":true,"type":[[["Client"]]],"meta":{"line":10,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_group","description":"The name of the subcommand group.","access":"private","nullable":true,"type":[[["string"]]],"meta":{"line":23,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_subcommand","description":"The name of the subcommand.","access":"private","nullable":true,"type":[[["string"]]],"meta":{"line":30,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_hoistedOptions","description":"The bottom-level options for the interaction.\nIf there is a subcommand (or subcommand and group), this is the options for the subcommand.","access":"private","type":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":38,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"data","description":"The interaction options array.","readonly":true,"type":[[["ReadonlyArray","<"],["CommandInteractionOption",">"]]],"meta":{"line":51,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"resolved","description":"The interaction resolved data","type":[[["Readonly","<"],["CommandInteractionResolvedData",">"]]],"meta":{"line":59,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}}],"methods":[{"name":"get","description":"Gets an option by its name.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["CommandInteractionOption"]]],"description":"The option, if found.","nullable":true},"meta":{"line":73,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"_getTypedOption","description":"Gets an option by name and property and checks its type.","access":"private","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"type","description":"The type of the option.","type":[[["ApplicationCommandOptionType"]]]},{"name":"properties","description":"The properties to check for for `required`.","type":[[["Array","<"],["string",">"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","type":[[["boolean"]]]}],"returns":{"types":[[["CommandInteractionOption"]]],"description":"The option, if found.","nullable":true},"meta":{"line":93,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getSubcommand","description":"Gets the selected subcommand.","params":[{"name":"required","description":"Whether to throw an error if there is no subcommand.","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]]],"description":"The name of the selected subcommand, or null if not set and not required.","nullable":true},"meta":{"line":110,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getSubcommandGroup","description":"Gets the selected subcommand group.","params":[{"name":"required","description":"Whether to throw an error if there is no subcommand group.","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]]],"description":"The name of the selected subcommand group, or null if not set and not required.","nullable":true},"meta":{"line":122,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getBoolean","description":"Gets a boolean option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["boolean"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":135,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getChannel","description":"Gets a channel option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["GuildChannel"]],[["ThreadChannel"]],[["APIChannel"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":147,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getString","description":"Gets a string option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":158,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getInteger","description":"Gets an integer option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["number"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":169,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getNumber","description":"Gets a number option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["number"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":180,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getUser","description":"Gets a user option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["User"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":191,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getMember","description":"Gets a member option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["GuildMember"]],[["APIGuildMember"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":203,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getRole","description":"Gets a role option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["Role"]],[["APIRole"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":214,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getMentionable","description":"Gets a mentionable option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["User"]],[["GuildMember"]],[["APIGuildMember"]],[["Role"]],[["APIRole"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":226,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getMessage","description":"Gets a message option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["Message"]],[["APIMessage"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":238,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getFocused","description":"Gets the focused option.","params":[{"name":"getFull","description":"Whether to get the full option object","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["string"]],[["number"]],[["ApplicationCommandOptionChoice"]]],"description":"The value of the option, or the whole option if getFull is true"},"meta":{"line":249,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"getAttachment","description":"Gets an attachment option.","params":[{"name":"name","description":"The name of the option.","type":[[["string"]]]},{"name":"required","description":"Whether to throw an error if the option is not found.","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"The value of the option, or null if not set and not required.","nullable":true},"meta":{"line":261,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}}],"meta":{"line":8,"file":"CommandInteractionOptionResolver.js","path":"src/structures"}},{"name":"ContextMenuInteraction","description":"Represents a context menu interaction.","extends":[[["BaseCommandInteraction"]]],"props":[{"name":"options","description":"The target of the interaction, parsed into options","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetId","description":"The id of the target of the interaction","type":[[["Snowflake"]]],"meta":{"line":28,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetType","description":"The type of the target of the interaction; either USER or MESSAGE","type":[[["ApplicationCommandType"]]],"meta":{"line":34,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":20,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":30,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":36,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":42,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":48,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":54,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":60,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":67,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"resolveContextMenuOptions","description":"Resolves and transforms options received from the API for a context menu interaction.","access":"private","params":[{"name":"data","description":"The interaction data","type":[[["APIApplicationCommandInteractionData"]]]}],"returns":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":43,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":89,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":162,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","inherits":"BaseCommandInteraction#showModal","inherited":true,"implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseCommandInteraction#awaitModalSubmit","inherited":true,"implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":11,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"DirectoryChannel","description":"Represents a channel that displays a directory of guilds","props":[{"name":"name","description":"The channel's name","type":[[["string"]]],"meta":{"line":15,"file":"DirectoryChannel.js","path":"src/structures"}}],"meta":{"line":8,"file":"DirectoryChannel.js","path":"src/structures"}},{"name":"DMChannel","description":"Represents a direct message channel between two users.","extends":[[["Channel"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"messages","description":"A manager of the messages belonging to this channel","type":[[["MessageManager"]]],"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"name":"recipient","description":"The recipient on the other end of the DM","type":[[["User"]]],"meta":{"line":34,"file":"DMChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The channel's last message id, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":42,"file":"DMChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":50,"file":"DMChannel.js","path":"src/structures"}},{"name":"partial","description":"Whether this DMChannel is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":61,"file":"DMChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Fetch this DMChannel.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":70,"file":"DMChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the recipient's mention instead of the\nDMChannel object.","examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":82,"file":"DMChannel.js","path":"src/structures"}},{"name":"call","description":"Call this DMChannel. [TEST only]","returns":[[["Promise","<"],["void",">"]]],"meta":{"line":103,"file":"DMChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":189,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":204,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":227,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a component interaction collector.","implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":251,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":271,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"delete","description":"Deletes this channel.","inherits":"Channel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":131,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":12,"file":"DMChannel.js","path":"src/structures"}},{"name":"Emoji","description":"Represents an emoji, see {@link GuildEmoji} and {@link ReactionEmoji}.","extends":[[["Base"]]],"props":[{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":27,"file":"Emoji.js","path":"src/structures"}},{"name":"Guild","description":"Represents a guild (or a server) on Discord.\nIt's recommended to see if a guild is available before performing operations or reading data from it. You can\ncheck this with {@link Guild#available}.","extends":[[["AnonymousGuild"]]],"props":[{"name":"members","description":"A manager of the members belonging to this guild","type":[[["GuildMemberManager"]]],"meta":{"line":67,"file":"Guild.js","path":"src/structures"}},{"name":"channels","description":"A manager of the channels belonging to this guild","type":[[["GuildChannelManager"]]],"meta":{"line":73,"file":"Guild.js","path":"src/structures"}},{"name":"bans","description":"A manager of the bans belonging to this guild","type":[[["GuildBanManager"]]],"meta":{"line":79,"file":"Guild.js","path":"src/structures"}},{"name":"roles","description":"A manager of the roles belonging to this guild","type":[[["RoleManager"]]],"meta":{"line":85,"file":"Guild.js","path":"src/structures"}},{"name":"presences","description":"A manager of the presences belonging to this guild","type":[[["PresenceManager"]]],"meta":{"line":91,"file":"Guild.js","path":"src/structures"}},{"name":"voiceStates","description":"A manager of the voice states of this guild","type":[[["VoiceStateManager"]]],"meta":{"line":97,"file":"Guild.js","path":"src/structures"}},{"name":"stageInstances","description":"A manager of the stage instances of this guild","type":[[["StageInstanceManager"]]],"meta":{"line":103,"file":"Guild.js","path":"src/structures"}},{"name":"invites","description":"A manager of the invites of this guild","type":[[["GuildInviteManager"]]],"meta":{"line":109,"file":"Guild.js","path":"src/structures"}},{"name":"scheduledEvents","description":"A manager of the scheduled events of this guild","type":[[["GuildScheduledEventManager"]]],"meta":{"line":115,"file":"Guild.js","path":"src/structures"}},{"name":"available","description":"Whether the guild is available to access. If it is not available, it indicates a server outage","type":[[["boolean"]]],"meta":{"line":123,"file":"Guild.js","path":"src/structures"}},{"name":"shardId","description":"The id of the shard this Guild belongs to.","type":[[["number"]]],"meta":{"line":133,"file":"Guild.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":141,"file":"Guild.js","path":"src/structures"}},{"name":"shard","description":"The Shard this Guild belongs to.","readonly":true,"type":[[["WebSocketShard"]]],"meta":{"line":171,"file":"Guild.js","path":"src/structures"}},{"name":"discoverySplash","description":"The hash of the guild discovery splash image","nullable":true,"type":[[["string"]]],"meta":{"line":191,"file":"Guild.js","path":"src/structures"}},{"name":"memberCount","description":"The full amount of members in this guild","type":[[["number"]]],"meta":{"line":199,"file":"Guild.js","path":"src/structures"}},{"name":"large","description":"Whether the guild is \"large\" (has more than {@link WebsocketOptions large_threshold} members, 50 by default)","type":[[["boolean"]]],"meta":{"line":207,"file":"Guild.js","path":"src/structures"}},{"name":"premiumProgressBarEnabled","description":"Whether this guild has its premium (boost) progress bar enabled","type":[[["boolean"]]],"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"name":"applicationId","description":"The id of the application that created this guild (if applicable)","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":251,"file":"Guild.js","path":"src/structures"}},{"name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\"","nullable":true,"type":[[["number"]]],"meta":{"line":259,"file":"Guild.js","path":"src/structures"}},{"name":"afkChannelId","description":"The id of the voice channel where AFK members are moved","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":267,"file":"Guild.js","path":"src/structures"}},{"name":"systemChannelId","description":"The system channel's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":275,"file":"Guild.js","path":"src/structures"}},{"name":"premiumTier","description":"The premium tier of this guild","type":[[["PremiumTier"]]],"meta":{"line":283,"file":"Guild.js","path":"src/structures"}},{"name":"widgetEnabled","description":"Whether widget images are enabled on this guild","nullable":true,"type":[[["boolean"]]],"meta":{"line":291,"file":"Guild.js","path":"src/structures"}},{"name":"widgetChannelId","description":"The widget channel's id, if enabled","nullable":true,"type":[[["string"]]],"meta":{"line":299,"file":"Guild.js","path":"src/structures"}},{"name":"explicitContentFilter","description":"The explicit content filter level of the guild","type":[[["ExplicitContentFilterLevel"]]],"meta":{"line":307,"file":"Guild.js","path":"src/structures"}},{"name":"mfaLevel","description":"The required MFA level for this guild","type":[[["MFALevel"]]],"meta":{"line":315,"file":"Guild.js","path":"src/structures"}},{"name":"joinedTimestamp","description":"The timestamp the client user joined the guild at","type":[[["number"]]],"meta":{"line":323,"file":"Guild.js","path":"src/structures"}},{"name":"defaultMessageNotifications","description":"The default message notification level of the guild","type":[[["DefaultMessageNotificationLevel"]]],"meta":{"line":331,"file":"Guild.js","path":"src/structures"}},{"name":"systemChannelFlags","description":"The value set for the guild's system channel flags","type":[[["Readonly","<"],["SystemChannelFlags",">"]]],"meta":{"line":339,"file":"Guild.js","path":"src/structures"}},{"name":"maximumMembers","description":"The maximum amount of members the guild can have","nullable":true,"type":[[["number"]]],"meta":{"line":347,"file":"Guild.js","path":"src/structures"}},{"name":"maximumPresences","description":"The maximum amount of presences the guild can have\nYou will need to fetch the guild using {@link Guild#fetch} if you want to receive this parameter","nullable":true,"type":[[["number"]]],"meta":{"line":358,"file":"Guild.js","path":"src/structures"}},{"name":"approximateMemberCount","description":"The approximate amount of members the guild has\nYou will need to fetch the guild using {@link Guild#fetch} if you want to receive this parameter","nullable":true,"type":[[["number"]]],"meta":{"line":369,"file":"Guild.js","path":"src/structures"}},{"name":"approximatePresenceCount","description":"The approximate amount of presences the guild has\nYou will need to fetch the guild using {@link Guild#fetch} if you want to receive this parameter","nullable":true,"type":[[["number"]]],"meta":{"line":380,"file":"Guild.js","path":"src/structures"}},{"name":"vanityURLUses","description":"The use count of the vanity URL code of the guild, if any\nYou will need to fetch this parameter using {@link Guild#fetchVanityData} if you want to receive it","nullable":true,"type":[[["number"]]],"meta":{"line":390,"file":"Guild.js","path":"src/structures"}},{"name":"rulesChannelId","description":"The rules channel's id for the guild","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":397,"file":"Guild.js","path":"src/structures"}},{"name":"publicUpdatesChannelId","description":"The community updates channel's id for the guild","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":405,"file":"Guild.js","path":"src/structures"}},{"name":"preferredLocale","description":"The preferred locale of the guild, defaults to `en-US`","see":["{@link https://discord.com/developers/docs/reference#locales}"],"type":[[["Locale"]]],"meta":{"line":414,"file":"Guild.js","path":"src/structures"}},{"name":"ownerId","description":"The user id of this guild's owner","type":[[["Snowflake"]]],"meta":{"line":445,"file":"Guild.js","path":"src/structures"}},{"name":"emojis","description":"A manager of the emojis belonging to this guild","type":[[["GuildEmojiManager"]]],"meta":{"line":480,"file":"Guild.js","path":"src/structures"}},{"name":"stickers","description":"A manager of the stickers belonging to this guild","type":[[["GuildStickerManager"]]],"meta":{"line":494,"file":"Guild.js","path":"src/structures"}},{"name":"joinedAt","description":"The time the client user joined the guild","readonly":true,"type":[[["Date"]]],"meta":{"line":511,"file":"Guild.js","path":"src/structures"}},{"name":"afkChannel","description":"AFK voice channel for this guild","readonly":true,"nullable":true,"type":[[["VoiceChannel"]]],"meta":{"line":539,"file":"Guild.js","path":"src/structures"}},{"name":"systemChannel","description":"System channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":548,"file":"Guild.js","path":"src/structures"}},{"name":"widgetChannel","description":"Widget channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":557,"file":"Guild.js","path":"src/structures"}},{"name":"rulesChannel","description":"Rules channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":566,"file":"Guild.js","path":"src/structures"}},{"name":"publicUpdatesChannel","description":"Public updates channel for this guild","readonly":true,"nullable":true,"type":[[["TextChannel"]]],"meta":{"line":575,"file":"Guild.js","path":"src/structures"}},{"name":"me","description":"The client user as a GuildMember of this guild","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":584,"file":"Guild.js","path":"src/structures"}},{"name":"maximumBitrate","description":"The maximum bitrate available for this guild","readonly":true,"type":[[["number"]]],"meta":{"line":598,"file":"Guild.js","path":"src/structures"}},{"name":"voiceAdapterCreator","description":"The voice state adapter for this guild that can be used with @discordjs/voice to play audio in voice\nand stage channels.","readonly":true,"type":[[["function"]]],"meta":{"line":1533,"file":"Guild.js","path":"src/structures"}},{"name":"splash","description":"The hash of the guild invite splash image","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"banner","description":"The hash of the guild banner","nullable":true,"type":[[["string"]]],"meta":{"line":33,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"description","description":"The description of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":41,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"verificationLevel","description":"The verification level of the guild","type":[[["VerificationLevel"]]],"meta":{"line":49,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"vanityURLCode","description":"The vanity invite code of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":57,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"nsfwLevel","description":"The NSFW level of this guild","type":[[["NSFWLevel"]]],"meta":{"line":65,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"premiumSubscriptionCount","description":"The total number of boosts for this server","nullable":true,"type":[[["number"]]],"meta":{"line":73,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"discoverySplashURL","description":"The URL to this guild's discovery splash image.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":520,"file":"Guild.js","path":"src/structures"}},{"name":"fetchOwner","description":"Fetches the owner of the guild.\nIf the member object isn't needed, use {@link Guild#ownerId} instead.","params":[{"name":"options","description":"The options for fetching the member","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":530,"file":"Guild.js","path":"src/structures"}},{"name":"searchInteraction","description":"Searches for guild interactions","params":[{"name":"options","description":"Options for the search","type":[[["GuildSearchInteractionOptions"]]]}],"returns":[[["Promise"]]],"meta":{"line":629,"file":"Guild.js","path":"src/structures"}},{"name":"fetchIntegrations","description":"Fetches a collection of integrations to this guild.\nResolves with a collection mapping integrations by their ids.","examples":["// Fetch integrations\nguild.fetchIntegrations()\n .then(integrations => console.log(`Fetched ${integrations.size} integrations`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<("],["Snowflake","|"],["string","), "],["Integration",">>"]]],"meta":{"line":686,"file":"Guild.js","path":"src/structures"}},{"name":"fetchTemplates","description":"Fetches a collection of templates from this guild.\nResolves with a collection mapping templates by their codes.","async":true,"returns":[[["Promise","<"],["Collection","<"],["string",", "],["GuildTemplate",">>"]]],"meta":{"line":699,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWelcomeScreen","description":"Fetches the welcome screen for this guild.","async":true,"returns":[[["Promise","<"],["WelcomeScreen",">"]]],"meta":{"line":708,"file":"Guild.js","path":"src/structures"}},{"name":"createTemplate","description":"Creates a template for the guild.","params":[{"name":"name","description":"The name for the template","type":[[["string"]]]},{"name":"description","description":"The description for the template","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":719,"file":"Guild.js","path":"src/structures"}},{"name":"fetchPreview","description":"Obtains a guild preview for this guild from Discord.","async":true,"returns":[[["Promise","<"],["GuildPreview",">"]]],"meta":{"line":728,"file":"Guild.js","path":"src/structures"}},{"name":"fetchVanityData","description":"Fetches the vanity URL invite object to this guild.\nResolves with an object containing the vanity URL invite code and the use count","examples":["// Fetch invite data\nguild.fetchVanityData()\n .then(res => {\n console.log(`Vanity URL: https://discord.gg/${res.code} with ${res.uses} uses`);\n })\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Vanity",">"]]],"meta":{"line":752,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the guild.","examples":["// Fetch webhooks\nguild.fetchWebhooks()\n .then(webhooks => console.log(`Fetched ${webhooks.size} webhooks`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":772,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWidget","description":"Fetches the guild widget data, requires the widget to be enabled.","examples":["// Fetches the guild widget data\nguild.fetchWidget()\n .then(widget => console.log(`The widget shows ${widget.channels.size} channels`))\n .catch(console.error);"],"returns":[[["Promise","<"],["Widget",">"]]],"meta":{"line":790,"file":"Guild.js","path":"src/structures"}},{"name":"fetchWidgetSettings","description":"Fetches the guild widget settings.","examples":["// Fetches the guild widget settings\nguild.fetchWidgetSettings()\n .then(widget => console.log(`The widget is ${widget.enabled ? 'enabled' : 'disabled'}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["GuildWidgetSettings",">"]]],"meta":{"line":817,"file":"Guild.js","path":"src/structures"}},{"name":"fetchAuditLogs","description":"Fetches audit logs for this guild.","examples":["// Output audit log entries\nguild.fetchAuditLogs()\n .then(audit => console.log(audit.entries.first()))\n .catch(console.error);"],"params":[{"name":"options","description":"Options for fetching audit logs","optional":true,"default":"{}","type":[[["GuildAuditLogsFetchOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildAuditLogs",">"]]],"meta":{"line":846,"file":"Guild.js","path":"src/structures"}},{"name":"edit","description":"Updates the guild with new information - e.g. a new name.","examples":["// Set the guild name\nguild.edit({\n name: 'Discord Guild',\n})\n .then(updated => console.log(`New guild name ${updated}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The data to update the guild with","type":[[["GuildEditData"]]]},{"name":"reason","description":"Reason for editing this guild","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":917,"file":"Guild.js","path":"src/structures"}},{"name":"editWelcomeScreen","description":"Updates the guild's welcome screen","examples":["guild.editWelcomeScreen({\n description: 'Hello World',\n enabled: true,\n welcomeChannels: [\n {\n description: 'foobar',\n channel: '222197033908436994',\n }\n ],\n})"],"params":[{"name":"data","description":"Data to edit the welcome screen with","type":[[["WelcomeScreenEditData"]]]}],"async":true,"returns":[[["Promise","<"],["WelcomeScreen",">"]]],"meta":{"line":1029,"file":"Guild.js","path":"src/structures"}},{"name":"setExplicitContentFilter","description":"Edits the level of the explicit content filter.","params":[{"name":"explicitContentFilter","description":"The new level of the explicit content filter","nullable":true,"type":[[["ExplicitContentFilterLevel"]],[["number"]]]},{"name":"reason","description":"Reason for changing the level of the guild's explicit content filter","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1057,"file":"Guild.js","path":"src/structures"}},{"name":"setDefaultMessageNotifications","description":"Edits the setting of the default message notifications of the guild.","params":[{"name":"defaultMessageNotifications","description":"The new default message notification level of the guild","type":[[["DefaultMessageNotificationLevel"]],[["number"]]]},{"name":"reason","description":"Reason for changing the setting of the default message notifications","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1068,"file":"Guild.js","path":"src/structures"}},{"name":"setSystemChannelFlags","description":"Edits the flags of the default message notifications of the guild.","params":[{"name":"systemChannelFlags","description":"The new flags for the default message notifications","type":[[["SystemChannelFlagsResolvable"]]]},{"name":"reason","description":"Reason for changing the flags of the default message notifications","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1079,"file":"Guild.js","path":"src/structures"}},{"name":"setName","description":"Edits the name of the guild.","examples":["// Edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name of the guild","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1094,"file":"Guild.js","path":"src/structures"}},{"name":"setVerificationLevel","description":"Edits the verification level of the guild.","examples":["// Edit the guild verification level\nguild.setVerificationLevel(1)\n .then(updated => console.log(`Updated guild verification level to ${guild.verificationLevel}`))\n .catch(console.error);"],"params":[{"name":"verificationLevel","description":"The new verification level of the guild","type":[[["VerificationLevel"]],[["number"]]]},{"name":"reason","description":"Reason for changing the guild's verification level","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1109,"file":"Guild.js","path":"src/structures"}},{"name":"setAFKChannel","description":"Edits the AFK channel of the guild.","examples":["// Edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel.name}`))\n .catch(console.error);"],"params":[{"name":"afkChannel","description":"The new AFK channel","nullable":true,"type":[[["VoiceChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's AFK channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1124,"file":"Guild.js","path":"src/structures"}},{"name":"setSystemChannel","description":"Edits the system channel of the guild.","examples":["// Edit the guild system channel\nguild.setSystemChannel(channel)\n .then(updated => console.log(`Updated guild system channel to ${guild.systemChannel.name}`))\n .catch(console.error);"],"params":[{"name":"systemChannel","description":"The new system channel","nullable":true,"type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's system channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1139,"file":"Guild.js","path":"src/structures"}},{"name":"setAFKTimeout","description":"Edits the AFK timeout of the guild.","examples":["// Edit the guild AFK channel\nguild.setAFKTimeout(60)\n .then(updated => console.log(`Updated guild AFK timeout to ${guild.afkTimeout}`))\n .catch(console.error);"],"params":[{"name":"afkTimeout","description":"The time in seconds that a user must be idle to be considered AFK","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the guild's AFK timeout","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1154,"file":"Guild.js","path":"src/structures"}},{"name":"setIcon","description":"Sets a new guild icon.","examples":["// Edit the guild icon\nguild.setIcon('./icon.png')\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.error);"],"params":[{"name":"icon","description":"The new icon of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's icon","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1169,"file":"Guild.js","path":"src/structures"}},{"name":"setOwner","description":"Sets a new owner of the guild.","examples":["// Edit the guild owner\nguild.setOwner(guild.members.cache.first())\n .then(guild => guild.fetchOwner())\n .then(owner => console.log(`Updated the guild owner to ${owner.displayName}`))\n .catch(console.error);"],"params":[{"name":"owner","description":"The new owner of the guild","type":[[["GuildMemberResolvable"]]]},{"name":"reason","description":"Reason for setting the new owner","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1185,"file":"Guild.js","path":"src/structures"}},{"name":"setSplash","description":"Sets a new guild invite splash image.","examples":["// Edit the guild splash\nguild.setSplash('./splash.png')\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.error);"],"params":[{"name":"splash","description":"The new invite splash image of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's invite splash image","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1200,"file":"Guild.js","path":"src/structures"}},{"name":"setDiscoverySplash","description":"Sets a new guild discovery splash image.","examples":["// Edit the guild discovery splash\nguild.setDiscoverySplash('./discoverysplash.png')\n .then(updated => console.log('Updated the guild discovery splash'))\n .catch(console.error);"],"params":[{"name":"discoverySplash","description":"The new discovery splash image of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's discovery splash image","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1215,"file":"Guild.js","path":"src/structures"}},{"name":"setBanner","description":"Sets a new guild banner.","examples":["guild.setBanner('./banner.png')\n .then(updated => console.log('Updated the guild banner'))\n .catch(console.error);"],"params":[{"name":"banner","description":"The new banner of the guild","nullable":true,"type":[[["Base64Resolvable"]],[["BufferResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's banner","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1229,"file":"Guild.js","path":"src/structures"}},{"name":"setRulesChannel","description":"Edits the rules channel of the guild.","examples":["// Edit the guild rules channel\nguild.setRulesChannel(channel)\n .then(updated => console.log(`Updated guild rules channel to ${guild.rulesChannel.name}`))\n .catch(console.error);"],"params":[{"name":"rulesChannel","description":"The new rules channel","nullable":true,"type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's rules channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1244,"file":"Guild.js","path":"src/structures"}},{"name":"setPosition","description":"Change Guild Position (from * to Folder or Home)","examples":["// Move guild to folderID 123456, index 1\nguild.setPosition(1, 'FOLDER', 123456)\n.then(guild => console.log(`Guild moved to folderID ${guild.folder.folderId}`));"],"params":[{"name":"position","description":"Guild Position\n* **WARNING**: Type = `FOLDER`, newPosition is the guild's index in the Folder.","type":[[["number"]]]},{"name":"type","description":"Move to folder or home\n* `FOLDER`: 1\n* `HOME`: 2","type":[[["string"]],[["number"]]]},{"name":"folderID","description":"If you want to move to folder","type":[[["string"]],[["number"]],[["void"]],[["null"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1261,"file":"Guild.js","path":"src/structures"}},{"name":"setPublicUpdatesChannel","description":"Edits the community updates channel of the guild.","examples":["// Edit the guild community updates channel\nguild.setPublicUpdatesChannel(channel)\n .then(updated => console.log(`Updated guild community updates channel to ${guild.publicUpdatesChannel.name}`))\n .catch(console.error);"],"params":[{"name":"publicUpdatesChannel","description":"The new community updates channel","nullable":true,"type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the guild's community updates channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1300,"file":"Guild.js","path":"src/structures"}},{"name":"setPreferredLocale","description":"Edits the preferred locale of the guild.","examples":["// Edit the guild preferred locale\nguild.setPreferredLocale('en-US')\n .then(updated => console.log(`Updated guild preferred locale to ${guild.preferredLocale}`))\n .catch(console.error);"],"params":[{"name":"preferredLocale","description":"The new preferred locale of the guild","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild's preferred locale","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1315,"file":"Guild.js","path":"src/structures"}},{"name":"setPremiumProgressBarEnabled","description":"Edits the enabled state of the guild's premium progress bar","params":[{"name":"enabled","description":"The new enabled state of the guild's premium progress bar","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the state of the guild's premium progress bar","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1325,"file":"Guild.js","path":"src/structures"}},{"name":"setChannelPositions","description":"Batch-updates the guild's channels' positions.\nOnly one channel's parent can be changed at a time","examples":["guild.setChannelPositions([{ channel: channelId, position: newChannelIndex }])\n .then(guild => console.log(`Updated channel positions for ${guild}`))\n .catch(console.error);"],"deprecated":"Use {@link GuildChannelManager#setPositions} instead","params":[{"name":"channelPositions","description":"Channel positions to update","type":[[["Array","<"],["ChannelPosition",">"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1356,"file":"Guild.js","path":"src/structures"}},{"name":"setRolePositions","description":"Batch-updates the guild's role positions","examples":["guild.setRolePositions([{ role: roleId, position: updatedRoleIndex }])\n .then(guild => console.log(`Role positions updated for ${guild}`))\n .catch(console.error);"],"deprecated":"Use {@link RoleManager#setPositions} instead","params":[{"name":"rolePositions","description":"Role positions to update","type":[[["Array","<"],["GuildRolePosition",">"]]]}],"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1386,"file":"Guild.js","path":"src/structures"}},{"name":"setWidgetSettings","description":"Edits the guild's widget settings.","params":[{"name":"settings","description":"The widget settings for the guild","type":[[["GuildWidgetSettingsData"]]]},{"name":"reason","description":"Reason for changing the guild's widget settings","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1405,"file":"Guild.js","path":"src/structures"}},{"name":"leave","description":"Leaves the guild.","examples":["// Leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1425,"file":"Guild.js","path":"src/structures"}},{"name":"delete","description":"Deletes the guild.","examples":["// Delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":1440,"file":"Guild.js","path":"src/structures"}},{"name":"equals","description":"Whether this guild equals another guild. It compares all properties, so for most operations\nit is advisable to just compare `guild.id === guild2.id` as it is much faster and is often\nwhat most users need.","params":[{"name":"guild","description":"The guild to compare with","type":[[["Guild"]]]}],"returns":[[["boolean"]]],"meta":{"line":1452,"file":"Guild.js","path":"src/structures"}},{"name":"setCommunity","description":"Set Community Feature","params":[{"name":"stats","description":"True / False to enable / disable Community Feature","default":true,"type":[[["boolean"]]]},{"name":"publicUpdatesChannel","description":"The community updates channel of the guild","default":"1","type":[[["TextChannelResolvable"]]]},{"name":"rulesChannel","description":"The new rules channel","default":"1","type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for changing the community feature","type":[[["string"]]]}],"async":true,"meta":{"line":1479,"file":"Guild.js","path":"src/structures"}},{"name":"_sortedRoles","description":"Creates a collection of this guild's roles, sorted by their position and ids.","access":"private","returns":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":1554,"file":"Guild.js","path":"src/structures"}},{"name":"_sortedChannels","description":"Creates a collection of this guild's or a specific category's channels, sorted by their position and ids.","access":"private","params":[{"name":"channel","description":"Category to get the channels of","optional":true,"type":[[["GuildChannel"]]]}],"returns":[[["Collection","<"],["Snowflake",", "],["GuildChannel",">"]]],"meta":{"line":1564,"file":"Guild.js","path":"src/structures"}},{"name":"bannerURL","description":"The URL to this guild's banner.","inherits":"AnonymousGuild#bannerURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":84,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"splashURL","description":"The URL to this guild's invite splash image.","inherits":"AnonymousGuild#splashURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"name":"GuildAuditLogs","description":"Audit logs entries are held in this class.","props":[{"name":"webhooks","description":"Cached webhooks","access":"private","type":[[["Collection","<"],["Snowflake",", "],["Webhook",">"]]],"meta":{"line":177,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"integrations","description":"Cached integrations","access":"private","type":[[["Collection","<("],["Snowflake","|"],["string","), "],["Integration",">"]]],"meta":{"line":189,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"entries","description":"The entries for this guild's audit logs","type":[[["Collection","<"],["Snowflake",", "],["GuildAuditLogsEntry",">"]]],"meta":{"line":200,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"Targets","description":"Key mirror of all available audit log targets.","scope":"static","type":[[["Object","<"],["string",", "],["string",">"]]],"meta":{"line":32,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"Actions","description":"All available actions keyed under their names to their numeric values.","scope":"static","type":[[["Object","<"],["string",", "],["number",">"]]],"meta":{"line":109,"file":"GuildAuditLogs.js","path":"src/structures"}}],"methods":[{"name":"build","description":"Handles possible promises for entry targets.","scope":"static","async":true,"returns":[[["Promise","<"],["GuildAuditLogs",">"]]],"meta":{"line":211,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"targetType","description":"Finds the target type from the entry action.","scope":"static","params":[{"name":"target","description":"The action target","type":[[["AuditLogAction"]]]}],"returns":[[["AuditLogTargetType"]]],"meta":{"line":243,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"actionType","description":"Finds the action type from the entry action.","scope":"static","params":[{"name":"action","description":"The action target","type":[[["AuditLogAction"]]]}],"returns":[[["AuditLogActionType"]]],"meta":{"line":274,"file":"GuildAuditLogs.js","path":"src/structures"}}],"meta":{"line":168,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"GuildAuditLogsEntry","description":"Audit logs entry.","props":[{"name":"targetType","description":"The target type of this entry","type":[[["AuditLogTargetType"]]],"meta":{"line":361,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"actionType","description":"The action type of this entry","type":[[["AuditLogActionType"]]],"meta":{"line":367,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"action","description":"Specific action type of this entry in its string presentation","type":[[["AuditLogAction"]]],"meta":{"line":373,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"reason","description":"The reason of this entry","nullable":true,"type":[[["string"]]],"meta":{"line":379,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"executor","description":"The user that executed this entry","nullable":true,"type":[[["User"]]],"meta":{"line":385,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"changes","description":"Specific property changes","nullable":true,"type":[[["Array","<"],["AuditLogChange",">"]]],"meta":{"line":403,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"id","description":"The entry's id","type":[[["Snowflake"]]],"meta":{"line":409,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"extra","description":"Any extra data from the entry","nullable":true,"type":[[["Object"]],[["Role"]],[["GuildMember"]]],"meta":{"line":415,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"target","description":"The target of this entry","nullable":true,"type":[[["AuditLogEntryTarget"]]],"meta":{"line":487,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this entry was created at","readonly":true,"type":[[["number"]]],"meta":{"line":616,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"createdAt","description":"The time this entry was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":625,"file":"GuildAuditLogs.js","path":"src/structures"}}],"meta":{"line":354,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"GuildBan","description":"Represents a ban in a guild on Discord.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild in which the ban is","type":[[["Guild"]]],"meta":{"line":17,"file":"GuildBan.js","path":"src/structures"}},{"name":"user","description":"The user this ban applies to","type":[[["User"]]],"meta":{"line":28,"file":"GuildBan.js","path":"src/structures"}},{"name":"reason","description":"The reason for the ban","nullable":true,"type":[[["string"]]],"meta":{"line":36,"file":"GuildBan.js","path":"src/structures"}},{"name":"partial","description":"Whether this GuildBan is partial. If the reason is not provided the value is null","readonly":true,"type":[[["boolean"]]],"meta":{"line":45,"file":"GuildBan.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Fetches this GuildBan.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["GuildBan",">"]]],"meta":{"line":54,"file":"GuildBan.js","path":"src/structures"}}],"meta":{"line":9,"file":"GuildBan.js","path":"src/structures"}},{"name":"GuildChannel","description":"Represents a guild channel from any of the following:\n- {@link TextChannel}\n- {@link VoiceChannel}\n- {@link CategoryChannel}\n- {@link NewsChannel}\n- {@link StoreChannel}\n- {@link StageChannel}","extends":[[["Channel"]]],"abstract":true,"props":[{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":259,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":20,"file":"GuildChannel.js","path":"src/structures"}},{"name":"GuildEmoji","description":"Represents a custom emoji.","extends":[[["BaseGuildEmoji"]]],"props":[{"name":"author","description":"The user who created this emoji","nullable":true,"type":[[["User"]]],"meta":{"line":20,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"_roles","description":"Array of role ids this emoji is active for","access":"private","type":[[["Array","<"],["Snowflake",">"]]],"meta":{"line":22,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"guild","description":"The guild this emoji is part of","type":[[["Guild"]]],"meta":{"line":33,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"deletable","description":"Whether the emoji is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":57,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"roles","description":"A manager for roles this emoji is active for.","readonly":true,"type":[[["GuildEmojiRoleManager"]]],"meta":{"line":67,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"requiresColons","description":"Whether or not this emoji requires colons surrounding it","nullable":true,"type":[[["boolean"]]],"meta":{"line":35,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"managed","description":"Whether this emoji is managed by an external service","nullable":true,"type":[[["boolean"]]],"meta":{"line":43,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"available","description":"Whether this emoji is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetchAuthor","description":"Fetches the author for this emoji","returns":[[["Promise","<"],["User",">"]]],"meta":{"line":75,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"edit","description":"Edits the emoji.","examples":["// Edit an emoji\nemoji.edit({ name: 'newemoji' })\n .then(e => console.log(`Edited emoji ${e}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the emoji","type":[[["GuildEmojiEditData"]]]},{"name":"reason","description":"Reason for editing this emoji","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":97,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"setName","description":"Sets the name of the emoji.","params":[{"name":"name","description":"The new name for the emoji","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the emoji's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":120,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"delete","description":"Deletes the emoji.","params":[{"name":"reason","description":"Reason for deleting the emoji","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildEmoji",">"]]],"meta":{"line":129,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"equals","description":"Whether this emoji is the same as another one.","params":[{"name":"other","description":"The emoji to compare it to","type":[[["GuildEmoji"]],[["APIEmoji"]]]}],"returns":[[["boolean"]]],"meta":{"line":139,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":12,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"GuildMember","description":"Represents a member of a guild on Discord.","extends":[[["Base"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"guild","description":"The guild that this member is part of","type":[[["Guild"]]],"meta":{"line":32,"file":"GuildMember.js","path":"src/structures"}},{"name":"joinedTimestamp","description":"The timestamp the member joined the guild at","nullable":true,"type":[[["number"]]],"meta":{"line":38,"file":"GuildMember.js","path":"src/structures"}},{"name":"premiumSinceTimestamp","description":"The last timestamp this member started boosting the guild","nullable":true,"type":[[["number"]]],"meta":{"line":44,"file":"GuildMember.js","path":"src/structures"}},{"name":"nickname","description":"The nickname of this member, if they have one","nullable":true,"type":[[["string"]]],"meta":{"line":50,"file":"GuildMember.js","path":"src/structures"}},{"name":"pending","description":"Whether this member has yet to pass the guild's membership gate","type":[[["boolean"]]],"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"name":"communicationDisabledUntilTimestamp","description":"The timestamp this member's timeout will be removed","nullable":true,"type":[[["number"]]],"meta":{"line":62,"file":"GuildMember.js","path":"src/structures"}},{"name":"user","description":"The user that this guild member instance represents","nullable":true,"type":[[["User"]]],"meta":{"line":74,"file":"GuildMember.js","path":"src/structures"}},{"name":"avatar","description":"The guild member's avatar hash","nullable":true,"type":[[["string"]]],"meta":{"line":83,"file":"GuildMember.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":111,"file":"GuildMember.js","path":"src/structures"}},{"name":"partial","description":"Whether this GuildMember is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":141,"file":"GuildMember.js","path":"src/structures"}},{"name":"roles","description":"A manager for the roles belonging to this member","readonly":true,"type":[[["GuildMemberRoleManager"]]],"meta":{"line":150,"file":"GuildMember.js","path":"src/structures"}},{"name":"voice","description":"The voice state of this member","readonly":true,"type":[[["VoiceState"]]],"meta":{"line":159,"file":"GuildMember.js","path":"src/structures"}},{"name":"joinedAt","description":"The time this member joined the guild","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":188,"file":"GuildMember.js","path":"src/structures"}},{"name":"communicationDisabledUntil","description":"The time this member's timeout will be removed","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":197,"file":"GuildMember.js","path":"src/structures"}},{"name":"premiumSince","description":"The last time this member started boosting the guild","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":206,"file":"GuildMember.js","path":"src/structures"}},{"name":"presence","description":"The presence of this guild member","readonly":true,"nullable":true,"type":[[["Presence"]]],"meta":{"line":215,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayColor","description":"The displayed color of this member in base 10","readonly":true,"type":[[["number"]]],"meta":{"line":224,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayHexColor","description":"The displayed color of this member in hexadecimal","readonly":true,"type":[[["string"]]],"meta":{"line":233,"file":"GuildMember.js","path":"src/structures"}},{"name":"id","description":"The member's id","readonly":true,"type":[[["Snowflake"]]],"meta":{"line":242,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayName","description":"The nickname of this member, or their username if they don't have one","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":251,"file":"GuildMember.js","path":"src/structures"}},{"name":"permissions","description":"The overall set of permissions for this member, taking only roles and owner status into account","readonly":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":260,"file":"GuildMember.js","path":"src/structures"}},{"name":"manageable","description":"Whether the client user is above this user in the hierarchy, according to role position and guild ownership.\nThis is a prerequisite for many moderative actions.","readonly":true,"type":[[["boolean"]]],"meta":{"line":271,"file":"GuildMember.js","path":"src/structures"}},{"name":"kickable","description":"Whether this member is kickable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":284,"file":"GuildMember.js","path":"src/structures"}},{"name":"bannable","description":"Whether this member is bannable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":293,"file":"GuildMember.js","path":"src/structures"}},{"name":"moderatable","description":"Whether this member is moderatable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":302,"file":"GuildMember.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"avatarURL","description":"A link to the member's guild avatar.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":168,"file":"GuildMember.js","path":"src/structures"}},{"name":"displayAvatarURL","description":"A link to the member's guild avatar if they have one.\nOtherwise, a link to their {@link User#displayAvatarURL} will be returned.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":[[["string"]]],"meta":{"line":179,"file":"GuildMember.js","path":"src/structures"}},{"name":"isCommunicationDisabled","description":"Whether this member is currently timed out","returns":[[["boolean"]]],"meta":{"line":314,"file":"GuildMember.js","path":"src/structures"}},{"name":"permissionsIn","description":"Returns `channel.permissionsFor(guildMember)`. Returns permissions for a member in a guild channel,\ntaking into account roles and permission overwrites.","params":[{"name":"channel","description":"The guild channel to use as context","type":[[["GuildChannelResolvable"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":324,"file":"GuildMember.js","path":"src/structures"}},{"name":"edit","description":"Edits this member.","params":[{"name":"data","description":"The data to edit the member with","type":[[["GuildMemberEditData"]]]},{"name":"reason","description":"Reason for editing this user","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":336,"file":"GuildMember.js","path":"src/structures"}},{"name":"setNickname","description":"Sets the nickname for this member.","params":[{"name":"nick","description":"The nickname for the guild member, or `null` if you want to reset their nickname","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for setting the nickname","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":346,"file":"GuildMember.js","path":"src/structures"}},{"name":"createDM","description":"Creates a DM channel between the client and this member.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":355,"file":"GuildMember.js","path":"src/structures"}},{"name":"deleteDM","description":"Deletes any DMs with this member.","returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":363,"file":"GuildMember.js","path":"src/structures"}},{"name":"kick","description":"Kicks this member from the guild.","params":[{"name":"reason","description":"Reason for kicking user","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":372,"file":"GuildMember.js","path":"src/structures"}},{"name":"ban","description":"Bans this guild member.","examples":["// ban a guild member\nguildMember.ban({ days: 7, reason: 'They deserved it' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for the ban","optional":true,"type":[[["BanOptions"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":386,"file":"GuildMember.js","path":"src/structures"}},{"name":"disableCommunicationUntil","description":"Times this guild member out.","examples":["// Time a guild member out for 5 minutes\nguildMember.disableCommunicationUntil(Date.now() + (5 * 60 * 1000), 'They deserved it')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"communicationDisabledUntil","description":"The date or timestamp\nfor the member's communication to be disabled until. Provide `null` to remove the timeout.","type":[[["DateResolvable"]],[["null"]]]},{"name":"reason","description":"The reason for this timeout.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":402,"file":"GuildMember.js","path":"src/structures"}},{"name":"timeout","description":"Times this guild member out.","examples":["// Time a guild member out for 5 minutes\nguildMember.timeout(5 * 60 * 1000, 'They deserved it')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"timeout","description":"The time in milliseconds\nfor the member's communication to be disabled until. Provide `null` to remove the timeout.","type":[[["number"]],[["null"]]]},{"name":"reason","description":"The reason for this timeout.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":418,"file":"GuildMember.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this GuildMember.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":427,"file":"GuildMember.js","path":"src/structures"}},{"name":"equals","description":"Whether this guild member equals another guild member. It compares all properties, so for most\ncomparison it is advisable to just compare `member.id === member2.id` as it is significantly faster\nand is often what most users need.","params":[{"name":"member","description":"The member to compare with","type":[[["GuildMember"]]]}],"returns":[[["boolean"]]],"meta":{"line":438,"file":"GuildMember.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the user's mention instead of the GuildMember object.","examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${member}!`);"],"returns":[[["string"]]],"meta":{"line":461,"file":"GuildMember.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":24,"file":"GuildMember.js","path":"src/structures"}},{"name":"GuildPreview","description":"Represents the data about the guild any bot can preview, connected to the specified guild.","extends":[[["Base"]]],"props":[{"name":"id","description":"The id of this guild","type":[[["string"]]],"meta":{"line":27,"file":"GuildPreview.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":34,"file":"GuildPreview.js","path":"src/structures"}},{"name":"icon","description":"The icon of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":42,"file":"GuildPreview.js","path":"src/structures"}},{"name":"splash","description":"The splash icon of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":50,"file":"GuildPreview.js","path":"src/structures"}},{"name":"discoverySplash","description":"The discovery splash icon of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":58,"file":"GuildPreview.js","path":"src/structures"}},{"name":"features","description":"An array of enabled guild features","type":[[["Array","<"],["Features",">"]]],"meta":{"line":66,"file":"GuildPreview.js","path":"src/structures"}},{"name":"approximateMemberCount","description":"The approximate count of members in this guild","type":[[["number"]]],"meta":{"line":74,"file":"GuildPreview.js","path":"src/structures"}},{"name":"approximatePresenceCount","description":"The approximate count of online members in this guild","type":[[["number"]]],"meta":{"line":82,"file":"GuildPreview.js","path":"src/structures"}},{"name":"description","description":"The description for this guild","nullable":true,"type":[[["string"]]],"meta":{"line":90,"file":"GuildPreview.js","path":"src/structures"}},{"name":"emojis","description":"Collection of emojis belonging to this guild","type":[[["Collection","<"],["Snowflake",", "],["GuildPreviewEmoji",">"]]],"meta":{"line":100,"file":"GuildPreview.js","path":"src/structures"}},{"name":"stickers","description":"Collection of stickers belonging to this guild","type":[[["Collection","<"],["Snowflake",", "],["Sticker",">"]]],"meta":{"line":112,"file":"GuildPreview.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":122,"file":"GuildPreview.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":131,"file":"GuildPreview.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"splashURL","description":"The URL to this guild's splash.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":140,"file":"GuildPreview.js","path":"src/structures"}},{"name":"discoverySplashURL","description":"The URL to this guild's discovery splash.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":149,"file":"GuildPreview.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":158,"file":"GuildPreview.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","async":true,"returns":[[["Promise","<"],["GuildPreview",">"]]],"meta":{"line":166,"file":"GuildPreview.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","examples":["// Logs: Hello from My Guild!\nconsole.log(`Hello from ${previewGuild}!`);"],"returns":[[["string"]]],"meta":{"line":179,"file":"GuildPreview.js","path":"src/structures"}}],"meta":{"line":13,"file":"GuildPreview.js","path":"src/structures"}},{"name":"GuildPreviewEmoji","description":"Represents an instance of an emoji belonging to a public guild obtained through Discord's preview endpoint.","extends":[[["BaseGuildEmoji"]]],"props":[{"name":"guild","description":"The public guild this emoji is part of","type":[[["GuildPreview"]]],"meta":{"line":10,"file":"GuildPreviewEmoji.js","path":"src/structures"}},{"name":"roles","description":"The roles this emoji is active for","type":[[["Array","<"],["Snowflake",">"]]],"meta":{"line":23,"file":"GuildPreviewEmoji.js","path":"src/structures"}},{"name":"requiresColons","description":"Whether or not this emoji requires colons surrounding it","nullable":true,"type":[[["boolean"]]],"meta":{"line":35,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"managed","description":"Whether this emoji is managed by an external service","nullable":true,"type":[[["boolean"]]],"meta":{"line":43,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"available","description":"Whether this emoji is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"BaseGuildEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":9,"file":"GuildPreviewEmoji.js","path":"src/structures"}},{"name":"GuildScheduledEvent","description":"Represents a scheduled event in a {@link Guild}.","extends":[[["Base"]]],"props":[{"name":"id","description":"The id of the guild scheduled event","type":[[["Snowflake"]]],"meta":{"line":25,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this guild scheduled event belongs to","type":[[["Snowflake"]]],"meta":{"line":31,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"channelId","description":"The channel id in which the scheduled event will be hosted, or `null` if entity type is `EXTERNAL`","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":42,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"creatorId","description":"The id of the user that created this guild scheduled event","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"name","description":"The name of the guild scheduled event","type":[[["string"]]],"meta":{"line":61,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"description","description":"The description of the guild scheduled event","nullable":true,"type":[[["string"]]],"meta":{"line":68,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledStartTimestamp","description":"The timestamp the guild scheduled event will start at\nThis can be potentially `null` only when it's an {@link AuditLogEntryTarget}","nullable":true,"type":[[["number"]]],"meta":{"line":78,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledEndTimestamp","description":"The timestamp the guild scheduled event will end at,\nor `null` if the event does not have a scheduled time to end","nullable":true,"type":[[["number"]]],"meta":{"line":85,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"privacyLevel","description":"The privacy level of the guild scheduled event","type":[[["PrivacyLevel"]]],"meta":{"line":91,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"status","description":"The status of the guild scheduled event","type":[[["GuildScheduledEventStatus"]]],"meta":{"line":97,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"entityType","description":"The type of hosting entity associated with the scheduled event","type":[[["GuildScheduledEventEntityType"]]],"meta":{"line":103,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"entityId","description":"The id of the hosting entity associated with the scheduled event","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":110,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"userCount","description":"The number of users who are subscribed to this guild scheduled event","nullable":true,"type":[[["number"]]],"meta":{"line":120,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"creator","description":"The user that created this guild scheduled event","nullable":true,"type":[[["User"]]],"meta":{"line":130,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"entityMetadata","description":"Additional metadata","nullable":true,"type":[[["GuildScheduledEventEntityMetadata"]]],"meta":{"line":150,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"image","description":"The cover image hash for this scheduled event","nullable":true,"type":[[["string"]]],"meta":{"line":165,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the guild scheduled event was created at","readonly":true,"type":[[["number"]]],"meta":{"line":185,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"createdAt","description":"The time the guild scheduled event was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":194,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledStartAt","description":"The time the guild scheduled event will start at","readonly":true,"type":[[["Date"]]],"meta":{"line":203,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"scheduledEndAt","description":"The time the guild scheduled event will end at,\nor `null` if the event does not have a scheduled time to end","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":213,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"channel","description":"The channel associated with this scheduled event","readonly":true,"nullable":true,"type":[[["VoiceChannel"]],[["StageChannel"]]],"meta":{"line":222,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"guild","description":"The guild this scheduled event belongs to","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":231,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"url","description":"The URL to the guild scheduled event","readonly":true,"type":[[["string"]]],"meta":{"line":240,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"coverImageURL","description":"The URL of this scheduled event's cover image","params":[{"name":"options","description":"Options for image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":176,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"createInviteURL","description":"Creates an invite URL to this guild scheduled event.","params":[{"name":"options","description":"The options to create the invite","optional":true,"type":[[["CreateGuildScheduledEventInviteURLOptions"]]]}],"async":true,"returns":[[["Promise","<"],["string",">"]]],"meta":{"line":256,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"edit","description":"Edits this guild scheduled event.","examples":["// Edit a guild scheduled event\nguildScheduledEvent.edit({ name: 'Party' })\n .then(guildScheduledEvent => console.log(guildScheduledEvent))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to edit the guild scheduled event","type":[[["GuildScheduledEventEditOptions"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":277,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"delete","description":"Deletes this guild scheduled event.","examples":["// Delete a guild scheduled event\nguildScheduledEvent.delete()\n .then(guildScheduledEvent => console.log(guildScheduledEvent))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":290,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild scheduled event.","examples":["// Set name of a guild scheduled event\nguildScheduledEvent.setName('Birthday Party')\n .then(guildScheduledEvent => console.log(`Set the name to: ${guildScheduledEvent.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name of the guild scheduled event","type":[[["string"]]]},{"name":"reason","description":"The reason for changing the name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":306,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setScheduledStartTime","description":"Sets a new time to schedule the event at.","examples":["// Set start time of a guild scheduled event\nguildScheduledEvent.setScheduledStartTime('2022-09-24T00:00:00+05:30')\n .then(guildScheduledEvent => console.log(`Set the start time to: ${guildScheduledEvent.scheduledStartTime}`))\n .catch(console.error);"],"params":[{"name":"scheduledStartTime","description":"The time to schedule the event at","type":[[["DateResolvable"]]]},{"name":"reason","description":"The reason for changing the scheduled start time","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":321,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setScheduledEndTime","description":"Sets a new time to end the event at.","examples":["// Set end time of a guild scheduled event\nguildScheduledEvent.setScheduledEndTime('2022-09-25T00:00:00+05:30')\n .then(guildScheduledEvent => console.log(`Set the end time to: ${guildScheduledEvent.scheduledEndTime}`))\n .catch(console.error);"],"params":[{"name":"scheduledEndTime","description":"The time to end the event at","type":[[["DateResolvable"]]]},{"name":"reason","description":"The reason for changing the scheduled end time","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":337,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setDescription","description":"Sets the new description of the guild scheduled event.","examples":["// Set description of a guild scheduled event\nguildScheduledEvent.setDescription('A virtual birthday party')\n .then(guildScheduledEvent => console.log(`Set the description to: ${guildScheduledEvent.description}`))\n .catch(console.error);"],"params":[{"name":"description","description":"The description of the guild scheduled event","type":[[["string"]]]},{"name":"reason","description":"The reason for changing the description","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":352,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setStatus","description":"Sets the new status of the guild scheduled event.\nIf you're working with TypeScript, use this method in conjunction with status type-guards\nlike {@link GuildScheduledEvent#isScheduled} to get only valid status as suggestion","examples":["// Set status of a guild scheduled event\nguildScheduledEvent.setStatus('ACTIVE')\n .then(guildScheduledEvent => console.log(`Set the status to: ${guildScheduledEvent.status}`))\n .catch(console.error);"],"params":[{"name":"status","description":"The status of the guild scheduled event","type":[[["GuildScheduledEventStatus"]],[["number"]]]},{"name":"reason","description":"The reason for changing the status","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":369,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"setLocation","description":"Sets the new location of the guild scheduled event.","examples":["// Set location of a guild scheduled event\nguildScheduledEvent.setLocation('Earth')\n .then(guildScheduledEvent => console.log(`Set the location to: ${guildScheduledEvent.entityMetadata.location}`))\n .catch(console.error);"],"params":[{"name":"location","description":"The location of the guild scheduled event","type":[[["string"]]]},{"name":"reason","description":"The reason for changing the location","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildScheduledEvent",">"]]],"meta":{"line":384,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"fetchSubscribers","description":"Fetches subscribers of this guild scheduled event.","params":[{"name":"options","description":"Options for fetching the subscribers","optional":true,"type":[[["FetchGuildScheduledEventSubscribersOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["GuildScheduledEventUser",">>"]]],"meta":{"line":393,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically concatenates the event's URL instead of the object.","examples":["// Logs: Event: https://discord.com/events/412345678901234567/499876543211234567\nconsole.log(`Event: ${guildScheduledEvent}`);"],"returns":[[["string"]]],"meta":{"line":404,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isActive","description":"Indicates whether this guild scheduled event has an `ACTIVE` status.","returns":[[["boolean"]]],"meta":{"line":412,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isCanceled","description":"Indicates whether this guild scheduled event has a `CANCELED` status.","returns":[[["boolean"]]],"meta":{"line":420,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isCompleted","description":"Indicates whether this guild scheduled event has a `COMPLETED` status.","returns":[[["boolean"]]],"meta":{"line":428,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"isScheduled","description":"Indicates whether this guild scheduled event has a `SCHEDULED` status.","returns":[[["boolean"]]],"meta":{"line":436,"file":"GuildScheduledEvent.js","path":"src/structures"}}],"meta":{"line":17,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"GuildTemplate","description":"Represents the template for a guild.","extends":[[["Base"]]],"props":[{"name":"code","description":"The unique code of this template","type":[[["string"]]],"meta":{"line":24,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"name","description":"The name of this template","type":[[["string"]]],"meta":{"line":32,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"description","description":"The description of this template","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"usageCount","description":"The amount of times this template has been used","type":[[["number"]]],"meta":{"line":48,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"creatorId","description":"The id of the user that created this template","type":[[["Snowflake"]]],"meta":{"line":56,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"creator","description":"The user that created this template","type":[[["User"]]],"meta":{"line":64,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"createdAt","description":"The time when this template was created at","type":[[["Date"]]],"meta":{"line":72,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"updatedAt","description":"The time when this template was last synced to the guild","type":[[["Date"]]],"meta":{"line":80,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild that this template belongs to","type":[[["Snowflake"]]],"meta":{"line":88,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"serializedGuild","description":"The data of the guild that this template would create","type":[[["APIGuild"]]],"meta":{"line":96,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"unSynced","description":"Whether this template has unsynced changes","nullable":true,"type":[[["boolean"]]],"meta":{"line":103,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp of when this template was created at","readonly":true,"type":[[["number"]]],"meta":{"line":187,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"updatedTimestamp","description":"The timestamp of when this template was last synced to the guild","readonly":true,"type":[[["number"]]],"meta":{"line":196,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"guild","description":"The guild that this template belongs to","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":205,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"url","description":"The URL of this template","readonly":true,"type":[[["string"]]],"meta":{"line":214,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}},{"name":"GUILD_TEMPLATES_PATTERN","description":"Regular expression that globally matches guild template links","scope":"static","type":[[["RegExp"]]],"meta":{"line":234,"file":"GuildTemplate.js","path":"src/structures"}}],"methods":[{"name":"createGuild","description":"Creates a guild based on this template.\nThis is only available to bots in fewer than 10 guilds.","params":[{"name":"name","description":"The name of the guild","type":[[["string"]]]},{"name":"icon","description":"The icon for the guild","optional":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":115,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"edit","description":"Updates the metadata of this template.","params":[{"name":"options","description":"Options for editing the template","optional":true,"type":[[["EditGuildTemplateOptions"]]]}],"async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":159,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"delete","description":"Deletes this template.","async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":168,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"sync","description":"Syncs this template to the current state of the guild.","async":true,"returns":[[["Promise","<"],["GuildTemplate",">"]]],"meta":{"line":177,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the template's code instead of the template object.","examples":["// Logs: Template: FKvmczH2HyUf\nconsole.log(`Template: ${guildTemplate}!`);"],"returns":[[["string"]]],"meta":{"line":225,"file":"GuildTemplate.js","path":"src/structures"}}],"meta":{"line":12,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"Integration","description":"Represents a guild integration.","props":[{"name":"guild","description":"The guild this integration belongs to","type":[[["Guild"]]],"meta":{"line":32,"file":"Integration.js","path":"src/structures"}},{"name":"id","description":"The integration id","type":[[["Snowflake"]],[["string"]]],"meta":{"line":38,"file":"Integration.js","path":"src/structures"}},{"name":"name","description":"The integration name","type":[[["string"]]],"meta":{"line":44,"file":"Integration.js","path":"src/structures"}},{"name":"type","description":"The integration type","type":[[["IntegrationType"]]],"meta":{"line":50,"file":"Integration.js","path":"src/structures"}},{"name":"enabled","description":"Whether this integration is enabled","type":[[["boolean"]]],"meta":{"line":56,"file":"Integration.js","path":"src/structures"}},{"name":"syncing","description":"Whether this integration is syncing","nullable":true,"type":[[["boolean"]]],"meta":{"line":62,"file":"Integration.js","path":"src/structures"}},{"name":"role","description":"The role that this integration uses for subscribers","nullable":true,"type":[[["Role"]]],"meta":{"line":68,"file":"Integration.js","path":"src/structures"}},{"name":"enableEmoticons","description":"Whether emoticons should be synced for this integration (twitch only currently)","nullable":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"Integration.js","path":"src/structures"}},{"name":"user","description":"The user for this integration","nullable":true,"type":[[["User"]]],"meta":{"line":85,"file":"Integration.js","path":"src/structures"}},{"name":"account","description":"The account integration information","type":[[["IntegrationAccount"]]],"meta":{"line":94,"file":"Integration.js","path":"src/structures"}},{"name":"syncedAt","description":"The last time this integration was last synced","nullable":true,"type":[[["number"]]],"meta":{"line":100,"file":"Integration.js","path":"src/structures"}},{"name":"subscriberCount","description":"How many subscribers this integration has","nullable":true,"type":[[["number"]]],"meta":{"line":107,"file":"Integration.js","path":"src/structures"}},{"name":"revoked","description":"Whether this integration has been revoked","nullable":true,"type":[[["boolean"]]],"meta":{"line":117,"file":"Integration.js","path":"src/structures"}},{"name":"roles","description":"All roles that are managed by this integration","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":130,"file":"Integration.js","path":"src/structures"}},{"name":"expireBehavior","description":"The behavior of expiring subscribers","nullable":true,"type":[[["number"]]],"meta":{"line":141,"file":"Integration.js","path":"src/structures"}},{"name":"expireGracePeriod","description":"The grace period before expiring subscribers","nullable":true,"type":[[["number"]]],"meta":{"line":149,"file":"Integration.js","path":"src/structures"}},{"name":"application","description":"The application for this integration","nullable":true,"type":[[["IntegrationApplication"]]],"meta":{"line":160,"file":"Integration.js","path":"src/structures"}}],"methods":[{"name":"delete","description":"Deletes this integration.","params":[{"name":"reason","description":"Reason for deleting this integration","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Integration",">"]]],"meta":{"line":172,"file":"Integration.js","path":"src/structures"}}],"meta":{"line":24,"file":"Integration.js","path":"src/structures"}},{"name":"IntegrationApplication","description":"Represents an Integration's OAuth2 Application.","extends":[[["Application"]]],"props":[{"name":"bot","description":"The bot user for this application","nullable":true,"type":[[["User"]]],"meta":{"line":18,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"termsOfServiceURL","description":"The URL of the application's terms of service","nullable":true,"type":[[["string"]]],"meta":{"line":28,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"privacyPolicyURL","description":"The URL of the application's privacy policy","nullable":true,"type":[[["string"]]],"meta":{"line":38,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"rpcOrigins","description":"The Array of RPC origin URLs","type":[[["Array","<"],["string",">"]]],"meta":{"line":48,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"summary","description":"The application's summary","nullable":true,"deprecated":"This property is no longer being sent by the API.","type":[[["string"]]],"meta":{"line":59,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"hook","description":"Whether the application can be default hooked by the client","nullable":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"cover","description":"The hash of the application's cover image","nullable":true,"type":[[["string"]]],"meta":{"line":79,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"verifyKey","description":"The hex-encoded key for verification in interactions and the GameSDK's GetTicket","nullable":true,"type":[[["string"]]],"meta":{"line":89,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"id","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"name","description":"The name of the application","nullable":true,"type":[[["string"]]],"meta":{"line":34,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"description","description":"The application's description","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"icon","description":"The application's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":54,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdTimestamp","description":"The timestamp the application was created at","readonly":true,"type":[[["number"]]],"meta":{"line":65,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdAt","description":"The time the application was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":74,"file":"Application.js","path":"src/structures/interfaces"}}],"methods":[{"name":"iconURL","description":"A link to the application's icon.","inherits":"Application#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"coverURL","description":"A link to this application's cover image.","inherits":"Application#coverURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"fetchAssets","description":"Gets the application's rich presence assets.","inherits":"Application#fetchAssets","inherited":true,"deprecated":"This will be removed in the next major as it is unsupported functionality.","async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationAsset",">>"]]],"meta":{"line":111,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the application's name instead of the\nApplication object.","inherits":"Application#toString","inherited":true,"examples":["// Logs: Application name: My App\nconsole.log(`Application name: ${application}`);"],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":137,"file":"Application.js","path":"src/structures/interfaces"}}],"meta":{"line":9,"file":"IntegrationApplication.js","path":"src/structures"}},{"name":"Interaction","description":"Represents an interaction.","extends":[[["Base"]]],"props":[{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":12,"file":"Interaction.js","path":"src/structures"}},{"name":"InteractionCollector","description":"Collects interactions.\nWill automatically stop if the message ({@link Client#event:messageDelete messageDelete} or\n{@link Client#event:messageDeleteBulk messageDeleteBulk}),\nchannel ({@link Client#event:channelDelete channelDelete}), or\nguild ({@link Client#event:guildDelete guildDelete}) is deleted.\nInteraction collectors that do not specify `time` or `idle` may be prone to always running.\nEnsure your interaction collectors end via either of these options or manual cancellation.","extends":[[["Collector"]]],"construct":{"name":"InteractionCollector","params":[{"name":"client","description":"The client on which to collect interactions","type":[[["Client"]]]},{"name":"options","description":"The options to apply to this collector","optional":true,"default":"{}","type":[[["InteractionCollectorOptions"]]]}]},"props":[{"name":"messageId","description":"The message from which to collect interactions, if provided","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":42,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"channelId","description":"The channel from which to collect interactions, if provided","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":48,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"guildId","description":"The guild from which to collect interactions, if provided","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":57,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"interactionType","description":"The type of interaction to collect","nullable":true,"type":[[["InteractionType"]]],"meta":{"line":67,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"componentType","description":"The type of component to collect","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":76,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"users","description":"The users that have interacted with this collector","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":85,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"total","description":"The total number of interactions collected","type":[[["number"]]],"meta":{"line":91,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":192,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"collect","description":"Handles an incoming interaction for possible collection.","access":"private","params":[{"name":"interaction","description":"The interaction to possibly collect","type":[[["Interaction"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":142,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Handles an interaction for possible disposal.","params":[{"name":"interaction","description":"The interaction that could be disposed of","type":[[["Interaction"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":162,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"empty","description":"Empties this interaction collector.","meta":{"line":180,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleMessageDeletion","description":"Handles checking if the message has been deleted, and if so, stops the collector with the reason 'messageDelete'.","access":"private","params":[{"name":"message","description":"The message that was deleted","type":[[["Message"]]]}],"returns":[[["void"]]],"meta":{"line":205,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleChannelDeletion","description":"Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.","access":"private","params":[{"name":"channel","description":"The channel that was deleted","type":[[["GuildChannel"]]]}],"returns":[[["void"]]],"meta":{"line":217,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleThreadDeletion","description":"Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.","access":"private","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"returns":[[["void"]]],"meta":{"line":229,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"_handleGuildDeletion","description":"Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.","access":"private","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"returns":[[["void"]]],"meta":{"line":241,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","inherits":"Collector#handleCollect","inherited":true,"emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","inherits":"Collector#handleDispose","inherited":true,"emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","inherits":"Collector#stop","inherited":true,"emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","inherits":"Collector#resetTimer","inherited":true,"params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","inherits":"Collector#checkEnd","inherited":true,"returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}}],"events":[{"name":"collect","description":"Emitted whenever an interaction is collected.","params":[{"name":"interaction","description":"The interaction that was collected","type":[[["Interaction"]]]}],"meta":{"line":143,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Emitted whenever an interaction is disposed of.","params":[{"name":"interaction","description":"The interaction that was disposed of","type":[[["Interaction"]]]}],"meta":{"line":163,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":30,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"InteractionWebhook","description":"Represents a webhook for an Interaction","implements":[[["Webhook"]]],"construct":{"name":"InteractionWebhook","params":[{"name":"client","description":"The instantiating client","type":[[["Client"]]]},{"name":"id","description":"The application's id","type":[[["Snowflake"]]]},{"name":"token","description":"The interaction's token","type":[[["string"]]]}]},"props":[{"name":"client","description":"The client that instantiated the interaction webhook","readonly":true,"type":[[["Client"]]],"meta":{"line":16,"file":"InteractionWebhook.js","path":"src/structures"}},{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]],"meta":{"line":56,"file":"Webhook.js","path":"src/structures"}},{"name":"url","description":"The URL of this webhook","readonly":true,"type":[[["string"]]],"meta":{"line":404,"file":"Webhook.js","path":"src/structures"}}],"methods":[{"name":"send","description":"Sends a message with this webhook.","implements":["Webhook#send"],"params":[{"name":"options","description":"The content for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":34,"file":"InteractionWebhook.js","path":"src/structures"}},{"name":"fetchMessage","description":"Gets a message that was sent by this webhook.","implements":["Webhook#fetchMessage"],"params":[{"name":"message","description":"The id of the message to fetch","type":[[["Snowflake"]],[["original","'"]]]},{"name":"cacheOrOptions","description":"The options to provide to fetch the message.\nA **deprecated** boolean may be passed instead to specify whether to cache the message.","optional":true,"default":"{}","type":[[["WebhookFetchMessageOptions"]],[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":283,"file":"Webhook.js","path":"src/structures"}},{"name":"editMessage","description":"Edits a message that was sent by this webhook.","implements":["Webhook#editMessage"],"params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":318,"file":"Webhook.js","path":"src/structures"}},{"name":"deleteMessage","description":"Delete a message that was sent by this webhook.","implements":["Webhook#deleteMessage"],"params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"threadId","description":"The id of the thread this message belongs to","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":367,"file":"Webhook.js","path":"src/structures"}}],"meta":{"line":9,"file":"InteractionWebhook.js","path":"src/structures"}},{"name":"Application","description":"Represents an OAuth2 Application.","abstract":true,"props":[{"name":"id","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":27,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"name","description":"The name of the application","nullable":true,"type":[[["string"]]],"meta":{"line":34,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"description","description":"The application's description","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"icon","description":"The application's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":54,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdTimestamp","description":"The timestamp the application was created at","readonly":true,"type":[[["number"]]],"meta":{"line":65,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"createdAt","description":"The time the application was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":74,"file":"Application.js","path":"src/structures/interfaces"}}],"methods":[{"name":"iconURL","description":"A link to the application's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":83,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"coverURL","description":"A link to this application's cover image.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"fetchAssets","description":"Gets the application's rich presence assets.","deprecated":"This will be removed in the next major as it is unsupported functionality.","async":true,"returns":[[["Promise","<"],["Array","<"],["ApplicationAsset",">>"]]],"meta":{"line":111,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the application's name instead of the\nApplication object.","examples":["// Logs: Application name: My App\nconsole.log(`Application name: ${application}`);"],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":137,"file":"Application.js","path":"src/structures/interfaces"}}],"meta":{"line":16,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"Collector","description":"Abstract class for defining a new Collector.","abstract":true,"props":[{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"abstract":true,"type":[[["string"]]],"meta":{"line":275,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collect","description":"Handles incoming events from the `handleCollect` function. Returns null if the event should not\nbe collected, or returns an object describing the data that should be stored.","see":["Collector#handleCollect"],"abstract":true,"params":[{"name":"args","description":"Any args the event listener emits","variable":true,"type":[["*"]]}],"returns":{"types":[["*"],[["Promise",""],["*",">"]]],"description":"Data to insert into collection, if any","nullable":true},"meta":{"line":285,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"dispose","description":"Handles incoming events from the `handleDispose`. Returns null if the event should not\nbe disposed, or returns the key that should be removed.","see":["Collector#handleDispose"],"abstract":true,"params":[{"name":"args","description":"Any args the event listener emits","variable":true,"type":[["*"]]}],"returns":{"types":[["*"]],"description":"Key to remove from the collection, if any","nullable":true},"meta":{"line":295,"file":"Collector.js","path":"src/structures/interfaces"}}],"events":[{"name":"collect","description":"Emitted whenever an element is collected.","params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"meta":{"line":104,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"dispose","description":"Emitted whenever an element is disposed of.","params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"meta":{"line":132,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":30,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"Invite","description":"Represents an invitation to a guild channel.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild the invite is for including welcome screen data if present","nullable":true,"type":[[["Guild"]],[["InviteGuild"]]],"meta":{"line":29,"file":"Invite.js","path":"src/structures"}},{"name":"code","description":"The code for this invite","type":[[["string"]]],"meta":{"line":39,"file":"Invite.js","path":"src/structures"}},{"name":"presenceCount","description":"The approximate number of online members of the guild this invite is for\nThis is only available when the invite was fetched through {@link Client#fetchInvite}.","nullable":true,"type":[[["number"]]],"meta":{"line":48,"file":"Invite.js","path":"src/structures"}},{"name":"memberCount","description":"The approximate total number of members of the guild this invite is for\nThis is only available when the invite was fetched through {@link Client#fetchInvite}.","nullable":true,"type":[[["number"]]],"meta":{"line":59,"file":"Invite.js","path":"src/structures"}},{"name":"temporary","description":"Whether or not this invite only grants temporary membership\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["boolean"]]],"meta":{"line":71,"file":"Invite.js","path":"src/structures"}},{"name":"maxAge","description":"The maximum age of the invite, in seconds, 0 if never expires\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["number"]]],"meta":{"line":83,"file":"Invite.js","path":"src/structures"}},{"name":"uses","description":"How many times this invite has been used\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["number"]]],"meta":{"line":95,"file":"Invite.js","path":"src/structures"}},{"name":"maxUses","description":"The maximum uses of this invite\nThis is only available when the invite was fetched through {@link GuildInviteManager#fetch}\nor created through {@link GuildInviteManager#create}.","nullable":true,"type":[[["number"]]],"meta":{"line":107,"file":"Invite.js","path":"src/structures"}},{"name":"inviterId","description":"The user's id who created this invite","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":117,"file":"Invite.js","path":"src/structures"}},{"name":"inviter","description":"The user who created this invite","nullable":true,"type":[[["User"]]],"meta":{"line":128,"file":"Invite.js","path":"src/structures"}},{"name":"targetUser","description":"The user whose stream to display for this voice channel stream invite","nullable":true,"type":[[["User"]]],"meta":{"line":139,"file":"Invite.js","path":"src/structures"}},{"name":"targetApplication","description":"The embedded application to open for this voice channel embedded application invite","nullable":true,"type":[[["IntegrationApplication"]]],"meta":{"line":149,"file":"Invite.js","path":"src/structures"}},{"name":"targetType","description":"The target type","nullable":true,"type":[[["TargetType"]]],"meta":{"line":167,"file":"Invite.js","path":"src/structures"}},{"name":"channelId","description":"The channel's id this invite is for","type":[[["Snowflake"]]],"meta":{"line":177,"file":"Invite.js","path":"src/structures"}},{"name":"channel","description":"The channel this invite is for","type":[[["Channel"]]],"meta":{"line":186,"file":"Invite.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this invite was created at","nullable":true,"type":[[["number"]]],"meta":{"line":195,"file":"Invite.js","path":"src/structures"}},{"name":"stageInstance","description":"The stage instance data if there is a public {@link StageInstance} in the stage channel this invite is for","nullable":true,"type":[[["InviteStageInstance"]]],"meta":{"line":211,"file":"Invite.js","path":"src/structures"}},{"name":"guildScheduledEvent","description":"The guild scheduled event data if there is a {@link GuildScheduledEvent} in the channel this invite is for","nullable":true,"type":[[["GuildScheduledEvent"]]],"meta":{"line":221,"file":"Invite.js","path":"src/structures"}},{"name":"createdAt","description":"The time the invite was created at","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":232,"file":"Invite.js","path":"src/structures"}},{"name":"deletable","description":"Whether the invite is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":241,"file":"Invite.js","path":"src/structures"}},{"name":"expiresTimestamp","description":"The timestamp the invite will expire at","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":256,"file":"Invite.js","path":"src/structures"}},{"name":"expiresAt","description":"The time the invite will expire at","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":268,"file":"Invite.js","path":"src/structures"}},{"name":"url","description":"The URL to the invite","readonly":true,"type":[[["string"]]],"meta":{"line":278,"file":"Invite.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}},{"name":"INVITES_PATTERN","description":"Regular expression that globally matches Discord invite links","scope":"static","type":[[["RegExp"]]],"meta":{"line":351,"file":"Invite.js","path":"src/structures"}}],"methods":[{"name":"delete","description":"Deletes this invite.","params":[{"name":"reason","description":"Reason for deleting this invite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":287,"file":"Invite.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically concatenates the invite's URL instead of the object.","examples":["// Logs: Invite: https://discord.gg/A1b2C3\nconsole.log(`Invite: ${invite}`);"],"returns":[[["string"]]],"meta":{"line":299,"file":"Invite.js","path":"src/structures"}},{"name":"acceptInvite","description":"Join this Guild using this invite.","examples":["await client.fetchInvite('code').then(async invite => {\n await invite.acceptInvite();\n});"],"params":[{"name":"autoVerify","description":"Whether to automatically verify member","default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":329,"file":"Invite.js","path":"src/structures"}}],"meta":{"line":17,"file":"Invite.js","path":"src/structures"}},{"name":"InviteGuild","description":"Represents a guild received from an invite, includes welcome screen data if available.","extends":[[["AnonymousGuild"]]],"props":[{"name":"welcomeScreen","description":"The welcome screen for this invite guild","nullable":true,"type":[[["WelcomeScreen"]]],"meta":{"line":18,"file":"InviteGuild.js","path":"src/structures"}},{"name":"splash","description":"The hash of the guild invite splash image","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"banner","description":"The hash of the guild banner","nullable":true,"type":[[["string"]]],"meta":{"line":33,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"description","description":"The description of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":41,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"verificationLevel","description":"The verification level of the guild","type":[[["VerificationLevel"]]],"meta":{"line":49,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"vanityURLCode","description":"The vanity invite code of the guild, if any","nullable":true,"type":[[["string"]]],"meta":{"line":57,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"nsfwLevel","description":"The NSFW level of this guild","type":[[["NSFWLevel"]]],"meta":{"line":65,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"premiumSubscriptionCount","description":"The total number of boosts for this server","nullable":true,"type":[[["number"]]],"meta":{"line":73,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"bannerURL","description":"The URL to this guild's banner.","inherits":"AnonymousGuild#bannerURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":84,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"splashURL","description":"The URL to this guild's invite splash image.","inherits":"AnonymousGuild#splashURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"AnonymousGuild.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":10,"file":"InviteGuild.js","path":"src/structures"}},{"name":"InviteStageInstance","description":"Represents the data about a public {@link StageInstance} in an {@link Invite}.","extends":[[["Base"]]],"props":[{"name":"channelId","description":"The id of the stage channel this invite is for","type":[[["Snowflake"]]],"meta":{"line":18,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"guildId","description":"The stage channel's guild id","type":[[["Snowflake"]]],"meta":{"line":24,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"members","description":"The members speaking in the stage channel","type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":30,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"topic","description":"The topic of the stage instance","type":[[["string"]]],"meta":{"line":41,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"participantCount","description":"The number of users in the stage channel","type":[[["number"]]],"meta":{"line":49,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"speakerCount","description":"The number of users speaking in the stage channel","type":[[["number"]]],"meta":{"line":57,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"channel","description":"The stage channel this invite is for","readonly":true,"nullable":true,"type":[[["StageChannel"]]],"meta":{"line":72,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"guild","description":"The guild of the stage channel this invite is for","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":81,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":10,"file":"InviteStageInstance.js","path":"src/structures"}},{"name":"Message","description":"Represents a message on Discord.","extends":[[["Base"]]],"props":[{"name":"channelId","description":"The id of the channel the message was sent in","type":[[["Snowflake"]]],"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the message was sent in, if any","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":51,"file":"Message.js","path":"src/structures"}},{"name":"id","description":"The message's id","type":[[["Snowflake"]]],"meta":{"line":61,"file":"Message.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the message was sent at","type":[[["number"]]],"meta":{"line":67,"file":"Message.js","path":"src/structures"}},{"name":"type","description":"The type of the message","nullable":true,"type":[[["MessageType"]]],"meta":{"line":74,"file":"Message.js","path":"src/structures"}},{"name":"system","description":"Whether or not this message was sent by Discord, not actually a user (e.g. pin notifications)","nullable":true,"type":[[["boolean"]]],"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"name":"content","description":"The content of the message","nullable":true,"type":[[["string"]]],"meta":{"line":91,"file":"Message.js","path":"src/structures"}},{"name":"author","description":"The author of the message","nullable":true,"type":[[["User"]]],"meta":{"line":101,"file":"Message.js","path":"src/structures"}},{"name":"pinned","description":"Whether or not this message is pinned","nullable":true,"type":[[["boolean"]]],"meta":{"line":111,"file":"Message.js","path":"src/structures"}},{"name":"tts","description":"Whether or not the message was Text-To-Speech","nullable":true,"type":[[["boolean"]]],"meta":{"line":121,"file":"Message.js","path":"src/structures"}},{"name":"nonce","description":"A random number or string used for checking message delivery\nThis is only received after the message was sent successfully, and\nlost if re-fetched","nullable":true,"type":[[["string"]]],"meta":{"line":133,"file":"Message.js","path":"src/structures"}},{"name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","type":[[["Array","<"],["MessageEmbed",">"]]],"meta":{"line":143,"file":"Message.js","path":"src/structures"}},{"name":"components","description":"A list of MessageActionRows in the message","type":[[["Array","<"],["MessageActionRow",">"]]],"meta":{"line":153,"file":"Message.js","path":"src/structures"}},{"name":"attachments","description":"A collection of attachments in the message - e.g. Pictures - mapped by their ids","type":[[["Collection","<"],["Snowflake",", "],["MessageAttachment",">"]]],"meta":{"line":163,"file":"Message.js","path":"src/structures"}},{"name":"stickers","description":"A collection of stickers in the message","type":[[["Collection","<"],["Snowflake",", "],["Sticker",">"]]],"meta":{"line":178,"file":"Message.js","path":"src/structures"}},{"name":"editedTimestamp","description":"The timestamp the message was last edited at (if applicable)","nullable":true,"type":[[["number"]]],"meta":{"line":191,"file":"Message.js","path":"src/structures"}},{"name":"reactions","description":"A manager of the reactions belonging to this message","type":[[["ReactionManager"]]],"meta":{"line":201,"file":"Message.js","path":"src/structures"}},{"name":"mentions","description":"All valid mentions that the message contains","type":[[["MessageMentions"]]],"meta":{"line":216,"file":"Message.js","path":"src/structures"}},{"name":"webhookId","description":"The id of the webhook that sent the message, if applicable","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":240,"file":"Message.js","path":"src/structures"}},{"name":"groupActivityApplication","description":"Supplemental application information for group activities","nullable":true,"type":[[["ClientApplication"]]],"meta":{"line":250,"file":"Message.js","path":"src/structures"}},{"name":"applicationId","description":"The id of the application of the interaction that sent this message, if any","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":260,"file":"Message.js","path":"src/structures"}},{"name":"activity","description":"Group activity","nullable":true,"type":[[["MessageActivity"]]],"meta":{"line":270,"file":"Message.js","path":"src/structures"}},{"name":"flags","description":"Flags that are applied to the message","type":[[["Readonly","<"],["MessageFlags",">"]]],"meta":{"line":293,"file":"Message.js","path":"src/structures"}},{"name":"reference","description":"Message reference data","nullable":true,"type":[[["MessageReference"]]],"meta":{"line":318,"file":"Message.js","path":"src/structures"}},{"name":"interaction","description":"Partial data of the interaction that this message is a reply to","nullable":true,"type":[[["MessageInteraction"]]],"meta":{"line":348,"file":"Message.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":364,"file":"Message.js","path":"src/structures"}},{"name":"channel","description":"The channel that the message was sent in","readonly":true,"type":[[["TextChannel"]],[["DMChannel"]],[["NewsChannel"]],[["ThreadChannel"]]],"meta":{"line":394,"file":"Message.js","path":"src/structures"}},{"name":"partial","description":"Whether or not this message is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":403,"file":"Message.js","path":"src/structures"}},{"name":"member","description":"Represents the author of the message as a guild member.\nOnly available if the message comes from a guild where the author is still a member","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":413,"file":"Message.js","path":"src/structures"}},{"name":"createdAt","description":"The time the message was sent at","readonly":true,"type":[[["Date"]]],"meta":{"line":422,"file":"Message.js","path":"src/structures"}},{"name":"editedAt","description":"The time the message was last edited at (if applicable)","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":431,"file":"Message.js","path":"src/structures"}},{"name":"guild","description":"The guild the message was sent in (if in a guild channel)","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":440,"file":"Message.js","path":"src/structures"}},{"name":"hasThread","description":"Whether this message has a thread associated with it","readonly":true,"type":[[["boolean"]]],"meta":{"line":449,"file":"Message.js","path":"src/structures"}},{"name":"thread","description":"The thread started by this message\nThis property is not suitable for checking whether a message has a thread,\nuse {@link Message#hasThread} instead.","readonly":true,"nullable":true,"type":[[["ThreadChannel"]]],"meta":{"line":460,"file":"Message.js","path":"src/structures"}},{"name":"url","description":"The URL to jump to this message","readonly":true,"type":[[["string"]]],"meta":{"line":469,"file":"Message.js","path":"src/structures"}},{"name":"cleanContent","description":"The message contents with all mentions replaced by the equivalent text.\nIf mentions cannot be resolved to a name, the relevant mention in the message content will not be converted.","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":479,"file":"Message.js","path":"src/structures"}},{"name":"editable","description":"Whether the message is editable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":591,"file":"Message.js","path":"src/structures"}},{"name":"deletable","description":"Whether the message is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":608,"file":"Message.js","path":"src/structures"}},{"name":"pinnable","description":"Whether the message is pinnable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":637,"file":"Message.js","path":"src/structures"}},{"name":"crosspostable","description":"Whether the message is crosspostable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":666,"file":"Message.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"createReactionCollector","description":"Creates a reaction collector.","examples":["// Create a reaction collector\nconst filter = (reaction, user) => reaction.emoji.name === '👌' && user.id === 'someId';\nconst collector = message.createReactionCollector({ filter, time: 15_000 });\ncollector.on('collect', r => console.log(`Collected ${r.emoji.name}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["ReactionCollectorOptions"]]]}],"returns":[[["ReactionCollector"]]],"meta":{"line":495,"file":"Message.js","path":"src/structures"}},{"name":"awaitReactions","description":"Similar to createReactionCollector but in promise form.\nResolves with a collection of reactions that pass the specified filter.","examples":["// Create a reaction collector\nconst filter = (reaction, user) => reaction.emoji.name === '👌' && user.id === 'someId'\nmessage.awaitReactions({ filter, time: 15_000 })\n .then(collected => console.log(`Collected ${collected.size} reactions`))\n .catch(console.error);"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitReactionsOptions"]]]}],"returns":[[["Promise","<"],["Collection","<("],["string","|"],["Snowflake","), "],["MessageReaction",">>"]]],"meta":{"line":517,"file":"Message.js","path":"src/structures"}},{"name":"createMessageComponentCollector","description":"Creates a message component interaction collector.","examples":["// Create a message component interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = message.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":546,"file":"Message.js","path":"src/structures"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nmessage.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":574,"file":"Message.js","path":"src/structures"}},{"name":"fetchReference","description":"Fetches the Message this crosspost/reply/pin-add references, if available to the client","async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":652,"file":"Message.js","path":"src/structures"}},{"name":"edit","description":"Edits the content of the message.","examples":["// Update the content of a message\nmessage.edit('This is my new content!')\n .then(msg => console.log(`Updated the content of a message to ${msg.content}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageEditOptions"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":705,"file":"Message.js","path":"src/structures"}},{"name":"crosspost","description":"Publishes a message in an announcement channel to all channels following it.","examples":["// Crosspost a message\nif (message.channel.type === 'GUILD_NEWS') {\n message.crosspost()\n .then(() => console.log('Crossposted message'))\n .catch(console.error);\n}"],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":721,"file":"Message.js","path":"src/structures"}},{"name":"pin","description":"Pins this message to the channel's pinned messages.","examples":["// Pin a message\nmessage.pin()\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"reason","description":"Reason for pinning","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":736,"file":"Message.js","path":"src/structures"}},{"name":"unpin","description":"Unpins this message from the channel's pinned messages.","examples":["// Unpin a message\nmessage.unpin()\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"reason","description":"Reason for unpinning","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":752,"file":"Message.js","path":"src/structures"}},{"name":"react","description":"Adds a reaction to the message.","examples":["// React to a message with a unicode emoji\nmessage.react('🤔')\n .then(console.log)\n .catch(console.error);","// React to a message with a custom emoji\nmessage.react(message.guild.emojis.cache.get('123456789012345678'))\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"emoji","description":"The emoji to react with","type":[[["EmojiIdentifierResolvable"]]]}],"async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":773,"file":"Message.js","path":"src/structures"}},{"name":"delete","description":"Deletes the message.","examples":["// Delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author.username}`))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":797,"file":"Message.js","path":"src/structures"}},{"name":"reply","description":"Send an inline reply to this message.","examples":["// Reply to a message\nmessage.reply('This is a reply!')\n .then(() => console.log(`Replied to message \"${message.content}\"`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["ReplyMessageOptions"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":821,"file":"Message.js","path":"src/structures"}},{"name":"startThread","description":"Create a new public thread from this message","see":["ThreadManager#create"],"params":[{"name":"options","description":"Options for starting a thread on this message","optional":true,"type":[[["StartThreadOptions"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":865,"file":"Message.js","path":"src/structures"}},{"name":"fetch","description":"Fetch this message.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":881,"file":"Message.js","path":"src/structures"}},{"name":"fetchWebhook","description":"Fetches the webhook used to create this message.","returns":[[["Promise",""],["Webhook",">"]]],"meta":{"line":890,"file":"Message.js","path":"src/structures"}},{"name":"suppressEmbeds","description":"Suppresses or unsuppresses embeds on a message.","params":[{"name":"suppress","description":"If the embeds should be suppressed or not","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":903,"file":"Message.js","path":"src/structures"}},{"name":"removeAttachments","description":"Removes the attachments from this message.","returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":919,"file":"Message.js","path":"src/structures"}},{"name":"resolveComponent","description":"Resolves a component by a custom id.","params":[{"name":"customId","description":"The custom id to resolve against","type":[[["string"]]]}],"returns":{"types":[[["MessageActionRowComponent"]]],"nullable":true},"meta":{"line":928,"file":"Message.js","path":"src/structures"}},{"name":"equals","description":"Used mainly internally. Whether two messages are identical in properties. If you want to compare messages\nwithout checking all the properties, use `message.id === message2.id`, which is much more efficient. This\nmethod allows you to see if there are differences in content, embeds, attachments, nonce and tts properties.","params":[{"name":"message","description":"The message to compare it to","type":[[["Message"]]]},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":[[["APIMessage"]]]}],"returns":[[["boolean"]]],"meta":{"line":940,"file":"Message.js","path":"src/structures"}},{"name":"inGuild","description":"Whether this message is from a guild.","returns":[[["boolean"]]],"meta":{"line":970,"file":"Message.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically concatenates the message's content instead of the object.","examples":["// Logs: Message: This is a message!\nconsole.log(`Message: ${message}`);"],"returns":[[["string"]]],"meta":{"line":981,"file":"Message.js","path":"src/structures"}},{"name":"markUnread","description":"Marks the message as unread.","async":true,"returns":[[["boolean"]]],"meta":{"line":1001,"file":"Message.js","path":"src/structures"}},{"name":"clickButton","description":"Click specific button [Suggestion: Dux#2925]","params":[{"name":"buttonID","description":"Button ID","type":[[["string","<"],["ButtoncustomId",">"]]]}],"async":true,"returns":[[["Promise","<"],["pending",">"]]],"meta":{"line":1022,"file":"Message.js","path":"src/structures"}},{"name":"selectMenu","description":"Select specific menu or First Menu","params":[{"name":"menuID","description":"Select Menu specific id or auto select first Menu","type":[[["string","<"],["MessageSelectMenucustomID",">"]],[["Array","<"],["MenuOptions",">"]]]},{"name":"options","description":"Menu Options","type":[[["Array","<"],["MenuOptions",">"]]]}],"async":true,"meta":{"line":1048,"file":"Message.js","path":"src/structures"}},{"name":"contextMenu","description":"Send context Menu v2","params":[{"name":"botID","description":"Bot id","type":[[["DiscordBotID"]]]},{"name":"commandName","description":"Command name in Context Menu","type":[[["string","<"],["ApplicationCommandname",">"]]]}],"async":true,"returns":[[["Promise","<"],["pending",">"]]],"meta":{"line":1082,"file":"Message.js","path":"src/structures"}}],"meta":{"line":37,"file":"Message.js","path":"src/structures"}},{"name":"MessageActionRow","description":"Represents an action row containing message components.","extends":[[["BaseMessageComponent"]]],"construct":{"name":"MessageActionRow","params":[{"name":"data","description":"MessageActionRow to clone or raw data","optional":true,"default":"{}","type":[[["MessageActionRow"]],[["MessageActionRowOptions"]]]},{"name":"client","description":"The client constructing this MessageActionRow, if provided","optional":true,"default":null,"type":[[["Client"]]]}]},"props":[{"name":"components","description":"The components in this action row","type":[[["Array","<"],["MessageActionRowComponent",">"]]],"meta":{"line":51,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":52,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"addComponents","description":"Adds components to the action row.","params":[{"name":"components","description":"The components to add","variable":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"returns":[[["MessageActionRow"]]],"meta":{"line":59,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"setComponents","description":"Sets the components of the action row.","params":[{"name":"components","description":"The components to set","variable":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"returns":[[["MessageActionRow"]]],"meta":{"line":69,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"spliceComponents","description":"Removes, replaces, and inserts components in the action row.","params":[{"name":"index","description":"The index to start at","type":[[["number"]]]},{"name":"deleteCount","description":"The number of components to remove","type":[[["number"]]]},{"name":"components","description":"The replacing components","optional":true,"variable":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"returns":[[["MessageActionRow"]]],"meta":{"line":81,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the action row to a plain object.","returns":{"types":[[["APIMessageComponent"]]],"description":"The raw data of this action row"},"meta":{"line":90,"file":"MessageActionRow.js","path":"src/structures"}}],"meta":{"line":10,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageAttachment","description":"Represents an attachment in a message.","construct":{"name":"MessageAttachment","params":[{"name":"attachment","description":"The file","type":[[["BufferResolvable"]],[["Stream"]]]},{"name":"name","description":"The name of the file, if any","optional":true,"default":null,"type":[[["string"]]]},{"name":"data","description":"Extra data","optional":true,"type":[[["APIAttachment"]]]}]},"props":[{"name":"name","description":"The name of this attachment","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"id","description":"The attachment's id","type":[[["Snowflake"]]],"meta":{"line":79,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"size","description":"The size of this attachment in bytes","type":[[["number"]]],"meta":{"line":86,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"url","description":"The URL to this attachment","type":[[["string"]]],"meta":{"line":94,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"proxyURL","description":"The Proxy URL to this attachment","type":[[["string"]]],"meta":{"line":102,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"height","description":"The height of this attachment (if an image or video)","nullable":true,"type":[[["number"]]],"meta":{"line":110,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"width","description":"The width of this attachment (if an image or video)","nullable":true,"type":[[["number"]]],"meta":{"line":120,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"contentType","description":"The media type of this attachment","nullable":true,"type":[[["string"]]],"meta":{"line":130,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"description","description":"The description (alt text) of this attachment","nullable":true,"type":[[["string"]]],"meta":{"line":140,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether this attachment is ephemeral","type":[[["boolean"]]],"meta":{"line":149,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"spoiler","description":"Whether or not this attachment has been marked as a spoiler","readonly":true,"type":[[["boolean"]]],"meta":{"line":157,"file":"MessageAttachment.js","path":"src/structures"}}],"methods":[{"name":"setDescription","description":"Sets the description of this attachment.","params":[{"name":"description","description":"The description of the file","type":[[["string"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":29,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"setFile","description":"Sets the file of this attachment.","params":[{"name":"attachment","description":"The file","type":[[["BufferResolvable"]],[["Stream"]]]},{"name":"name","description":"The name of the file, if any","optional":true,"default":null,"type":[[["string"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":40,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"setName","description":"Sets the name of this attachment.","params":[{"name":"name","description":"The name of the file","type":[[["string"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":51,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"setSpoiler","description":"Sets whether this attachment is a spoiler","params":[{"name":"spoiler","description":"Whether the attachment should be marked as a spoiler","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["MessageAttachment"]]],"description":"This attachment"},"meta":{"line":61,"file":"MessageAttachment.js","path":"src/structures"}}],"meta":{"line":8,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"MessageButton","description":"Represents a button message component.","extends":[[["BaseMessageComponent"]]],"construct":{"name":"MessageButton","params":[{"name":"data","description":"MessageButton to clone or raw data","optional":true,"default":"{}","type":[[["MessageButton"]],[["MessageButtonOptions"]]]}]},"props":[{"name":"label","description":"The text to be displayed on this button","nullable":true,"type":[[["string"]]],"meta":{"line":38,"file":"MessageButton.js","path":"src/structures"}},{"name":"customId","description":"A unique string to be sent in the interaction when clicked","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"MessageButton.js","path":"src/structures"}},{"name":"style","description":"The style of this button","nullable":true,"type":[[["MessageButtonStyle"]]],"meta":{"line":50,"file":"MessageButton.js","path":"src/structures"}},{"name":"emoji","description":"Emoji for this button","nullable":true,"type":[[["RawEmoji"]]],"meta":{"line":56,"file":"MessageButton.js","path":"src/structures"}},{"name":"url","description":"The URL this button links to, if it is a Link style button","nullable":true,"type":[[["string"]]],"meta":{"line":62,"file":"MessageButton.js","path":"src/structures"}},{"name":"disabled","description":"Whether this button is currently disabled","type":[[["boolean"]]],"meta":{"line":68,"file":"MessageButton.js","path":"src/structures"}},{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":52,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"setCustomId","description":"Sets the custom id for this button","params":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","type":[[["string"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":76,"file":"MessageButton.js","path":"src/structures"}},{"name":"setDisabled","description":"Sets the interactive status of the button","params":[{"name":"disabled","description":"Whether this button should be disabled","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":86,"file":"MessageButton.js","path":"src/structures"}},{"name":"setEmoji","description":"Set the emoji of this button","params":[{"name":"emoji","description":"The emoji to be displayed on this button","type":[[["EmojiIdentifierResolvable"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":96,"file":"MessageButton.js","path":"src/structures"}},{"name":"setLabel","description":"Sets the label of this button","params":[{"name":"label","description":"The text to be displayed on this button","type":[[["string"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":106,"file":"MessageButton.js","path":"src/structures"}},{"name":"setStyle","description":"Sets the style of this button","params":[{"name":"style","description":"The style of this button","type":[[["MessageButtonStyleResolvable"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":116,"file":"MessageButton.js","path":"src/structures"}},{"name":"setURL","description":"Sets the URL of this button.\nMessageButton#style must be LINK when setting a URL","params":[{"name":"url","description":"The URL of this button","type":[[["string"]]]}],"returns":[[["MessageButton"]]],"meta":{"line":127,"file":"MessageButton.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the button to a plain object.","returns":{"types":[[["APIMessageButton"]]],"description":"The raw data of this button"},"meta":{"line":136,"file":"MessageButton.js","path":"src/structures"}},{"name":"click","description":"Click the button","params":[{"name":"message","description":"Discord Message","type":[[["Message"]]]}],"async":true,"returns":[[["boolean"]]],"meta":{"line":170,"file":"MessageButton.js","path":"src/structures"}},{"name":"resolveStyle","description":"Resolves the style of a button","scope":"static","access":"private","params":[{"name":"style","description":"The style to resolve","type":[[["MessageButtonStyleResolvable"]]]}],"returns":[[["MessageButtonStyle"]]],"meta":{"line":161,"file":"MessageButton.js","path":"src/structures"}}],"meta":{"line":13,"file":"MessageButton.js","path":"src/structures"}},{"name":"MessageCollector","description":"Collects messages on a channel.\nWill automatically stop if the channel ({@link Client#event:channelDelete channelDelete}),\nthread ({@link Client#event:threadDelete threadDelete}), or\nguild ({@link Client#event:guildDelete guildDelete}) is deleted.","extends":[[["Collector"]]],"construct":{"name":"MessageCollector","params":[{"name":"channel","description":"The channel","type":[[["TextBasedChannels"]]]},{"name":"options","description":"The options to be applied to this collector","type":[[["MessageCollectorOptions"]]]}]},"props":[{"name":"channel","description":"The channel","type":[[["TextBasedChannels"]]],"meta":{"line":32,"file":"MessageCollector.js","path":"src/structures"}},{"name":"received","description":"Total number of messages that were received in the channel during message collection","type":[[["number"]]],"meta":{"line":38,"file":"MessageCollector.js","path":"src/structures"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":103,"file":"MessageCollector.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"collect","description":"Handles a message for possible collection.","access":"private","params":[{"name":"message","description":"The message that could be collected","type":[[["Message"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":73,"file":"MessageCollector.js","path":"src/structures"}},{"name":"dispose","description":"Handles a message for possible disposal.","params":[{"name":"message","description":"The message that could be disposed of","type":[[["Message"]]]}],"returns":{"types":[[["Snowflake"]]],"nullable":true},"meta":{"line":89,"file":"MessageCollector.js","path":"src/structures"}},{"name":"_handleChannelDeletion","description":"Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.","access":"private","params":[{"name":"channel","description":"The channel that was deleted","type":[[["GuildChannel"]]]}],"returns":[[["void"]]],"meta":{"line":115,"file":"MessageCollector.js","path":"src/structures"}},{"name":"_handleThreadDeletion","description":"Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.","access":"private","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"returns":[[["void"]]],"meta":{"line":127,"file":"MessageCollector.js","path":"src/structures"}},{"name":"_handleGuildDeletion","description":"Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.","access":"private","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"returns":[[["void"]]],"meta":{"line":139,"file":"MessageCollector.js","path":"src/structures"}},{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","inherits":"Collector#handleCollect","inherited":true,"emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","inherits":"Collector#handleDispose","inherited":true,"emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","inherits":"Collector#stop","inherited":true,"emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","inherits":"Collector#resetTimer","inherited":true,"params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","inherits":"Collector#checkEnd","inherited":true,"returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}}],"events":[{"name":"collect","description":"Emitted whenever a message is collected.","params":[{"name":"message","description":"The message that was collected","type":[[["Message"]]]}],"meta":{"line":74,"file":"MessageCollector.js","path":"src/structures"}},{"name":"dispose","description":"Emitted whenever a message is disposed of.","params":[{"name":"message","description":"The message that was disposed of","type":[[["Message"]]]}],"meta":{"line":90,"file":"MessageCollector.js","path":"src/structures"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":19,"file":"MessageCollector.js","path":"src/structures"}},{"name":"MessageComponentInteraction","description":"Represents a message component interaction.","extends":[[["Interaction"]]],"implements":[[["InteractionResponses"]]],"props":[{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":17,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"message","description":"The message to which the component was attached","type":[[["Message"]],[["APIMessage"]]],"meta":{"line":27,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"customId","description":"The custom id of the component which was interacted with","type":[[["string"]]],"meta":{"line":33,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"componentType","description":"The type of component which was interacted with","type":[[["string"]]],"meta":{"line":39,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":45,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":57,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":63,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"component","description":"The component which was interacted with","readonly":true,"type":[[["MessageActionRowComponent"]],[["APIMessageActionRowComponent"]]],"meta":{"line":78,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","implements":["InteractionResponses#deferUpdate"],"examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":183,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","implements":["InteractionResponses#update"],"examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":209,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}},{"name":"resolveType","description":"Resolves the type of a MessageComponent","scope":"static","access":"private","params":[{"name":"type","description":"The type to resolve","type":[[["MessageComponentTypeResolvable"]]]}],"returns":[[["MessageComponentType"]]],"meta":{"line":90,"file":"MessageComponentInteraction.js","path":"src/structures"}}],"meta":{"line":13,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"MessageContextMenuInteraction","description":"Represents a message context menu interaction.","extends":[[["ContextMenuInteraction"]]],"props":[{"name":"targetMessage","description":"The message this interaction was sent from","readonly":true,"type":[[["Message"]],[["APIMessage"]]],"meta":{"line":15,"file":"MessageContextMenuInteraction.js","path":"src/structures"}},{"name":"options","description":"The target of the interaction, parsed into options","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetId","description":"The id of the target of the interaction","type":[[["Snowflake"]]],"meta":{"line":28,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetType","description":"The type of the target of the interaction; either USER or MESSAGE","type":[[["ApplicationCommandType"]]],"meta":{"line":34,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":20,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":30,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":36,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":42,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":48,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":54,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":60,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":67,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"resolveContextMenuOptions","description":"Resolves and transforms options received from the API for a context menu interaction.","access":"private","inherits":"ContextMenuInteraction#resolveContextMenuOptions","inherited":true,"params":[{"name":"data","description":"The interaction data","type":[[["APIApplicationCommandInteractionData"]]]}],"returns":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":43,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":89,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":162,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","inherits":"BaseCommandInteraction#showModal","inherited":true,"implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseCommandInteraction#awaitModalSubmit","inherited":true,"implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"MessageContextMenuInteraction.js","path":"src/structures"}},{"name":"MessageEmbed","description":"Represents an embed in a message (image/video preview, rich embed, etc.)","construct":{"name":"MessageEmbed","params":[{"name":"data","description":"MessageEmbed to clone or raw embed data","optional":true,"default":"{}","type":[[["MessageEmbed"]],[["MessageEmbedOptions"]],[["APIEmbed"]]]}]},"props":[{"name":"type","description":"The type of this embed, either:\n* `rich` - a generic embed rendered from embed attributes\n* `image` - an image embed\n* `video` - a video embed\n* `gifv` - an animated gif image embed rendered as a video embed\n* `article` - an article embed\n* `link` - a link embed","see":["{@link https://discord.com/developers/docs/resources/channel#embed-object-embed-types}"],"deprecated":true,"type":[[["string"]]],"meta":{"line":60,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"title","description":"The title of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":66,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"description","description":"The description of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":72,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"url","description":"The URL of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":78,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"color","description":"The color of this embed","nullable":true,"type":[[["number"]]],"meta":{"line":84,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"timestamp","description":"The timestamp of this embed","nullable":true,"type":[[["number"]]],"meta":{"line":90,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"fields","description":"The fields of this embed","type":[[["Array","<"],["EmbedField",">"]]],"meta":{"line":104,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"thumbnail","description":"The thumbnail of this embed (if there is one)","nullable":true,"type":[[["MessageEmbedThumbnail"]]],"meta":{"line":122,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"image","description":"The image of this embed, if there is one","nullable":true,"type":[[["MessageEmbedImage"]]],"meta":{"line":144,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"video","description":"The video of this embed (if there is one)","readonly":true,"nullable":true,"type":[[["MessageEmbedVideo"]]],"meta":{"line":167,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"author","description":"The author of this embed (if there is one)","nullable":true,"type":[[["MessageEmbedAuthor"]]],"meta":{"line":189,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"provider","description":"The provider of this embed (if there is one)","nullable":true,"type":[[["MessageEmbedProvider"]]],"meta":{"line":209,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"footer","description":"The footer of this embed","nullable":true,"type":[[["MessageEmbedFooter"]]],"meta":{"line":228,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"createdAt","description":"The date displayed on this embed","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":242,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"hexColor","description":"The hexadecimal version of the embed color, with a leading hash","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":251,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"length","description":"The accumulated length for the embed title, description, fields, footer text, and author name","readonly":true,"type":[[["number"]]],"meta":{"line":260,"file":"MessageEmbed.js","path":"src/structures"}}],"methods":[{"name":"equals","description":"Checks if this embed is equal to another one by comparing every single one of their properties.","params":[{"name":"embed","description":"The embed to compare with","type":[[["MessageEmbed"]],[["APIEmbed"]]]}],"returns":[[["boolean"]]],"meta":{"line":277,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"_fieldEquals","description":"Compares two given embed fields to see if they are equal","access":"private","params":[{"name":"field","description":"The first field to compare","type":[[["EmbedFieldData"]]]},{"name":"other","description":"The second field to compare","type":[[["EmbedFieldData"]]]}],"returns":[[["boolean"]]],"meta":{"line":307,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"addField","description":"Adds a field to the embed (max 25).","params":[{"name":"name","description":"The name of this field","type":[[["string"]]]},{"name":"value","description":"The value of this field","type":[[["string"]]]},{"name":"inline","description":"If this field will be displayed inline","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":318,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"addFields","description":"Adds fields to the embed (max 25).","params":[{"name":"fields","description":"The fields to add","variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":327,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"spliceFields","description":"Removes, replaces, and inserts fields in the embed (max 25).","params":[{"name":"index","description":"The index to start at","type":[[["number"]]]},{"name":"deleteCount","description":"The number of fields to remove","type":[[["number"]]]},{"name":"fields","description":"The replacing field objects","optional":true,"variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":339,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setFields","description":"Sets the embed's fields (max 25).","params":[{"name":"fields","description":"The fields to set","variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":349,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setAuthor","description":"Sets the author of this embed.","params":[{"name":"options","description":"The options to provide for the author.\nProvide `null` to remove the author data.","type":[[["string"]],[["EmbedAuthorData"]],[["null"]]]},{"name":"deprecatedIconURL","description":"The icon URL of this author.\nThis parameter is **deprecated**. Use the `options` parameter instead.","optional":true,"type":[[["string"]]]},{"name":"deprecatedURL","description":"The URL of this author.\nThis parameter is **deprecated**. Use the `options` parameter instead.","optional":true,"type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":372,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setColor","description":"Sets the color of this embed.","params":[{"name":"color","description":"The color of the embed","type":[[["ColorResolvable"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":401,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setDescription","description":"Sets the description of this embed.","params":[{"name":"description","description":"The description","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":411,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setFooter","description":"Sets the footer of this embed.","params":[{"name":"options","description":"The options to provide for the footer.\nProvide `null` to remove the footer data.","type":[[["string"]],[["EmbedFooterData"]],[["null"]]]},{"name":"deprecatedIconURL","description":"The icon URL of this footer.\nThis parameter is **deprecated**. Use the `options` parameter instead.","optional":true,"type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":431,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setImage","description":"Sets the image of this embed.","params":[{"name":"url","description":"The URL of the image","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":460,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setThumbnail","description":"Sets the thumbnail of this embed.","params":[{"name":"url","description":"The URL of the thumbnail","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":470,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setTimestamp","description":"Sets the timestamp of this embed.","params":[{"name":"timestamp","description":"The timestamp or date.\nIf `null` then the timestamp will be unset (i.e. when editing an existing {@link MessageEmbed})","optional":true,"default":"Date.now()","type":[[["Date"]],[["number"]],[["null"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":481,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setTitle","description":"Sets the title of this embed.","params":[{"name":"title","description":"The title","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":492,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"setURL","description":"Sets the URL of this embed.","params":[{"name":"url","description":"The URL","type":[[["string"]]]}],"returns":[[["MessageEmbed"]]],"meta":{"line":502,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the embed to a plain object.","returns":{"types":[[["APIEmbed"]]],"description":"The raw data of this embed"},"meta":{"line":511,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"normalizeField","description":"Normalizes field input and verifies strings.","scope":"static","params":[{"name":"name","description":"The name of the field","type":[[["string"]]]},{"name":"value","description":"The value of the field","type":[[["string"]]]},{"name":"inline","description":"Set the field to display inline","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["EmbedField"]]],"meta":{"line":541,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"normalizeFields","description":"Normalizes field input and resolves strings.","scope":"static","params":[{"name":"fields","description":"Fields to normalize","variable":true,"type":[[["EmbedFieldData"]],[["Array","<"],["EmbedFieldData",">"]]]}],"returns":[[["Array","<"],["EmbedField",">"]]],"meta":{"line":561,"file":"MessageEmbed.js","path":"src/structures"}}],"meta":{"line":15,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageMentions","description":"Keeps track of mentions in a {@link Message}.","props":[{"name":"everyone","description":"Whether `@everyone` or `@here` were mentioned","type":[[["boolean"]]],"meta":{"line":38,"file":"MessageMentions.js","path":"src/structures"}},{"name":"users","description":"Any users that were mentioned\nOrder as received from the API, not as they appear in the message content","type":[[["Collection","<"],["Snowflake",", "],["User",">"]]],"meta":{"line":47,"file":"MessageMentions.js","path":"src/structures"}},{"name":"roles","description":"Any roles that were mentioned\nOrder as received from the API, not as they appear in the message content","type":[[["Collection","<"],["Snowflake",", "],["Role",">"]]],"meta":{"line":68,"file":"MessageMentions.js","path":"src/structures"}},{"name":"_members","description":"Cached members for {@link MessageMentions#members}","access":"private","nullable":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":87,"file":"MessageMentions.js","path":"src/structures"}},{"name":"_channels","description":"Cached channels for {@link MessageMentions#channels}","access":"private","nullable":true,"type":[[["Collection","<"],["Snowflake",", "],["Channel",">"]]],"meta":{"line":94,"file":"MessageMentions.js","path":"src/structures"}},{"name":"crosspostedChannels","description":"A collection of crossposted channels\nOrder as received from the API, not as they appear in the message content","type":[[["Collection","<"],["Snowflake",", "],["CrosspostedChannel",">"]]],"meta":{"line":112,"file":"MessageMentions.js","path":"src/structures"}},{"name":"repliedUser","description":"The author of the message that this message is a reply to","nullable":true,"type":[[["User"]]],"meta":{"line":134,"file":"MessageMentions.js","path":"src/structures"}},{"name":"members","description":"Any members that were mentioned (only in {@link Guild}s)\nOrder as received from the API, not as they appear in the message content","readonly":true,"nullable":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":143,"file":"MessageMentions.js","path":"src/structures"}},{"name":"channels","description":"Any channels that were mentioned\nOrder as they appear first in the message content","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Channel",">"]]],"meta":{"line":160,"file":"MessageMentions.js","path":"src/structures"}},{"name":"EVERYONE_PATTERN","description":"Regular expression that globally matches `@everyone` and `@here`","scope":"static","type":[[["RegExp"]]],"meta":{"line":222,"file":"MessageMentions.js","path":"src/structures"}},{"name":"USERS_PATTERN","description":"Regular expression that globally matches user mentions like `<@81440962496172032>`","scope":"static","type":[[["RegExp"]]],"meta":{"line":228,"file":"MessageMentions.js","path":"src/structures"}},{"name":"ROLES_PATTERN","description":"Regular expression that globally matches role mentions like `<@&297577916114403338>`","scope":"static","type":[[["RegExp"]]],"meta":{"line":234,"file":"MessageMentions.js","path":"src/structures"}},{"name":"CHANNELS_PATTERN","description":"Regular expression that globally matches channel mentions like `<#222079895583457280>`","scope":"static","type":[[["RegExp"]]],"meta":{"line":240,"file":"MessageMentions.js","path":"src/structures"}}],"methods":[{"name":"has","description":"Checks if a user, guild member, thread member, role, or channel is mentioned.\nTakes into account user mentions, role mentions, channel mentions,\nreplied user mention, and `@everyone`/`@here` mentions.","params":[{"name":"data","description":"The User/Role/Channel to check for","type":[[["UserResolvable"]],[["RoleResolvable"]],[["ChannelResolvable"]]]},{"name":"options","description":"The options for the check","optional":true,"type":[[["MessageMentionsHasOptions"]]]}],"returns":[[["boolean"]]],"meta":{"line":188,"file":"MessageMentions.js","path":"src/structures"}}],"meta":{"line":10,"file":"MessageMentions.js","path":"src/structures"}},{"name":"MessagePayload","description":"Represents a message to be sent to the API.","construct":{"name":"MessagePayload","params":[{"name":"target","description":"The target for this message to be sent to","type":[[["MessageTarget"]]]},{"name":"options","description":"Options passed in from send","type":[[["MessageOptions"]],[["WebhookMessageOptions"]]]}]},"props":[{"name":"target","description":"The target for this message to be sent to","type":[[["MessageTarget"]]],"meta":{"line":25,"file":"MessagePayload.js","path":"src/structures"}},{"name":"options","description":"Options passed in from send","type":[[["MessageOptions"]],[["WebhookMessageOptions"]]],"meta":{"line":31,"file":"MessagePayload.js","path":"src/structures"}},{"name":"data","description":"Data sendable to the API","nullable":true,"type":[[["APIMessage"]]],"meta":{"line":37,"file":"MessagePayload.js","path":"src/structures"}},{"name":"files","description":"Files sendable to the API","nullable":true,"type":[[["Array","<"],["MessageFile",">"]]],"meta":{"line":50,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isWebhook","description":"Whether or not the target is a {@link Webhook} or a {@link WebhookClient}","readonly":true,"type":[[["boolean"]]],"meta":{"line":58,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isUser","description":"Whether or not the target is a {@link User}","readonly":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isMessage","description":"Whether or not the target is a {@link Message}","readonly":true,"type":[[["boolean"]]],"meta":{"line":80,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isMessageManager","description":"Whether or not the target is a {@link MessageManager}","readonly":true,"type":[[["boolean"]]],"meta":{"line":90,"file":"MessagePayload.js","path":"src/structures"}},{"name":"isInteraction","description":"Whether or not the target is an {@link Interaction} or an {@link InteractionWebhook}","readonly":true,"type":[[["boolean"]]],"meta":{"line":100,"file":"MessagePayload.js","path":"src/structures"}}],"methods":[{"name":"makeContent","description":"Makes the content of this message.","returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":110,"file":"MessagePayload.js","path":"src/structures"}},{"name":"resolveData","description":"Resolves data.","async":true,"returns":[[["MessagePayload"]]],"meta":{"line":125,"file":"MessagePayload.js","path":"src/structures"}},{"name":"resolveFiles","description":"Resolves files.","async":true,"returns":[[["Promise","<"],["MessagePayload",">"]]],"meta":{"line":251,"file":"MessagePayload.js","path":"src/structures"}},{"name":"resolveFile","description":"Resolves a single file into an object sendable to the API.","scope":"static","params":[{"name":"fileLike","description":"Something that could be resolved to a file","type":[[["BufferResolvable"]],[["Stream"]],[["FileOptions"]],[["MessageAttachment"]]]}],"async":true,"returns":[[["Promise","<"],["MessageFile",">"]]],"meta":{"line":263,"file":"MessagePayload.js","path":"src/structures"}},{"name":"create","description":"Creates a {@link MessagePayload} from user-level arguments.","scope":"static","params":[{"name":"target","description":"Target to send to","type":[[["MessageTarget"]]]},{"name":"options","description":"Options or content to use","type":[[["string"]],[["MessageOptions"]],[["WebhookMessageOptions"]]]},{"name":"extra","description":"Extra options to add onto specified options","optional":true,"default":"{}","type":[[["MessageOptions"]],[["WebhookMessageOptions"]]]}],"returns":[[["MessagePayload"]]],"meta":{"line":300,"file":"MessagePayload.js","path":"src/structures"}}],"meta":{"line":15,"file":"MessagePayload.js","path":"src/structures"}},{"name":"MessageReaction","description":"Represents a reaction to a message.","props":[{"name":"client","description":"The client that instantiated this message reaction","readonly":true,"type":[[["Client"]]],"meta":{"line":13,"file":"MessageReaction.js","path":"src/structures"}},{"name":"message","description":"The message that this reaction refers to","type":[[["Message"]]],"meta":{"line":25,"file":"MessageReaction.js","path":"src/structures"}},{"name":"me","description":"Whether the client has given this reaction","type":[[["boolean"]]],"meta":{"line":31,"file":"MessageReaction.js","path":"src/structures"}},{"name":"users","description":"A manager of the users that have given this reaction","type":[[["ReactionUserManager"]]],"meta":{"line":37,"file":"MessageReaction.js","path":"src/structures"}},{"name":"count","description":"The number of people that have given the same reaction","nullable":true,"type":[[["number"]]],"meta":{"line":50,"file":"MessageReaction.js","path":"src/structures"}},{"name":"emoji","description":"The emoji of this reaction. Either a {@link GuildEmoji} object for known custom emojis, or a {@link ReactionEmoji}\nobject which has fewer properties. Whatever the prototype of the emoji, it will still have\n`name`, `id`, `identifier` and `toString()`","readonly":true,"type":[[["GuildEmoji"]],[["ReactionEmoji"]]],"meta":{"line":74,"file":"MessageReaction.js","path":"src/structures"}},{"name":"partial","description":"Whether or not this reaction is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":93,"file":"MessageReaction.js","path":"src/structures"}}],"methods":[{"name":"remove","description":"Removes all users from this reaction.","async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":58,"file":"MessageReaction.js","path":"src/structures"}},{"name":"fetch","description":"Fetch this reaction.","async":true,"returns":[[["Promise","<"],["MessageReaction",">"]]],"meta":{"line":101,"file":"MessageReaction.js","path":"src/structures"}}],"meta":{"line":11,"file":"MessageReaction.js","path":"src/structures"}},{"name":"MessageSelectMenu","description":"Represents a select menu message component","extends":[[["BaseMessageComponent"]]],"construct":{"name":"MessageSelectMenu","params":[{"name":"data","description":"MessageSelectMenu to clone or raw data","optional":true,"default":"{}","type":[[["MessageSelectMenu"]],[["MessageSelectMenuOptions"]]]}]},"props":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","nullable":true,"type":[[["string"]]],"meta":{"line":55,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"placeholder","description":"Custom placeholder text to display when nothing is selected","nullable":true,"type":[[["string"]]],"meta":{"line":61,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"minValues","description":"The minimum number of selections required","nullable":true,"type":[[["number"]]],"meta":{"line":67,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"maxValues","description":"The maximum number of selections allowed","nullable":true,"type":[[["number"]]],"meta":{"line":73,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"options","description":"Options for the select menu","type":[[["Array","<"],["MessageSelectOption",">"]]],"meta":{"line":79,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"disabled","description":"Whether this select menu is currently disabled","type":[[["boolean"]]],"meta":{"line":85,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":52,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"setCustomId","description":"Sets the custom id of this select menu","params":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","type":[[["string"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":93,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setDisabled","description":"Sets the interactive status of the select menu","params":[{"name":"disabled","description":"Whether this select menu should be disabled","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":103,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setMaxValues","description":"Sets the maximum number of selections allowed for this select menu","params":[{"name":"maxValues","description":"Number of selections to be allowed","type":[[["number"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":113,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setMinValues","description":"Sets the minimum number of selections required for this select menu\nThis will default the maxValues to the number of options, unless manually set","params":[{"name":"minValues","description":"Number of selections to be required","type":[[["number"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":124,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setPlaceholder","description":"Sets the placeholder of this select menu","params":[{"name":"placeholder","description":"Custom placeholder text to display when nothing is selected","type":[[["string"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":134,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"addOptions","description":"Adds options to the select menu.","params":[{"name":"options","description":"The options to add","variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":144,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"setOptions","description":"Sets the options of the select menu.","params":[{"name":"options","description":"The options to set","variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":154,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"spliceOptions","description":"Removes, replaces, and inserts options in the select menu.","params":[{"name":"index","description":"The index to start at","type":[[["number"]]]},{"name":"deleteCount","description":"The number of options to remove","type":[[["number"]]]},{"name":"options","description":"The replacing option objects","optional":true,"variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["MessageSelectMenu"]]],"meta":{"line":166,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the select menu into a plain object","returns":{"types":[[["APIMessageSelectMenu"]]],"description":"The raw data of this select menu"},"meta":{"line":175,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"select","description":"Mesage select menu","params":[{"name":"message","description":"The message this select menu is for","type":[[["Message"]]]},{"name":"values","description":"The values of the select menu","type":[[["Array","<"],["string",">"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":218,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"normalizeOption","description":"Normalizes option input and resolves strings and emojis.","scope":"static","params":[{"name":"option","description":"The select menu option to normalize","type":[[["MessageSelectOptionData"]]]}],"returns":[[["MessageSelectOption"]]],"meta":{"line":192,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"normalizeOptions","description":"Normalizes option input and resolves strings and emojis.","scope":"static","params":[{"name":"options","description":"The select menu options to normalize","variable":true,"type":[[["MessageSelectOptionData"]],[["Array","<"],["MessageSelectOptionData",">"]]]}],"returns":[[["Array","<"],["MessageSelectOption",">"]]],"meta":{"line":208,"file":"MessageSelectMenu.js","path":"src/structures"}}],"meta":{"line":12,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"Modal","description":"Represents a modal (form) to be shown in response to an interaction","construct":{"name":"Modal","params":[{"name":"data","description":"Modal to clone or raw data","type":[[["Modal"]],[["ModalOptions"]]]},{"name":"client","description":"The client constructing this Modal, if provided","default":null,"type":[[["Client"]]]}]},"props":[{"name":"components","description":"A list of MessageActionRows in the modal","type":[[["Array","<"],["MessageActionRow",">"]]],"meta":{"line":27,"file":"Modal.js","path":"src/structures"}},{"name":"customId","description":"A unique string to be sent in the interaction when submitted","nullable":true,"type":[[["string"]]],"meta":{"line":33,"file":"Modal.js","path":"src/structures"}},{"name":"title","description":"The title to be displayed on this modal","nullable":true,"type":[[["string"]]],"meta":{"line":39,"file":"Modal.js","path":"src/structures"}}],"methods":[{"name":"addComponents","description":"Adds components to the modal.","params":[{"name":"components","description":"The components to add","variable":true,"type":[[["Array","<"],["MessageActionRowResolvable",">"]]]}],"returns":[[["Modal"]]],"meta":{"line":47,"file":"Modal.js","path":"src/structures"}},{"name":"setComponents","description":"Sets the components of the modal.","params":[{"name":"components","description":"The components to set","variable":true,"type":[[["Array","<"],["MessageActionRowResolvable",">"]]]}],"returns":[[["Modal"]]],"meta":{"line":57,"file":"Modal.js","path":"src/structures"}},{"name":"setCustomId","description":"Sets the custom id for this modal","params":[{"name":"customId","description":"A unique string to be sent in the interaction when submitted","type":[[["string"]]]}],"returns":[[["Modal"]]],"meta":{"line":67,"file":"Modal.js","path":"src/structures"}},{"name":"spliceComponents","description":"Removes, replaces, and inserts components in the modal.","params":[{"name":"index","description":"The index to start at","type":[[["number"]]]},{"name":"deleteCount","description":"The number of components to remove","type":[[["number"]]]},{"name":"components","description":"The replacing components","optional":true,"variable":true,"type":[[["Array","<"],["MessageActionRowResolvable",">"]]]}],"returns":[[["Modal"]]],"meta":{"line":79,"file":"Modal.js","path":"src/structures"}},{"name":"setTitle","description":"Sets the title of this modal","params":[{"name":"title","description":"The title to be displayed on this modal","type":[[["string"]]]}],"returns":[[["Modal"]]],"meta":{"line":89,"file":"Modal.js","path":"src/structures"}}],"meta":{"line":9,"file":"Modal.js","path":"src/structures"}},{"name":"ModalSubmitFieldsResolver","description":"A resolver for modal submit interaction text inputs.","props":[{"name":"components","description":"The components within the modal","type":[[["Array","<"],["PartialModalActionRow",">"]]],"meta":{"line":15,"file":"ModalSubmitFieldsResolver.js","path":"src/structures"}},{"name":"_fields","description":"The extracted fields from the modal","access":"private","type":[[["Array","<"],["PartialInputTextData",">"]]],"meta":{"line":23,"file":"ModalSubmitFieldsResolver.js","path":"src/structures"}}],"methods":[{"name":"getField","description":"Gets a field given a custom id from a component","params":[{"name":"customId","description":"The custom id of the component","type":[[["string"]]]}],"returns":{"types":[[["PartialInputTextData"]]],"nullable":true},"meta":{"line":32,"file":"ModalSubmitFieldsResolver.js","path":"src/structures"}},{"name":"getTextInputValue","description":"Gets the value of a text input component given a custom id","params":[{"name":"customId","description":"The custom id of the text input component","type":[[["string"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":43,"file":"ModalSubmitFieldsResolver.js","path":"src/structures"}}],"meta":{"line":9,"file":"ModalSubmitFieldsResolver.js","path":"src/structures"}},{"name":"ModalSubmitInteraction","description":"Represents a modal submit interaction.","extends":[[["Interaction"]]],"implements":[[["InteractionResponses"]]],"props":[{"name":"customId","description":"The custom id of the modal.","type":[[["string"]]],"meta":{"line":22,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"components","description":"The inputs within the modal","type":[[["Array","<"],["PartialModalActionRow",">"]]],"meta":{"line":41,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"message","description":"The message associated with this interaction","type":[[["Message"]],[["APIMessage"]],[["null"]]],"meta":{"line":51,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"fields","description":"The fields within the modal","type":[[["ModalSubmitFieldsResolver"]]],"meta":{"line":57,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":63,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":75,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":81,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","implements":["InteractionResponses#deferUpdate"],"examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":183,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","implements":["InteractionResponses#update"],"examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":209,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}},{"name":"transformComponent","description":"Transforms component data to discord.js-compatible data","scope":"static","params":[{"name":"rawComponent","description":"The data to transform","type":[["*"]]}],"returns":[[["Array","<"],["PartialTextInputData",">"]]],"meta":{"line":89,"file":"ModalSubmitInteraction.js","path":"src/structures"}}],"meta":{"line":14,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"NewsChannel","description":"Represents a guild news channel on Discord.","extends":[[["BaseGuildTextChannel"]]],"props":[{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":21,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"threads","description":"A manager of the threads belonging to this channel","type":[[["ThreadManager"]]],"meta":{"line":27,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":33,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"topic","description":"The topic of the text channel","nullable":true,"type":[[["string"]]],"meta":{"line":46,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in the channel, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":58,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":66,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for newly created threads in this channel","nullable":true,"type":[[["number"]]],"meta":{"line":74,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":259,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"addFollower","description":"Adds the target to this channel's followers.","examples":["if (channel.type === 'GUILD_NEWS') {\n channel.addFollower('222197033908436994', 'Important announcements')\n .then(() => console.log('Added follower'))\n .catch(console.error);\n}"],"params":[{"name":"channel","description":"The channel where the webhook should be created","type":[[["TextChannelResolvable"]]]},{"name":"reason","description":"Reason for creating the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["NewsChannel",">"]]],"meta":{"line":23,"file":"NewsChannel.js","path":"src/structures"}},{"name":"setDefaultAutoArchiveDuration","description":"Sets the default auto archive duration for all newly created threads in this channel.","inherits":"BaseGuildTextChannel#setDefaultAutoArchiveDuration","inherited":true,"params":[{"name":"defaultAutoArchiveDuration","description":"The new default auto archive duration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the channel's default auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":88,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setNSFW","description":"Sets whether this channel is flagged as NSFW.","inherits":"BaseGuildTextChannel#setNSFW","inherited":true,"params":[{"name":"nsfw","description":"Whether the channel should be considered NSFW","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the channel's NSFW flag","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":98,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setType","description":"Sets the type of this channel (only conversion between text and news is supported)","inherits":"BaseGuildTextChannel#setType","inherited":true,"params":[{"name":"type","description":"The new channel type","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the channel's type","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":108,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the channel.","inherits":"BaseGuildTextChannel#fetchWebhooks","inherited":true,"examples":["// Fetch webhooks\nchannel.fetchWebhooks()\n .then(hooks => console.log(`This channel has ${hooks.size} hooks`))\n .catch(console.error);"],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":121,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createWebhook","description":"Creates a webhook for the channel.","inherits":"BaseGuildTextChannel#createWebhook","inherited":true,"examples":["// Create a webhook for the current channel\nchannel.createWebhook('Snek', {\n avatar: 'https://i.imgur.com/mI8XcpG.jpg',\n reason: 'Needed a cool new Webhook'\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"name","description":"The name of the webhook","type":[[["string"]]]},{"name":"options","description":"Options for creating the webhook","optional":true,"type":[[["ChannelWebhookCreateOptions"]]]}],"returns":{"types":[[["Promise","<"],["Webhook",">"]]],"description":"Returns the created Webhook"},"meta":{"line":146,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","inherits":"BaseGuildTextChannel#setTopic","inherited":true,"examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":161,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildTextChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":199,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildTextChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":209,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","inherits":"BaseGuildTextChannel#send","inherited":true,"implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","inherits":"BaseGuildTextChannel#sendTyping","inherited":true,"implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":189,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","inherits":"BaseGuildTextChannel#createMessageCollector","inherited":true,"implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":204,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","inherits":"BaseGuildTextChannel#awaitMessages","inherited":true,"implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":227,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a component interaction collector.","inherits":"BaseGuildTextChannel#createMessageComponentCollector","inherited":true,"implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":251,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseGuildTextChannel#awaitMessageComponent","inherited":true,"implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":271,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","inherits":"BaseGuildTextChannel#bulkDelete","inherited":true,"implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":295,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":10,"file":"NewsChannel.js","path":"src/structures"}},{"name":"OAuth2Guild","description":"A partial guild received when using {@link GuildManager#fetch} to fetch multiple guilds.","extends":[[["BaseGuild"]]],"props":[{"name":"owner","description":"Whether the client user is the owner of the guild","type":[[["boolean"]]],"meta":{"line":18,"file":"OAuth2Guild.js","path":"src/structures"}},{"name":"permissions","description":"The permissions that the client user has in this guild","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":24,"file":"OAuth2Guild.js","path":"src/structures"}},{"name":"id","description":"The guild's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"BaseGuild.js","path":"src/structures"}},{"name":"name","description":"The name of this guild","type":[[["string"]]],"meta":{"line":25,"file":"BaseGuild.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of this guild","nullable":true,"type":[[["string"]]],"meta":{"line":31,"file":"BaseGuild.js","path":"src/structures"}},{"name":"features","description":"An array of features available to this guild","type":[[["Array","<"],["Features",">"]]],"meta":{"line":37,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this guild was created at","readonly":true,"type":[[["number"]]],"meta":{"line":45,"file":"BaseGuild.js","path":"src/structures"}},{"name":"createdAt","description":"The time this guild was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":54,"file":"BaseGuild.js","path":"src/structures"}},{"name":"nameAcronym","description":"The acronym that shows up in place of a guild icon","readonly":true,"type":[[["string"]]],"meta":{"line":63,"file":"BaseGuild.js","path":"src/structures"}},{"name":"partnered","description":"Whether this guild is partnered","readonly":true,"type":[[["boolean"]]],"meta":{"line":75,"file":"BaseGuild.js","path":"src/structures"}},{"name":"verified","description":"Whether this guild is verified","readonly":true,"type":[[["boolean"]]],"meta":{"line":84,"file":"BaseGuild.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"iconURL","description":"The URL to this guild's icon.","inherits":"BaseGuild#iconURL","inherited":true,"params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":93,"file":"BaseGuild.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this guild.","inherits":"BaseGuild#fetch","inherited":true,"async":true,"returns":[[["Promise","<"],["Guild",">"]]],"meta":{"line":102,"file":"BaseGuild.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the guild's name instead of the Guild object.","inherits":"BaseGuild#toString","inherited":true,"returns":[[["string"]]],"meta":{"line":111,"file":"BaseGuild.js","path":"src/structures"}}],"meta":{"line":10,"file":"OAuth2Guild.js","path":"src/structures"}},{"name":"PartialGroupDMChannel","description":"Represents a Partial Group DM Channel on Discord.","extends":[[["Channel"]]],"props":[{"name":"name","description":"The name of this Group DM Channel","nullable":true,"type":[[["string"]]],"meta":{"line":23,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"icon","description":"The hash of the channel icon","nullable":true,"type":[[["string"]]],"meta":{"line":29,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"recipients","description":"The recipients of this Group DM Channel.","type":[[["Array","<"],["PartialRecipient",">"]]],"meta":{"line":41,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"messages","description":"Messages data","type":[[["Collection"]]],"meta":{"line":47,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"Last Message ID","nullable":true,"type":[[["snowflake","<"],["Messageid",">"]]],"meta":{"line":53,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"Last Pin Timestamp","type":[[["UnixTimestamp"]]],"meta":{"line":59,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"owner","description":"The owner of this Group DM Channel","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":66,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"invites","description":"Invites fetch","type":[[["Collection","<"],["string",", "],["Invite",">"]]],"meta":{"line":73,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"_setup","access":"private","params":[{"name":"client","description":"Discord Bot Client","type":[[["DiscordClient"]]]},{"name":"data","description":"Channel Data","type":[[["Object"]]]}],"meta":{"line":84,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"edit","access":"private","params":[{"name":"data","description":"name, icon","type":[[["Object"]]]}],"async":true,"returns":{"types":[[["any"]]],"description":"any data .-."},"meta":{"line":107,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"iconURL","description":"The URL to this channel's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":125,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"call","description":"Call this DMChannel. [TEST only]","returns":[[["Promise","<"],["void",">"]]],"meta":{"line":210,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"Channel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":131,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":16,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"PermissionOverwrites","description":"Represents a permission overwrite for a role or member in a guild channel.","extends":[[["Base"]]],"props":[{"name":"channel","description":"The GuildChannel this overwrite is for","readonly":true,"type":[[["GuildChannel"]]],"meta":{"line":17,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"id","description":"The overwrite's id, either a {@link User} or a {@link Role} id","type":[[["Snowflake"]]],"meta":{"line":33,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"type","description":"The type of this overwrite","type":[[["OverwriteType"]]],"meta":{"line":40,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"deny","description":"The permissions that are denied for the user or role.","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":48,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"allow","description":"The permissions that are allowed for the user or role.","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":56,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits this Permission Overwrite.","examples":["// Update permission overwrites\npermissionOverwrites.edit({\n SEND_MESSAGES: false\n})\n .then(channel => console.log(channel.permissionOverwrites.get(message.author.id)))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"reason","description":"Reason for creating/editing this overwrite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["PermissionOverwrites",">"]]],"meta":{"line":73,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"delete","description":"Deletes this Permission Overwrite.","params":[{"name":"reason","description":"Reason for deleting this overwrite","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["PermissionOverwrites",">"]]],"meta":{"line":83,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"resolveOverwriteOptions","description":"Resolves bitfield permissions overwrites from an object.","scope":"static","params":[{"name":"options","description":"The options for the update","type":[[["PermissionOverwriteOptions"]]]},{"name":"initialPermissions","description":"The initial permissions","type":[[["ResolvedOverwriteOptions"]]]}],"returns":[[["ResolvedOverwriteOptions"]]],"meta":{"line":121,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"resolve","description":"Resolves an overwrite into {@link RawOverwriteData}.","scope":"static","params":[{"name":"overwrite","description":"The overwrite-like data to resolve","type":[[["OverwriteResolvable"]]]},{"name":"guild","description":"The guild to resolve from","optional":true,"type":[[["Guild"]]]}],"returns":[[["RawOverwriteData"]]],"meta":{"line":172,"file":"PermissionOverwrites.js","path":"src/structures"}}],"meta":{"line":13,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"Presence","description":"Represents a user's presence.","extends":[[["Base"]]],"props":[{"name":"userId","description":"The presence's user id","type":[[["Snowflake"]]],"meta":{"line":45,"file":"Presence.js","path":"src/structures"}},{"name":"guild","description":"The guild this presence is in","nullable":true,"type":[[["Guild"]]],"meta":{"line":51,"file":"Presence.js","path":"src/structures"}},{"name":"user","description":"The user of this presence","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":61,"file":"Presence.js","path":"src/structures"}},{"name":"member","description":"The member of this presence","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":70,"file":"Presence.js","path":"src/structures"}},{"name":"status","description":"The status of this presence","type":[[["PresenceStatus"]]],"meta":{"line":80,"file":"Presence.js","path":"src/structures"}},{"name":"activities","description":"The activities of this presence","type":[[["Array","<"],["Activity",">"]]],"meta":{"line":90,"file":"Presence.js","path":"src/structures"}},{"name":"clientStatus","description":"The devices this presence is on","nullable":true,"type":[[["Object"]]],"props":[{"name":"web","description":"The current presence in the web application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"mobile","description":"The current presence in the mobile application","nullable":true,"type":[[["ClientPresenceStatus"]]]},{"name":"desktop","description":"The current presence in the desktop application","nullable":true,"type":[[["ClientPresenceStatus"]]]}],"meta":{"line":103,"file":"Presence.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"equals","description":"Whether this presence is equal to another.","params":[{"name":"presence","description":"The presence to compare with","type":[[["Presence"]]]}],"returns":[[["boolean"]]],"meta":{"line":122,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":37,"file":"Presence.js","path":"src/structures"}},{"name":"Activity","description":"Represents an activity that is part of a user's presence.","props":[{"name":"id","description":"The activity's id","type":[[["string"]]],"meta":{"line":159,"file":"Presence.js","path":"src/structures"}},{"name":"name","description":"The activity's name","type":[[["string"]]],"meta":{"line":165,"file":"Presence.js","path":"src/structures"}},{"name":"type","description":"The activity status's type","type":[[["ActivityType"]]],"meta":{"line":171,"file":"Presence.js","path":"src/structures"}},{"name":"url","description":"If the activity is being streamed, a link to the stream","nullable":true,"type":[[["string"]]],"meta":{"line":177,"file":"Presence.js","path":"src/structures"}},{"name":"details","description":"Details about the activity","nullable":true,"type":[[["string"]]],"meta":{"line":183,"file":"Presence.js","path":"src/structures"}},{"name":"state","description":"State of the activity","nullable":true,"type":[[["string"]]],"meta":{"line":189,"file":"Presence.js","path":"src/structures"}},{"name":"applicationId","description":"The id of the application associated with this activity","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":195,"file":"Presence.js","path":"src/structures"}},{"name":"timestamps","description":"Timestamps for the activity","nullable":true,"type":[[["ActivityTimestamps"]]],"meta":{"line":208,"file":"Presence.js","path":"src/structures"}},{"name":"syncId","description":"The Spotify song's id","nullable":true,"type":[[["string"]]],"meta":{"line":219,"file":"Presence.js","path":"src/structures"}},{"name":"platform","description":"The platform the game is being played on","nullable":true,"type":[[["ActivityPlatform"]]],"meta":{"line":225,"file":"Presence.js","path":"src/structures"}},{"name":"party","description":"Party of the activity","nullable":true,"type":[[["ActivityParty"]]],"meta":{"line":238,"file":"Presence.js","path":"src/structures"}},{"name":"assets","description":"Assets for rich presence","nullable":true,"type":[[["RichPresenceAssets"]]],"meta":{"line":244,"file":"Presence.js","path":"src/structures"}},{"name":"flags","description":"Flags that describe the activity","type":[[["Readonly","<"],["ActivityFlags",">"]]],"meta":{"line":250,"file":"Presence.js","path":"src/structures"}},{"name":"emoji","description":"Emoji for a custom activity","nullable":true,"type":[[["Emoji"]]],"meta":{"line":256,"file":"Presence.js","path":"src/structures"}},{"name":"sessionId","description":"The game's or Spotify session's id","nullable":true,"type":[[["string"]]],"meta":{"line":262,"file":"Presence.js","path":"src/structures"}},{"name":"buttons","description":"The labels of the buttons of this rich presence","type":[[["Array","<"],["string",">"]]],"meta":{"line":268,"file":"Presence.js","path":"src/structures"}},{"name":"createdTimestamp","description":"Creation date of the activity","type":[[["number"]]],"meta":{"line":274,"file":"Presence.js","path":"src/structures"}},{"name":"createdAt","description":"The time the activity was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":299,"file":"Presence.js","path":"src/structures"}}],"methods":[{"name":"equals","description":"Whether this activity is equal to another activity.","params":[{"name":"activity","description":"The activity to compare with","type":[[["Activity"]]]}],"returns":[[["boolean"]]],"meta":{"line":282,"file":"Presence.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the activities' name instead of the Activity object.","returns":[[["string"]]],"meta":{"line":307,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":151,"file":"Presence.js","path":"src/structures"}},{"name":"RichPresenceAssets","description":"Assets for a rich presence","props":[{"name":"largeText","description":"Hover text for the large image","nullable":true,"type":[[["string"]]],"meta":{"line":327,"file":"Presence.js","path":"src/structures"}},{"name":"smallText","description":"Hover text for the small image","nullable":true,"type":[[["string"]]],"meta":{"line":333,"file":"Presence.js","path":"src/structures"}},{"name":"largeImage","description":"The large image asset's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":339,"file":"Presence.js","path":"src/structures"}},{"name":"smallImage","description":"The small image asset's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":345,"file":"Presence.js","path":"src/structures"}}],"methods":[{"name":"smallImageURL","description":"Gets the URL of the small image asset","params":[{"name":"options","description":"Options for the image URL","optional":true,"type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":353,"file":"Presence.js","path":"src/structures"}},{"name":"largeImageURL","description":"Gets the URL of the large image asset","params":[{"name":"options","description":"Options for the image URL","optional":true,"type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":376,"file":"Presence.js","path":"src/structures"}}],"meta":{"line":319,"file":"Presence.js","path":"src/structures"}},{"name":"ReactionCollector","description":"Collects reactions on messages.\nWill automatically stop if the message ({@link Client#event:messageDelete messageDelete} or\n{@link Client#event:messageDeleteBulk messageDeleteBulk}),\nchannel ({@link Client#event:channelDelete channelDelete}),\nthread ({@link Client#event:threadDelete threadDelete}), or\nguild ({@link Client#event:guildDelete guildDelete}) is deleted.","extends":[[["Collector"]]],"construct":{"name":"ReactionCollector","params":[{"name":"message","description":"The message upon which to collect reactions","type":[[["Message"]]]},{"name":"options","description":"The options to apply to this collector","optional":true,"default":"{}","type":[[["ReactionCollectorOptions"]]]}]},"props":[{"name":"message","description":"The message upon which to collect reactions","type":[[["Message"]]],"meta":{"line":35,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"users","description":"The users that have reacted to this message","type":[[["Collection"]]],"meta":{"line":41,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"total","description":"The total number of reactions collected","type":[[["number"]]],"meta":{"line":47,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"endReason","description":"The reason this collector has ended with, or null if it hasn't ended yet","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":164,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this Collector","readonly":true,"type":[[["Client"]]],"meta":{"line":34,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"filter","description":"The filter applied to this collector","type":[[["CollectorFilter"]]],"meta":{"line":47,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"options","description":"The options of this collector","type":[[["CollectorOptions"]]],"meta":{"line":53,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"collected","description":"The items collected by this collector","type":[[["Collection"]]],"meta":{"line":59,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"ended","description":"Whether this collector has finished collecting","type":[[["boolean"]]],"meta":{"line":65,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_timeout","description":"Timeout for cleanup","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":72,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"_idletimeout","description":"Timeout for cleanup due to inactivity","access":"private","nullable":true,"type":[[["Timeout"]]],"meta":{"line":79,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"next","description":"Returns a promise that resolves with the next collected element;\nrejects with collected elements if the collector finishes without receiving a next element","readonly":true,"type":[[["Promise"]]],"meta":{"line":147,"file":"Collector.js","path":"src/structures/interfaces"}}],"methods":[{"name":"collect","description":"Handles an incoming reaction for possible collection.","access":"private","params":[{"name":"reaction","description":"The reaction to possibly collect","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that added the reaction","type":[[["User"]]]}],"returns":{"types":[[["Snowflake"]],[["string"]]],"nullable":true},"meta":{"line":110,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Handles a reaction deletion for possible disposal.","params":[{"name":"reaction","description":"The reaction to possibly dispose of","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that removed the reaction","type":[[["User"]]]}],"returns":{"types":[[["Snowflake"]],[["string"]]],"nullable":true},"meta":{"line":128,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"empty","description":"Empties this reaction collector.","meta":{"line":152,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleMessageDeletion","description":"Handles checking if the message has been deleted, and if so, stops the collector with the reason 'messageDelete'.","access":"private","params":[{"name":"message","description":"The message that was deleted","type":[[["Message"]]]}],"returns":[[["void"]]],"meta":{"line":177,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleChannelDeletion","description":"Handles checking if the channel has been deleted, and if so, stops the collector with the reason 'channelDelete'.","access":"private","params":[{"name":"channel","description":"The channel that was deleted","type":[[["GuildChannel"]]]}],"returns":[[["void"]]],"meta":{"line":189,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleThreadDeletion","description":"Handles checking if the thread has been deleted, and if so, stops the collector with the reason 'threadDelete'.","access":"private","params":[{"name":"thread","description":"The thread that was deleted","type":[[["ThreadChannel"]]]}],"returns":[[["void"]]],"meta":{"line":201,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"_handleGuildDeletion","description":"Handles checking if the guild has been deleted, and if so, stops the collector with the reason 'guildDelete'.","access":"private","params":[{"name":"guild","description":"The guild that was deleted","type":[[["Guild"]]]}],"returns":[[["void"]]],"meta":{"line":213,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"handleCollect","description":"Call this to handle an event as a collectable element. Accepts any event data as parameters.","inherits":"Collector#handleCollect","inherited":true,"emits":["Collector#event:collect"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":98,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"handleDispose","description":"Call this to remove an element from the collection. Accepts any event data as parameters.","inherits":"Collector#handleDispose","inherited":true,"emits":["Collector#event:dispose"],"params":[{"name":"args","description":"The arguments emitted by the listener","variable":true,"type":[["*"]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":125,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"stop","description":"Stops this collector and emits the `end` event.","inherits":"Collector#stop","inherited":true,"emits":["Collector#event:end"],"params":[{"name":"reason","description":"The reason this collector is ending","optional":true,"default":"'user'","type":[[["string"]]]}],"meta":{"line":179,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"resetTimer","description":"Resets the collector's timeout and idle timer.","inherits":"Collector#resetTimer","inherited":true,"params":[{"name":"options","description":"Options for resetting","optional":true,"type":[[["CollectorResetTimerOptions"]]]}],"meta":{"line":212,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"checkEnd","description":"Checks whether the collector should end, and if so, ends it.","inherits":"Collector#checkEnd","inherited":true,"returns":{"types":[[["boolean"]]],"description":"Whether the collector ended or not"},"meta":{"line":227,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"key","description":"Gets the collector key for a reaction.","scope":"static","params":[{"name":"reaction","description":"The message reaction to get the key for","type":[[["MessageReaction"]]]}],"returns":[[["Snowflake"]],[["string"]]],"meta":{"line":224,"file":"ReactionCollector.js","path":"src/structures"}}],"events":[{"name":"create","description":"Emitted whenever a reaction is newly created on a message. Will emit only when a new reaction is\nadded to the message, as opposed to {@link Collector#collect} which will\nbe emitted even when a reaction has already been added to the message.","params":[{"name":"reaction","description":"The reaction that was added","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that added the reaction","type":[[["User"]]]}],"meta":{"line":82,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"collect","description":"Emitted whenever a reaction is collected.","params":[{"name":"reaction","description":"The reaction that was collected","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that added the reaction","type":[[["User"]]]}],"meta":{"line":111,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"dispose","description":"Emitted when the reaction had all the users removed and the `dispose` option is set to true.","params":[{"name":"reaction","description":"The reaction that was disposed of","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that removed the reaction","type":[[["User"]]]}],"meta":{"line":129,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"remove","description":"Emitted when the reaction had one user removed and the `dispose` option is set to true.","params":[{"name":"reaction","description":"The reaction that was removed","type":[[["MessageReaction"]]]},{"name":"user","description":"The user that removed the reaction","type":[[["User"]]]}],"meta":{"line":137,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"end","description":"Emitted when the collector is finished collecting.","params":[{"name":"collected","description":"The elements collected by the collector","type":[[["Collection"]]]},{"name":"reason","description":"The reason the collector ended","type":[[["string"]]]}],"meta":{"line":192,"file":"Collector.js","path":"src/structures/interfaces"}}],"meta":{"line":23,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"ReactionEmoji","description":"Represents a limited emoji set used for both custom and unicode emojis. Custom emojis\nwill use this class opposed to the Emoji class when the client doesn't know enough\ninformation about them.","extends":[[["Emoji"]]],"props":[{"name":"reaction","description":"The message reaction this emoji refers to","type":[[["MessageReaction"]]],"meta":{"line":19,"file":"ReactionEmoji.js","path":"src/structures"}},{"name":"animated","description":"Whether or not the emoji is animated","nullable":true,"type":[[["boolean"]]],"meta":{"line":34,"file":"Emoji.js","path":"src/structures"}},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"Emoji.js","path":"src/structures"}},{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":46,"file":"Emoji.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":54,"file":"Emoji.js","path":"src/structures"}},{"name":"identifier","description":"The identifier of this emoji, used for message reactions","readonly":true,"type":[[["string"]]],"meta":{"line":84,"file":"Emoji.js","path":"src/structures"}},{"name":"url","description":"The URL to the emoji file if it's a custom emoji","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":94,"file":"Emoji.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"Emoji.js","path":"src/structures"}},{"name":"createdAt","description":"The time the emoji was created at, or null if unicode","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":112,"file":"Emoji.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord\ninstead of the Emoji object.","inherits":"Emoji#toString","inherited":true,"examples":["// Send a custom emoji from a guild:\nconst emoji = guild.emojis.cache.first();\nmsg.channel.send(`Hello! ${emoji}`);","// Send the emoji used in a reaction to the channel the reaction is part of\nreaction.message.channel.send(`The emoji used was: ${reaction.emoji}`);"],"returns":[[["string"]]],"meta":{"line":128,"file":"Emoji.js","path":"src/structures"}}],"meta":{"line":12,"file":"ReactionEmoji.js","path":"src/structures"}},{"name":"Role","description":"Represents a role on Discord.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild that the role belongs to","type":[[["Guild"]]],"meta":{"line":31,"file":"Role.js","path":"src/structures"}},{"name":"icon","description":"The icon hash of the role","nullable":true,"type":[[["string"]]],"meta":{"line":37,"file":"Role.js","path":"src/structures"}},{"name":"unicodeEmoji","description":"The unicode emoji for the role","nullable":true,"type":[[["string"]]],"meta":{"line":43,"file":"Role.js","path":"src/structures"}},{"name":"id","description":"The role's id (unique to the guild it is part of)","type":[[["Snowflake"]]],"meta":{"line":53,"file":"Role.js","path":"src/structures"}},{"name":"name","description":"The name of the role","type":[[["string"]]],"meta":{"line":59,"file":"Role.js","path":"src/structures"}},{"name":"color","description":"The base 10 color of the role","type":[[["number"]]],"meta":{"line":67,"file":"Role.js","path":"src/structures"}},{"name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","type":[[["boolean"]]],"meta":{"line":75,"file":"Role.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the role from the API","type":[[["number"]]],"meta":{"line":83,"file":"Role.js","path":"src/structures"}},{"name":"permissions","description":"The permissions of the role","type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":91,"file":"Role.js","path":"src/structures"}},{"name":"managed","description":"Whether or not the role is managed by an external service","type":[[["boolean"]]],"meta":{"line":99,"file":"Role.js","path":"src/structures"}},{"name":"mentionable","description":"Whether or not the role can be mentioned by anyone","type":[[["boolean"]]],"meta":{"line":107,"file":"Role.js","path":"src/structures"}},{"name":"tags","description":"The tags this role has","nullable":true,"type":[[["Object"]]],"props":[{"name":"botId","description":"The id of the bot this role belongs to","optional":true,"type":[[["Snowflake"]]]},{"name":"integrationId","description":"The id of the integration this role belongs to","optional":true,"type":[[["Snowflake"]],[["string"]]]},{"name":"premiumSubscriberRole","description":"Whether this is the guild's premium subscription role","optional":true,"type":[[["true"]]]}],"meta":{"line":121,"file":"Role.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the role was created at","readonly":true,"type":[[["number"]]],"meta":{"line":140,"file":"Role.js","path":"src/structures"}},{"name":"createdAt","description":"The time the role was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":149,"file":"Role.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the role has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":158,"file":"Role.js","path":"src/structures"}},{"name":"hexColor","description":"The hexadecimal version of the role color, with a leading hashtag","readonly":true,"type":[[["string"]]],"meta":{"line":188,"file":"Role.js","path":"src/structures"}},{"name":"members","description":"The cached guild members that have this role","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":197,"file":"Role.js","path":"src/structures"}},{"name":"editable","description":"Whether the role is editable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":206,"file":"Role.js","path":"src/structures"}},{"name":"position","description":"The position of the role in the role manager","readonly":true,"type":[[["number"]]],"meta":{"line":218,"file":"Role.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"comparePositionTo","description":"Compares this role's position to another role's.","params":[{"name":"role","description":"Role to compare to this one","type":[[["RoleResolvable"]]]}],"returns":{"types":[[["number"]]],"description":"Negative number if this role's position is lower (other role's is higher),\npositive number if this one is higher (other's is lower), 0 if equal"},"meta":{"line":229,"file":"Role.js","path":"src/structures"}},{"name":"edit","description":"Edits the role.","examples":["// Edit a role\nrole.edit({ name: 'new role' })\n .then(updated => console.log(`Edited role name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the role","type":[[["RoleData"]]]},{"name":"reason","description":"Reason for editing this role","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":259,"file":"Role.js","path":"src/structures"}},{"name":"permissionsIn","description":"Returns `channel.permissionsFor(role)`. Returns permissions for a role in a guild channel,\ntaking into account permission overwrites.","params":[{"name":"channel","description":"The guild channel to use as context","type":[[["GuildChannel"]],[["Snowflake"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":270,"file":"Role.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the role.","examples":["// Set the name of the role\nrole.setName('new role')\n .then(updated => console.log(`Updated role name to ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name of the role","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the role's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":287,"file":"Role.js","path":"src/structures"}},{"name":"setColor","description":"Sets a new color for the role.","examples":["// Set the color of a role\nrole.setColor('#FF0000')\n .then(updated => console.log(`Set color of role to ${updated.color}`))\n .catch(console.error);"],"params":[{"name":"color","description":"The color of the role","type":[[["ColorResolvable"]]]},{"name":"reason","description":"Reason for changing the role's color","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":302,"file":"Role.js","path":"src/structures"}},{"name":"setHoist","description":"Sets whether or not the role should be hoisted.","examples":["// Set the hoist of the role\nrole.setHoist(true)\n .then(updated => console.log(`Role hoisted: ${updated.hoist}`))\n .catch(console.error);"],"params":[{"name":"hoist","description":"Whether or not to hoist the role","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for setting whether or not the role should be hoisted","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":317,"file":"Role.js","path":"src/structures"}},{"name":"setPermissions","description":"Sets the permissions of the role.","examples":["// Set the permissions of the role\nrole.setPermissions([Permissions.FLAGS.KICK_MEMBERS, Permissions.FLAGS.BAN_MEMBERS])\n .then(updated => console.log(`Updated permissions to ${updated.permissions.bitfield}`))\n .catch(console.error);","// Remove all permissions from a role\nrole.setPermissions(0n)\n .then(updated => console.log(`Updated permissions to ${updated.permissions.bitfield}`))\n .catch(console.error);"],"params":[{"name":"permissions","description":"The permissions of the role","type":[[["PermissionResolvable"]]]},{"name":"reason","description":"Reason for changing the role's permissions","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":337,"file":"Role.js","path":"src/structures"}},{"name":"setMentionable","description":"Sets whether this role is mentionable.","examples":["// Make the role mentionable\nrole.setMentionable(true)\n .then(updated => console.log(`Role updated ${updated.name}`))\n .catch(console.error);"],"params":[{"name":"mentionable","description":"Whether this role should be mentionable","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for setting whether or not this role should be mentionable","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":352,"file":"Role.js","path":"src/structures"}},{"name":"setIcon","description":"Sets a new icon for the role.","params":[{"name":"icon","description":"The icon for the role\nThe `EmojiResolvable` should belong to the same guild as the role.\nIf not, pass the emoji's URL directly","nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]],[["EmojiResolvable"]]]},{"name":"reason","description":"Reason for changing the role's icon","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":364,"file":"Role.js","path":"src/structures"}},{"name":"setUnicodeEmoji","description":"Sets a new unicode emoji for the role.","examples":["// Set a new unicode emoji for the role\nrole.setUnicodeEmoji('🤖')\n .then(updated => console.log(`Set unicode emoji for the role to ${updated.unicodeEmoji}`))\n .catch(console.error);"],"params":[{"name":"unicodeEmoji","description":"The new unicode emoji for the role","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the role's unicode emoji","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":379,"file":"Role.js","path":"src/structures"}},{"name":"setPosition","description":"Sets the new position of the role.","examples":["// Set the position of the role\nrole.setPosition(1)\n .then(updated => console.log(`Role position: ${updated.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the role","type":[[["number"]]]},{"name":"options","description":"Options for setting the position","optional":true,"type":[[["SetRolePositionOptions"]]]}],"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":401,"file":"Role.js","path":"src/structures"}},{"name":"delete","description":"Deletes the role.","examples":["// Delete a role\nrole.delete('The role needed to go')\n .then(deleted => console.log(`Deleted role ${deleted.name}`))\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this role","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Role",">"]]],"meta":{"line":415,"file":"Role.js","path":"src/structures"}},{"name":"iconURL","description":"A link to the role's icon","params":[{"name":"options","description":"Options for the image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":425,"file":"Role.js","path":"src/structures"}},{"name":"equals","description":"Whether this role equals another role. It compares all properties, so for most operations\nit is advisable to just compare `role.id === role2.id` as it is much faster and is often\nwhat most users need.","params":[{"name":"role","description":"Role to compare with","type":[[["Role"]]]}],"returns":[[["boolean"]]],"meta":{"line":437,"file":"Role.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the role's mention instead of the Role object.","examples":["// Logs: Role: <@&123456789012345678>\nconsole.log(`Role: ${role}`);"],"returns":[[["string"]]],"meta":{"line":459,"file":"Role.js","path":"src/structures"}},{"name":"comparePositions","description":"Compares the positions of two roles.","scope":"static","deprecated":"Use {@link RoleManager#comparePositions} instead.","params":[{"name":"role1","description":"First role to compare","type":[[["Role"]]]},{"name":"role2","description":"Second role to compare","type":[[["Role"]]]}],"returns":{"types":[[["number"]]],"description":"Negative number if the first role's position is lower (second role's is higher),\npositive number if the first's is higher (second's is lower), 0 if equal"},"meta":{"line":479,"file":"Role.js","path":"src/structures"}}],"meta":{"line":23,"file":"Role.js","path":"src/structures"}},{"name":"SelectMenuInteraction","description":"Represents a select menu interaction.","extends":[[["MessageComponentInteraction"]]],"props":[{"name":"values","description":"The values selected, if the component which was interacted with was a select menu","type":[[["Array","<"],["string",">"]]],"meta":{"line":17,"file":"SelectMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":17,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"message","description":"The message to which the component was attached","type":[[["Message"]],[["APIMessage"]]],"meta":{"line":27,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"customId","description":"The custom id of the component which was interacted with","type":[[["string"]]],"meta":{"line":33,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"componentType","description":"The type of component which was interacted with","type":[[["string"]]],"meta":{"line":39,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":45,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":57,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":63,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"component","description":"The component which was interacted with","readonly":true,"type":[[["MessageActionRowComponent"]],[["APIMessageActionRowComponent"]]],"meta":{"line":78,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"MessageComponentInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"MessageComponentInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"MessageComponentInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"MessageComponentInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"MessageComponentInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"MessageComponentInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","inherits":"MessageComponentInteraction#deferUpdate","inherited":true,"implements":["InteractionResponses#deferUpdate"],"examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":183,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","inherits":"MessageComponentInteraction#update","inherited":true,"implements":["InteractionResponses#update"],"examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":209,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","inherits":"MessageComponentInteraction#showModal","inherited":true,"implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"MessageComponentInteraction#awaitModalSubmit","inherited":true,"implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"SelectMenuInteraction.js","path":"src/structures"}},{"name":"StageChannel","description":"Represents a guild stage channel on Discord.","extends":[[["BaseGuildVoiceChannel"]]],"props":[{"name":"topic","description":"The topic of the stage channel","nullable":true,"type":[[["string"]]],"meta":{"line":18,"file":"StageChannel.js","path":"src/structures"}},{"name":"stageInstance","description":"The stage instance of this stage channel, if it exists","readonly":true,"nullable":true,"type":[[["StageInstance"]]],"meta":{"line":27,"file":"StageChannel.js","path":"src/structures"}},{"name":"rtcRegion","description":"The RTC region for this voice-based channel. This region is automatically selected if `null`.","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"bitrate","description":"The bitrate of this voice-based channel","type":[[["number"]]],"meta":{"line":28,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"userLimit","description":"The maximum amount of users allowed in this channel.","type":[[["number"]]],"meta":{"line":36,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"members","description":"The members in this voice-based channel","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":45,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"full","description":"Checks if the voice-based channel is full","readonly":true,"type":[[["boolean"]]],"meta":{"line":60,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the channel is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":69,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"createStageInstance","description":"Creates a stage instance associated with this stage channel.","params":[{"name":"options","description":"The options to create the stage instance","type":[[["StageInstanceCreateOptions"]]]}],"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":36,"file":"StageChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":51,"file":"StageChannel.js","path":"src/structures"}},{"name":"setRTCRegion","description":"Sets the RTC region of the channel.","inherits":"BaseGuildVoiceChannel#setRTCRegion","inherited":true,"examples":["// Set the RTC region to sydney\nchannel.setRTCRegion('sydney');","// Remove a fixed region for this channel - let Discord decide automatically\nchannel.setRTCRegion(null, 'We want to let Discord decide.');"],"params":[{"name":"rtcRegion","description":"The new region of the channel. Set to `null` to remove a specific region for the channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"The reason for modifying this region.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["BaseGuildVoiceChannel",">"]]],"meta":{"line":95,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildVoiceChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":109,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildVoiceChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":119,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":9,"file":"StageChannel.js","path":"src/structures"}},{"name":"StageInstance","description":"Represents a stage instance.","extends":[[["Base"]]],"props":[{"name":"id","description":"The stage instance's id","type":[[["Snowflake"]]],"meta":{"line":28,"file":"StageInstance.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild associated with the stage channel","type":[[["Snowflake"]]],"meta":{"line":39,"file":"StageInstance.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel associated with the stage channel","type":[[["Snowflake"]]],"meta":{"line":47,"file":"StageInstance.js","path":"src/structures"}},{"name":"topic","description":"The topic of the stage instance","type":[[["string"]]],"meta":{"line":55,"file":"StageInstance.js","path":"src/structures"}},{"name":"privacyLevel","description":"The privacy level of the stage instance","type":[[["PrivacyLevel"]]],"meta":{"line":63,"file":"StageInstance.js","path":"src/structures"}},{"name":"discoverableDisabled","description":"Whether or not stage discovery is disabled","nullable":true,"type":[[["boolean"]]],"meta":{"line":71,"file":"StageInstance.js","path":"src/structures"}},{"name":"guildScheduledEventId","description":"The associated guild scheduled event id of this stage instance","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":81,"file":"StageInstance.js","path":"src/structures"}},{"name":"channel","description":"The stage channel associated with this stage instance","readonly":true,"nullable":true,"type":[[["StageChannel"]]],"meta":{"line":92,"file":"StageInstance.js","path":"src/structures"}},{"name":"guildScheduledEvent","description":"The associated guild scheduled event of this stage instance","readonly":true,"nullable":true,"type":[[["GuildScheduledEvent"]]],"meta":{"line":101,"file":"StageInstance.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the stage instance has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":110,"file":"StageInstance.js","path":"src/structures"}},{"name":"guild","description":"The guild this stage instance belongs to","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":140,"file":"StageInstance.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp this stage instances was created at","readonly":true,"type":[[["number"]]],"meta":{"line":193,"file":"StageInstance.js","path":"src/structures"}},{"name":"createdAt","description":"The time this stage instance was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":202,"file":"StageInstance.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"edit","description":"Edits this stage instance.","examples":["// Edit a stage instance\nstageInstance.edit({ topic: 'new topic' })\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error)"],"params":[{"name":"options","description":"The options to edit the stage instance","type":[[["StageInstanceEditOptions"]]]}],"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":154,"file":"StageInstance.js","path":"src/structures"}},{"name":"delete","description":"Deletes this stage instance.","examples":["// Delete a stage instance\nstageInstance.delete()\n .then(stageInstance => console.log(stageInstance))\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":167,"file":"StageInstance.js","path":"src/structures"}},{"name":"setTopic","description":"Sets the topic of this stage instance.","examples":["// Set topic of a stage instance\nstageInstance.setTopic('new topic')\n .then(stageInstance => console.log(`Set the topic to: ${stageInstance.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The topic for the stage instance","type":[[["string"]]]}],"returns":[[["Promise","<"],["StageInstance",">"]]],"meta":{"line":184,"file":"StageInstance.js","path":"src/structures"}}],"meta":{"line":20,"file":"StageInstance.js","path":"src/structures"}},{"name":"Sticker","description":"Represents a Sticker.","extends":[[["Base"]]],"props":[{"name":"id","description":"The sticker's id","type":[[["Snowflake"]]],"meta":{"line":32,"file":"Sticker.js","path":"src/structures"}},{"name":"description","description":"The description of the sticker","nullable":true,"type":[[["string"]]],"meta":{"line":39,"file":"Sticker.js","path":"src/structures"}},{"name":"type","description":"The type of the sticker","nullable":true,"type":[[["StickerType"]]],"meta":{"line":49,"file":"Sticker.js","path":"src/structures"}},{"name":"format","description":"The format of the sticker","type":[[["StickerFormatType"]]],"meta":{"line":59,"file":"Sticker.js","path":"src/structures"}},{"name":"name","description":"The name of the sticker","type":[[["string"]]],"meta":{"line":67,"file":"Sticker.js","path":"src/structures"}},{"name":"packId","description":"The id of the pack the sticker is from, for standard stickers","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":75,"file":"Sticker.js","path":"src/structures"}},{"name":"tags","description":"An array of tags for the sticker","nullable":true,"type":[[["Array","<"],["string",">"]]],"meta":{"line":85,"file":"Sticker.js","path":"src/structures"}},{"name":"available","description":"Whether or not the guild sticker is available","nullable":true,"type":[[["boolean"]]],"meta":{"line":95,"file":"Sticker.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild that owns this sticker","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":105,"file":"Sticker.js","path":"src/structures"}},{"name":"user","description":"The user that uploaded the guild sticker","nullable":true,"type":[[["User"]]],"meta":{"line":115,"file":"Sticker.js","path":"src/structures"}},{"name":"sortValue","description":"The standard sticker's sort order within its pack","nullable":true,"type":[[["number"]]],"meta":{"line":125,"file":"Sticker.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the sticker was created at","readonly":true,"type":[[["number"]]],"meta":{"line":136,"file":"Sticker.js","path":"src/structures"}},{"name":"createdAt","description":"The time the sticker was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":145,"file":"Sticker.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the sticker has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":154,"file":"Sticker.js","path":"src/structures"}},{"name":"partial","description":"Whether this sticker is partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":184,"file":"Sticker.js","path":"src/structures"}},{"name":"guild","description":"The guild that owns this sticker","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":193,"file":"Sticker.js","path":"src/structures"}},{"name":"url","description":"A link to the sticker\nIf the sticker's format is LOTTIE, it returns the URL of the Lottie JSON file.","type":[[["string"]]],"meta":{"line":202,"file":"Sticker.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Fetches this sticker.","async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":210,"file":"Sticker.js","path":"src/structures"}},{"name":"fetchPack","description":"Fetches the pack this sticker is part of from Discord, if this is a Nitro sticker.","async":true,"returns":[[["Promise",""],["StickerPack",">"]]],"meta":{"line":220,"file":"Sticker.js","path":"src/structures"}},{"name":"fetchUser","description":"Fetches the user who uploaded this sticker, if this is a guild sticker.","async":true,"returns":[[["Promise",""],["User",">"]]],"meta":{"line":228,"file":"Sticker.js","path":"src/structures"}},{"name":"edit","description":"Edits the sticker.","examples":["// Update the name of a sticker\nsticker.edit({ name: 'new name' })\n .then(s => console.log(`Updated the name of the sticker to ${s.name}`))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the sticker","optional":true,"type":[[["GuildStickerEditData"]]]},{"name":"reason","description":"Reason for editing this sticker","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":253,"file":"Sticker.js","path":"src/structures"}},{"name":"delete","description":"Deletes the sticker.","examples":["// Delete a message\nsticker.delete()\n .then(s => console.log(`Deleted sticker ${s.name}`))\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this sticker","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Sticker",">"]]],"meta":{"line":267,"file":"Sticker.js","path":"src/structures"}},{"name":"equals","description":"Whether this sticker is the same as another one.","params":[{"name":"other","description":"The sticker to compare it to","type":[[["Sticker"]],[["APISticker"]]]}],"returns":[[["boolean"]]],"meta":{"line":277,"file":"Sticker.js","path":"src/structures"}}],"meta":{"line":20,"file":"Sticker.js","path":"src/structures"}},{"name":"StickerPack","description":"Represents a pack of standard stickers.","extends":[[["Base"]]],"props":[{"name":"id","description":"The Sticker pack's id","type":[[["Snowflake"]]],"meta":{"line":19,"file":"StickerPack.js","path":"src/structures"}},{"name":"stickers","description":"The stickers in the pack","type":[[["Collection","<"],["Snowflake",", "],["Sticker",">"]]],"meta":{"line":25,"file":"StickerPack.js","path":"src/structures"}},{"name":"name","description":"The name of the sticker pack","type":[[["string"]]],"meta":{"line":31,"file":"StickerPack.js","path":"src/structures"}},{"name":"skuId","description":"The id of the pack's SKU","type":[[["Snowflake"]]],"meta":{"line":37,"file":"StickerPack.js","path":"src/structures"}},{"name":"coverStickerId","description":"The id of a sticker in the pack which is shown as the pack's icon","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":43,"file":"StickerPack.js","path":"src/structures"}},{"name":"description","description":"The description of the sticker pack","type":[[["string"]]],"meta":{"line":49,"file":"StickerPack.js","path":"src/structures"}},{"name":"bannerId","description":"The id of the sticker pack's banner image","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":55,"file":"StickerPack.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the sticker was created at","readonly":true,"type":[[["number"]]],"meta":{"line":63,"file":"StickerPack.js","path":"src/structures"}},{"name":"createdAt","description":"The time the sticker was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":72,"file":"StickerPack.js","path":"src/structures"}},{"name":"coverSticker","description":"The sticker which is shown as the pack's icon","readonly":true,"nullable":true,"type":[[["Sticker"]]],"meta":{"line":81,"file":"StickerPack.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"bannerURL","description":"The URL to this sticker pack's banner.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":90,"file":"StickerPack.js","path":"src/structures"}}],"meta":{"line":12,"file":"StickerPack.js","path":"src/structures"}},{"name":"StoreChannel","description":"Represents a guild store channel on Discord.\nStore channels have been removed from Discord. See\n[Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/4414590563479)\nfor more information.","extends":[[["GuildChannel"]]],"props":[{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":20,"file":"StoreChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":259,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"createInvite","description":"Creates an invite to this guild channel.","examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":41,"file":"StoreChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":51,"file":"StoreChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":12,"file":"StoreChannel.js","path":"src/structures"}},{"name":"Team","description":"Represents a Client OAuth2 Application Team.","extends":[[["Base"]]],"props":[{"name":"id","description":"The Team's id","type":[[["Snowflake"]]],"meta":{"line":23,"file":"Team.js","path":"src/structures"}},{"name":"name","description":"The name of the Team","type":[[["string"]]],"meta":{"line":30,"file":"Team.js","path":"src/structures"}},{"name":"icon","description":"The Team's icon hash","nullable":true,"type":[[["string"]]],"meta":{"line":38,"file":"Team.js","path":"src/structures"}},{"name":"ownerId","description":"The Team's owner id","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":48,"file":"Team.js","path":"src/structures"}},{"name":"members","description":"The Team's members","type":[[["Collection","<"],["Snowflake",", "],["TeamMember",">"]]],"meta":{"line":56,"file":"Team.js","path":"src/structures"}},{"name":"owner","description":"The owner of this team","readonly":true,"nullable":true,"type":[[["TeamMember"]]],"meta":{"line":69,"file":"Team.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the team was created at","readonly":true,"type":[[["number"]]],"meta":{"line":78,"file":"Team.js","path":"src/structures"}},{"name":"createdAt","description":"The time the team was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":87,"file":"Team.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"iconURL","description":"A link to the team's icon.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":96,"file":"Team.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the Team's name instead of the\nTeam object.","examples":["// Logs: Team name: My Team\nconsole.log(`Team name: ${team}`);"],"returns":[[["string"]]],"meta":{"line":109,"file":"Team.js","path":"src/structures"}}],"meta":{"line":12,"file":"Team.js","path":"src/structures"}},{"name":"TeamMember","description":"Represents a Client OAuth2 Application Team Member.","extends":[[["Base"]]],"props":[{"name":"team","description":"The Team this member is part of","type":[[["Team"]]],"meta":{"line":18,"file":"TeamMember.js","path":"src/structures"}},{"name":"permissions","description":"The permissions this Team Member has with regard to the team","type":[[["Array","<"],["string",">"]]],"meta":{"line":29,"file":"TeamMember.js","path":"src/structures"}},{"name":"membershipState","description":"The permissions this Team Member has with regard to the team","type":[[["MembershipState"]]],"meta":{"line":37,"file":"TeamMember.js","path":"src/structures"}},{"name":"user","description":"The user for this Team Member","type":[[["User"]]],"meta":{"line":45,"file":"TeamMember.js","path":"src/structures"}},{"name":"id","description":"The Team Member's id","readonly":true,"type":[[["Snowflake"]]],"meta":{"line":54,"file":"TeamMember.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"toString","description":"When concatenated with a string, this automatically returns the team member's mention instead of the\nTeamMember object.","examples":["// Logs: Team Member's mention: <@123456789012345678>\nconsole.log(`Team Member's mention: ${teamMember}`);"],"returns":[[["string"]]],"meta":{"line":66,"file":"TeamMember.js","path":"src/structures"}}],"meta":{"line":10,"file":"TeamMember.js","path":"src/structures"}},{"name":"TextChannel","description":"Represents a guild text channel on Discord.","extends":[[["BaseGuildTextChannel"]]],"props":[{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for this channel in seconds","type":[[["number"]]],"meta":{"line":18,"file":"TextChannel.js","path":"src/structures"}},{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":21,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"threads","description":"A manager of the threads belonging to this channel","type":[[["ThreadManager"]]],"meta":{"line":27,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"nsfw","description":"If the guild considers this channel NSFW","type":[[["boolean"]]],"meta":{"line":33,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"topic","description":"The topic of the text channel","nullable":true,"type":[[["string"]]],"meta":{"line":46,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in the channel, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":58,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":66,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for newly created threads in this channel","nullable":true,"type":[[["number"]]],"meta":{"line":74,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"members","description":"A collection of cached members of this channel, mapped by their ids.\nMembers that can view this channel, if the channel is text-based.\nMembers in the channel, if the channel is voice-based.","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":259,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setRateLimitPerUser","description":"Sets the rate limit per user (slowmode) for this channel.","params":[{"name":"rateLimitPerUser","description":"The new rate limit in seconds","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the channel's rate limit","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":28,"file":"TextChannel.js","path":"src/structures"}},{"name":"setDefaultAutoArchiveDuration","description":"Sets the default auto archive duration for all newly created threads in this channel.","inherits":"BaseGuildTextChannel#setDefaultAutoArchiveDuration","inherited":true,"params":[{"name":"defaultAutoArchiveDuration","description":"The new default auto archive duration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the channel's default auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":88,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setNSFW","description":"Sets whether this channel is flagged as NSFW.","inherits":"BaseGuildTextChannel#setNSFW","inherited":true,"params":[{"name":"nsfw","description":"Whether the channel should be considered NSFW","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing the channel's NSFW flag","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["TextChannel",">"]]],"meta":{"line":98,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setType","description":"Sets the type of this channel (only conversion between text and news is supported)","inherits":"BaseGuildTextChannel#setType","inherited":true,"params":[{"name":"type","description":"The new channel type","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the channel's type","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":108,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchWebhooks","description":"Fetches all webhooks for the channel.","inherits":"BaseGuildTextChannel#fetchWebhooks","inherited":true,"examples":["// Fetch webhooks\nchannel.fetchWebhooks()\n .then(hooks => console.log(`This channel has ${hooks.size} hooks`))\n .catch(console.error);"],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Webhook",">>"]]],"meta":{"line":121,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createWebhook","description":"Creates a webhook for the channel.","inherits":"BaseGuildTextChannel#createWebhook","inherited":true,"examples":["// Create a webhook for the current channel\nchannel.createWebhook('Snek', {\n avatar: 'https://i.imgur.com/mI8XcpG.jpg',\n reason: 'Needed a cool new Webhook'\n})\n .then(console.log)\n .catch(console.error)"],"params":[{"name":"name","description":"The name of the webhook","type":[[["string"]]]},{"name":"options","description":"Options for creating the webhook","optional":true,"type":[[["ChannelWebhookCreateOptions"]]]}],"returns":{"types":[[["Promise","<"],["Webhook",">"]]],"description":"Returns the created Webhook"},"meta":{"line":146,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"setTopic","description":"Sets a new topic for the guild channel.","inherits":"BaseGuildTextChannel#setTopic","inherited":true,"examples":["// Set a new channel topic\nchannel.setTopic('needs more rate limiting')\n .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))\n .catch(console.error);"],"params":[{"name":"topic","description":"The new topic for the guild channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's topic","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":161,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildTextChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":199,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildTextChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":209,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","inherits":"BaseGuildTextChannel#send","inherited":true,"implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","inherits":"BaseGuildTextChannel#sendTyping","inherited":true,"implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":189,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","inherits":"BaseGuildTextChannel#createMessageCollector","inherited":true,"implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":204,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","inherits":"BaseGuildTextChannel#awaitMessages","inherited":true,"implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":227,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a component interaction collector.","inherits":"BaseGuildTextChannel#createMessageComponentCollector","inherited":true,"implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":251,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseGuildTextChannel#awaitMessageComponent","inherited":true,"implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":271,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","inherits":"BaseGuildTextChannel#bulkDelete","inherited":true,"implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":295,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":9,"file":"TextChannel.js","path":"src/structures"}},{"name":"TextInputComponent","description":"Represents a text input component in a modal","extends":[[["BaseMessageComponent"]]],"construct":{"name":"TextInputComponent","params":[{"name":"data","description":"TextInputComponent to clone or raw data","optional":true,"default":"{}","type":[[["TextInputComponent"]],[["TextInputComponentOptions"]]]}]},"props":[{"name":"customId","description":"A unique string to be sent in the interaction when submitted","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"label","description":"The text to be displayed above this text input component","nullable":true,"type":[[["string"]]],"meta":{"line":46,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"maxLength","description":"Maximum length of text that can be entered","nullable":true,"type":[[["number"]]],"meta":{"line":52,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"minLength","description":"Minimum length of text required to be entered","nullable":true,"type":[[["string"]]],"meta":{"line":58,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"placeholder","description":"Custom placeholder text to display when no text is entered","nullable":true,"type":[[["string"]]],"meta":{"line":64,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"required","description":"Whether or not this text input component is required","nullable":true,"type":[[["boolean"]]],"meta":{"line":70,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"style","description":"The style of this text input component","nullable":true,"type":[[["TextInputStyle"]]],"meta":{"line":76,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"value","description":"Value of this text input component","nullable":true,"type":[[["string"]]],"meta":{"line":82,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"type","description":"The type of this component","nullable":true,"type":[[["MessageComponentType"]]],"meta":{"line":52,"file":"BaseMessageComponent.js","path":"src/structures"}}],"methods":[{"name":"setCustomId","description":"Sets the custom id of this text input component","params":[{"name":"customId","description":"A unique string to be sent in the interaction when submitted","type":[[["string"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":90,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"setLabel","description":"Sets the label of this text input component","params":[{"name":"label","description":"The text to be displayed above this text input component","type":[[["string"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":100,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"setRequired","description":"Sets the text input component to be required for modal submission","params":[{"name":"required","description":"Whether this text input component is required","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":110,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"setMaxLength","description":"Sets the maximum length of text input required in this text input component","params":[{"name":"maxLength","description":"Maximum length of text to be required","type":[[["number"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":120,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"setMinLength","description":"Sets the minimum length of text input required in this text input component","params":[{"name":"minLength","description":"Minimum length of text to be required","type":[[["number"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":130,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"setPlaceholder","description":"Sets the placeholder of this text input component","params":[{"name":"placeholder","description":"Custom placeholder text to display when no text is entered","type":[[["string"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":140,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"setStyle","description":"Sets the style of this text input component","params":[{"name":"style","description":"The style of this text input component","type":[[["TextInputStyleResolvable"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":150,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"setValue","description":"Sets the value of this text input component","params":[{"name":"value","description":"Value of this text input component","type":[[["string"]]]}],"returns":[[["TextInputComponent"]]],"meta":{"line":160,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"toJSON","description":"Transforms the text input component into a plain object","returns":{"types":[[["APITextInput"]]],"description":"The raw data of this text input component"},"meta":{"line":169,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"resolveStyle","description":"Resolves the style of a text input component","scope":"static","access":"private","params":[{"name":"style","description":"The style to resolve","type":[[["TextInputStyleResolvable"]]]}],"returns":[[["TextInputStyle"]]],"meta":{"line":196,"file":"TextInputComponent.js","path":"src/structures"}}],"meta":{"line":13,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"ThreadChannel","description":"Represents a thread channel on Discord.","extends":[[["Channel"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"guild","description":"The guild the thread is in","type":[[["Guild"]]],"meta":{"line":24,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":30,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"messages","description":"A manager of the messages sent to this thread","type":[[["MessageManager"]]],"meta":{"line":36,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"members","description":"A manager of the members that are part of this thread","type":[[["ThreadMemberManager"]]],"meta":{"line":42,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the thread","type":[[["string"]]],"meta":{"line":54,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the parent channel of this thread","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":66,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"locked","description":"Whether the thread is locked","nullable":true,"type":[[["boolean"]]],"meta":{"line":76,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"invitable","description":"Whether members without `MANAGE_THREADS` can invite other members without `MANAGE_THREADS`\nAlways `null` in public threads","nullable":true,"type":[[["boolean"]]],"meta":{"line":83,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"archived","description":"Whether the thread is archived","nullable":true,"type":[[["boolean"]]],"meta":{"line":89,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"autoArchiveDuration","description":"The amount of time (in minutes) after which the thread will automatically archive in case of no recent activity","nullable":true,"type":[[["number"]]],"meta":{"line":95,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"archiveTimestamp","description":"The timestamp when the thread's archive status was last changed\nIf the thread was never archived or unarchived, this is the timestamp at which the thread was\ncreated","nullable":true,"type":[[["number"]]],"meta":{"line":103,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"ownerId","description":"The id of the member who created this thread","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":124,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"lastMessageId","description":"The last message id sent in this thread, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":134,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":144,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for this thread in seconds","nullable":true,"type":[[["number"]]],"meta":{"line":154,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"messageCount","description":"The approximate count of messages in this thread\nThis stops counting at 50. If you need an approximate value higher than that, use\n`ThreadChannel#messages.cache.size`","nullable":true,"type":[[["number"]]],"meta":{"line":166,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"memberCount","description":"The approximate count of users in this thread\nThis stops counting at 50. If you need an approximate value higher than that, use\n`ThreadChannel#members.cache.size`","nullable":true,"type":[[["number"]]],"meta":{"line":178,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp when this thread was created. This isn't available for threads\ncreated before 2022-01-09","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":193,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"guildMembers","description":"A collection of associated guild member objects of this thread's members","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":202,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"archivedAt","description":"The time at which this thread's archive status was last changed\nIf the thread was never archived or unarchived, this is the time at which the thread was created","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":212,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the thread was created at","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":222,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"parent","description":"The parent channel of this thread","readonly":true,"nullable":true,"type":[[["NewsChannel"]],[["TextChannel"]]],"meta":{"line":231,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"joined","description":"Whether the client user is a member of the thread.","readonly":true,"type":[[["boolean"]]],"meta":{"line":426,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"editable","description":"Whether the thread is editable by the client user (name, archived, autoArchiveDuration)","readonly":true,"type":[[["boolean"]]],"meta":{"line":435,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the thread is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":446,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the thread is manageable by the client user, for deleting or editing rateLimitPerUser or locked.","readonly":true,"type":[[["boolean"]]],"meta":{"line":462,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the thread is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":479,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"sendable","description":"Whether the client user can send messages in this thread","readonly":true,"type":[[["boolean"]]],"meta":{"line":491,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"unarchivable","description":"Whether the thread is unarchivable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":510,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"join","description":"Makes the client user join the thread.","async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":239,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"leave","description":"Makes the client user leave the thread.","async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":248,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this thread's parent channel, taking overwrites into\naccount.","params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":260,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"fetchOwner","description":"Fetches the owner of this thread. If the thread member object isn't needed,\nuse {@link ThreadChannel#ownerId} instead.","params":[{"name":"options","description":"The options for fetching the member","optional":true,"type":[[["BaseFetchOptions"]]]}],"async":true,"returns":[[["Promise",""],["ThreadMember",">"]]],"meta":{"line":270,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"fetchStarterMessage","description":"Fetches the message that started this thread, if any.\nThis only works when the thread started from a message in the parent channel, otherwise the promise will\nreject. If you just need the id of that message, use {@link ThreadChannel#id} instead.","params":[{"name":"options","description":"Additional options for this fetch","optional":true,"type":[[["BaseFetchOptions"]]]}],"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":288,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits this thread.","examples":["// Edit a thread\nthread.edit({ name: 'new-thread' })\n .then(editedThread => console.log(editedThread))\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for this thread","type":[[["ThreadEditData"]]]},{"name":"reason","description":"Reason for editing this thread","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":316,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setArchived","description":"Sets whether the thread is archived.","examples":["// Archive the thread\nthread.setArchived(true)\n .then(newThread => console.log(`Thread is now ${newThread.archived ? 'archived' : 'active'}`))\n .catch(console.error);"],"params":[{"name":"archived","description":"Whether the thread is archived","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for archiving or unarchiving","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":346,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setAutoArchiveDuration","description":"Sets the duration after which the thread will automatically archive in case of no recent activity.","examples":["// Set the thread's auto archive time to 1 hour\nthread.setAutoArchiveDuration(60)\n .then(newThread => {\n console.log(`Thread will now archive after ${newThread.autoArchiveDuration} minutes of inactivity`);\n });\n .catch(console.error);"],"params":[{"name":"autoArchiveDuration","description":"The amount of time (in minutes) after which the thread\nshould automatically archive in case of no recent activity","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for changing the auto archive duration","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":364,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setInvitable","description":"Sets whether members without the `MANAGE_THREADS` permission can invite other members without the\n`MANAGE_THREADS` permission to this thread.","params":[{"name":"invitable","description":"Whether non-moderators can invite non-moderators to this thread","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for changing invite","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":375,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setLocked","description":"Sets whether the thread can be **unarchived** by anyone with `SEND_MESSAGES` permission.\nWhen a thread is locked only members with `MANAGE_THREADS` can unarchive it.","examples":["// Set the thread to locked\nthread.setLocked(true)\n .then(newThread => console.log(`Thread is now ${newThread.locked ? 'locked' : 'unlocked'}`))\n .catch(console.error);"],"params":[{"name":"locked","description":"Whether the thread is locked","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for locking or unlocking the thread","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":392,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for this thread.","examples":["// Change the thread's name\nthread.setName('not_general')\n .then(newThread => console.log(`Thread's new name is ${newThread.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the thread","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the thread's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":407,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"setRateLimitPerUser","description":"Sets the rate limit per user (slowmode) for this thread.","params":[{"name":"rateLimitPerUser","description":"The new rate limit in seconds","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the thread's rate limit","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":417,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"isPrivate","description":"Whether this thread is a private thread","returns":[[["boolean"]]],"meta":{"line":518,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this thread.","examples":["// Delete the thread\nthread.delete('cleaning out old threads')\n .then(deletedThread => console.log(deletedThread))\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this thread","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["ThreadChannel",">"]]],"meta":{"line":532,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","implements":["TextBasedChannel#sendTyping"],"examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":189,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","implements":["TextBasedChannel#createMessageCollector"],"examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":204,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","implements":["TextBasedChannel#awaitMessages"],"examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":227,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a component interaction collector.","implements":["TextBasedChannel#createMessageComponentCollector"],"examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":251,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","implements":["TextBasedChannel#awaitMessageComponent"],"examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":271,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","implements":["TextBasedChannel#bulkDelete"],"examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":295,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":16,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"ThreadMember","description":"Represents a Member for a Thread.","extends":[[["Base"]]],"props":[{"name":"thread","description":"The thread that this member is a part of","type":[[["ThreadChannel"]]],"meta":{"line":18,"file":"ThreadMember.js","path":"src/structures"}},{"name":"joinedTimestamp","description":"The timestamp the member last joined the thread at","nullable":true,"type":[[["number"]]],"meta":{"line":24,"file":"ThreadMember.js","path":"src/structures"}},{"name":"id","description":"The id of the thread member","type":[[["Snowflake"]]],"meta":{"line":30,"file":"ThreadMember.js","path":"src/structures"}},{"name":"flags","description":"The flags for this thread member","type":[[["ThreadMemberFlags"]]],"meta":{"line":43,"file":"ThreadMember.js","path":"src/structures"}},{"name":"guildMember","description":"The guild member associated with this thread member","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":52,"file":"ThreadMember.js","path":"src/structures"}},{"name":"joinedAt","description":"The last time this member joined the thread","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":61,"file":"ThreadMember.js","path":"src/structures"}},{"name":"user","description":"The user associated with this thread member","readonly":true,"nullable":true,"type":[[["User"]]],"meta":{"line":70,"file":"ThreadMember.js","path":"src/structures"}},{"name":"manageable","description":"Whether the client user can manage this thread member","readonly":true,"type":[[["boolean"]]],"meta":{"line":79,"file":"ThreadMember.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"remove","description":"Removes this member from the thread.","params":[{"name":"reason","description":"Reason for removing the member","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["ThreadMember"]]],"meta":{"line":88,"file":"ThreadMember.js","path":"src/structures"}}],"meta":{"line":10,"file":"ThreadMember.js","path":"src/structures"}},{"name":"Typing","description":"Represents a typing state for a user in a channel.","extends":[[["Base"]]],"props":[{"name":"channel","description":"The channel the status is from","type":[[["TextBasedChannels"]]],"meta":{"line":17,"file":"Typing.js","path":"src/structures"}},{"name":"user","description":"The user who is typing","type":[[["User"]]],"meta":{"line":23,"file":"Typing.js","path":"src/structures"}},{"name":"startedTimestamp","description":"The UNIX timestamp in milliseconds the user started typing at","type":[[["number"]]],"meta":{"line":34,"file":"Typing.js","path":"src/structures"}},{"name":"startedAt","description":"The time the user started typing at","readonly":true,"type":[[["Date"]]],"meta":{"line":51,"file":"Typing.js","path":"src/structures"}},{"name":"guild","description":"The guild the status is from","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":60,"file":"Typing.js","path":"src/structures"}},{"name":"member","description":"The member who is typing","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":69,"file":"Typing.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"inGuild","description":"Indicates whether the status is received from a guild.","returns":[[["boolean"]]],"meta":{"line":42,"file":"Typing.js","path":"src/structures"}}],"meta":{"line":9,"file":"Typing.js","path":"src/structures"}},{"name":"User","description":"Represents a user on Discord.","extends":[[["Base"]]],"implements":[[["TextBasedChannel"]]],"props":[{"name":"id","description":"The user's id","type":[[["Snowflake"]]],"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"name":"connectedAccounts","description":"Accounts connected to this user","nullable":true,"type":[[["Array","<"],["ConnectionAccount",">"]]],"meta":{"line":46,"file":"User.js","path":"src/structures"}},{"name":"premiumSince","description":"Time that User has nitro (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":52,"file":"User.js","path":"src/structures"}},{"name":"premiumGuildSince","description":"Time that User has nitro and boost server (Unix Timestamp)","readonly":true,"nullable":true,"type":[[["number"]]],"meta":{"line":58,"file":"User.js","path":"src/structures"}},{"name":"bio","description":"About me (User)","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":64,"file":"User.js","path":"src/structures"}},{"name":"mutualGuilds","description":"This user is on the same servers as Client User","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["Object",">"]]],"meta":{"line":70,"file":"User.js","path":"src/structures"}},{"name":"applications","description":"[Bot] Interaction command manager","readonly":true,"nullable":true,"type":[[["ApplicationCommandManager"]]],"meta":{"line":76,"file":"User.js","path":"src/structures"}},{"name":"username","description":"The username of the user","nullable":true,"type":[[["string"]]],"meta":{"line":86,"file":"User.js","path":"src/structures"}},{"name":"bot","description":"Whether or not the user is a bot","nullable":true,"type":[[["boolean"]]],"meta":{"line":96,"file":"User.js","path":"src/structures"}},{"name":"discriminator","description":"A discriminator based on username for the user","nullable":true,"type":[[["string"]]],"meta":{"line":109,"file":"User.js","path":"src/structures"}},{"name":"avatar","description":"The user avatar's hash","nullable":true,"type":[[["string"]]],"meta":{"line":119,"file":"User.js","path":"src/structures"}},{"name":"banner","description":"The user banner's hash\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["string"]]],"meta":{"line":130,"file":"User.js","path":"src/structures"}},{"name":"accentColor","description":"The base 10 accent color of the user's banner\nThe user must be force fetched for this property to be present or be updated","nullable":true,"type":[[["number"]]],"meta":{"line":141,"file":"User.js","path":"src/structures"}},{"name":"system","description":"Whether the user is an Official Discord System user (part of the urgent message system)","nullable":true,"type":[[["boolean"]]],"meta":{"line":151,"file":"User.js","path":"src/structures"}},{"name":"flags","description":"The flags for this user","nullable":true,"type":[[["UserFlags"]]],"meta":{"line":161,"file":"User.js","path":"src/structures"}},{"name":"relationships","description":"Check relationship status","readonly":true,"type":[[["Relationship"]]],"meta":{"line":170,"file":"User.js","path":"src/structures"}},{"name":"note","description":"Check note","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":180,"file":"User.js","path":"src/structures"}},{"name":"partial","description":"Whether this User is a partial","readonly":true,"type":[[["boolean"]]],"meta":{"line":263,"file":"User.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the user was created at","readonly":true,"type":[[["number"]]],"meta":{"line":272,"file":"User.js","path":"src/structures"}},{"name":"createdAt","description":"The time the user was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":281,"file":"User.js","path":"src/structures"}},{"name":"defaultAvatarURL","description":"A link to the user's default avatar","readonly":true,"type":[[["string"]]],"meta":{"line":300,"file":"User.js","path":"src/structures"}},{"name":"hexAccentColor","description":"The hexadecimal version of the user accent color, with a leading hash\nThe user must be force fetched for this property to be present","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":320,"file":"User.js","path":"src/structures"}},{"name":"tag","description":"The Discord \"tag\" (e.g. `hydrabolt#0001`) for this user","readonly":true,"nullable":true,"type":[[["string"]]],"meta":{"line":345,"file":"User.js","path":"src/structures"}},{"name":"dmChannel","description":"The DM between the client's user and this user","readonly":true,"nullable":true,"type":[[["DMChannel"]]],"meta":{"line":354,"file":"User.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"getProfile","description":"Get profile from Discord, if client is in a server with the target.","async":true,"returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":212,"file":"User.js","path":"src/structures"}},{"name":"setFriend","description":"Friends the user and send Request [If no request]","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":223,"file":"User.js","path":"src/structures"}},{"name":"sendFriendRequest","description":"Send Friend Request to the user","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":231,"file":"User.js","path":"src/structures"}},{"name":"setBlock","description":"Blocks the user","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":238,"file":"User.js","path":"src/structures"}},{"name":"unBlock","description":"Removes the user from your blocks list","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":246,"file":"User.js","path":"src/structures"}},{"name":"unFriend","description":"Removes the user from your friends list","returns":{"types":[[["Promise","<"],["User",">"]]],"description":"the user object"},"meta":{"line":254,"file":"User.js","path":"src/structures"}},{"name":"avatarURL","description":"A link to the user's avatar.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":290,"file":"User.js","path":"src/structures"}},{"name":"displayAvatarURL","description":"A link to the user's avatar if they have one.\nOtherwise a link to their default avatar will be returned.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":[[["string"]]],"meta":{"line":310,"file":"User.js","path":"src/structures"}},{"name":"bannerURL","description":"A link to the user's banner.\nThis method will throw an error if called before the user is force fetched.\nSee {@link User#banner} for more info","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["ImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":332,"file":"User.js","path":"src/structures"}},{"name":"createDM","description":"Creates a DM channel between the client and the user.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":363,"file":"User.js","path":"src/structures"}},{"name":"deleteDM","description":"Deletes a DM channel (if one exists) between the client and the user. Resolves with the channel if successful.","returns":[[["Promise","<"],["DMChannel",">"]]],"meta":{"line":371,"file":"User.js","path":"src/structures"}},{"name":"equals","description":"Checks if the user is equal to another.\nIt compares id, username, discriminator, avatar, banner, accent color, and bot flags.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","params":[{"name":"user","description":"User to compare with","type":[[["User"]]]}],"returns":[[["boolean"]]],"meta":{"line":382,"file":"User.js","path":"src/structures"}},{"name":"_equals","description":"Compares the user with an API user object","access":"private","params":[{"name":"user","description":"The API user object to compare","type":[[["APIUser"]]]}],"returns":[[["boolean"]]],"meta":{"line":401,"file":"User.js","path":"src/structures"}},{"name":"fetchFlags","description":"Fetches this user's flags.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["UserFlags",">"]]],"meta":{"line":419,"file":"User.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this user.","params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["User",">"]]],"meta":{"line":428,"file":"User.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the user's mention instead of the User object.","examples":["// Logs: Hello from <@123456789012345678>!\nconsole.log(`Hello from ${user}!`);"],"returns":[[["string"]]],"meta":{"line":439,"file":"User.js","path":"src/structures"}},{"name":"setNote","description":"Set note to user","params":[{"name":"note","description":"Note to set","default":null,"type":[[["string","<"],["Usernote",">"]]]}],"async":true,"returns":[[["Promise","<"],["Usernote",">"]]],"meta":{"line":464,"file":"User.js","path":"src/structures"}},{"name":"send","description":"Sends a message to this channel.","implements":["TextBasedChannel#send"],"examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":17,"file":"User.js","path":"src/structures"}},{"name":"UserContextMenuInteraction","description":"Represents a user context menu interaction.","extends":[[["ContextMenuInteraction"]]],"props":[{"name":"targetUser","description":"The user this interaction was sent from","readonly":true,"type":[[["User"]]],"meta":{"line":15,"file":"UserContextMenuInteraction.js","path":"src/structures"}},{"name":"targetMember","description":"The member this interaction was sent from","readonly":true,"nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":24,"file":"UserContextMenuInteraction.js","path":"src/structures"}},{"name":"options","description":"The target of the interaction, parsed into options","type":[[["CommandInteractionOptionResolver"]]],"meta":{"line":18,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetId","description":"The id of the target of the interaction","type":[[["Snowflake"]]],"meta":{"line":28,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"targetType","description":"The type of the target of the interaction; either USER or MESSAGE","type":[[["ApplicationCommandType"]]],"meta":{"line":34,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"channelId","description":"The id of the channel this interaction was sent in","type":[[["Snowflake"]]],"meta":{"line":20,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandId","description":"The invoked application command's id","type":[[["Snowflake"]]],"meta":{"line":30,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"commandName","description":"The invoked application command's name","type":[[["string"]]],"meta":{"line":36,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferred","description":"Whether the reply to this interaction has been deferred","type":[[["boolean"]]],"meta":{"line":42,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"replied","description":"Whether this interaction has already been replied to","type":[[["boolean"]]],"meta":{"line":48,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ephemeral","description":"Whether the reply to this interaction is ephemeral","nullable":true,"type":[[["boolean"]]],"meta":{"line":54,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"webhook","description":"An associated interaction webhook, can be used to further interact with this interaction","type":[[["InteractionWebhook"]]],"meta":{"line":60,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"command","description":"The invoked application command, if it was fetched before","nullable":true,"type":[[["ApplicationCommand"]]],"meta":{"line":67,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"type","description":"The interaction's type","type":[[["InteractionType"]]],"meta":{"line":20,"file":"Interaction.js","path":"src/structures"}},{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]],"meta":{"line":26,"file":"Interaction.js","path":"src/structures"}},{"name":"token","description":"The interaction's token","readonly":true,"type":[[["string"]]],"meta":{"line":28,"file":"Interaction.js","path":"src/structures"}},{"name":"applicationId","description":"The application's id","type":[[["Snowflake"]]],"meta":{"line":40,"file":"Interaction.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild this interaction was sent in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":52,"file":"Interaction.js","path":"src/structures"}},{"name":"user","description":"The user which sent this interaction","type":[[["User"]]],"meta":{"line":58,"file":"Interaction.js","path":"src/structures"}},{"name":"member","description":"If this interaction was sent in a guild, the member which sent it","nullable":true,"type":[[["GuildMember"]],[["APIGuildMember"]]],"meta":{"line":64,"file":"Interaction.js","path":"src/structures"}},{"name":"version","description":"The version","type":[[["number"]]],"meta":{"line":70,"file":"Interaction.js","path":"src/structures"}},{"name":"memberPermissions","description":"The permissions of the member, if one exists, in the channel this interaction was executed in","nullable":true,"type":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":76,"file":"Interaction.js","path":"src/structures"}},{"name":"locale","description":"The locale of the user who invoked this interaction","type":[[["Locale"]]],"meta":{"line":118,"file":"Interaction.js","path":"src/structures"}},{"name":"guildLocale","description":"The preferred locale from the guild this interaction was sent in","nullable":true,"type":[[["Locale"]]],"meta":{"line":124,"file":"Interaction.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the interaction was created at","readonly":true,"type":[[["number"]]],"meta":{"line":132,"file":"Interaction.js","path":"src/structures"}},{"name":"createdAt","description":"The time the interaction was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":141,"file":"Interaction.js","path":"src/structures"}},{"name":"channel","description":"The channel this interaction was sent in","readonly":true,"nullable":true,"type":[[["TextBasedChannels"]]],"meta":{"line":150,"file":"Interaction.js","path":"src/structures"}},{"name":"guild","description":"The guild this interaction was sent in","readonly":true,"nullable":true,"type":[[["Guild"]]],"meta":{"line":159,"file":"Interaction.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"resolveContextMenuOptions","description":"Resolves and transforms options received from the API for a context menu interaction.","access":"private","inherits":"ContextMenuInteraction#resolveContextMenuOptions","inherited":true,"params":[{"name":"data","description":"The interaction data","type":[[["APIApplicationCommandInteractionData"]]]}],"returns":[[["Array","<"],["CommandInteractionOption",">"]]],"meta":{"line":43,"file":"ContextMenuInteraction.js","path":"src/structures"}},{"name":"transformResolved","description":"Transforms the resolved received from the API.","access":"private","inherits":"BaseCommandInteraction#transformResolved","inherited":true,"params":[{"name":"resolved","description":"The received resolved objects","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionResolvedData"]]],"meta":{"line":89,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"transformOption","description":"Transforms an option received from the API.","access":"private","inherits":"BaseCommandInteraction#transformOption","inherited":true,"params":[{"name":"option","description":"The received option","type":[[["APIApplicationCommandOption"]]]},{"name":"resolved","description":"The resolved interaction data","type":[[["APIInteractionDataResolved"]]]}],"returns":[[["CommandInteractionOption"]]],"meta":{"line":162,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"deferReply","description":"Defers the reply to this interaction.","inherits":"BaseCommandInteraction#deferReply","inherited":true,"implements":["InteractionResponses#deferReply"],"examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","inherits":"BaseCommandInteraction#reply","inherited":true,"implements":["InteractionResponses#reply"],"examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"inherits":"BaseCommandInteraction#fetchReply","inherited":true,"implements":["InteractionResponses#fetchReply"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"inherits":"BaseCommandInteraction#editReply","inherited":true,"implements":["InteractionResponses#editReply"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"inherits":"BaseCommandInteraction#deleteReply","inherited":true,"implements":["InteractionResponses#deleteReply"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","inherits":"BaseCommandInteraction#followUp","inherited":true,"implements":["InteractionResponses#followUp"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","inherits":"BaseCommandInteraction#showModal","inherited":true,"implements":["InteractionResponses#showModal"],"params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","inherits":"BaseCommandInteraction#awaitModalSubmit","inherited":true,"implements":["InteractionResponses#awaitModalSubmit"],"examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"inGuild","description":"Indicates whether this interaction is received from a guild.","inherits":"Interaction#inGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":167,"file":"Interaction.js","path":"src/structures"}},{"name":"inCachedGuild","description":"Indicates whether or not this interaction is both cached and received from a guild.","inherits":"Interaction#inCachedGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":175,"file":"Interaction.js","path":"src/structures"}},{"name":"inRawGuild","description":"Indicates whether or not this interaction is received from an uncached guild.","inherits":"Interaction#inRawGuild","inherited":true,"returns":[[["boolean"]]],"meta":{"line":183,"file":"Interaction.js","path":"src/structures"}},{"name":"isApplicationCommand","description":"Indicates whether this interaction is a {@link BaseCommandInteraction}.","inherits":"Interaction#isApplicationCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":191,"file":"Interaction.js","path":"src/structures"}},{"name":"isCommand","description":"Indicates whether this interaction is a {@link CommandInteraction}.","inherits":"Interaction#isCommand","inherited":true,"returns":[[["boolean"]]],"meta":{"line":199,"file":"Interaction.js","path":"src/structures"}},{"name":"isContextMenu","description":"Indicates whether this interaction is a {@link ContextMenuInteraction}","inherits":"Interaction#isContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":207,"file":"Interaction.js","path":"src/structures"}},{"name":"isModalSubmit","description":"Indicates whether this interaction is a {@link ModalSubmitInteraction}","inherits":"Interaction#isModalSubmit","inherited":true,"returns":[[["boolean"]]],"meta":{"line":215,"file":"Interaction.js","path":"src/structures"}},{"name":"isUserContextMenu","description":"Indicates whether this interaction is a {@link UserContextMenuInteraction}","inherits":"Interaction#isUserContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":223,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageContextMenu","description":"Indicates whether this interaction is a {@link MessageContextMenuInteraction}","inherits":"Interaction#isMessageContextMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":231,"file":"Interaction.js","path":"src/structures"}},{"name":"isAutocomplete","description":"Indicates whether this interaction is an {@link AutocompleteInteraction}","inherits":"Interaction#isAutocomplete","inherited":true,"returns":[[["boolean"]]],"meta":{"line":239,"file":"Interaction.js","path":"src/structures"}},{"name":"isMessageComponent","description":"Indicates whether this interaction is a {@link MessageComponentInteraction}.","inherits":"Interaction#isMessageComponent","inherited":true,"returns":[[["boolean"]]],"meta":{"line":247,"file":"Interaction.js","path":"src/structures"}},{"name":"isButton","description":"Indicates whether this interaction is a {@link ButtonInteraction}.","inherits":"Interaction#isButton","inherited":true,"returns":[[["boolean"]]],"meta":{"line":255,"file":"Interaction.js","path":"src/structures"}},{"name":"isSelectMenu","description":"Indicates whether this interaction is a {@link SelectMenuInteraction}.","inherits":"Interaction#isSelectMenu","inherited":true,"returns":[[["boolean"]]],"meta":{"line":266,"file":"Interaction.js","path":"src/structures"}},{"name":"isRepliable","description":"Indicates whether this interaction can be replied to.","inherits":"Interaction#isRepliable","inherited":true,"returns":[[["boolean"]]],"meta":{"line":277,"file":"Interaction.js","path":"src/structures"}}],"meta":{"line":9,"file":"UserContextMenuInteraction.js","path":"src/structures"}},{"name":"VoiceChannel","description":"Represents a guild voice channel on Discord.","extends":[[["BaseGuildVoiceChannel"]]],"props":[{"name":"videoQualityMode","description":"The camera video quality mode of the channel.","nullable":true,"type":[[["VideoQualityMode"]]],"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"editable","description":"Whether the channel is editable by the client user","readonly":true,"deprecated":"Use {@link VoiceChannel#manageable} instead","type":[[["boolean"]]],"meta":{"line":35,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"joinable","description":"Whether the channel is joinable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":53,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"speakable","description":"Checks if the client has permission to send audio to the voice channel","readonly":true,"type":[[["boolean"]]],"meta":{"line":64,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"rtcRegion","description":"The RTC region for this voice-based channel. This region is automatically selected if `null`.","nullable":true,"type":[[["string"]]],"meta":{"line":20,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"bitrate","description":"The bitrate of this voice-based channel","type":[[["number"]]],"meta":{"line":28,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"userLimit","description":"The maximum amount of users allowed in this channel.","type":[[["number"]]],"meta":{"line":36,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"members","description":"The members in this voice-based channel","readonly":true,"type":[[["Collection","<"],["Snowflake",", "],["GuildMember",">"]]],"meta":{"line":45,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"full","description":"Checks if the voice-based channel is full","readonly":true,"type":[[["boolean"]]],"meta":{"line":60,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"guild","description":"The guild the channel is in","type":[[["Guild"]]],"meta":{"line":28,"file":"GuildChannel.js","path":"src/structures"}},{"name":"guildId","description":"The id of the guild the channel is in","type":[[["Snowflake"]]],"meta":{"line":34,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionOverwrites","description":"A manager of permission overwrites that belong to this channel","type":[[["PermissionOverwriteManager"]]],"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"name":"name","description":"The name of the guild channel","type":[[["string"]]],"meta":{"line":54,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rawPosition","description":"The raw position of the channel from Discord","type":[[["number"]]],"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parentId","description":"The id of the category parent of this channel","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":74,"file":"GuildChannel.js","path":"src/structures"}},{"name":"parent","description":"The category parent of this channel","readonly":true,"nullable":true,"type":[[["CategoryChannel"]]],"meta":{"line":96,"file":"GuildChannel.js","path":"src/structures"}},{"name":"permissionsLocked","description":"If the permissionOverwrites match the parent channel, null if no parent","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":105,"file":"GuildChannel.js","path":"src/structures"}},{"name":"position","description":"The position of the channel","readonly":true,"type":[[["number"]]],"meta":{"line":146,"file":"GuildChannel.js","path":"src/structures"}},{"name":"deletable","description":"Whether the channel is deletable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":401,"file":"GuildChannel.js","path":"src/structures"}},{"name":"manageable","description":"Whether the channel is manageable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":410,"file":"GuildChannel.js","path":"src/structures"}},{"name":"viewable","description":"Whether the channel is viewable by the client user","readonly":true,"type":[[["boolean"]]],"meta":{"line":430,"file":"GuildChannel.js","path":"src/structures"}},{"name":"type","description":"The type of the channel","type":[[["ChannelType"]]],"meta":{"line":40,"file":"Channel.js","path":"src/structures"}},{"name":"id","description":"The channel's id","type":[[["Snowflake"]]],"meta":{"line":50,"file":"Channel.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the channel was created at","readonly":true,"type":[[["number"]]],"meta":{"line":58,"file":"Channel.js","path":"src/structures"}},{"name":"createdAt","description":"The time the channel was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":67,"file":"Channel.js","path":"src/structures"}},{"name":"deleted","description":"Whether or not the structure has been deleted","deprecated":"This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091","type":[[["boolean"]]],"meta":{"line":76,"file":"Channel.js","path":"src/structures"}},{"name":"partial","description":"Whether this Channel is a partial\nThis is always false outside of DM channels.","readonly":true,"type":[[["boolean"]]],"meta":{"line":107,"file":"Channel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"methods":[{"name":"setBitrate","description":"Sets the bitrate of the channel.","examples":["// Set the bitrate of a voice channel\nvoiceChannel.setBitrate(48_000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate}bps for ${vc.name}`))\n .catch(console.error);"],"params":[{"name":"bitrate","description":"The new bitrate","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the channel's bitrate","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["VoiceChannel",">"]]],"meta":{"line":86,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"setUserLimit","description":"Sets the user limit of the channel.","examples":["// Set the user limit of a voice channel\nvoiceChannel.setUserLimit(42)\n .then(vc => console.log(`Set user limit to ${vc.userLimit} for ${vc.name}`))\n .catch(console.error);"],"params":[{"name":"userLimit","description":"The new user limit","type":[[["number"]]]},{"name":"reason","description":"Reason for changing the user limit","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["VoiceChannel",">"]]],"meta":{"line":101,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"setVideoQualityMode","description":"Sets the camera video quality mode of the channel.","params":[{"name":"videoQualityMode","description":"The new camera video quality mode.","type":[[["VideoQualityMode"]],[["number"]]]},{"name":"reason","description":"Reason for changing the camera video quality mode.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["VoiceChannel",">"]]],"meta":{"line":111,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"setRTCRegion","description":"Sets the RTC region of the channel.","inherits":"BaseGuildVoiceChannel#setRTCRegion","inherited":true,"examples":["// Set the RTC region to sydney\nchannel.setRTCRegion('sydney');","// Remove a fixed region for this channel - let Discord decide automatically\nchannel.setRTCRegion(null, 'We want to let Discord decide.');"],"params":[{"name":"rtcRegion","description":"The new region of the channel. Set to `null` to remove a specific region for the channel","nullable":true,"type":[[["string"]]]},{"name":"reason","description":"The reason for modifying this region.","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["BaseGuildVoiceChannel",">"]]],"meta":{"line":95,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"createInvite","description":"Creates an invite to this guild channel.","inherits":"BaseGuildVoiceChannel#createInvite","inherited":true,"examples":["// Create an invite to a channel\nchannel.createInvite()\n .then(invite => console.log(`Created an invite with a code of ${invite.code}`))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for creating the invite","optional":true,"default":"{}","type":[[["CreateInviteOptions"]]]}],"returns":[[["Promise","<"],["Invite",">"]]],"meta":{"line":109,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"fetchInvites","description":"Fetches a collection of invites to this guild channel.\nResolves with a collection mapping invites by their codes.","inherits":"BaseGuildVoiceChannel#fetchInvites","inherited":true,"params":[{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Collection","<"],["string",", "],["Invite",">>"]]],"meta":{"line":119,"file":"BaseGuildVoiceChannel.js","path":"src/structures"}},{"name":"permissionsFor","description":"Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.","inherits":"GuildChannel#permissionsFor","inherited":true,"params":[{"name":"memberOrRole","description":"The member or role to obtain the overall permissions for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":{"types":[[["Readonly","<"],["Permissions",">"]]],"nullable":true},"meta":{"line":157,"file":"GuildChannel.js","path":"src/structures"}},{"name":"memberPermissions","description":"Gets the overall set of permissions for a member in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#memberPermissions","inherited":true,"params":[{"name":"member","description":"The member to obtain the overall permissions for","type":[[["GuildMember"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","default":true,"type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":197,"file":"GuildChannel.js","path":"src/structures"}},{"name":"rolePermissions","description":"Gets the overall set of permissions for a role in this channel, taking into account channel overwrites.","access":"private","inherits":"GuildChannel#rolePermissions","inherited":true,"params":[{"name":"role","description":"The role to obtain the overall permissions for","type":[[["Role"]]]},{"name":"checkAdmin","description":"Whether having `ADMINISTRATOR` will return all permissions","type":[[["boolean"]]]}],"returns":[[["Readonly","<"],["Permissions",">"]]],"meta":{"line":226,"file":"GuildChannel.js","path":"src/structures"}},{"name":"lockPermissions","description":"Locks in the permission overwrites from the parent channel.","inherits":"GuildChannel#lockPermissions","inherited":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":246,"file":"GuildChannel.js","path":"src/structures"}},{"name":"edit","description":"Edits the channel.","inherits":"GuildChannel#edit","inherited":true,"examples":["// Edit a channel\nchannel.edit({ name: 'new-channel' })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"data","description":"The new data for the channel","type":[[["ChannelData"]]]},{"name":"reason","description":"Reason for editing this channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":274,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setName","description":"Sets a new name for the guild channel.","inherits":"GuildChannel#setName","inherited":true,"examples":["// Set a new channel name\nchannel.setName('not_general')\n .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))\n .catch(console.error);"],"params":[{"name":"name","description":"The new name for the guild channel","type":[[["string"]]]},{"name":"reason","description":"Reason for changing the guild channel's name","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":289,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setParent","description":"Sets the parent of this channel.","inherits":"GuildChannel#setParent","inherited":true,"examples":["// Add a parent to a channel\nmessage.channel.setParent('355908108431917066', { lockPermissions: false })\n .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))\n .catch(console.error);"],"params":[{"name":"channel","description":"The category channel to set as the parent","nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"options","description":"The options for setting the parent","optional":true,"default":"{}","type":[[["SetParentOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":311,"file":"GuildChannel.js","path":"src/structures"}},{"name":"setPosition","description":"Sets a new position for the guild channel.","inherits":"GuildChannel#setPosition","inherited":true,"examples":["// Set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.error);"],"params":[{"name":"position","description":"The new position for the guild channel","type":[[["number"]]]},{"name":"options","description":"Options for setting position","optional":true,"type":[[["SetChannelPositionOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":339,"file":"GuildChannel.js","path":"src/structures"}},{"name":"clone","description":"Clones this channel.","inherits":"GuildChannel#clone","inherited":true,"params":[{"name":"options","description":"The options for cloning this channel","optional":true,"type":[[["GuildChannelCloneOptions"]]]}],"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":354,"file":"GuildChannel.js","path":"src/structures"}},{"name":"equals","description":"Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel.\nIn most cases, a simple `channel.id === channel2.id` will do, and is much faster too.","inherits":"GuildChannel#equals","inherited":true,"params":[{"name":"channel","description":"Channel to compare with","type":[[["GuildChannel"]]]}],"returns":[[["boolean"]]],"meta":{"line":376,"file":"GuildChannel.js","path":"src/structures"}},{"name":"delete","description":"Deletes this channel.","inherits":"GuildChannel#delete","inherited":true,"examples":["// Delete the channel\nchannel.delete('making room for new channels')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"reason","description":"Reason for deleting this channel","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["GuildChannel",">"]]],"meta":{"line":447,"file":"GuildChannel.js","path":"src/structures"}},{"name":"toString","description":"When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.","inherits":"Channel#toString","inherited":true,"examples":["// Logs: Hello from <#123456789012345678>!\nconsole.log(`Hello from ${channel}!`);"],"returns":[[["string"]]],"meta":{"line":118,"file":"Channel.js","path":"src/structures"}},{"name":"fetch","description":"Fetches this channel.","inherits":"Channel#fetch","inherited":true,"params":[{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["Channel",">"]]],"meta":{"line":141,"file":"Channel.js","path":"src/structures"}},{"name":"isText","description":"Indicates whether this channel is {@link TextBasedChannels text-based}.","inherits":"Channel#isText","inherited":true,"returns":[[["boolean"]]],"meta":{"line":149,"file":"Channel.js","path":"src/structures"}},{"name":"isVoice","description":"Indicates whether this channel is {@link BaseGuildVoiceChannel voice-based}.","inherits":"Channel#isVoice","inherited":true,"returns":[[["boolean"]]],"meta":{"line":157,"file":"Channel.js","path":"src/structures"}},{"name":"isThread","description":"Indicates whether this channel is a {@link ThreadChannel}.","inherits":"Channel#isThread","inherited":true,"returns":[[["boolean"]]],"meta":{"line":165,"file":"Channel.js","path":"src/structures"}},{"name":"isDirectory","description":"Indicates whether this channel is a {@link DirectoryChannel}","inherits":"Channel#isDirectory","inherited":true,"returns":[[["boolean"]]],"meta":{"line":173,"file":"Channel.js","path":"src/structures"}}],"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"name":"VoiceRegion","description":"Represents a Discord voice region for guilds.","props":[{"name":"id","description":"The region's id","type":[[["string"]]],"meta":{"line":14,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"name","description":"Name of the region","type":[[["string"]]],"meta":{"line":20,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"vip","description":"Whether the region is VIP-only","deprecated":"This property is no longer being sent by the API.","type":[[["boolean"]]],"meta":{"line":27,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"deprecated","description":"Whether the region is deprecated","type":[[["boolean"]]],"meta":{"line":33,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"optimal","description":"Whether the region is optimal","type":[[["boolean"]]],"meta":{"line":39,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"custom","description":"Whether the region is custom","type":[[["boolean"]]],"meta":{"line":45,"file":"VoiceRegion.js","path":"src/structures"}}],"meta":{"line":8,"file":"VoiceRegion.js","path":"src/structures"}},{"name":"VoiceState","description":"Represents the voice state for a Guild Member.","props":[{"name":"guild","description":"The guild of this voice state","type":[[["Guild"]]],"meta":{"line":16,"file":"VoiceState.js","path":"src/structures"}},{"name":"id","description":"The id of the member of this voice state","type":[[["Snowflake"]]],"meta":{"line":21,"file":"VoiceState.js","path":"src/structures"}},{"name":"serverDeaf","description":"Whether this member is deafened server-wide","nullable":true,"type":[[["boolean"]]],"meta":{"line":31,"file":"VoiceState.js","path":"src/structures"}},{"name":"serverMute","description":"Whether this member is muted server-wide","nullable":true,"type":[[["boolean"]]],"meta":{"line":41,"file":"VoiceState.js","path":"src/structures"}},{"name":"selfDeaf","description":"Whether this member is self-deafened","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"VoiceState.js","path":"src/structures"}},{"name":"selfMute","description":"Whether this member is self-muted","nullable":true,"type":[[["boolean"]]],"meta":{"line":61,"file":"VoiceState.js","path":"src/structures"}},{"name":"selfVideo","description":"Whether this member's camera is enabled","nullable":true,"type":[[["boolean"]]],"meta":{"line":71,"file":"VoiceState.js","path":"src/structures"}},{"name":"sessionId","description":"The session id for this member's connection","nullable":true,"type":[[["string"]]],"meta":{"line":81,"file":"VoiceState.js","path":"src/structures"}},{"name":"streaming","description":"Whether this member is streaming using \"Screen Share\"","type":[[["boolean"]]],"meta":{"line":93,"file":"VoiceState.js","path":"src/structures"}},{"name":"channelId","description":"The {@link VoiceChannel} or {@link StageChannel} id the member is in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":103,"file":"VoiceState.js","path":"src/structures"}},{"name":"suppress","description":"Whether this member is suppressed from speaking. This property is specific to stage channels only.","type":[[["boolean"]]],"meta":{"line":113,"file":"VoiceState.js","path":"src/structures"}},{"name":"requestToSpeakTimestamp","description":"The time at which the member requested to speak. This property is specific to stage channels only.","nullable":true,"type":[[["number"]]],"meta":{"line":121,"file":"VoiceState.js","path":"src/structures"}},{"name":"member","description":"The member that this voice state belongs to","readonly":true,"nullable":true,"type":[[["GuildMember"]]],"meta":{"line":134,"file":"VoiceState.js","path":"src/structures"}},{"name":"channel","description":"The channel that the member is connected to","readonly":true,"nullable":true,"type":[[["VoiceChannel"]],[["StageChannel"]]],"meta":{"line":143,"file":"VoiceState.js","path":"src/structures"}},{"name":"deaf","description":"Whether this member is either self-deafened or server-deafened","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":152,"file":"VoiceState.js","path":"src/structures"}},{"name":"mute","description":"Whether this member is either self-muted or server-muted","readonly":true,"nullable":true,"type":[[["boolean"]]],"meta":{"line":161,"file":"VoiceState.js","path":"src/structures"}}],"methods":[{"name":"setMute","description":"Mutes/unmutes the member of this voice state.","params":[{"name":"mute","description":"Whether or not the member should be muted","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for muting or unmuting","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":171,"file":"VoiceState.js","path":"src/structures"}},{"name":"setDeaf","description":"Deafens/undeafens the member of this voice state.","params":[{"name":"deaf","description":"Whether or not the member should be deafened","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"Reason for deafening or undeafening","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":181,"file":"VoiceState.js","path":"src/structures"}},{"name":"disconnect","description":"Disconnects the member from the channel.","params":[{"name":"reason","description":"Reason for disconnecting the member from the channel","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":190,"file":"VoiceState.js","path":"src/structures"}},{"name":"setChannel","description":"Moves the member to a different channel, or disconnects them from the one they're in.","params":[{"name":"channel","description":"Channel to move the member to, or `null` if you want to\ndisconnect them from voice.","type":[[["GuildVoiceChannelResolvable"]],[["null"]]]},{"name":"reason","description":"Reason for moving member to another channel or disconnecting","optional":true,"type":[[["string"]]]}],"returns":[[["Promise","<"],["GuildMember",">"]]],"meta":{"line":201,"file":"VoiceState.js","path":"src/structures"}},{"name":"setRequestToSpeak","description":"Toggles the request to speak in the channel.\nOnly applicable for stage channels and for the client's own voice state.","examples":["// Making the client request to speak in a stage channel (raise its hand)\nguild.me.voice.setRequestToSpeak(true);","// Making the client cancel a request to speak\nguild.me.voice.setRequestToSpeak(false);"],"params":[{"name":"request","description":"Whether or not the client is requesting to become a speaker.","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":217,"file":"VoiceState.js","path":"src/structures"}},{"name":"setSuppressed","description":"Suppress/unsuppress the user. Only applicable for stage channels.","examples":["// Making the client a speaker\nguild.me.voice.setSuppressed(false);","// Making the client an audience member\nguild.me.voice.setSuppressed(true);","// Inviting another user to speak\nvoiceState.setSuppressed(false);","// Moving another user to the audience, or cancelling their invite to speak\nvoiceState.setSuppressed(true);"],"params":[{"name":"suppressed","description":"Whether or not the user should be suppressed.","optional":true,"default":true,"type":[[["boolean"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":247,"file":"VoiceState.js","path":"src/structures"}},{"name":"getPreview","description":"Get URL Image of the user's streaming video (NOT STREAMING !!!)","async":true,"returns":{"types":[[["string"]]],"description":"URL Image of the user's streaming video"},"meta":{"line":266,"file":"VoiceState.js","path":"src/structures"}}],"meta":{"line":9,"file":"VoiceState.js","path":"src/structures"}},{"name":"WebEmbed","description":"Send Embedlink to Discord","props":[{"name":"shorten","description":"Shorten the link","nullable":true,"type":[[["boolean"]]],"meta":{"line":45,"file":"WebEmbed.js","path":"src/structures"}},{"name":"hidden","description":"Hidden Embed link","nullable":true,"type":[[["boolean"]]],"meta":{"line":51,"file":"WebEmbed.js","path":"src/structures"}},{"name":"imageType","description":"Type image of this embed","type":[[["thumbnail"]],[["image"]]],"meta":{"line":62,"file":"WebEmbed.js","path":"src/structures"}},{"name":"title","description":"The title of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":67,"file":"WebEmbed.js","path":"src/structures"}},{"name":"description","description":"The description of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":73,"file":"WebEmbed.js","path":"src/structures"}},{"name":"url","description":"The URL of this embed","nullable":true,"type":[[["string"]]],"meta":{"line":79,"file":"WebEmbed.js","path":"src/structures"}},{"name":"color","description":"The color of this embed","nullable":true,"type":[[["number"]]],"meta":{"line":85,"file":"WebEmbed.js","path":"src/structures"}},{"name":"image","description":"The image of this embed, if there is one","nullable":true,"type":[[["WebEmbedImage"]]],"meta":{"line":100,"file":"WebEmbed.js","path":"src/structures"}},{"name":"thumbnail","description":"The thumbnail of this embed (if there is one)","nullable":true,"type":[[["WebEmbedThumbnail"]]],"meta":{"line":113,"file":"WebEmbed.js","path":"src/structures"}},{"name":"video","description":"The video of this embed (if there is one)","readonly":true,"nullable":true,"type":[[["WebEmbedVideo"]]],"meta":{"line":136,"file":"WebEmbed.js","path":"src/structures"}},{"name":"author","description":"The author of this embed (if there is one)","nullable":true,"type":[[["WebEmbedAuthor"]]],"meta":{"line":158,"file":"WebEmbed.js","path":"src/structures"}},{"name":"provider","description":"The provider of this embed (if there is one)","nullable":true,"type":[[["WebEmbedProvider"]]],"meta":{"line":176,"file":"WebEmbed.js","path":"src/structures"}}],"methods":[{"name":"_setup","access":"private","params":[{"name":"data","description":"The data for the embed","type":[[["Object"]]]}],"meta":{"line":57,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setAuthor","description":"Sets the author of this embed.","params":[{"name":"options","description":"The options to provide for the author.\nProvide `null` to remove the author data.","type":[[["string"]],[["EmbedAuthorData"]],[["null"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":195,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setProvider","description":"Sets the provider of this embed.","params":[{"name":"options","description":"The options to provide for the provider.\nProvide `null` to remove the provider data.","type":[[["string"]],[["EmbedProviderData"]],[["null"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":220,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setColor","description":"Sets the color of this embed.","params":[{"name":"color","description":"The color of the embed","type":[[["ColorResolvable"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":238,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setDescription","description":"Sets the description of this embed.","params":[{"name":"description","description":"The description (Limit 350 characters)","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":248,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setImage","description":"Sets the image of this embed.","params":[{"name":"url","description":"The URL of the image","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":258,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setThumbnail","description":"Sets the thumbnail of this embed.","params":[{"name":"url","description":"The URL of the image","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":273,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setVideo","description":"Sets the video of this embed.","params":[{"name":"url","description":"The URL of the video","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":288,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setTitle","description":"Sets the title of this embed.","params":[{"name":"title","description":"The title","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":298,"file":"WebEmbed.js","path":"src/structures"}},{"name":"setURL","description":"Sets the URL of this embed.","params":[{"name":"url","description":"The URL","type":[[["string"]]]}],"returns":[[["WebEmbed"]]],"meta":{"line":308,"file":"WebEmbed.js","path":"src/structures"}},{"name":"toMessage","description":"Return Message Content + Embed (if hidden, pls check content length because it has 1000+ length)","async":true,"returns":{"types":[[["string"]]],"description":"Message Content"},"meta":{"line":317,"file":"WebEmbed.js","path":"src/structures"}}],"meta":{"line":12,"file":"WebEmbed.js","path":"src/structures"}},{"name":"Webhook","description":"Represents a webhook.","props":[{"name":"client","description":"The client that instantiated the webhook","readonly":true,"type":[[["Client"]]],"meta":{"line":18,"file":"Webhook.js","path":"src/structures"}},{"name":"name","description":"The name of the webhook","type":[[["string"]]],"meta":{"line":34,"file":"Webhook.js","path":"src/structures"}},{"name":"token","description":"The token for the webhook, unavailable for follower webhooks and webhooks owned by another application.","nullable":true,"type":[[["string"]]],"meta":{"line":37,"file":"Webhook.js","path":"src/structures"}},{"name":"avatar","description":"The avatar for the webhook","nullable":true,"type":[[["string"]]],"meta":{"line":49,"file":"Webhook.js","path":"src/structures"}},{"name":"id","description":"The webhook's id","type":[[["Snowflake"]]],"meta":{"line":56,"file":"Webhook.js","path":"src/structures"}},{"name":"type","description":"The type of the webhook","type":[[["WebhookType"]]],"meta":{"line":63,"file":"Webhook.js","path":"src/structures"}},{"name":"guildId","description":"The guild the webhook belongs to","type":[[["Snowflake"]]],"meta":{"line":71,"file":"Webhook.js","path":"src/structures"}},{"name":"channelId","description":"The channel the webhook belongs to","type":[[["Snowflake"]]],"meta":{"line":79,"file":"Webhook.js","path":"src/structures"}},{"name":"owner","description":"The owner of the webhook","nullable":true,"type":[[["User"]],[["APIUser"]]],"meta":{"line":87,"file":"Webhook.js","path":"src/structures"}},{"name":"sourceGuild","description":"The source guild of the webhook","nullable":true,"type":[[["Guild"]],[["APIGuild"]]],"meta":{"line":97,"file":"Webhook.js","path":"src/structures"}},{"name":"sourceChannel","description":"The source channel of the webhook","nullable":true,"type":[[["NewsChannel"]],[["APIChannel"]]],"meta":{"line":107,"file":"Webhook.js","path":"src/structures"}},{"name":"createdTimestamp","description":"The timestamp the webhook was created at","readonly":true,"type":[[["number"]]],"meta":{"line":386,"file":"Webhook.js","path":"src/structures"}},{"name":"createdAt","description":"The time the webhook was created at","readonly":true,"type":[[["Date"]]],"meta":{"line":395,"file":"Webhook.js","path":"src/structures"}},{"name":"url","description":"The URL of this webhook","readonly":true,"type":[[["string"]]],"meta":{"line":404,"file":"Webhook.js","path":"src/structures"}}],"methods":[{"name":"send","description":"Sends a message with this webhook.","examples":["// Send a basic message\nwebhook.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a basic message in a thread\nwebhook.send({ content: 'hello!', threadId: '836856309672348295' })\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nwebhook.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nwebhook.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nwebhook.send({\n content: 'This is an embed',\n embeds: [{\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":185,"file":"Webhook.js","path":"src/structures"}},{"name":"sendSlackMessage","description":"Sends a raw slack message with this webhook.","see":["{@link https://api.slack.com/messaging/webhooks}"],"examples":["// Send a slack message\nwebhook.sendSlackMessage({\n 'username': 'Wumpus',\n 'attachments': [{\n 'pretext': 'this looks pretty cool',\n 'color': '#F0F',\n 'footer_icon': 'http://snek.s3.amazonaws.com/topSnek.png',\n 'footer': 'Powered by sneks',\n 'ts': Date.now() / 1_000\n }]\n}).catch(console.error);"],"params":[{"name":"body","description":"The raw body to send","type":[[["Object"]]]}],"async":true,"returns":[[["Promise","<"],["boolean",">"]]],"meta":{"line":225,"file":"Webhook.js","path":"src/structures"}},{"name":"edit","description":"Edits this webhook.","params":[{"name":"options","description":"Options for editing the webhook","type":[[["WebhookEditData"]]]},{"name":"reason","description":"Reason for editing the webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["Webhook",">"]]],"meta":{"line":250,"file":"Webhook.js","path":"src/structures"}},{"name":"fetchMessage","description":"Gets a message that was sent by this webhook.","params":[{"name":"message","description":"The id of the message to fetch","type":[[["Snowflake"]],[["original","'"]]]},{"name":"cacheOrOptions","description":"The options to provide to fetch the message.\nA **deprecated** boolean may be passed instead to specify whether to cache the message.","optional":true,"default":"{}","type":[[["WebhookFetchMessageOptions"]],[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":283,"file":"Webhook.js","path":"src/structures"}},{"name":"editMessage","description":"Edits a message that was sent by this webhook.","params":[{"name":"message","description":"The message to edit","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"description":"Returns the raw message data if the webhook was instantiated as a\n{@link WebhookClient} or if the channel is uncached, otherwise a {@link Message} will be returned"},"meta":{"line":318,"file":"Webhook.js","path":"src/structures"}},{"name":"delete","description":"Deletes the webhook.","params":[{"name":"reason","description":"Reason for deleting this webhook","optional":true,"type":[[["string"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":357,"file":"Webhook.js","path":"src/structures"}},{"name":"deleteMessage","description":"Delete a message that was sent by this webhook.","params":[{"name":"message","description":"The message to delete","type":[[["MessageResolvable"]],[["original","'"]]]},{"name":"threadId","description":"The id of the thread this message belongs to","optional":true,"type":[[["Snowflake"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":367,"file":"Webhook.js","path":"src/structures"}},{"name":"avatarURL","description":"A link to the webhook's avatar.","params":[{"name":"options","description":"Options for the Image URL","optional":true,"default":"{}","type":[[["StaticImageURLOptions"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":413,"file":"Webhook.js","path":"src/structures"}},{"name":"isChannelFollower","description":"Whether or not this webhook is a channel follower webhook.","returns":[[["boolean"]]],"meta":{"line":422,"file":"Webhook.js","path":"src/structures"}},{"name":"isIncoming","description":"Whether or not this webhook is an incoming webhook.","returns":[[["boolean"]]],"meta":{"line":430,"file":"Webhook.js","path":"src/structures"}}],"meta":{"line":16,"file":"Webhook.js","path":"src/structures"}},{"name":"WelcomeChannel","description":"Represents a channel link in a guild's welcome screen.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild for this welcome channel","type":[[["Guild"]],[["InviteGuild"]]],"meta":{"line":18,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"description","description":"The description of this welcome channel","type":[[["string"]]],"meta":{"line":24,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"_emoji","description":"The raw emoji data","access":"private","type":[[["Object"]]],"meta":{"line":31,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"channelId","description":"The id of this welcome channel","type":[[["Snowflake"]]],"meta":{"line":40,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"channel","description":"The channel of this welcome channel","nullable":true,"type":[[["TextChannel"]],[["NewsChannel"]],[["StoreChannel"]]],"meta":{"line":47,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"emoji","description":"The emoji of this welcome channel","type":[[["GuildEmoji"]],[["Emoji"]]],"meta":{"line":55,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":10,"file":"WelcomeChannel.js","path":"src/structures"}},{"name":"WelcomeScreen","description":"Represents a welcome screen.","extends":[[["Base"]]],"props":[{"name":"guild","description":"The guild for this welcome screen","type":[[["Guild"]]],"meta":{"line":19,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"description","description":"The description of this welcome screen","nullable":true,"type":[[["string"]]],"meta":{"line":25,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"welcomeChannels","description":"Collection of welcome channels belonging to this welcome screen","type":[[["Collection","<"],["Snowflake",", "],["WelcomeChannel",">"]]],"meta":{"line":31,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"enabled","description":"Whether the welcome screen is enabled on the guild or not","type":[[["boolean"]]],"meta":{"line":43,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"client","description":"The client that instantiated this","readonly":true,"type":[[["Client"]]],"meta":{"line":11,"file":"Base.js","path":"src/structures"}}],"meta":{"line":11,"file":"WelcomeScreen.js","path":"src/structures"}},{"name":"Widget","description":"Represents a Widget.","props":[{"name":"id","description":"The id of the guild.","type":[[["Snowflake"]]],"meta":{"line":29,"file":"Widget.js","path":"src/structures"}},{"name":"name","description":"The name of the guild.","type":[[["string"]]],"meta":{"line":36,"file":"Widget.js","path":"src/structures"}},{"name":"instantInvite","description":"The invite of the guild.","nullable":true,"type":[[["string"]]],"meta":{"line":44,"file":"Widget.js","path":"src/structures"}},{"name":"channels","description":"The list of channels in the guild.","type":[[["Collection","<"],["Snowflake",", "],["WidgetChannel",">"]]],"meta":{"line":51,"file":"Widget.js","path":"src/structures"}},{"name":"members","description":"The list of members in the guild.\nThese strings are just arbitrary numbers, they aren't Snowflakes.","type":[[["Collection","<"],["string",", "],["WidgetMember",">"]]],"meta":{"line":61,"file":"Widget.js","path":"src/structures"}},{"name":"presenceCount","description":"The number of members online.","type":[[["number"]]],"meta":{"line":71,"file":"Widget.js","path":"src/structures"}}],"methods":[{"name":"fetch","description":"Update the Widget.","async":true,"returns":[[["Promise","<"],["Widget",">"]]],"meta":{"line":79,"file":"Widget.js","path":"src/structures"}}],"meta":{"line":10,"file":"Widget.js","path":"src/structures"}},{"name":"WidgetMember","description":"Represents a WidgetMember.","props":[{"name":"id","description":"The id of the user. It's an arbitrary number.","type":[[["string"]]],"meta":{"line":22,"file":"WidgetMember.js","path":"src/structures"}},{"name":"username","description":"The username of the member.","type":[[["string"]]],"meta":{"line":28,"file":"WidgetMember.js","path":"src/structures"}},{"name":"discriminator","description":"The discriminator of the member.","type":[[["string"]]],"meta":{"line":34,"file":"WidgetMember.js","path":"src/structures"}},{"name":"avatar","description":"The avatar of the member.","nullable":true,"type":[[["string"]]],"meta":{"line":40,"file":"WidgetMember.js","path":"src/structures"}},{"name":"status","description":"The status of the member.","type":[[["PresenceStatus"]]],"meta":{"line":46,"file":"WidgetMember.js","path":"src/structures"}},{"name":"deaf","description":"If the member is server deafened","nullable":true,"type":[[["boolean"]]],"meta":{"line":52,"file":"WidgetMember.js","path":"src/structures"}},{"name":"mute","description":"If the member is server muted","nullable":true,"type":[[["boolean"]]],"meta":{"line":58,"file":"WidgetMember.js","path":"src/structures"}},{"name":"selfDeaf","description":"If the member is self deafened","nullable":true,"type":[[["boolean"]]],"meta":{"line":64,"file":"WidgetMember.js","path":"src/structures"}},{"name":"selfMute","description":"If the member is self muted","nullable":true,"type":[[["boolean"]]],"meta":{"line":70,"file":"WidgetMember.js","path":"src/structures"}},{"name":"suppress","description":"If the member is suppressed","nullable":true,"type":[[["boolean"]]],"meta":{"line":76,"file":"WidgetMember.js","path":"src/structures"}},{"name":"channelId","description":"The id of the voice channel the member is in, if any","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":82,"file":"WidgetMember.js","path":"src/structures"}},{"name":"avatarURL","description":"The avatar URL of the member.","type":[[["string"]]],"meta":{"line":88,"file":"WidgetMember.js","path":"src/structures"}},{"name":"activity","description":"The activity of the member.","nullable":true,"type":[[["WidgetActivity"]]],"meta":{"line":94,"file":"WidgetMember.js","path":"src/structures"}}],"meta":{"line":8,"file":"WidgetMember.js","path":"src/structures"}},{"name":"ActivityFlags","description":"Data structure that makes it easy to interact with an {@link Activity#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"ActivityFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]],[["bigint"]]],"meta":{"line":17,"file":"BitField.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric activity flags. All available properties:\n* `INSTANCE`\n* `JOIN`\n* `SPECTATE`\n* `JOIN_REQUEST`\n* `SYNC`\n* `PLAY`\n* `PARTY_PRIVACY_FRIENDS`\n* `PARTY_PRIVACY_VOICE_CHANNEL`\n* `EMBEDDED`","see":["{@link https://discord.com/developers/docs/topics/gateway#activity-object-activity-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":32,"file":"ActivityFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"ActivityFlags.js","path":"src/util"}},{"name":"ApplicationFlags","description":"Data structure that makes it easy to interact with a {@link ClientApplication#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"ApplicationFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":18,"file":"ApplicationFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric application flags. All available properties:\n* `GATEWAY_PRESENCE`\n* `GATEWAY_PRESENCE_LIMITED`\n* `GATEWAY_GUILD_MEMBERS`\n* `GATEWAY_GUILD_MEMBERS_LIMITED`\n* `VERIFICATION_PENDING_GUILD_LIMIT`\n* `EMBEDDED`\n* `GATEWAY_MESSAGE_CONTENT`\n* `GATEWAY_MESSAGE_CONTENT_LIMITED`","see":["{@link https://discord.com/developers/docs/resources/application#application-object-application-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":37,"file":"ApplicationFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"ApplicationFlags.js","path":"src/util"}},{"name":"BitField","description":"Data structure that makes it easy to interact with a bitfield.","construct":{"name":"BitField","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":"this.constructor.defaultBit","type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]],[["bigint"]]],"meta":{"line":17,"file":"BitField.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric bitfield flags.\nDefined in extension classes","scope":"static","abstract":true,"type":[[["Object"]]],"meta":{"line":162,"file":"BitField.js","path":"src/util"}},{"name":"defaultBit","scope":"static","access":"private","type":[[["number"]],[["bigint"]]],"meta":{"line":168,"file":"BitField.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}},{"name":"resolve","description":"Resolves bitfields to their numeric form.","scope":"static","params":[{"name":"bit","description":"bit(s) to resolve","optional":true,"type":[[["BitFieldResolvable"]]]}],"returns":[[["number"]],[["bigint"]]],"meta":{"line":143,"file":"BitField.js","path":"src/util"}}],"meta":{"line":8,"file":"BitField.js","path":"src/util"}},{"name":"DataResolver","description":"The DataResolver identifies different objects and tries to resolve a specific piece of information from them.","access":"private","methods":[{"name":"resolveCode","description":"Resolves the string to a code based on the passed regex.","scope":"static","params":[{"name":"data","description":"The string to resolve","type":[[["string"]]]},{"name":"regex","description":"The RegExp used to extract the code","type":[[["RegExp"]]]}],"returns":[[["string"]]],"meta":{"line":36,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveInviteCode","description":"Resolves InviteResolvable to an invite code.","scope":"static","params":[{"name":"data","description":"The invite resolvable to resolve","type":[[["InviteResolvable"]]]}],"returns":[[["string"]]],"meta":{"line":45,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveGuildTemplateCode","description":"Resolves GuildTemplateResolvable to a template code.","scope":"static","params":[{"name":"data","description":"The template resolvable to resolve","type":[[["GuildTemplateResolvable"]]]}],"returns":[[["string"]]],"meta":{"line":54,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveImage","description":"Resolves a Base64Resolvable, a string, or a BufferResolvable to a Base 64 image.","scope":"static","params":[{"name":"image","description":"The image to be resolved","type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"async":true,"returns":[[["Promise",""],["string",">"]]],"meta":{"line":64,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveBase64","description":"Resolves a Base64Resolvable to a Base 64 image.","scope":"static","params":[{"name":"data","description":"The base 64 resolvable you want to resolve","type":[[["Base64Resolvable"]]]}],"returns":{"types":[[["string"]]],"nullable":true},"meta":{"line":85,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveFile","description":"Resolves a BufferResolvable to a Buffer or a Stream.","scope":"static","params":[{"name":"resource","description":"The buffer or stream resolvable to resolve","type":[[["BufferResolvable"]],[["Stream"]]]}],"async":true,"returns":[[["Promise","<("],["Buffer","|"],["Stream",")>"]]],"meta":{"line":109,"file":"DataResolver.js","path":"src/util"}},{"name":"resolveFileAsBuffer","description":"Resolves a BufferResolvable to a Buffer.","scope":"static","params":[{"name":"resource","description":"The buffer or stream resolvable to resolve","type":[[["BufferResolvable"]],[["Stream"]]]}],"async":true,"returns":[[["Promise","<"],["Buffer",">"]]],"meta":{"line":135,"file":"DataResolver.js","path":"src/util"}}],"meta":{"line":15,"file":"DataResolver.js","path":"src/util"}},{"name":"Formatters","description":"Contains various Discord-specific functions for formatting messages.","props":[{"name":"TimestampStyles","description":"The message formatting timestamp\n[styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord.","scope":"static","type":[[["Object","<"],["string",", "],["TimestampStylesString",">"]]],"meta":{"line":178,"file":"Formatters.js","path":"src/util"}}],"methods":[{"name":"blockQuote","description":"Formats the content into a block quote. This needs to be at the start of the line for Discord to format it.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":28,"file":"Formatters.js","path":"src/util"}},{"name":"bold","description":"Formats the content into bold text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":37,"file":"Formatters.js","path":"src/util"}},{"name":"channelMention","description":"Formats a channel id into a channel mention.","scope":"static","params":[{"name":"channelId","description":"The channel id to format.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":46,"file":"Formatters.js","path":"src/util"}},{"name":"codeBlock","description":"Wraps the content inside a code block with an optional language.","scope":"static","params":[{"name":"contentOrLanguage","description":"The language to use, content if a second parameter isn't provided.","type":[[["string"]]]},{"name":"content","description":"The content to wrap.","optional":true,"type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":55,"file":"Formatters.js","path":"src/util"}},{"name":"formatEmoji","description":"Formats an emoji id into a fully qualified emoji identifier","scope":"static","params":[{"name":"emojiId","description":"The emoji id to format.","type":[[["string"]]]},{"name":"animated","description":"Whether the emoji is animated or not. Defaults to `false`","optional":true,"type":[[["boolean"]]]}],"returns":[[["string"]]],"meta":{"line":65,"file":"Formatters.js","path":"src/util"}},{"name":"hideLinkEmbed","description":"Wraps the URL into `<>`, which stops it from embedding.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":75,"file":"Formatters.js","path":"src/util"}},{"name":"hyperlink","description":"Formats the content and the URL into a masked URL with an optional title.","scope":"static","params":[{"name":"content","description":"The content to display.","type":[[["string"]]]},{"name":"url","description":"The URL the content links to.","type":[[["string"]]]},{"name":"title","description":"The title shown when hovering on the masked link.","optional":true,"type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":84,"file":"Formatters.js","path":"src/util"}},{"name":"inlineCode","description":"Wraps the content inside \\`backticks\\`, which formats it as inline code.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":95,"file":"Formatters.js","path":"src/util"}},{"name":"italic","description":"Formats the content into italic text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":104,"file":"Formatters.js","path":"src/util"}},{"name":"quote","description":"Formats the content into a quote. This needs to be at the start of the line for Discord to format it.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":113,"file":"Formatters.js","path":"src/util"}},{"name":"roleMention","description":"Formats a role id into a role mention.","scope":"static","params":[{"name":"roleId","description":"The role id to format.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":122,"file":"Formatters.js","path":"src/util"}},{"name":"spoiler","description":"Formats the content into spoiler text.","scope":"static","params":[{"name":"content","description":"The content to spoiler.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":131,"file":"Formatters.js","path":"src/util"}},{"name":"strikethrough","description":"Formats the content into strike-through text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":140,"file":"Formatters.js","path":"src/util"}},{"name":"time","description":"Formats a date into a short date-time string.","scope":"static","params":[{"name":"date","description":"The date to format.","optional":true,"type":[[["number"]],[["Date"]]]},{"name":"style","description":"The style to use.","optional":true,"type":[[["TimestampStylesString"]]]}],"returns":[[["string"]]],"meta":{"line":149,"file":"Formatters.js","path":"src/util"}},{"name":"underscore","description":"Formats the content into underscored text.","scope":"static","params":[{"name":"content","description":"The content to wrap.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":180,"file":"Formatters.js","path":"src/util"}},{"name":"userMention","description":"Formats a user id into a user mention.","scope":"static","params":[{"name":"userId","description":"The user id to format.","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":189,"file":"Formatters.js","path":"src/util"}}],"meta":{"line":26,"file":"Formatters.js","path":"src/util"}},{"name":"Intents","description":"Data structure that makes it easy to calculate intents.","extends":[[["BitField"]]],"construct":{"name":"Intents","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["IntentsResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]],[["bigint"]]],"meta":{"line":17,"file":"BitField.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric WebSocket intents. All available properties:\n* `GUILDS`\n* `GUILD_MEMBERS`\n* `GUILD_BANS`\n* `GUILD_EMOJIS_AND_STICKERS`\n* `GUILD_INTEGRATIONS`\n* `GUILD_WEBHOOKS`\n* `GUILD_INVITES`\n* `GUILD_VOICE_STATES`\n* `GUILD_PRESENCES`\n* `GUILD_MESSAGES`\n* `GUILD_MESSAGE_REACTIONS`\n* `GUILD_MESSAGE_TYPING`\n* `DIRECT_MESSAGES`\n* `DIRECT_MESSAGE_REACTIONS`\n* `DIRECT_MESSAGE_TYPING`\n* `GUILD_SCHEDULED_EVENTS`","see":["{@link https://discord.com/developers/docs/topics/gateway#list-of-intents}"],"scope":"static","type":[[["Object"]]],"meta":{"line":47,"file":"Intents.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":8,"file":"Intents.js","path":"src/util"}},{"name":"LimitedCollection","description":"A Collection which holds a max amount of entries and sweeps periodically.","extends":[[["Collection"]]],"construct":{"name":"LimitedCollection","params":[{"name":"options","description":"Options for constructing the Collection.","optional":true,"default":"{}","type":[[["LimitedCollectionOptions"]]]},{"name":"iterable","description":"Optional entries passed to the Map constructor.","optional":true,"default":null,"type":[[["Iterable"]]]}]},"props":[{"name":"maxSize","description":"The max size of the Collection.","type":[[["number"]]],"meta":{"line":63,"file":"LimitedCollection.js","path":"src/util"}},{"name":"keepOverLimit","description":"A function called to check if an entry should be kept when the Collection is at max size.","nullable":true,"type":[[["function"]]],"meta":{"line":69,"file":"LimitedCollection.js","path":"src/util"}},{"name":"sweepFilter","description":"A function called every sweep interval that returns a function passed to `sweep`.","nullable":true,"deprecated":"in favor of {@link Client#sweepers}","type":[[["SweepFilter"]]],"meta":{"line":76,"file":"LimitedCollection.js","path":"src/util"}},{"name":"interval","description":"The id of the interval being used to sweep.","nullable":true,"deprecated":"in favor of {@link Client#sweepers}","type":[[["Timeout"]]],"meta":{"line":83,"file":"LimitedCollection.js","path":"src/util"}}],"methods":[{"name":"filterByLifetime","description":"Create a sweepFilter function that uses a lifetime to determine sweepability.","scope":"static","deprecated":"Use {@link Sweepers.filterByLifetime} instead","params":[{"name":"options","description":"The options used to generate the filter function","optional":true,"default":"{}","type":[[["LifetimeFilterOptions"]]]}],"returns":[[["SweepFilter"]]],"meta":{"line":114,"file":"LimitedCollection.js","path":"src/util"}}],"meta":{"line":37,"file":"LimitedCollection.js","path":"src/util"}},{"name":"MessageFlags","description":"Data structure that makes it easy to interact with a {@link Message#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"MessageFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":18,"file":"MessageFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric message flags. All available properties:\n* `CROSSPOSTED`\n* `IS_CROSSPOST`\n* `SUPPRESS_EMBEDS`\n* `SOURCE_MESSAGE_DELETED`\n* `URGENT`\n* `HAS_THREAD`\n* `EPHEMERAL`\n* `LOADING`","see":["{@link https://discord.com/developers/docs/resources/channel#message-object-message-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":37,"file":"MessageFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"MessageFlags.js","path":"src/util"}},{"name":"Options","description":"Contains various utilities for client options.","props":[{"name":"defaultMakeCacheSettings","description":"The default settings passed to {@link Options.cacheWithLimits}.\nThe caches that this changes are:\n* `MessageManager` - Limit to 200 messages\n* `ChannelManager` - Sweep archived threads\n* `GuildChannelManager` - Sweep archived threads\n* `ThreadManager` - Sweep archived threads\nIf you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.\n`makeCache: Options.cacheWithLimits({ ...Options.defaultMakeCacheSettings, ReactionManager: 0 })`","scope":"static","type":[[["Object","<"],["string",", ("],["LimitedCollectionOptions","|"],["number",")>"]]],"meta":{"line":323,"file":"Options.js","path":"src/util"}},{"name":"defaultSweeperSettings","description":"The default settings passed to {@link Options.sweepers} (for v14).\nThe sweepers that this changes are:\n* `threads` - Sweep archived threads every hour, removing those archived more than 4 hours ago\nIf you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.\n`sweepers: { ...Options.defaultSweeperSettings, messages: { interval: 300, lifetime: 600 } })`","scope":"static","type":[[["SweeperOptions"]]],"meta":{"line":352,"file":"Options.js","path":"src/util"}}],"methods":[{"name":"createDefault","description":"The default client options.","scope":"static","returns":[[["ClientOptions"]]],"meta":{"line":137,"file":"Options.js","path":"src/util"}},{"name":"cacheWithLimits","description":"Create a cache factory using predefined settings to sweep or limit.","scope":"static","examples":["// Store up to 200 messages per channel and discard archived threads if they were archived more than 4 hours ago.\n// Note archived threads will remain in the guild and client caches with these settings\nOptions.cacheWithLimits({\n MessageManager: 200,\n ThreadManager: {\n sweepInterval: 3600,\n sweepFilter: LimitedCollection.filterByLifetime({\n getComparisonTimestamp: e => e.archiveTimestamp,\n excludeFromSweep: e => !e.archived,\n }),\n },\n });","// Sweep messages every 5 minutes, removing messages that have not been edited or created in the last 30 minutes\nOptions.cacheWithLimits({\n // Keep default thread sweeping behavior\n ...Options.defaultMakeCacheSettings,\n // Override MessageManager\n MessageManager: {\n sweepInterval: 300,\n sweepFilter: LimitedCollection.filterByLifetime({\n lifetime: 1800,\n getComparisonTimestamp: e => e.editedTimestamp ?? e.createdTimestamp,\n })\n }\n});"],"params":[{"name":"settings","description":"Settings passed to the relevant constructor.\nIf no setting is provided for a manager, it uses Collection.\nIf a number is provided for a manager, it uses that number as the max size for a LimitedCollection.\nIf LimitedCollectionOptions are provided for a manager, it uses those settings to form a LimitedCollection.","optional":true,"default":"{}","type":[[["Object","<"],["string",", ("],["LimitedCollectionOptions","|"],["number",")>"]]]}],"returns":[[["CacheFactory"]]],"meta":{"line":272,"file":"Options.js","path":"src/util"}},{"name":"cacheEverything","description":"Create a cache factory that always caches everything.","scope":"static","returns":[[["CacheFactory"]]],"meta":{"line":307,"file":"Options.js","path":"src/util"}}],"meta":{"line":132,"file":"Options.js","path":"src/util"}},{"name":"Permissions","description":"Data structure that makes it easy to interact with a permission bitfield. All {@link GuildMember}s have a set of\npermissions in their guild, and each channel in the guild may also have {@link PermissionOverwrites} for the member\nthat override their default permissions.","extends":[[["BitField"]]],"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["bigint"]]],"meta":{"line":12,"file":"Permissions.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric permission flags. All available properties:\n* `CREATE_INSTANT_INVITE` (create invitations to the guild)\n* `KICK_MEMBERS`\n* `BAN_MEMBERS`\n* `ADMINISTRATOR` (implicitly has *all* permissions, and bypasses all channel overwrites)\n* `MANAGE_CHANNELS` (edit and reorder channels)\n* `MANAGE_GUILD` (edit the guild information, region, etc.)\n* `ADD_REACTIONS` (add new reactions to messages)\n* `VIEW_AUDIT_LOG`\n* `PRIORITY_SPEAKER`\n* `STREAM`\n* `VIEW_CHANNEL`\n* `SEND_MESSAGES`\n* `SEND_TTS_MESSAGES`\n* `MANAGE_MESSAGES` (delete messages and reactions)\n* `EMBED_LINKS` (links posted will have a preview embedded)\n* `ATTACH_FILES`\n* `READ_MESSAGE_HISTORY` (view messages that were posted prior to opening Discord)\n* `MENTION_EVERYONE`\n* `USE_EXTERNAL_EMOJIS` (use emojis from different guilds)\n* `VIEW_GUILD_INSIGHTS`\n* `CONNECT` (connect to a voice channel)\n* `SPEAK` (speak in a voice channel)\n* `MUTE_MEMBERS` (mute members across all voice channels)\n* `DEAFEN_MEMBERS` (deafen members across all voice channels)\n* `MOVE_MEMBERS` (move members between voice channels)\n* `USE_VAD` (use voice activity detection)\n* `CHANGE_NICKNAME`\n* `MANAGE_NICKNAMES` (change other members' nicknames)\n* `MANAGE_ROLES`\n* `MANAGE_WEBHOOKS`\n* `MANAGE_EMOJIS_AND_STICKERS`\n* `USE_APPLICATION_COMMANDS`\n* `REQUEST_TO_SPEAK`\n* `MANAGE_EVENTS`\n* `MANAGE_THREADS`\n* `USE_PUBLIC_THREADS` (deprecated)\n* `CREATE_PUBLIC_THREADS`\n* `USE_PRIVATE_THREADS` (deprecated)\n* `CREATE_PRIVATE_THREADS`\n* `USE_EXTERNAL_STICKERS` (use stickers from different guilds)\n* `SEND_MESSAGES_IN_THREADS`\n* `START_EMBEDDED_ACTIVITIES`\n* `MODERATE_MEMBERS`","see":["{@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags}"],"scope":"static","type":[[["Object","<"],["string",", "],["bigint",">"]]],"meta":{"line":114,"file":"Permissions.js","path":"src/util"}},{"name":"ALL","description":"Bitfield representing every permission combined","scope":"static","type":[[["bigint"]]],"meta":{"line":165,"file":"Permissions.js","path":"src/util"}},{"name":"DEFAULT","description":"Bitfield representing the default permissions for users","scope":"static","type":[[["bigint"]]],"meta":{"line":171,"file":"Permissions.js","path":"src/util"}},{"name":"STAGE_MODERATOR","description":"Bitfield representing the permissions required for moderators of stage channels","scope":"static","type":[[["bigint"]]],"meta":{"line":177,"file":"Permissions.js","path":"src/util"}}],"methods":[{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"checkAdmin","description":"Whether to allow the administrator permission to override","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":33,"file":"Permissions.js","path":"src/util"}},{"name":"any","description":"Checks whether the bitfield has a permission, or any of multiple permissions.","params":[{"name":"permission","description":"Permission(s) to check for","type":[[["PermissionResolvable"]]]},{"name":"checkAdmin","description":"Whether to allow the administrator permission to override","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"Permissions.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a permission, or multiple permissions.","params":[{"name":"permission","description":"Permission(s) to check for","type":[[["PermissionResolvable"]]]},{"name":"checkAdmin","description":"Whether to allow the administrator permission to override","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["boolean"]]],"meta":{"line":53,"file":"Permissions.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the permissions available.","returns":[[["Array","<"],["string",">"]]],"meta":{"line":61,"file":"Permissions.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}}],"meta":{"line":11,"file":"Permissions.js","path":"src/util"}},{"name":"SnowflakeUtil","description":"A container for useful snowflake-related methods.","props":[{"name":"EPOCH","description":"Discord's epoch value (2015-01-01T00:00:00.000Z).","scope":"static","readonly":true,"type":[[["number"]]],"meta":{"line":87,"file":"SnowflakeUtil.js","path":"src/util"}}],"methods":[{"name":"generate","description":"Generates a Discord snowflake.\nThis hardcodes the worker's id as 1 and the process's id as 0.","scope":"static","params":[{"name":"timestamp","description":"Timestamp or date of the snowflake to generate","optional":true,"default":"Date.now()","type":[[["number"]],[["Date"]]]}],"returns":{"types":[[["Snowflake"]]],"description":"The generated snowflake"},"meta":{"line":30,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"deconstruct","description":"Deconstructs a Discord snowflake.","scope":"static","params":[{"name":"snowflake","description":"Snowflake to deconstruct","type":[[["Snowflake"]]]}],"returns":[[["DeconstructedSnowflake"]]],"meta":{"line":59,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"timestampFrom","description":"Retrieves the timestamp field's value from a Discord snowflake.","scope":"static","params":[{"name":"snowflake","description":"Snowflake to get the timestamp value from","type":[[["Snowflake"]]]}],"returns":[[["number"]]],"meta":{"line":78,"file":"SnowflakeUtil.js","path":"src/util"}}],"meta":{"line":10,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"Sweepers","description":"A container for all cache sweeping intervals and their associated sweep methods.","props":[{"name":"options","description":"The options the sweepers were instantiated with","type":[[["SweeperOptions"]]],"meta":{"line":30,"file":"Sweepers.js","path":"src/util"}},{"name":"intervals","description":"A record of interval timeout that is used to sweep the indicated items, or null if not being swept","type":[[["Object","<"],["SweeperKey",", ?"],["Timeout",">"]]],"meta":{"line":36,"file":"Sweepers.js","path":"src/util"}}],"methods":[{"name":"sweepApplicationCommands","description":"Sweeps all guild and global application commands and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which commands will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of commands that were removed from the caches"},"meta":{"line":68,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepBans","description":"Sweeps all guild bans and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which bans will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of bans that were removed from the caches"},"meta":{"line":85,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepEmojis","description":"Sweeps all guild emojis and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which emojis will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of emojis that were removed from the caches"},"meta":{"line":94,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepInvites","description":"Sweeps all guild invites and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which invites will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of invites that were removed from the caches"},"meta":{"line":103,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepGuildMembers","description":"Sweeps all guild members and removes the ones which are indicated by the filter.\nIt is highly recommended to keep the client guild member cached","params":[{"name":"filter","description":"The function used to determine which guild members will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of guild members that were removed from the caches"},"meta":{"line":113,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepMessages","description":"Sweeps all text-based channels' messages and removes the ones which are indicated by the filter.","examples":["// Remove all messages older than 1800 seconds from the messages cache\nconst amount = sweepers.sweepMessages(\n Sweepers.filterByLifetime({\n lifetime: 1800,\n getComparisonTimestamp: m => m.editedTimestamp ?? m.createdTimestamp,\n })(),\n);\nconsole.log(`Successfully removed ${amount} messages from the cache.`);"],"params":[{"name":"filter","description":"The function used to determine which messages will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of messages that were removed from the caches"},"meta":{"line":131,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepPresences","description":"Sweeps all presences and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which presences will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of presences that were removed from the caches"},"meta":{"line":153,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepReactions","description":"Sweeps all message reactions and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which reactions will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of reactions that were removed from the caches"},"meta":{"line":162,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepStageInstances","description":"Sweeps all guild stage instances and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which stage instances will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of stage instances that were removed from the caches"},"meta":{"line":191,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepStickers","description":"Sweeps all guild stickers and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which stickers will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of stickers that were removed from the caches"},"meta":{"line":200,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepThreadMembers","description":"Sweeps all thread members and removes the ones which are indicated by the filter.\nIt is highly recommended to keep the client thread member cached","params":[{"name":"filter","description":"The function used to determine which thread members will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of thread members that were removed from the caches"},"meta":{"line":210,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepThreads","description":"Sweeps all threads and removes the ones which are indicated by the filter.","examples":["// Remove all threads archived greater than 1 day ago from all the channel caches\nconst amount = sweepers.sweepThreads(\n Sweepers.filterByLifetime({\n getComparisonTimestamp: t => t.archivedTimestamp,\n excludeFromSweep: t => !t.archived,\n })(),\n);\nconsole.log(`Successfully removed ${amount} threads from the cache.`);"],"params":[{"name":"filter","description":"The function used to determine which threads will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"filter Amount of threads that were removed from the caches"},"meta":{"line":240,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepUsers","description":"Sweeps all users and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which users will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of users that were removed from the caches"},"meta":{"line":262,"file":"Sweepers.js","path":"src/util"}},{"name":"sweepVoiceStates","description":"Sweeps all guild voice states and removes the ones which are indicated by the filter.","params":[{"name":"filter","description":"The function used to determine which voice states will be removed from the caches.","type":[[["function"]]]}],"returns":{"types":[[["number"]]],"description":"Amount of voice states that were removed from the caches"},"meta":{"line":279,"file":"Sweepers.js","path":"src/util"}},{"name":"destroy","description":"Cancels all sweeping intervals","returns":[[["void"]]],"meta":{"line":287,"file":"Sweepers.js","path":"src/util"}},{"name":"_sweepGuildDirectProp","description":"Sweep a direct sub property of all guilds","access":"private","params":[{"name":"key","description":"The name of the property","type":[[["string"]]]},{"name":"filter","description":"Filter function passed to sweep","type":[[["function"]]]},{"name":"eventOptions","description":"Options for the Client event emitted here","optional":true,"default":"{}","type":[[["SweepEventOptions"]]]}],"returns":{"types":[[["Object"]]],"description":"Object containing the number of guilds swept and the number of items swept"},"meta":{"line":391,"file":"Sweepers.js","path":"src/util"}},{"name":"_validateProperties","description":"Validates a set of properties","access":"private","params":[{"name":"key","description":"Key of the options object to check","type":[[["string"]]]}],"meta":{"line":418,"file":"Sweepers.js","path":"src/util"}},{"name":"_initInterval","description":"Initialize an interval for sweeping","access":"private","params":[{"name":"intervalKey","description":"The name of the property that stores the interval for this sweeper","type":[[["string"]]]},{"name":"sweepKey","description":"The name of the function that sweeps the desired caches","type":[[["string"]]]},{"name":"opts","description":"Validated options for a sweep","type":[[["Object"]]]}],"meta":{"line":445,"file":"Sweepers.js","path":"src/util"}},{"name":"filterByLifetime","description":"Create a sweepFilter function that uses a lifetime to determine sweepability.","scope":"static","params":[{"name":"options","description":"The options used to generate the filter function","optional":true,"default":"{}","type":[[["LifetimeFilterOptions"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":309,"file":"Sweepers.js","path":"src/util"}},{"name":"archivedThreadSweepFilter","description":"Creates a sweep filter that sweeps archived threads","scope":"static","params":[{"name":"lifetime","description":"How long a thread has to be archived to be valid for sweeping","optional":true,"default":14400,"type":[[["number"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":343,"file":"Sweepers.js","path":"src/util"}},{"name":"expiredInviteSweepFilter","description":"Creates a sweep filter that sweeps expired invites","scope":"static","params":[{"name":"lifetime","description":"How long ago an invite has to have expired to be valid for sweeping","optional":true,"default":14400,"type":[[["number"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":356,"file":"Sweepers.js","path":"src/util"}},{"name":"outdatedMessageSweepFilter","description":"Creates a sweep filter that sweeps outdated messages (edits taken into account)","scope":"static","params":[{"name":"lifetime","description":"How long ago a message has to have been sent or edited to be valid for sweeping","optional":true,"default":3600,"type":[[["number"]]]}],"returns":[[["GlobalSweepFilter"]]],"meta":{"line":368,"file":"Sweepers.js","path":"src/util"}}],"meta":{"line":17,"file":"Sweepers.js","path":"src/util"}},{"name":"SystemChannelFlags","description":"Data structure that makes it easy to interact with a {@link Guild#systemChannelFlags} bitfield.\nNote that all event message types are enabled by default,\nand by setting their corresponding flags you are disabling them","extends":[[["BitField"]]],"construct":{"name":"SystemChannelFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["SystemChannelFlagsResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":20,"file":"SystemChannelFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric system channel flags. All available properties:\n* `SUPPRESS_JOIN_NOTIFICATIONS` (Suppress member join notifications)\n* `SUPPRESS_PREMIUM_SUBSCRIPTIONS` (Suppress server boost notifications)\n* `SUPPRESS_GUILD_REMINDER_NOTIFICATIONS` (Suppress server setup tips)\n* `SUPPRESS_JOIN_NOTIFICATION_REPLIES` (Hide member join sticker reply buttons)","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":44,"file":"SystemChannelFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":11,"file":"SystemChannelFlags.js","path":"src/util"}},{"name":"ThreadMemberFlags","description":"Data structure that makes it easy to interact with a {@link ThreadMember#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"ThreadMemberFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":18,"file":"ThreadMemberFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric thread member flags. There are currently no bitflags relevant to bots for this.","scope":"static","type":[[["Object","<"],["string",", "],["number",">"]]],"meta":{"line":28,"file":"ThreadMemberFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":9,"file":"ThreadMemberFlags.js","path":"src/util"}},{"name":"UserFlags","description":"Data structure that makes it easy to interact with a {@link User#flags} bitfield.","extends":[[["BitField"]]],"construct":{"name":"UserFlags","params":[{"name":"bits","description":"Bit(s) to read from","optional":true,"default":0,"type":[[["BitFieldResolvable"]]]}]},"props":[{"name":"bitfield","description":"Bitfield of the packed bits","type":[[["number"]]],"meta":{"line":17,"file":"UserFlags.js","path":"src/util"}},{"name":"FLAGS","description":"Numeric user flags. All available properties:\n* `DISCORD_EMPLOYEE`\n* `PARTNERED_SERVER_OWNER`\n* `HYPESQUAD_EVENTS`\n* `BUGHUNTER_LEVEL_1`\n* `HOUSE_BRAVERY`\n* `HOUSE_BRILLIANCE`\n* `HOUSE_BALANCE`\n* `EARLY_SUPPORTER`\n* `TEAM_USER`\n* `BUGHUNTER_LEVEL_2`\n* `VERIFIED_BOT`\n* `EARLY_VERIFIED_BOT_DEVELOPER`\n* `DISCORD_CERTIFIED_MODERATOR`\n* `BOT_HTTP_INTERACTIONS`","see":["{@link https://discord.com/developers/docs/resources/user#user-object-user-flags}"],"scope":"static","type":[[["Object"]]],"meta":{"line":42,"file":"UserFlags.js","path":"src/util"}}],"methods":[{"name":"any","description":"Checks whether the bitfield has a bit, or any of multiple bits.","inherits":"BitField#any","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":25,"file":"BitField.js","path":"src/util"}},{"name":"equals","description":"Checks if this bitfield equals another","inherits":"BitField#equals","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":34,"file":"BitField.js","path":"src/util"}},{"name":"has","description":"Checks whether the bitfield has a bit, or multiple bits.","inherits":"BitField#has","inherited":true,"params":[{"name":"bit","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":43,"file":"BitField.js","path":"src/util"}},{"name":"missing","description":"Gets all given bits that are missing from the bitfield.","inherits":"BitField#missing","inherited":true,"params":[{"name":"bits","description":"Bit(s) to check for","type":[[["BitFieldResolvable"]]]},{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":54,"file":"BitField.js","path":"src/util"}},{"name":"freeze","description":"Freezes these bits, making them immutable.","inherits":"BitField#freeze","inherited":true,"returns":[[["Readonly","<"],["BitField",">"]]],"meta":{"line":62,"file":"BitField.js","path":"src/util"}},{"name":"add","description":"Adds bits to these ones.","inherits":"BitField#add","inherited":true,"params":[{"name":"bits","description":"Bits to add","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":71,"file":"BitField.js","path":"src/util"}},{"name":"remove","description":"Removes bits from these.","inherits":"BitField#remove","inherited":true,"params":[{"name":"bits","description":"Bits to remove","optional":true,"variable":true,"type":[[["BitFieldResolvable"]]]}],"returns":{"types":[[["BitField"]]],"description":"These bits or new BitField if the instance is frozen."},"meta":{"line":86,"file":"BitField.js","path":"src/util"}},{"name":"serialize","description":"Gets an object mapping field names to a {@link boolean} indicating whether the\nbit is available.","inherits":"BitField#serialize","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Object"]]],"meta":{"line":102,"file":"BitField.js","path":"src/util"}},{"name":"toArray","description":"Gets an {@link Array} of bitfield names based on the bits available.","inherits":"BitField#toArray","inherited":true,"params":[{"name":"hasParams","description":"Additional parameters for the has method, if any","variable":true,"type":[["*"]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":113,"file":"BitField.js","path":"src/util"}}],"meta":{"line":8,"file":"UserFlags.js","path":"src/util"}},{"name":"Util","description":"Contains various general-purpose utility methods.","methods":[{"name":"flatten","description":"Flatten an object. Any properties that are collections will get converted to an array of keys.","scope":"static","params":[{"name":"obj","description":"The object to flatten.","type":[[["Object"]]]},{"name":"props","description":"Specific properties to include/exclude.","optional":true,"variable":true,"type":[[["Object","<"],["string",", ("],["boolean","|"],["string",")>"]]]}],"returns":[[["Object"]]],"meta":{"line":26,"file":"Util.js","path":"src/util"}},{"name":"splitMessage","description":"Splits a string into multiple chunks at a designated character that do not exceed a specific length.","scope":"static","deprecated":"This will be removed in the next major version.","params":[{"name":"text","description":"Content to split","type":[[["string"]]]},{"name":"options","description":"Options controlling the behavior of the split","optional":true,"type":[[["SplitOptions"]]]}],"returns":[[["Array","<"],["string",">"]]],"meta":{"line":77,"file":"Util.js","path":"src/util"}},{"name":"escapeMarkdown","description":"Escapes any Discord-flavour markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]},{"name":"options","description":"Options for escaping the markdown","optional":true,"default":"{}","type":[[["EscapeMarkdownOptions"]]]}],"returns":[[["string"]]],"meta":{"line":135,"file":"Util.js","path":"src/util"}},{"name":"escapeCodeBlock","description":"Escapes code block markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":197,"file":"Util.js","path":"src/util"}},{"name":"escapeInlineCode","description":"Escapes inline code markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":206,"file":"Util.js","path":"src/util"}},{"name":"escapeItalic","description":"Escapes italic markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":215,"file":"Util.js","path":"src/util"}},{"name":"escapeBold","description":"Escapes bold markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":233,"file":"Util.js","path":"src/util"}},{"name":"escapeUnderline","description":"Escapes underline markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":246,"file":"Util.js","path":"src/util"}},{"name":"escapeStrikethrough","description":"Escapes strikethrough markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":259,"file":"Util.js","path":"src/util"}},{"name":"escapeSpoiler","description":"Escapes spoiler markdown in a string.","scope":"static","params":[{"name":"text","description":"Content to escape","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":268,"file":"Util.js","path":"src/util"}},{"name":"fetchRecommendedShards","description":"Gets the recommended shard count from Discord.","scope":"static","params":[{"name":"token","description":"Discord auth token","type":[[["string"]]]},{"name":"options","description":"Options for fetching the recommended shard count","optional":true,"type":[[["FetchRecommendedShardsOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["number",">"]]],"description":"The recommended number of shards"},"meta":{"line":284,"file":"Util.js","path":"src/util"}},{"name":"parseEmoji","description":"Parses emoji info out of a string. The string must be one of:\n* A UTF-8 emoji (no id)\n* A URL-encoded UTF-8 emoji (no id)\n* A Discord custom emoji (`<:name:id>` or ``)","scope":"static","access":"private","params":[{"name":"text","description":"Emoji string to parse","type":[[["string"]]]}],"returns":{"types":[[["APIEmoji"]]],"description":"Object with `animated`, `name`, and `id` properties"},"meta":{"line":308,"file":"Util.js","path":"src/util"}},{"name":"resolvePartialEmoji","description":"Resolves a partial emoji object from an {@link EmojiIdentifierResolvable}, without checking a Client.","scope":"static","access":"private","params":[{"name":"emoji","description":"Emoji identifier to resolve","type":[[["EmojiIdentifierResolvable"]]]}],"returns":{"types":[[["RawEmoji"]]],"nullable":true},"meta":{"line":321,"file":"Util.js","path":"src/util"}},{"name":"cloneObject","description":"Shallow-copies an object with its class/prototype intact.","scope":"static","access":"private","params":[{"name":"obj","description":"Object to clone","type":[[["Object"]]]}],"returns":[[["Object"]]],"meta":{"line":335,"file":"Util.js","path":"src/util"}},{"name":"mergeDefault","description":"Sets default properties on an object that aren't already specified.","scope":"static","access":"private","params":[{"name":"def","description":"Default properties","type":[[["Object"]]]},{"name":"given","description":"Object to assign defaults to","type":[[["Object"]]]}],"returns":[[["Object"]]],"meta":{"line":346,"file":"Util.js","path":"src/util"}},{"name":"makeError","description":"Makes an Error from a plain info object.","scope":"static","access":"private","params":[{"name":"obj","description":"Error info","type":[[["MakeErrorOptions"]]]}],"returns":[[["Error"]]],"meta":{"line":373,"file":"Util.js","path":"src/util"}},{"name":"makePlainError","description":"Makes a plain error info object from an Error.","scope":"static","access":"private","params":[{"name":"err","description":"Error to get info from","type":[[["Error"]]]}],"returns":[[["MakeErrorOptions"]]],"meta":{"line":386,"file":"Util.js","path":"src/util"}},{"name":"moveElementInArray","description":"Moves an element in an array *in place*.","scope":"static","access":"private","params":[{"name":"array","description":"Array to modify","type":[[["Array","<"],["*",">"]]]},{"name":"element","description":"Element to move","type":[["*"]]},{"name":"newIndex","description":"Index or offset to move the element to","type":[[["number"]]]},{"name":"offset","description":"Move the element by an offset amount rather than to a set index","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["number"]]],"meta":{"line":403,"file":"Util.js","path":"src/util"}},{"name":"verifyString","description":"Verifies the provided data is a string, otherwise throws provided error.","scope":"static","params":[{"name":"data","description":"The string resolvable to resolve","type":[[["string"]]]},{"name":"error","description":"The Error constructor to instantiate. Defaults to Error","optional":true,"type":[[["function"]]]},{"name":"errorMessage","description":"The error message to throw with. Defaults to \"Expected string, got instead.\"","optional":true,"type":[[["string"]]]},{"name":"allowEmpty","description":"Whether an empty string should be allowed","optional":true,"default":true,"type":[[["boolean"]]]}],"returns":[[["string"]]],"meta":{"line":421,"file":"Util.js","path":"src/util"}},{"name":"resolveColor","description":"Resolves a ColorResolvable into a color number.","scope":"static","params":[{"name":"color","description":"Color to resolve","type":[[["ColorResolvable"]]]}],"returns":{"types":[[["number"]]],"description":"A color"},"meta":{"line":477,"file":"Util.js","path":"src/util"}},{"name":"discordSort","description":"Sorts by Discord's position and id.","scope":"static","params":[{"name":"collection","description":"Collection of objects to sort","type":[[["Collection"]]]}],"returns":[[["Collection"]]],"meta":{"line":497,"file":"Util.js","path":"src/util"}},{"name":"setPosition","description":"Sets the position of a Channel or Role.","scope":"static","access":"private","params":[{"name":"item","description":"Object to set the position of","type":[[["Channel"]],[["Role"]]]},{"name":"position","description":"New position for the object","type":[[["number"]]]},{"name":"relative","description":"Whether `position` is relative to its current position","type":[[["boolean"]]]},{"name":"sorted","description":"A collection of the objects sorted properly","type":[[["Collection","<"],["string",", ("],["Channel","|"],["Role",")>"]]]},{"name":"route","description":"Route to call PATCH on","type":[[["APIRouter"]]]},{"name":"reason","description":"Reason for the change","optional":true,"type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<("],["Array","<"],["Channel",">|"],["Array","<"],["Role",">)>"]]],"description":"Updated item list, with `id` and `position` properties"},"meta":{"line":517,"file":"Util.js","path":"src/util"}},{"name":"basename","description":"Alternative to Node's `path.basename`, removing query string after the extension if it exists.","scope":"static","access":"private","params":[{"name":"path","description":"Path to get the basename of","type":[[["string"]]]},{"name":"ext","description":"File extension to remove","optional":true,"type":[[["string"]]]}],"returns":{"types":[[["string"]]],"description":"Basename of the path"},"meta":{"line":532,"file":"Util.js","path":"src/util"}},{"name":"removeMentions","description":"Breaks user, role and everyone/here mentions by adding a zero width space after every @ character","scope":"static","deprecated":"Use {@link BaseMessageOptions#allowedMentions} instead.","params":[{"name":"str","description":"The string to sanitize","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":543,"file":"Util.js","path":"src/util"}},{"name":"cleanContent","description":"The content to have all mentions replaced by the equivalent text.\nWhen {@link Util.removeMentions} is removed, this method will no longer sanitize mentions.\nUse {@link BaseMessageOptions#allowedMentions} instead to prevent mentions when sending a message.","scope":"static","params":[{"name":"str","description":"The string to be converted","type":[[["string"]]]},{"name":"channel","description":"The channel the string was sent in","type":[[["TextBasedChannels"]]]}],"returns":[[["string"]]],"meta":{"line":568,"file":"Util.js","path":"src/util"}},{"name":"cleanCodeBlockContent","description":"The content to put in a code block with all code block fences replaced by the equivalent backticks.","scope":"static","params":[{"name":"text","description":"The string to be converted","type":[[["string"]]]}],"returns":[[["string"]]],"meta":{"line":602,"file":"Util.js","path":"src/util"}},{"name":"archivedThreadSweepFilter","description":"Creates a sweep filter that sweeps archived threads","scope":"static","deprecated":"When not using with `makeCache` use `Sweepers.archivedThreadSweepFilter` instead","params":[{"name":"lifetime","description":"How long a thread has to be archived to be valid for sweeping","optional":true,"default":14400,"type":[[["number"]]]}],"returns":[[["SweepFilter"]]],"meta":{"line":612,"file":"Util.js","path":"src/util"}},{"name":"resolveAutoArchiveMaxLimit","description":"Resolves the maximum time a guild's thread channels should automatcally archive in case of no recent activity.","scope":"static","params":[{"name":"guild","description":"The guild to resolve this limit from.","type":[[["Guild"]]]}],"returns":[[["number"]]],"meta":{"line":623,"file":"Util.js","path":"src/util"}}],"meta":{"line":19,"file":"Util.js","path":"src/util"}}],"interfaces":[{"name":"InteractionResponses","description":"Interface for classes that support shared interaction response types.","methods":[{"name":"deferReply","description":"Defers the reply to this interaction.","examples":["// Defer the reply to this interaction\ninteraction.deferReply()\n .then(console.log)\n .catch(console.error)","// Defer to send an ephemeral reply later\ninteraction.deferReply({ ephemeral: true })\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the reply to this interaction","optional":true,"type":[[["InteractionDeferReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":58,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"reply","description":"Creates a reply to this interaction.\nUse the `fetchReply` option to get the bot's reply message.","examples":["// Reply to the interaction and fetch the response\ninteraction.reply({ content: 'Pong!', fetchReply: true })\n .then((message) => console.log(`Reply sent with content ${message.content}`))\n .catch(console.error);","// Create an ephemeral reply with an embed\nconst embed = new MessageEmbed().setDescription('Pong!');\n\ninteraction.reply({ embeds: [embed], ephemeral: true })\n .then(() => console.log('Reply sent.'))\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":93,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"fetchReply","description":"Fetches the initial reply to this interaction.","see":["Webhook#fetchMessage"],"examples":["// Fetch the reply to this interaction\ninteraction.fetchReply()\n .then(reply => console.log(`Replied with ${reply.content}`))\n .catch(console.error);"],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":126,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"editReply","description":"Edits the initial reply to this interaction.","see":["Webhook#editMessage"],"examples":["// Edit the reply to this interaction\ninteraction.editReply('New content')\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The new options for the message","type":[[["string"]],[["MessagePayload"]],[["WebhookEditMessageOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":141,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deleteReply","description":"Deletes the initial reply to this interaction.","see":["Webhook#deleteMessage"],"examples":["// Delete the reply to this interaction\ninteraction.deleteReply()\n .then(console.log)\n .catch(console.error);"],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":158,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"followUp","description":"Send a follow-up message to this interaction.","params":[{"name":"options","description":"The options for the reply","type":[[["string"]],[["MessagePayload"]],[["InteractionReplyOptions"]]]}],"returns":[[["Promise","<("],["Message","|"],["APIMessage",")>"]]],"meta":{"line":168,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"deferUpdate","description":"Defers an update to the message to which the component was attached.","examples":["// Defer updating and reset the component's loading state\ninteraction.deferUpdate()\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"Options for deferring the update to this interaction","optional":true,"type":[[["InteractionDeferUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":183,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"update","description":"Updates the original message of the component on which the interaction was received on.","examples":["// Remove the components from the message\ninteraction.update({\n content: \"A component interaction was received\",\n components: []\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options for the updated message","type":[[["string"]],[["MessagePayload"]],[["InteractionUpdateOptions"]]]}],"async":true,"returns":[[["Promise","<("],["Message","|"],["APIMessage","|"],["void",")>"]]],"meta":{"line":209,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"showModal","description":"Shows a modal component","params":[{"name":"modal","description":"The modal to show","type":[[["Modal"]],[["ModalOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":236,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"awaitModalSubmit","description":"Collects a single modal submit interaction that passes the filter.\nThe Promise will reject if the time expires.","examples":["// Collect a modal submit interaction\nconst filter = (interaction) => interaction.customId === 'modal';\ninteraction.awaitModalSubmit({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was submitted!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","type":[[["AwaitModalSubmitOptions"]]]}],"returns":[[["Promise","<"],["ModalSubmitInteraction",">"]]],"meta":{"line":268,"file":"InteractionResponses.js","path":"src/structures/interfaces"}}],"meta":{"line":14,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features.","props":[{"name":"messages","description":"A manager of the messages sent to this channel","type":[[["MessageManager"]]],"meta":{"line":23,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastMessageId","description":"The channel's last message id, if one was sent","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":29,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinTimestamp","description":"The timestamp when the last pinned message was pinned, if there was one","nullable":true,"type":[[["number"]]],"meta":{"line":35,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastMessage","description":"The Message object of the last message in the channel, if one was sent","readonly":true,"nullable":true,"type":[[["Message"]]],"meta":{"line":43,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"lastPinAt","description":"The date when the last pinned message was pinned, if there was one","readonly":true,"nullable":true,"type":[[["Date"]]],"meta":{"line":52,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"methods":[{"name":"send","description":"Sends a message to this channel.","examples":["// Send a basic message\nchannel.send('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.error);","// Send a remote file\nchannel.send({\n files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']\n})\n .then(console.log)\n .catch(console.error);","// Send a local file\nchannel.send({\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg',\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);","// Send an embed with a local image inside\nchannel.send({\n content: 'This is an embed',\n embeds: [\n {\n thumbnail: {\n url: 'attachment://file.jpg'\n }\n }\n ],\n files: [{\n attachment: 'entire/path/to/file.jpg',\n name: 'file.jpg'\n description: 'A description of the file'\n }]\n})\n .then(console.log)\n .catch(console.error);"],"params":[{"name":"options","description":"The options to provide","type":[[["string"]],[["MessagePayload"]],[["MessageOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Message",">"]]],"meta":{"line":159,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendTyping","description":"Sends a typing indicator in the channel.","examples":["// Start typing in a channel\nchannel.sendTyping();"],"async":true,"returns":{"types":[[["Promise","<"],["void",">"]]],"description":"Resolves upon the typing status being sent"},"meta":{"line":189,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageCollector","description":"Creates a Message Collector.","examples":["// Create a message collector\nconst filter = m => m.content.includes('discord');\nconst collector = channel.createMessageCollector({ filter, time: 15_000 });\ncollector.on('collect', m => console.log(`Collected ${m.content}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"The options to pass to the collector","optional":true,"default":"{}","type":[[["MessageCollectorOptions"]]]}],"returns":[[["MessageCollector"]]],"meta":{"line":204,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessages","description":"Similar to createMessageCollector but in promise form.\nResolves with a collection of messages that pass the specified filter.","examples":["// Await !vote messages\nconst filter = m => m.content.startsWith('!vote');\n// Errors: ['time'] treats ending because of the time limit as an error\nchannel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })\n .then(collected => console.log(collected.size))\n .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));"],"params":[{"name":"options","description":"Optional options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessagesOptions"]]]}],"returns":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"meta":{"line":227,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"createMessageComponentCollector","description":"Creates a component interaction collector.","examples":["// Create a button interaction collector\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nconst collector = channel.createMessageComponentCollector({ filter, time: 15_000 });\ncollector.on('collect', i => console.log(`Collected ${i.customId}`));\ncollector.on('end', collected => console.log(`Collected ${collected.size} items`));"],"params":[{"name":"options","description":"Options to send to the collector","optional":true,"default":"{}","type":[[["MessageComponentCollectorOptions"]]]}],"returns":[[["InteractionCollector"]]],"meta":{"line":251,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"awaitMessageComponent","description":"Collects a single component interaction that passes the filter.\nThe Promise will reject if the time expires.","examples":["// Collect a message component interaction\nconst filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';\nchannel.awaitMessageComponent({ filter, time: 15_000 })\n .then(interaction => console.log(`${interaction.customId} was clicked!`))\n .catch(console.error);"],"params":[{"name":"options","description":"Options to pass to the internal collector","optional":true,"default":"{}","type":[[["AwaitMessageComponentOptions"]]]}],"returns":[[["Promise","<"],["MessageComponentInteraction",">"]]],"meta":{"line":271,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"bulkDelete","description":"Bulk deletes given messages that are newer than two weeks.","examples":["// Bulk delete messages\nchannel.bulkDelete(5)\n .then(messages => console.log(`Bulk deleted ${messages.size} messages`))\n .catch(console.error);"],"params":[{"name":"messages","description":"Messages or number of messages to delete","type":[[["Collection","<"],["Snowflake",", "],["Message",">"]],[["Array","<"],["MessageResolvable",">"]],[["number"]]]},{"name":"filterOld","description":"Filter messages to remove those which are older than two weeks automatically","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Collection","<"],["Snowflake",", "],["Message",">>"]]],"description":"Returns the deleted messages"},"meta":{"line":295,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"sendSlash","description":"Send Slash to this channel","params":[{"name":"botId","description":"Bot Id","type":[[["Snowflake"]]]},{"name":"commandName","description":"Command name","type":[[["string"]]]},{"name":"args","description":"Command arguments","nullable":true,"type":[[["Array","<"],["string",">"]]]}],"async":true,"returns":[[["Promise","<"],["pending",">"]]],"meta":{"line":341,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"meta":{"line":17,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}}],"typedefs":[{"name":"ClientFetchInviteOptions","description":"Options used when fetching an invite from Discord.","type":[[["Object"]]],"props":[{"name":"guildScheduledEventId","description":"The id of the guild scheduled event to include with\nthe invite","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":370,"file":"Client.js","path":"src/client"}},{"name":"InviteGenerationOptions","description":"Options for {@link Client#generateInvite}.","type":[[["Object"]]],"props":[{"name":"scopes","description":"Scopes that should be requested","type":[[["Array","<"],["InviteScope",">"]]]},{"name":"permissions","description":"Permissions to request","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"guild","description":"Guild to preselect","optional":true,"type":[[["GuildResolvable"]]]},{"name":"disableGuildSelect","description":"Whether to disable the guild selection","optional":true,"type":[[["boolean"]]]}],"meta":{"line":558,"file":"Client.js","path":"src/client"}},{"name":"WebhookClientData","description":"The data for the webhook client containing either an id and token or just a URL","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the webhook","optional":true,"type":[[["Snowflake"]]]},{"name":"token","description":"The token of the webhook","optional":true,"type":[[["string"]]]},{"name":"url","description":"The full URL for the webhook client","optional":true,"type":[[["string"]]]}],"meta":{"line":13,"file":"WebhookClient.js","path":"src/client"}},{"name":"GuildMembersChunk","description":"Represents the properties of a guild members chunk","type":[[["Object"]]],"props":[{"name":"index","description":"Index of the received chunk","type":[[["number"]]]},{"name":"count","description":"Number of chunks the client should receive","type":[[["number"]]]},{"name":"nonce","description":"Nonce for this chunk","nullable":true,"type":[[["string"]]]}],"meta":{"line":16,"file":"GUILD_MEMBERS_CHUNK.js","path":"src/client/websocket/handlers"}},{"name":"ApplicationCommandResolvable","description":"Data that resolves to give an ApplicationCommand object. This can be:\n* An ApplicationCommand object\n* A Snowflake","type":[[["ApplicationCommand"]],[["Snowflake"]]],"meta":{"line":50,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"BaseFetchOptions","description":"Options used to fetch data from Discord","type":[[["Object"]]],"props":[{"name":"cache","description":"Whether to cache the fetched data if it wasn't already","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":57,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"FetchApplicationCommandOptions","description":"Options used to fetch Application Commands from Discord","type":[[["BaseFetchOptions"]]],"props":[{"name":"guildId","description":"The guild's id to fetch commands for, for when the guild is not cached","optional":true,"type":[[["Snowflake"]]]},{"name":"locale","description":"The locale to use when fetching this command","optional":true,"type":[[["LocaleString"]]]},{"name":"withLocalizations","description":"Whether to fetch all localization data","optional":true,"type":[[["boolean"]]]}],"meta":{"line":64,"file":"ApplicationCommandManager.js","path":"src/managers"}},{"name":"ApplicationCommandPermissionData","description":"Data for setting the permissions of an application command.","type":[[["Object"]]],"props":[{"name":"id","description":"The role or user's id","type":[[["Snowflake"]]]},{"name":"type","description":"Whether this permission is for a role or a user","type":[[["ApplicationCommandPermissionType"]],[["number"]]]},{"name":"permission","description":"Whether the role or user has the permission to use this command","type":[[["boolean"]]]}],"meta":{"line":58,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"ApplicationCommandPermissions","description":"The object returned when fetching permissions for an application command.","type":[[["Object"]]],"props":[{"name":"id","description":"The role or user's id","type":[[["Snowflake"]]]},{"name":"type","description":"Whether this permission is for a role or a user","type":[[["ApplicationCommandPermissionType"]]]},{"name":"permission","description":"Whether the role or user has the permission to use this command","type":[[["boolean"]]]}],"meta":{"line":66,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"BaseApplicationCommandPermissionsOptions","description":"Options for managing permissions for one or more Application Commands\nWhen passing these options to a manager where `guildId` is `null`,\n`guild` is a required parameter","type":[[["Object"]]],"props":[{"name":"guild","description":"The guild to modify / check permissions for\nIgnored when the manager has a non-null `guildId` property","optional":true,"type":[[["GuildResolvable"]]]},{"name":"command","description":"The command to modify / check permissions for\nIgnored when the manager has a non-null `commandId` property","optional":true,"type":[[["ApplicationCommandResolvable"]]]}],"meta":{"line":74,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"GuildApplicationCommandPermissionData","description":"Data used for overwriting the permissions for all application commands in a guild.","type":[[["Object"]]],"props":[{"name":"id","description":"The command's id","type":[[["Snowflake"]]]},{"name":"permissions","description":"The permissions for this command","type":[[["Array","<"],["ApplicationCommandPermissionData",">"]]]}],"meta":{"line":118,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"SetApplicationCommandPermissionsOptions","description":"Options used to set permissions for one or more Application Commands in a guild\nOne of `command` AND `permissions`, OR `fullPermissions` is required.\n`fullPermissions` is not a valid option when passing to a manager where `commandId` is non-null","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"permissions","description":"The new permissions for the command","optional":true,"type":[[["Array","<"],["ApplicationCommandPermissionData",">"]]]},{"name":"fullPermissions","description":"The new permissions for all commands\nin a guild When this parameter is set, `permissions` and `command` are ignored","optional":true,"type":[[["Array","<"],["GuildApplicationCommandPermissionData",">"]]]}],"meta":{"line":125,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"AddApplicationCommandPermissionsOptions","description":"Options used to add permissions to a command\nThe `command` parameter is not optional when the managers `commandId` is `null`","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"permissions","description":"The permissions to add to the command","type":[[["Array","<"],["ApplicationCommandPermissionData",">"]]]}],"meta":{"line":205,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"RemoveApplicationCommandPermissionsOptions","description":"Options used to remove permissions from a command\nThe `command` parameter is not optional when the managers `commandId` is `null`","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"users","description":"The user(s) to remove from the command permissions\nOne of `users` or `roles` is required","optional":true,"type":[[["UserResolvable"]],[["Array","<"],["UserResolvable",">"]]]},{"name":"roles","description":"The role(s) to remove from the command permissions\nOne of `users` or `roles` is required","optional":true,"type":[[["RoleResolvable"]],[["Array","<"],["RoleResolvable",">"]]]}],"meta":{"line":253,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"HasApplicationCommandPermissionsOptions","description":"Options used to check the existence of permissions on a command\nThe `command` parameter is not optional when the managers `commandId` is `null`","type":[[["BaseApplicationCommandPermissionsOptions"]]],"props":[{"name":"permissionId","description":"The user or role to check if a permission exists for\non this command.","type":[[["UserResolvable"]],[["RoleResolvable"]]]}],"meta":{"line":338,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"EmojiResolvable","description":"Data that can be resolved into a GuildEmoji object. This can be:\n* A Snowflake\n* A GuildEmoji object\n* A ReactionEmoji object","type":[[["Snowflake"]],[["GuildEmoji"]],[["ReactionEmoji"]]],"meta":{"line":23,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"EmojiIdentifierResolvable","description":"Data that can be resolved to give an emoji identifier. This can be:\n* The unicode representation of an emoji\n* The ``, `<:name:id>`, `a:name:id` or `name:id` emoji identifier string of an emoji\n* An EmojiResolvable","type":[[["string"]],[["EmojiResolvable"]]],"meta":{"line":51,"file":"BaseGuildEmojiManager.js","path":"src/managers"}},{"name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A Snowflake\n* A Message object (resolves to the message author)\n* A GuildMember object\n* A ThreadMember object","type":[[["User"]],[["Snowflake"]],[["Message"]],[["GuildMember"]],[["ThreadMember"]]],"meta":{"line":24,"file":"UserManager.js","path":"src/managers"}},{"name":"ChannelResolvable","description":"Data that can be resolved to give a Channel object. This can be:\n* A Channel object\n* A Snowflake","type":[[["Channel"]],[["Snowflake"]]],"meta":{"line":68,"file":"ChannelManager.js","path":"src/managers"}},{"name":"FetchChannelOptions","description":"Options for fetching a channel from Discord","type":[[["BaseFetchOptions"]]],"props":[{"name":"allowUnknownGuild","description":"Allows the channel to be returned even if the guild is not in cache,\nit will not be cached. Many of the properties and methods on the returned channel will throw errors","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":93,"file":"ChannelManager.js","path":"src/managers"}},{"name":"CustomStatusOption","description":"CustomStatus Object","type":[[["Object"]]],"props":[{"name":"text","description":"Text to set","type":[[["string"]],[["null"]]]},{"name":"status","description":"The status to set: 'online', 'idle', 'dnd', 'invisible' or null.","type":[[["string"]],[["null"]]]},{"name":"emoji","description":"UnicodeEmoji, DiscordEmoji, or null.","type":[[["any"]]]},{"name":"expires","description":"The number of seconds until the status expires, or null.","type":[[["number"]],[["null"]]]}],"meta":{"line":207,"file":"ClientUserSettingManager.js","path":"src/managers"}},{"name":"GuildBanResolvable","description":"Data that resolves to give a GuildBan object. This can be:\n* A GuildBan object\n* A User resolvable","type":[[["GuildBan"]],[["UserResolvable"]]],"meta":{"line":34,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"FetchBanOptions","description":"Options used to fetch a single ban from a guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"user","description":"The ban to fetch","type":[[["UserResolvable"]]]}],"meta":{"line":50,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"FetchBansOptions","description":"Options used to fetch multiple bans from a guild.","type":[[["Object"]]],"props":[{"name":"limit","description":"The maximum number of bans to return","optional":true,"type":[[["number"]]]},{"name":"before","description":"Consider only bans before this id","optional":true,"type":[[["Snowflake"]]]},{"name":"after","description":"Consider only bans after this id","optional":true,"type":[[["Snowflake"]]]},{"name":"cache","description":"Whether to cache the fetched bans","optional":true,"type":[[["boolean"]]]}],"meta":{"line":56,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"BanOptions","description":"Options used to ban a user from a guild.","type":[[["Object"]]],"props":[{"name":"days","description":"Number of days of messages to delete, must be between 0 and 7, inclusive","optional":true,"default":0,"type":[[["number"]]]},{"name":"reason","description":"The reason for the ban","optional":true,"type":[[["string"]]]}],"meta":{"line":125,"file":"GuildBanManager.js","path":"src/managers"}},{"name":"GuildChannelResolvable","description":"Data that can be resolved to give a Guild Channel object. This can be:\n* A GuildChannel object\n* A ThreadChannel object\n* A Snowflake","type":[[["GuildChannel"]],[["ThreadChannel"]],[["Snowflake"]]],"meta":{"line":72,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"GuildChannelCreateOptions","description":"Options used to create a new channel in a guild.","type":[[["CategoryCreateChannelOptions"]]],"props":[{"name":"parent","description":"Parent of the new channel","optional":true,"type":[[["CategoryChannelResolvable"]]]}],"meta":{"line":100,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"ChannelData","description":"The data for a guild channel.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the channel","optional":true,"type":[[["string"]]]},{"name":"type","description":"The type of the channel (only conversion between text and news is supported)","optional":true,"type":[[["ChannelType"]]]},{"name":"position","description":"The position of the channel","optional":true,"type":[[["number"]]]},{"name":"topic","description":"The topic of the text channel","optional":true,"type":[[["string"]]]},{"name":"nsfw","description":"Whether the channel is NSFW","optional":true,"type":[[["boolean"]]]},{"name":"bitrate","description":"The bitrate of the voice channel","optional":true,"type":[[["number"]]]},{"name":"userLimit","description":"The user limit of the voice channel","optional":true,"type":[[["number"]]]},{"name":"parent","description":"The parent of the channel","optional":true,"nullable":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"lockPermissions","description":"Lock the permissions of the channel to what the parent's permissions are","optional":true,"type":[[["boolean"]]]},{"name":"permissionOverwrites","description":"Permission overwrites for the channel","optional":true,"type":[[["Array","<"],["OverwriteResolvable",">"]],[["Collection","<"],["Snowflake",", "],["OverwriteResolvable",">"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the channel in seconds","optional":true,"type":[[["number"]]]},{"name":"defaultAutoArchiveDuration","description":"The default auto archive duration for all new threads in this channel","optional":true,"type":[[["ThreadAutoArchiveDuration"]]]},{"name":"rtcRegion","description":"The RTC region of the channel","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"videoQualityMode","description":"The camera video quality mode of the channel","optional":true,"type":[[["VideoQualityMode"]],[["number"]]]}],"meta":{"line":207,"file":"GuildChannelManager.js","path":"src/managers"}},{"name":"CategoryChannelResolvable","description":"Data that can be resolved to give a Category Channel object. This can be:\n* A CategoryChannel object\n* A Snowflake","type":[[["CategoryChannel"]],[["Snowflake"]]],"meta":{"line":1329,"file":"Guild.js","path":"src/structures"}},{"name":"ChannelPosition","description":"The data needed for updating a channel's position.","type":[[["Object"]]],"props":[{"name":"channel","description":"Channel to update","type":[[["GuildChannel"]],[["Snowflake"]]]},{"name":"position","description":"New position for the channel","optional":true,"type":[[["number"]]]},{"name":"parent","description":"Parent channel for this channel","optional":true,"type":[[["CategoryChannelResolvable"]]]},{"name":"lockPermissions","description":"If the overwrites should be locked to the parents overwrites","optional":true,"type":[[["boolean"]]]}],"meta":{"line":1336,"file":"Guild.js","path":"src/structures"}},{"name":"GuildEmojiCreateOptions","description":"Options used for creating an emoji in a guild.","type":[[["Object"]]],"props":[{"name":"roles","description":"The roles to limit the emoji to","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"reason","description":"The reason for creating the emoji","optional":true,"type":[[["string"]]]}],"meta":{"line":28,"file":"GuildEmojiManager.js","path":"src/managers"}},{"name":"InviteResolvable","description":"Data that can be resolved to give an invite code. This can be:\n* An invite code\n* An invite URL","type":[[["string"]]],"meta":{"line":16,"file":"DataResolver.js","path":"src/util"}},{"name":"GuildInvitableChannelResolvable","description":"Data that can be resolved to a channel that an invite can be created on. This can be:\n* TextChannel\n* VoiceChannel\n* NewsChannel\n* StoreChannel\n* StageChannel\n* Snowflake","type":[[["TextChannel"]],[["VoiceChannel"]],[["NewsChannel"]],[["StoreChannel"]],[["StageChannel"]],[["Snowflake"]]],"meta":{"line":41,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"FetchInviteOptions","description":"Options used to fetch a single invite from a guild.","type":[[["Object"]]],"props":[{"name":"code","description":"The invite to fetch","type":[[["InviteResolvable"]]]},{"name":"cache","description":"Whether or not to cache the fetched invite","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":71,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"FetchInvitesOptions","description":"Options used to fetch all invites from a guild.","type":[[["Object"]]],"props":[{"name":"channelId","description":"The channel to fetch all invites from","optional":true,"type":[[["GuildInvitableChannelResolvable"]]]},{"name":"cache","description":"Whether or not to cache the fetched invites","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":79,"file":"GuildInviteManager.js","path":"src/managers"}},{"name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object\n* A GuildChannel object\n* A GuildEmoji object\n* A Role object\n* A Snowflake\n* An Invite object","type":[[["Guild"]],[["GuildChannel"]],[["GuildMember"]],[["GuildEmoji"]],[["Role"]],[["Snowflake"]],[["Invite"]]],"meta":{"line":52,"file":"GuildManager.js","path":"src/managers"}},{"name":"PartialRoleData","description":"Partial data for a Role.","type":[[["Object"]]],"props":[{"name":"id","description":"The role's id, used to set channel overrides,\nthis is a placeholder and will be replaced by the API after consumption","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"name","description":"The name of the role","optional":true,"type":[[["string"]]]},{"name":"color","description":"The color of the role, either a hex string or a base 10 number","optional":true,"type":[[["ColorResolvable"]]]},{"name":"hoist","description":"Whether or not the role should be hoisted","optional":true,"type":[[["boolean"]]]},{"name":"position","description":"The position of the role","optional":true,"type":[[["number"]]]},{"name":"permissions","description":"The permissions of the role","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"mentionable","description":"Whether or not the role should be mentionable","optional":true,"type":[[["boolean"]]]}],"meta":{"line":63,"file":"GuildManager.js","path":"src/managers"}},{"name":"PartialOverwriteData","description":"Partial overwrite data.","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the {@link Role} or {@link User} this overwrite belongs to","type":[[["Snowflake"]],[["number"]]]},{"name":"type","description":"The type of this overwrite","optional":true,"type":[[["OverwriteType"]]]},{"name":"allow","description":"The permissions to allow","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"deny","description":"The permissions to deny","optional":true,"type":[[["PermissionResolvable"]]]}],"meta":{"line":76,"file":"GuildManager.js","path":"src/managers"}},{"name":"PartialChannelData","description":"Partial data for a Channel.","type":[[["Object"]]],"props":[{"name":"id","description":"The channel's id, used to set its parent,\nthis is a placeholder and will be replaced by the API after consumption","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"parentId","description":"The parent id for this channel","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"type","description":"The type of the channel","optional":true,"type":[[["ChannelType"]],[["number"]]]},{"name":"name","description":"The name of the channel","type":[[["string"]]]},{"name":"topic","description":"The topic of the text channel","optional":true,"type":[[["string"]]]},{"name":"nsfw","description":"Whether the channel is NSFW","optional":true,"type":[[["boolean"]]]},{"name":"bitrate","description":"The bitrate of the voice channel","optional":true,"type":[[["number"]]]},{"name":"userLimit","description":"The user limit of the channel","optional":true,"type":[[["number"]]]},{"name":"rtcRegion","description":"The RTC region of the channel","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"videoQualityMode","description":"The camera video quality mode of the channel","optional":true,"type":[[["VideoQualityMode"]],[["number"]]]},{"name":"permissionOverwrites","description":"Overwrites of the channel","optional":true,"type":[[["Array","<"],["PartialOverwriteData",">"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) of the channel in seconds","optional":true,"type":[[["number"]]]}],"meta":{"line":85,"file":"GuildManager.js","path":"src/managers"}},{"name":"GuildCreateOptions","description":"Options used to create a guild.","type":[[["Object"]]],"props":[{"name":"afkChannelId","description":"The AFK channel's id","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"afkTimeout","description":"The AFK timeout in seconds","optional":true,"type":[[["number"]]]},{"name":"channels","description":"The channels for this guild","optional":true,"default":"[]","type":[[["Array","<"],["PartialChannelData",">"]]]},{"name":"defaultMessageNotifications","description":"The default message notifications\nfor the guild","optional":true,"type":[[["DefaultMessageNotificationLevel"]],[["number"]]]},{"name":"explicitContentFilter","description":"The explicit content filter level for the guild","optional":true,"type":[[["ExplicitContentFilterLevel"]]]},{"name":"icon","description":"The icon for the guild","optional":true,"default":null,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"roles","description":"The roles for this guild,\nthe first element of this array is used to change properties of the guild's everyone role.","optional":true,"default":"[]","type":[[["Array","<"],["PartialRoleData",">"]]]},{"name":"systemChannelId","description":"The system channel's id","optional":true,"type":[[["Snowflake"]],[["number"]]]},{"name":"systemChannelFlags","description":"The flags of the system channel","optional":true,"type":[[["SystemChannelFlagsResolvable"]]]},{"name":"verificationLevel","description":"The verification level for the guild","optional":true,"type":[[["VerificationLevel"]]]}],"meta":{"line":146,"file":"GuildManager.js","path":"src/managers"}},{"name":"FetchGuildOptions","description":"Options used to fetch a single guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"guild","description":"The guild to fetch","type":[[["GuildResolvable"]]]},{"name":"withCounts","description":"Whether the approximate member and presence counts should be returned","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":266,"file":"GuildManager.js","path":"src/managers"}},{"name":"FetchGuildsOptions","description":"Options used to fetch multiple guilds.","type":[[["Object"]]],"props":[{"name":"before","description":"Get guilds before this guild id","optional":true,"type":[[["Snowflake"]]]},{"name":"after","description":"Get guilds after this guild id","optional":true,"type":[[["Snowflake"]]]},{"name":"limit","description":"Maximum number of guilds to request (1-200)","optional":true,"default":200,"type":[[["number"]]]}],"meta":{"line":273,"file":"GuildManager.js","path":"src/managers"}},{"name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User resolvable","type":[[["GuildMember"]],[["UserResolvable"]]],"meta":{"line":39,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"AddGuildMemberOptions","description":"Options used to add a user to a guild using OAuth2.","type":[[["Object"]]],"props":[{"name":"accessToken","description":"An OAuth2 access token for the user with the `guilds.join` scope granted to the\nbot's application","type":[[["string"]]]},{"name":"nick","description":"The nickname to give to the member (requires `MANAGE_NICKNAMES`)","optional":true,"type":[[["string"]]]},{"name":"roles","description":"The roles to add to the member\n(requires `MANAGE_ROLES`)","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"mute","description":"Whether the member should be muted (requires `MUTE_MEMBERS`)","optional":true,"type":[[["boolean"]]]},{"name":"deaf","description":"Whether the member should be deafened (requires `DEAFEN_MEMBERS`)","optional":true,"type":[[["boolean"]]]},{"name":"force","description":"Whether to skip the cache check and call the API directly","optional":true,"type":[[["boolean"]]]},{"name":"fetchWhenExisting","description":"Whether to fetch the user if not cached and already a member","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":71,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"FetchMemberOptions","description":"Options used to fetch a single member from a guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"user","description":"The user to fetch","type":[[["UserResolvable"]]]}],"meta":{"line":121,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"FetchMembersOptions","description":"Options used to fetch multiple members from a guild.","type":[[["Object"]]],"props":[{"name":"user","description":"The user(s) to fetch","type":[[["UserResolvable"]],[["Array","<"],["UserResolvable",">"]]]},{"name":"query","description":"Limit fetch to members with similar usernames","nullable":true,"type":[[["string"]]]},{"name":"limit","description":"Maximum number of members to request","optional":true,"default":0,"type":[[["number"]]]},{"name":"withPresences","description":"Whether or not to include the presences","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"time","description":"Timeout for receipt of members","optional":true,"default":"120e3","type":[[["number"]]]},{"name":"nonce","description":"Nonce for this request (32 characters max - default to base 16 now timestamp)","nullable":true,"type":[[["string"]]]},{"name":"force","description":"Whether to skip the cache check and request the API","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":127,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildSearchMembersOptions","description":"Options used for searching guild members.","type":[[["Object"]]],"props":[{"name":"query","description":"Filter members whose username or nickname start with this query","type":[[["string"]]]},{"name":"limit","description":"Maximum number of members to search","optional":true,"default":1,"type":[[["number"]]]},{"name":"cache","description":"Whether or not to cache the fetched member(s)","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":192,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildListMembersOptions","description":"Options used for listing guild members.","type":[[["Object"]]],"props":[{"name":"after","description":"Limit fetching members to those with an id greater than the supplied id","optional":true,"type":[[["Snowflake"]]]},{"name":"limit","description":"Maximum number of members to list","optional":true,"default":1,"type":[[["number"]]]},{"name":"cache","description":"Whether or not to cache the fetched member(s)","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":210,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildMemberEditData","description":"The data for editing a guild member.","type":[[["Object"]]],"props":[{"name":"nick","description":"The nickname to set for the member","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"roles","description":"The roles or role ids to apply","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]},{"name":"mute","description":"Whether or not the member should be muted","optional":true,"type":[[["boolean"]]]},{"name":"deaf","description":"Whether or not the member should be deafened","optional":true,"type":[[["boolean"]]]},{"name":"channel","description":"Channel to move the member to\n(if they are connected to voice), or `null` if you want to disconnect them from voice","optional":true,"type":[[["GuildVoiceChannelResolvable"]],[["null"]]]},{"name":"communicationDisabledUntil","description":"The date or timestamp\nfor the member's communication to be disabled until. Provide `null` to enable communication again.","optional":true,"type":[[["DateResolvable"]],[["null"]]]}],"meta":{"line":228,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildPruneMembersOptions","description":"Options used for pruning guild members.\nIt's recommended to set {@link GuildPruneMembersOptions#count options.count}\nto `false` for large guilds.","type":[[["Object"]]],"props":[{"name":"days","description":"Number of days of inactivity required to kick","optional":true,"default":7,"type":[[["number"]]]},{"name":"dry","description":"Get the number of users that will be kicked, without actually kicking them","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"count","description":"Whether or not to return the number of users that have been kicked.","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"roles","description":"Array of roles to bypass the \"...and no roles\" constraint when pruning","optional":true,"type":[[["Array","<"],["RoleResolvable",">"]]]},{"name":"reason","description":"Reason for this prune","optional":true,"type":[[["string"]]]}],"meta":{"line":286,"file":"GuildMemberManager.js","path":"src/managers"}},{"name":"GuildScheduledEventResolvable","description":"Data that resolves to give a GuildScheduledEvent object. This can be:\n* A Snowflake\n* A GuildScheduledEvent object","type":[[["Snowflake"]],[["GuildScheduledEvent"]]],"meta":{"line":31,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventCreateOptions","description":"Options used to create a guild scheduled event.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the guild scheduled event","type":[[["string"]]]},{"name":"scheduledStartTime","description":"The time to schedule the event at","type":[[["DateResolvable"]]]},{"name":"scheduledEndTime","description":"The time to end the event at\nThis is required if `entityType` is 'EXTERNAL'","optional":true,"type":[[["DateResolvable"]]]},{"name":"privacyLevel","description":"The privacy level of the guild scheduled event","type":[[["PrivacyLevel"]],[["number"]]]},{"name":"entityType","description":"The scheduled entity type of the event","type":[[["GuildScheduledEventEntityType"]],[["number"]]]},{"name":"description","description":"The description of the guild scheduled event","optional":true,"type":[[["string"]]]},{"name":"channel","description":"The channel of the guild scheduled event\nThis is required if `entityType` is 'STAGE_INSTANCE' or `VOICE`","optional":true,"type":[[["GuildVoiceChannelResolvable"]]]},{"name":"entityMetadata","description":"The entity metadata of the\nguild scheduled event\nThis is required if `entityType` is 'EXTERNAL'","optional":true,"type":[[["GuildScheduledEventEntityMetadataOptions"]]]},{"name":"image","description":"The cover image of the guild scheduled event","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"reason","description":"The reason for creating the guild scheduled event","optional":true,"type":[[["string"]]]}],"meta":{"line":38,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventEntityMetadataOptions","description":"Options used to set entity metadata of a guild scheduled event.","type":[[["Object"]]],"props":[{"name":"location","description":"The location of the guild scheduled event\nThis is required if `entityType` is 'EXTERNAL'","optional":true,"type":[[["string"]]]}],"meta":{"line":57,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"FetchGuildScheduledEventOptions","description":"Options used to fetch a single guild scheduled event from a guild.","type":[[["BaseFetchOptions"]]],"props":[{"name":"guildScheduledEvent","description":"The guild scheduled event to fetch","type":[[["GuildScheduledEventResolvable"]]]},{"name":"withUserCount","description":"Whether to fetch the number of users subscribed to the scheduled event","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":115,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"FetchGuildScheduledEventsOptions","description":"Options used to fetch multiple guild scheduled events from a guild.","type":[[["Object"]]],"props":[{"name":"cache","description":"Whether or not to cache the fetched guild scheduled events","optional":true,"type":[[["boolean"]]]},{"name":"withUserCount","description":"Whether to fetch the number of users subscribed to each scheduled event\nshould be returned","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":122,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventEditOptions","description":"Options used to edit a guild scheduled event.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the guild scheduled event","optional":true,"type":[[["string"]]]},{"name":"scheduledStartTime","description":"The time to schedule the event at","optional":true,"type":[[["DateResolvable"]]]},{"name":"scheduledEndTime","description":"The time to end the event at","optional":true,"type":[[["DateResolvable"]]]},{"name":"privacyLevel","description":"The privacy level of the guild scheduled event","optional":true,"type":[[["PrivacyLevel"]],[["number"]]]},{"name":"entityType","description":"The scheduled entity type of the event","optional":true,"type":[[["GuildScheduledEventEntityType"]],[["number"]]]},{"name":"description","description":"The description of the guild scheduled event","optional":true,"type":[[["string"]]]},{"name":"channel","description":"The channel of the guild scheduled event","optional":true,"nullable":true,"type":[[["GuildVoiceChannelResolvable"]]]},{"name":"status","description":"The status of the guild scheduled event","optional":true,"type":[[["GuildScheduledEventStatus"]],[["number"]]]},{"name":"entityMetadata","description":"The entity metadata of the\nguild scheduled event\nThis can be modified only if `entityType` of the `GuildScheduledEvent` to be edited is 'EXTERNAL'","optional":true,"type":[[["GuildScheduledEventEntityMetadataOptions"]]]},{"name":"image","description":"The cover image of the guild scheduled event","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"reason","description":"The reason for editing the guild scheduled event","optional":true,"type":[[["string"]]]}],"meta":{"line":165,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"FetchGuildScheduledEventSubscribersOptions","description":"Options used to fetch subscribers of a guild scheduled event","type":[[["Object"]]],"props":[{"name":"limit","description":"The maximum numbers of users to fetch","optional":true,"type":[[["number"]]]},{"name":"withMember","description":"Whether to fetch guild member data of the users","optional":true,"type":[[["boolean"]]]},{"name":"before","description":"Consider only users before this user id","optional":true,"type":[[["Snowflake"]]]},{"name":"after","description":"Consider only users after this user id\nIf both `before` and `after` are provided, only `before` is respected","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":250,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildScheduledEventUser","description":"Represents a subscriber of a {@link GuildScheduledEvent}","type":[[["Object"]]],"props":[{"name":"guildScheduledEventId","description":"The id of the guild scheduled event which the user subscribed to","type":[[["Snowflake"]]]},{"name":"user","description":"The user that subscribed to the guild scheduled event","type":[[["User"]]]},{"name":"member","description":"The guild member associated with the user, if any","nullable":true,"type":[[["GuildMember"]]]}],"meta":{"line":260,"file":"GuildScheduledEventManager.js","path":"src/managers"}},{"name":"GuildStickerCreateOptions","description":"Options for creating a guild sticker.","type":[[["Object"]]],"props":[{"name":"description","description":"The description for the sticker","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for creating the sticker","optional":true,"type":[[["string"]]]}],"meta":{"line":34,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"StickerResolvable","description":"Data that resolves to give a Sticker object. This can be:\n* A Sticker object\n* A Snowflake","type":[[["Sticker"]],[["Snowflake"]]],"meta":{"line":72,"file":"GuildStickerManager.js","path":"src/managers"}},{"name":"ChannelLogsQueryOptions","description":"The parameters to pass in when requesting previous messages from a channel. `around`, `before` and\n`after` are mutually exclusive. All the parameters are optional.","type":[[["Object"]]],"props":[{"name":"limit","description":"Number of messages to acquire","optional":true,"default":50,"type":[[["number"]]]},{"name":"before","description":"The message's id to get the messages that were posted before it","optional":true,"type":[[["Snowflake"]]]},{"name":"after","description":"The message's id to get the messages that were posted after it","optional":true,"type":[[["Snowflake"]]]},{"name":"around","description":"The message's id to get the messages that were posted around it","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":36,"file":"MessageManager.js","path":"src/managers"}},{"name":"MessageResolvable","description":"Data that can be resolved to a Message object. This can be:\n* A Message\n* A Snowflake","type":[[["Message"]],[["Snowflake"]]],"meta":{"line":92,"file":"MessageManager.js","path":"src/managers"}},{"name":"GuildChannelOverwriteOptions","description":"Extra information about the overwrite","type":[[["Object"]]],"props":[{"name":"reason","description":"Reason for creating/editing this overwrite","optional":true,"type":[[["string"]]]},{"name":"type","description":"The type of overwrite, either `0` for a role or `1` for a member. Use this to bypass\nautomatic resolution of type that results in an error for uncached structure","optional":true,"type":[[["number"]]]}],"meta":{"line":74,"file":"PermissionOverwriteManager.js","path":"src/managers"}},{"name":"PresenceResolvable","description":"Data that can be resolved to a Presence object. This can be:\n* A Presence\n* A UserResolvable\n* A Snowflake","type":[[["Presence"]],[["UserResolvable"]],[["Snowflake"]]],"meta":{"line":25,"file":"PresenceManager.js","path":"src/managers"}},{"name":"MessageReactionResolvable","description":"Data that can be resolved to a MessageReaction object. This can be:\n* A MessageReaction\n* A Snowflake","type":[[["MessageReaction"]],[["Snowflake"]]],"meta":{"line":31,"file":"ReactionManager.js","path":"src/managers"}},{"name":"FetchReactionUsersOptions","description":"Options used to fetch users who gave a reaction.","type":[[["Object"]]],"props":[{"name":"limit","description":"The maximum amount of users to fetch, defaults to `100`","optional":true,"default":100,"type":[[["number"]]]},{"name":"after","description":"Limit fetching users to those with an id greater than the supplied id","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":28,"file":"ReactionUserManager.js","path":"src/managers"}},{"name":"RoleResolvable","description":"Data that can be resolved to a Role object. This can be:\n* A Role\n* A Snowflake","type":[[["Role"]],[["Snowflake"]]],"meta":{"line":76,"file":"RoleManager.js","path":"src/managers"}},{"name":"CreateRoleOptions","description":"Options used to create a new role.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the new role","optional":true,"type":[[["string"]]]},{"name":"color","description":"The data to create the role with","optional":true,"type":[[["ColorResolvable"]]]},{"name":"hoist","description":"Whether or not the new role should be hoisted","optional":true,"type":[[["boolean"]]]},{"name":"permissions","description":"The permissions for the new role","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"position","description":"The position of the new role","optional":true,"type":[[["number"]]]},{"name":"mentionable","description":"Whether or not the new role should be mentionable","optional":true,"type":[[["boolean"]]]},{"name":"icon","description":"The icon for the role\nThe `EmojiResolvable` should belong to the same guild as the role.\nIf not, pass the emoji's URL directly","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]],[["EmojiResolvable"]]]},{"name":"unicodeEmoji","description":"The unicode emoji for the role","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"reason","description":"The reason for creating this role","optional":true,"type":[[["string"]]]}],"meta":{"line":101,"file":"RoleManager.js","path":"src/managers"}},{"name":"GuildRolePosition","description":"The data needed for updating a guild role's position","type":[[["Object"]]],"props":[{"name":"role","description":"The role's id","type":[[["RoleResolvable"]]]},{"name":"position","description":"The position to update","type":[[["number"]]]}],"meta":{"line":1369,"file":"Guild.js","path":"src/structures"}},{"name":"StageInstanceCreateOptions","description":"Options used to create a stage instance.","type":[[["Object"]]],"props":[{"name":"topic","description":"The topic of the stage instance","type":[[["string"]]]},{"name":"privacyLevel","description":"The privacy level of the stage instance","optional":true,"type":[[["PrivacyLevel"]],[["number"]]]},{"name":"sendStartNotification","description":"Whether to notify `@everyone` that the stage instance has started","optional":true,"type":[[["boolean"]]]}],"meta":{"line":29,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"StageChannelResolvable","description":"Data that can be resolved to a Stage Channel object. This can be:\n* A StageChannel\n* A Snowflake","type":[[["StageChannel"]],[["Snowflake"]]],"meta":{"line":37,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"StageInstanceEditOptions","description":"Options used to edit an existing stage instance.","type":[[["Object"]]],"props":[{"name":"topic","description":"The new topic of the stage instance","optional":true,"type":[[["string"]]]},{"name":"privacyLevel","description":"The new privacy level of the stage instance","optional":true,"type":[[["PrivacyLevel"]],[["number"]]]}],"meta":{"line":102,"file":"StageInstanceManager.js","path":"src/managers"}},{"name":"ThreadChannelResolvable","description":"Data that can be resolved to a Thread Channel object. This can be:\n* A ThreadChannel object\n* A Snowflake","type":[[["ThreadChannel"]],[["Snowflake"]]],"meta":{"line":38,"file":"ThreadManager.js","path":"src/managers"}},{"name":"ThreadCreateOptions","description":"Options for creating a thread. Only one of `startMessage` or `type` can be defined.","type":[[["StartThreadOptions"]]],"props":[{"name":"startMessage","description":"The message to start a thread from. If this is defined then type\nof thread gets automatically defined and cannot be changed. The provided `type` field will be ignored","optional":true,"type":[[["MessageResolvable"]]]},{"name":"type","description":"The type of thread to create. Defaults to `GUILD_PUBLIC_THREAD` if\ncreated in a {@link TextChannel} When creating threads in a {@link NewsChannel} this is ignored and is always\n`GUILD_NEWS_THREAD`","optional":true,"type":[[["ThreadChannelTypes"]],[["number"]]]},{"name":"invitable","description":"Whether non-moderators can add other non-moderators to the thread\nCan only be set when type will be `GUILD_PRIVATE_THREAD`","optional":true,"type":[[["boolean"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the new channel in seconds","optional":true,"type":[[["number"]]]}],"meta":{"line":63,"file":"ThreadManager.js","path":"src/managers"}},{"name":"FetchThreadsOptions","description":"The options for fetching multiple threads, the properties are mutually exclusive","type":[[["Object"]]],"props":[{"name":"archived","description":"The options used to fetch archived threads","optional":true,"type":[[["FetchArchivedThreadOptions"]]]},{"name":"active","description":"When true, fetches active threads. If `archived` is set, this is ignored!","optional":true,"type":[[["boolean"]]]}],"meta":{"line":141,"file":"ThreadManager.js","path":"src/managers"}},{"name":"DateResolvable","description":"Data that can be resolved to a Date object. This can be:\n* A Date object\n* A number representing a timestamp\n* An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string","type":[[["Date"]],[["number"]],[["string"]]],"meta":{"line":171,"file":"ThreadManager.js","path":"src/managers"}},{"name":"FetchArchivedThreadOptions","description":"The options used to fetch archived threads.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of threads to fetch, either `public` or `private`","optional":true,"default":"'public'","type":[[["string"]]]},{"name":"fetchAll","description":"Whether to fetch **all** archived threads when type is `private`.\nRequires `MANAGE_THREADS` if true","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"before","description":"Only return threads that were created before this Date\nor Snowflake. Must be a {@link ThreadChannelResolvable} when type is `private` and fetchAll is `false`","optional":true,"type":[[["DateResolvable"]],[["ThreadChannelResolvable"]]]},{"name":"limit","description":"Maximum number of threads to return","optional":true,"type":[[["number"]]]}],"meta":{"line":179,"file":"ThreadManager.js","path":"src/managers"}},{"name":"FetchedThreads","description":"The data returned from a thread fetch that returns multiple threads.","type":[[["Object"]]],"props":[{"name":"threads","description":"The threads that were fetched, with any members returned","type":[[["Collection","<"],["Snowflake",", "],["ThreadChannel",">"]]]},{"name":"hasMore","description":"Whether there are potentially additional threads that require a subsequent call","nullable":true,"type":[[["boolean"]]]}],"meta":{"line":190,"file":"ThreadManager.js","path":"src/managers"}},{"name":"ThreadMemberResolvable","description":"Data that resolves to give a ThreadMember object. This can be:\n* A ThreadMember object\n* A User resolvable","type":[[["ThreadMember"]],[["UserResolvable"]]],"meta":{"line":39,"file":"ThreadMemberManager.js","path":"src/managers"}},{"name":"HTTPErrorData","description":"The HTTP data that was sent to Discord","type":[[["Object"]]],"props":[{"name":"json","description":"The JSON data that was sent","type":[["*"]]},{"name":"files","description":"The files that were sent with this request, if any","type":[[["Array","<"],["HTTPAttachmentData",">"]]]}],"meta":{"line":35,"file":"HTTPError.js","path":"src/rest"}},{"name":"HTTPAttachmentData","description":"The attachment data that is sent to Discord","type":[[["Object"]]],"props":[{"name":"attachment","description":"The source of this attachment data","type":[[["string"]],[["Buffer"]],[["Stream"]]]},{"name":"name","description":"The file name","type":[[["string"]]]},{"name":"file","description":"The file buffer","type":[[["Buffer"]],[["Stream"]]]}],"meta":{"line":42,"file":"HTTPError.js","path":"src/rest"}},{"name":"APIRequest","description":"Represents a request that will or has been made to the Discord API","type":[[["Object"]]],"props":[{"name":"method","description":"The HTTP method used in this request","type":[[["HTTPMethod"]]]},{"name":"path","description":"The full path used to make the request","type":[[["string"]]]},{"name":"route","description":"The API route identifying the rate limit for this request","type":[[["string"]]]},{"name":"options","description":"Additional options for this request","type":[[["Object"]]]},{"name":"retries","description":"The number of times this request has been attempted","type":[[["number"]]]}],"meta":{"line":166,"file":"RequestHandler.js","path":"src/rest"}},{"name":"InvalidRequestWarningData","type":[[["Object"]]],"props":[{"name":"count","description":"Number of invalid requests that have been made in the window","type":[[["number"]]]},{"name":"remainingTime","description":"Time in milliseconds remaining before the count resets","type":[[["number"]]]}],"meta":{"line":280,"file":"RequestHandler.js","path":"src/rest"}},{"name":"ShardRespawnOptions","description":"Options used to respawn a shard.","type":[[["Object"]]],"props":[{"name":"delay","description":"How long to wait between killing the process/worker and\nrestarting it (in milliseconds)","optional":true,"default":500,"type":[[["number"]]]},{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client}\nhas become ready before resolving (`-1` or `Infinity` for no wait)","optional":true,"default":30000,"type":[[["number"]]]}],"meta":{"line":191,"file":"Shard.js","path":"src/sharding"}},{"name":"ShardingManagerMode","description":"The mode to spawn shards with for a {@link ShardingManager}. Can be either one of:\n* 'process' to use child processes\n* 'worker' to use [Worker threads](https://nodejs.org/api/worker_threads.html)","type":[[["string"]]],"meta":{"line":23,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"ShardingManagerOptions","description":"The options to spawn shards with for a {@link ShardingManager}.","type":[[["Object"]]],"props":[{"name":"totalShards","description":"Number of total shards of all shard managers or \"auto\"","optional":true,"default":"'auto'","type":[[["string"]],[["number"]]]},{"name":"shardList","description":"List of shards to spawn or \"auto\"","optional":true,"default":"'auto'","type":[[["string"]],[["Array","<"],["number",">"]]]},{"name":"mode","description":"Which mode to use for shards","optional":true,"default":"'process'","type":[[["ShardingManagerMode"]]]},{"name":"respawn","description":"Whether shards should automatically respawn upon exiting","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"shardArgs","description":"Arguments to pass to the shard script when spawning\n(only available when mode is set to 'process')","optional":true,"default":"[]","type":[[["Array","<"],["string",">"]]]},{"name":"execArgv","description":"Arguments to pass to the shard script executable when spawning\n(only available when mode is set to 'process')","optional":true,"default":"[]","type":[[["Array","<"],["string",">"]]]},{"name":"token","description":"Token to use for automatic shard count and passing to shards","optional":true,"type":[[["string"]]]}],"meta":{"line":30,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"MultipleShardSpawnOptions","description":"Options used to spawn multiple shards.","type":[[["Object"]]],"props":[{"name":"amount","description":"Number of shards to spawn","optional":true,"default":"this.totalShards","type":[[["number"]],[["string"]]]},{"name":"delay","description":"How long to wait in between spawning each shard (in milliseconds)","optional":true,"default":5500,"type":[[["number"]]]},{"name":"timeout","description":"The amount in milliseconds to wait until the {@link Client} has become ready","optional":true,"default":30000,"type":[[["number"]]]}],"meta":{"line":170,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"BroadcastEvalOptions","description":"Options for {@link ShardingManager#broadcastEval} and {@link ShardClientUtil#broadcastEval}.","type":[[["Object"]]],"props":[{"name":"shard","description":"Shard to run script on, all if undefined","optional":true,"type":[[["number"]]]},{"name":"context","description":"The JSON-serializable values to call the script with","optional":true,"type":[["*"]]}],"meta":{"line":237,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"MultipleShardRespawnOptions","description":"Options used to respawn all shards.","type":[[["Object"]]],"props":[{"name":"shardDelay","description":"How long to wait between shards (in milliseconds)","optional":true,"default":5000,"type":[[["number"]]]},{"name":"respawnDelay","description":"How long to wait between killing a shard's process and restarting it\n(in milliseconds)","optional":true,"default":500,"type":[[["number"]]]},{"name":"timeout","description":"The amount in milliseconds to wait for a shard to become ready before\ncontinuing to another (`-1` or `Infinity` for no wait)","optional":true,"default":30000,"type":[[["number"]]]}],"meta":{"line":292,"file":"ShardingManager.js","path":"src/sharding"}},{"name":"ApplicationCommandData","description":"Data for creating or editing an application command.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the command","type":[[["string"]]]},{"name":"nameLocalizations","description":"The localizations for the command name","optional":true,"type":[[["Object","<"],["Locale",", "],["string",">"]]]},{"name":"description","description":"The description of the command","type":[[["string"]]]},{"name":"descriptionLocalizations","description":"The localizations for the command description","optional":true,"type":[[["Object","<"],["Locale",", "],["string",">"]]]},{"name":"type","description":"The type of the command","optional":true,"type":[[["ApplicationCommandType"]]]},{"name":"options","description":"Options for the command","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]},{"name":"defaultPermission","description":"Whether the command is enabled by default when the app is added to a guild","optional":true,"type":[[["boolean"]]]}],"meta":{"line":170,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"ApplicationCommandOptionData","description":"An option for an application command or subcommand.\nIn addition to the listed properties, when used as a parameter,\nAPI style `snake_case` properties can be used for compatibility with generators like `@discordjs/builders`.\nNote that providing a value for the `camelCase` counterpart for any `snake_case` property\nwill discard the provided `snake_case` property.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of the option","type":[[["ApplicationCommandOptionType"]],[["number"]]]},{"name":"name","description":"The name of the option","type":[[["string"]]]},{"name":"nameLocalizations","description":"The name localizations for the option","optional":true,"type":[[["Object","<"],["Locale",", "],["string",">"]]]},{"name":"description","description":"The description of the option","type":[[["string"]]]},{"name":"descriptionLocalizations","description":"The description localizations for the option","optional":true,"type":[[["Object","<"],["Locale",", "],["string",">"]]]},{"name":"autocomplete","description":"Whether the option is an autocomplete option","optional":true,"type":[[["boolean"]]]},{"name":"required","description":"Whether the option is required","optional":true,"type":[[["boolean"]]]},{"name":"choices","description":"The choices of the option for the user to pick from","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionChoiceData",">"]]]},{"name":"options","description":"Additional options if this option is a subcommand (group)","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionData",">"]]]},{"name":"channelTypes","description":"When the option type is channel,\nthe allowed types of channels that can be selected","optional":true,"type":[[["Array","<"],["ChannelType",">"]],[["Array","<"],["number",">"]]]},{"name":"minValue","description":"The minimum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]},{"name":"maxValue","description":"The maximum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]}],"meta":{"line":182,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"ApplicationCommandOptionChoiceData","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the choice","type":[[["string"]]]},{"name":"nameLocalizations","description":"The localized names for this choice","optional":true,"type":[[["Object","<"],["Locale",", "],["string",">"]]]},{"name":"value","description":"The value of the choice","type":[[["string"]],[["number"]]]}],"meta":{"line":204,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"ApplicationCommandOption","description":"An option for an application command or subcommand.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of the option","type":[[["ApplicationCommandOptionType"]]]},{"name":"name","description":"The name of the option","type":[[["string"]]]},{"name":"nameLocalizations","description":"The localizations for the option name","optional":true,"type":[[["Object","<"],["string",", "],["string",">"]]]},{"name":"nameLocalized","description":"The localized name for this option","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of the option","type":[[["string"]]]},{"name":"descriptionLocalizations","description":"The localizations for the option description","optional":true,"type":[[["Object","<"],["string",", "],["string",">"]]]},{"name":"descriptionLocalized","description":"The localized description for this option","optional":true,"type":[[["string"]]]},{"name":"required","description":"Whether the option is required","optional":true,"type":[[["boolean"]]]},{"name":"autocomplete","description":"Whether the option is an autocomplete option","optional":true,"type":[[["boolean"]]]},{"name":"choices","description":"The choices of the option for the user to pick from","optional":true,"type":[[["Array","<"],["ApplicationCommandOptionChoice",">"]]]},{"name":"options","description":"Additional options if this option is a subcommand (group)","optional":true,"type":[[["Array","<"],["ApplicationCommandOption",">"]]]},{"name":"channelTypes","description":"When the option type is channel,\nthe allowed types of channels that can be selected","optional":true,"type":[[["Array","<"],["ChannelType",">"]]]},{"name":"minValue","description":"The minimum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]},{"name":"maxValue","description":"The maximum value for an `INTEGER` or `NUMBER` option","optional":true,"type":[[["number"]]]}],"meta":{"line":432,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"ApplicationCommandOptionChoice","description":"A choice for an application command option.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the choice","type":[[["string"]]]},{"name":"nameLocalized","description":"The localized name of the choice in the provided locale, if any","nullable":true,"type":[[["string"]]]},{"name":"nameLocalizations","description":"The localized names for this choice","optional":true,"nullable":true,"type":[[["Object","<"],["string",", "],["string",">"]]]},{"name":"value","description":"The value of the choice","type":[[["string"]],[["number"]]]}],"meta":{"line":452,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"CommandInteractionResolvedData","description":"Represents the resolved data of a received command interaction.","type":[[["Object"]]],"props":[{"name":"users","description":"The resolved users","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["User",">"]]]},{"name":"members","description":"The resolved guild members","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["GuildMember","|"],["APIGuildMember",")>"]]]},{"name":"roles","description":"The resolved roles","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["Role","|"],["APIRole",")>"]]]},{"name":"channels","description":"The resolved channels","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["Channel","|"],["APIChannel",")>"]]]},{"name":"messages","description":"The resolved messages","optional":true,"type":[[["Collection","<"],["Snowflake",", ("],["Message","|"],["APIMessage",")>"]]]},{"name":"attachments","description":"The resolved attachments","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["MessageAttachment",">"]]]}],"meta":{"line":72,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"CommandInteractionOption","description":"Represents an option of a received command interaction.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the option","type":[[["string"]]]},{"name":"type","description":"The type of the option","type":[[["ApplicationCommandOptionType"]]]},{"name":"autocomplete","description":"Whether the option is an autocomplete option","optional":true,"type":[[["boolean"]]]},{"name":"value","description":"The value of the option","optional":true,"type":[[["string"]],[["number"]],[["boolean"]]]},{"name":"options","description":"Additional options if this option is a\nsubcommand (group)","optional":true,"type":[[["Array","<"],["CommandInteractionOption",">"]]]},{"name":"user","description":"The resolved user","optional":true,"type":[[["User"]]]},{"name":"member","description":"The resolved member","optional":true,"type":[[["GuildMember"]],[["APIGuildMember"]]]},{"name":"channel","description":"The resolved channel","optional":true,"type":[[["GuildChannel"]],[["ThreadChannel"]],[["APIChannel"]]]},{"name":"role","description":"The resolved role","optional":true,"type":[[["Role"]],[["APIRole"]]]},{"name":"attachment","description":"The resolved attachment","optional":true,"type":[[["MessageAttachment"]]]}],"meta":{"line":139,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"ChannelWebhookCreateOptions","description":"Options used to create a {@link Webhook} in a {@link TextChannel} or a {@link NewsChannel}.","type":[[["Object"]]],"props":[{"name":"avatar","description":"Avatar for the webhook","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"reason","description":"Reason for creating the webhook","optional":true,"type":[[["string"]]]}],"meta":{"line":125,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"ApplicationResolvable","description":"Data that can be resolved to an Application. This can be:\n* An Application\n* An Activity with associated Application\n* A Snowflake","type":[[["Application"]],[["Snowflake"]]],"meta":{"line":165,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"CreateInviteOptions","description":"Options used to create an invite to a guild channel.","type":[[["Object"]]],"props":[{"name":"temporary","description":"Whether members that joined via the invite should be automatically\nkicked after 24 hours if they have not yet received a role","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"maxAge","description":"How long the invite should last (in seconds, 0 for forever)","optional":true,"default":86400,"type":[[["number"]]]},{"name":"maxUses","description":"Maximum number of uses","optional":true,"default":0,"type":[[["number"]]]},{"name":"unique","description":"Create a unique invite, or use an existing one with similar settings","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"targetUser","description":"The user whose stream to display for this invite,\nrequired if `targetType` is 1, the user must be streaming in the channel","optional":true,"type":[[["UserResolvable"]]]},{"name":"targetApplication","description":"The embedded application to open for this invite,\nrequired if `targetType` is 2, the application must have the `EMBEDDED` flag","optional":true,"type":[[["ApplicationResolvable"]]]},{"name":"targetType","description":"The type of the target for this voice channel invite","optional":true,"type":[[["TargetType"]]]},{"name":"reason","description":"The reason for creating the invite","optional":true,"type":[[["string"]]]}],"meta":{"line":173,"file":"BaseGuildTextChannel.js","path":"src/structures"}},{"name":"BaseMessageComponentOptions","description":"Options for a BaseMessageComponent","type":[[["Object"]]],"props":[{"name":"type","description":"The type of this component","type":[[["MessageComponentTypeResolvable"]]]}],"meta":{"line":11,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"MessageComponentOptions","description":"Data that can be resolved into options for a component. This can be:\n* MessageActionRowOptions\n* MessageButtonOptions\n* MessageSelectMenuOptions\n* TextInputComponentOptions","type":[[["MessageActionRowOptions"]],[["MessageButtonOptions"]],[["MessageSelectMenuOptions"]]],"meta":{"line":17,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"MessageComponent","description":"Components that can be sent in a payload. These can be:\n* MessageActionRow\n* MessageButton\n* MessageSelectMenu\n* TextInputComponent","see":["{@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}"],"type":[[["MessageActionRow"]],[["MessageButton"]],[["MessageSelectMenu"]]],"meta":{"line":26,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"MessageComponentTypeResolvable","description":"Data that can be resolved to a MessageComponentType. This can be:\n* MessageComponentType\n* string\n* number","type":[[["string"]],[["number"]],[["MessageComponentType"]]],"meta":{"line":36,"file":"BaseMessageComponent.js","path":"src/structures"}},{"name":"CategoryCreateChannelOptions","description":"Options for creating a channel using {@link CategoryChannel#createChannel}.","type":[[["Object"]]],"props":[{"name":"type","description":"The type of the new channel.","optional":true,"default":"'GUILD_TEXT'","type":[[["ChannelType"]],[["number"]]]},{"name":"topic","description":"The topic for the new channel","optional":true,"type":[[["string"]]]},{"name":"nsfw","description":"Whether the new channel is NSFW","optional":true,"type":[[["boolean"]]]},{"name":"bitrate","description":"Bitrate of the new channel in bits (only voice)","optional":true,"type":[[["number"]]]},{"name":"userLimit","description":"Maximum amount of users allowed in the new channel (only voice)","optional":true,"type":[[["number"]]]},{"name":"permissionOverwrites","description":"Permission overwrites of the new channel","optional":true,"type":[[["Array","<"],["OverwriteResolvable",">"]],[["Collection","<"],["Snowflake",", "],["OverwriteResolvable",">"]]]},{"name":"position","description":"Position of the new channel","optional":true,"type":[[["number"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the new channel in seconds","optional":true,"type":[[["number"]]]},{"name":"rtcRegion","description":"The specific region of the new channel.","optional":true,"type":[[["string"]]]},{"name":"reason","description":"Reason for creating the new channel","optional":true,"type":[[["string"]]]}],"meta":{"line":30,"file":"CategoryChannel.js","path":"src/structures"}},{"name":"ClientApplicationInstallParams","type":[[["Object"]]],"props":[{"name":"scopes","description":"The scopes to add the application to the server with","type":[[["Array","<"],["InviteScope",">"]]]},{"name":"permissions","description":"The permissions this bot will request upon joining","type":[[["Readonly","<"],["Permissions",">"]]]}],"meta":{"line":10,"file":"ClientApplication.js","path":"src/structures"}},{"name":"ClientUserEditData","description":"Data used to edit the logged in client","type":[[["Object"]]],"props":[{"name":"username","description":"The new username","optional":true,"type":[[["string"]]]},{"name":"avatar","description":"The new avatar","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]}],"meta":{"line":84,"file":"ClientUser.js","path":"src/structures"}},{"name":"ActivitiesOptions","description":"Options for setting activities","type":[[["Object"]]],"props":[{"name":"name","description":"Name of the activity","optional":true,"type":[[["string"]]]},{"name":"type","description":"Type of the activity","optional":true,"type":[[["ActivityType"]],[["number"]]]},{"name":"url","description":"Twitch / YouTube stream URL","optional":true,"type":[[["string"]]]}],"meta":{"line":323,"file":"ClientUser.js","path":"src/structures"}},{"name":"PresenceData","description":"Data resembling a raw Discord presence.","type":[[["Object"]]],"props":[{"name":"status","description":"Status of the user","optional":true,"type":[[["PresenceStatusData"]]]},{"name":"afk","description":"Whether the user is AFK","optional":true,"type":[[["boolean"]]]},{"name":"activities","description":"Activity the user is playing","optional":true,"type":[[["Array","<"],["ActivitiesOptions",">"]]]},{"name":"shardId","description":"Shard id(s) to have the activity set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"meta":{"line":331,"file":"ClientUser.js","path":"src/structures"}},{"name":"PresenceStatusData","description":"A user's status. Must be one of:\n* `online`\n* `idle`\n* `invisible`\n* `dnd` (do not disturb)","type":[[["string"]]],"meta":{"line":352,"file":"ClientUser.js","path":"src/structures"}},{"name":"ActivityOptions","description":"Options for setting an activity.","type":[[["Object"]]],"props":[{"name":"name","description":"Name of the activity","optional":true,"type":[[["string"]]]},{"name":"url","description":"Twitch / YouTube stream URL","optional":true,"type":[[["string"]]]},{"name":"type","description":"Type of the activity","optional":true,"type":[[["ActivityType"]],[["number"]]]},{"name":"shardId","description":"Shard Id(s) to have the activity set on","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]]]}],"meta":{"line":374,"file":"ClientUser.js","path":"src/structures"}},{"name":"RawEmoji","description":"Represents raw emoji data from the API","type":[[["APIEmoji"]]],"props":[{"name":"id","description":"The emoji's id","nullable":true,"type":[[["Snowflake"]]]},{"name":"name","description":"The emoji's name","nullable":true,"type":[[["string"]]]},{"name":"animated","description":"Whether the emoji is animated","nullable":true,"type":[[["boolean"]]]}],"meta":{"line":15,"file":"Emoji.js","path":"src/structures"}},{"name":"Features","description":"An array of enabled guild features, here are the possible values:\n* ANIMATED_ICON\n* BANNER\n* COMMERCE\n* COMMUNITY\n* DISCOVERABLE\n* FEATURABLE\n* INVITE_SPLASH\n* MEMBER_VERIFICATION_GATE_ENABLED\n* NEWS\n* PARTNERED\n* PREVIEW_ENABLED\n* VANITY_URL\n* VERIFIED\n* VIP_REGIONS\n* WELCOME_SCREEN_ENABLED\n* TICKETED_EVENTS_ENABLED\n* MONETIZATION_ENABLED\n* MORE_STICKERS\n* THREE_DAY_THREAD_ARCHIVE\n* SEVEN_DAY_THREAD_ARCHIVE\n* PRIVATE_THREADS\n* ROLE_ICONS","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}"],"type":[[["string"]]],"meta":{"line":218,"file":"Guild.js","path":"src/structures"}},{"name":"GuildSearchInteractionOptions","description":"Options for guildSearchInteraction","type":[[["Object"]]],"props":[{"name":"type","description":"{@link ApplicationCommandTypes}","optional":true,"default":1,"type":[[["number"]],[["string"]]]},{"name":"query","description":"Command name","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"limit","description":"Maximum number of results","optional":true,"default":1,"nullable":true,"type":[[["number"]]]},{"name":"offset","description":"Only return entries for actions made by this user","optional":true,"default":0,"nullable":true,"type":[[["number"]]]},{"name":"botId","description":"Array of bot IDs to filter by","type":[[["Array","<"],["Snowflake",">"]]]}],"meta":{"line":615,"file":"Guild.js","path":"src/structures"}},{"name":"Vanity","description":"An object containing information about a guild's vanity invite.","type":[[["Object"]]],"props":[{"name":"code","description":"Vanity invite code","nullable":true,"type":[[["string"]]]},{"name":"uses","description":"How many times this invite has been used","type":[[["number"]]]}],"meta":{"line":733,"file":"Guild.js","path":"src/structures"}},{"name":"GuildWidgetSettings","description":"Data for the Guild Widget Settings object","type":[[["Object"]]],"props":[{"name":"enabled","description":"Whether the widget is enabled","type":[[["boolean"]]]},{"name":"channel","description":"The widget invite channel","nullable":true,"type":[[["GuildChannel"]]]}],"meta":{"line":794,"file":"Guild.js","path":"src/structures"}},{"name":"GuildWidgetSettingsData","description":"The Guild Widget Settings object","type":[[["Object"]]],"props":[{"name":"enabled","description":"Whether the widget is enabled","type":[[["boolean"]]]},{"name":"channel","description":"The widget invite channel","nullable":true,"type":[[["GuildChannelResolvable"]]]}],"meta":{"line":801,"file":"Guild.js","path":"src/structures"}},{"name":"GuildAuditLogsFetchOptions","description":"Options used to fetch audit logs.","type":[[["Object"]]],"props":[{"name":"before","description":"Only return entries before this entry","optional":true,"type":[[["Snowflake"]],[["GuildAuditLogsEntry"]]]},{"name":"limit","description":"The number of entries to return","optional":true,"type":[[["number"]]]},{"name":"user","description":"Only return entries for actions made by this user","optional":true,"type":[[["UserResolvable"]]]},{"name":"type","description":"Only return entries for this action type","optional":true,"type":[[["AuditLogAction"]],[["number"]]]}],"meta":{"line":827,"file":"Guild.js","path":"src/structures"}},{"name":"GuildEditData","description":"The data for editing a guild.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the guild","optional":true,"type":[[["string"]]]},{"name":"verificationLevel","description":"The verification level of the guild","optional":true,"nullable":true,"type":[[["VerificationLevel"]],[["number"]]]},{"name":"explicitContentFilter","description":"The level of the explicit content filter","optional":true,"nullable":true,"type":[[["ExplicitContentFilterLevel"]],[["number"]]]},{"name":"afkChannel","description":"The AFK channel of the guild","optional":true,"nullable":true,"type":[[["VoiceChannelResolvable"]]]},{"name":"systemChannel","description":"The system channel of the guild","optional":true,"nullable":true,"type":[[["TextChannelResolvable"]]]},{"name":"afkTimeout","description":"The AFK timeout of the guild","optional":true,"type":[[["number"]]]},{"name":"icon","description":"The icon of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"owner","description":"The owner of the guild","optional":true,"type":[[["GuildMemberResolvable"]]]},{"name":"splash","description":"The invite splash image of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"discoverySplash","description":"The discovery splash image of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"banner","description":"The banner of the guild","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]]]},{"name":"defaultMessageNotifications","description":"The default message notification\nlevel of the guild","optional":true,"nullable":true,"type":[[["DefaultMessageNotificationLevel"]],[["number"]]]},{"name":"systemChannelFlags","description":"The system channel flags of the guild","optional":true,"type":[[["SystemChannelFlagsResolvable"]]]},{"name":"rulesChannel","description":"The rules channel of the guild","optional":true,"nullable":true,"type":[[["TextChannelResolvable"]]]},{"name":"publicUpdatesChannel","description":"The community updates channel of the guild","optional":true,"nullable":true,"type":[[["TextChannelResolvable"]]]},{"name":"preferredLocale","description":"The preferred locale of the guild","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"premiumProgressBarEnabled","description":"Whether the guild's premium progress bar is enabled","optional":true,"type":[[["boolean"]]]},{"name":"description","description":"The discovery description of the guild","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"features","description":"The features of the guild","optional":true,"type":[[["Array","<"],["Features",">"]]]}],"meta":{"line":865,"file":"Guild.js","path":"src/structures"}},{"name":"TextChannelResolvable","description":"Data that can be resolved to a Text Channel object. This can be:\n* A TextChannel\n* A Snowflake","type":[[["TextChannel"]],[["Snowflake"]]],"meta":{"line":890,"file":"Guild.js","path":"src/structures"}},{"name":"VoiceChannelResolvable","description":"Data that can be resolved to a Voice Channel object. This can be:\n* A VoiceChannel\n* A Snowflake","type":[[["VoiceChannel"]],[["Snowflake"]]],"meta":{"line":897,"file":"Guild.js","path":"src/structures"}},{"name":"WelcomeChannelData","description":"Welcome channel data","type":[[["Object"]]],"props":[{"name":"description","description":"The description to show for this welcome channel","type":[[["string"]]]},{"name":"channel","description":"The channel to link for this welcome channel","type":[[["TextChannel"]],[["NewsChannel"]],[["StoreChannel"]],[["Snowflake"]]]},{"name":"emoji","description":"The emoji to display for this welcome channel","optional":true,"type":[[["EmojiIdentifierResolvable"]]]}],"meta":{"line":981,"file":"Guild.js","path":"src/structures"}},{"name":"WelcomeScreenEditData","description":"Welcome screen edit data","type":[[["Object"]]],"props":[{"name":"enabled","description":"Whether the welcome screen is enabled","optional":true,"type":[[["boolean"]]]},{"name":"description","description":"The description for the welcome screen","optional":true,"type":[[["string"]]]},{"name":"welcomeChannels","description":"The welcome channel data for the welcome screen","optional":true,"type":[[["Array","<"],["WelcomeChannelData",">"]]]}],"meta":{"line":989,"file":"Guild.js","path":"src/structures"}},{"name":"GuildTextChannelResolvable","description":"Data that can be resolved to a GuildTextChannel object. This can be:\n* A TextChannel\n* A NewsChannel\n* A Snowflake","type":[[["TextChannel"]],[["NewsChannel"]],[["Snowflake"]]],"meta":{"line":997,"file":"Guild.js","path":"src/structures"}},{"name":"GuildVoiceChannelResolvable","description":"Data that can be resolved to a GuildVoiceChannel object. This can be:\n* A VoiceChannel\n* A StageChannel\n* A Snowflake","type":[[["VoiceChannel"]],[["StageChannel"]],[["Snowflake"]]],"meta":{"line":1005,"file":"Guild.js","path":"src/structures"}},{"name":"AuditLogTargetType","description":"The target type of an entry. Here are the available types:\n* GUILD\n* CHANNEL\n* USER\n* ROLE\n* INVITE\n* WEBHOOK\n* EMOJI\n* MESSAGE\n* INTEGRATION\n* STAGE_INSTANCE\n* STICKER\n* THREAD\n* GUILD_SCHEDULED_EVENT","type":[[["string"]]],"meta":{"line":14,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogAction","description":"The action of an entry. Here are the available actions:\n* ALL: null\n* GUILD_UPDATE: 1\n* CHANNEL_CREATE: 10\n* CHANNEL_UPDATE: 11\n* CHANNEL_DELETE: 12\n* CHANNEL_OVERWRITE_CREATE: 13\n* CHANNEL_OVERWRITE_UPDATE: 14\n* CHANNEL_OVERWRITE_DELETE: 15\n* MEMBER_KICK: 20\n* MEMBER_PRUNE: 21\n* MEMBER_BAN_ADD: 22\n* MEMBER_BAN_REMOVE: 23\n* MEMBER_UPDATE: 24\n* MEMBER_ROLE_UPDATE: 25\n* MEMBER_MOVE: 26\n* MEMBER_DISCONNECT: 27\n* BOT_ADD: 28,\n* ROLE_CREATE: 30\n* ROLE_UPDATE: 31\n* ROLE_DELETE: 32\n* INVITE_CREATE: 40\n* INVITE_UPDATE: 41\n* INVITE_DELETE: 42\n* WEBHOOK_CREATE: 50\n* WEBHOOK_UPDATE: 51\n* WEBHOOK_DELETE: 52\n* EMOJI_CREATE: 60\n* EMOJI_UPDATE: 61\n* EMOJI_DELETE: 62\n* MESSAGE_DELETE: 72\n* MESSAGE_BULK_DELETE: 73\n* MESSAGE_PIN: 74\n* MESSAGE_UNPIN: 75\n* INTEGRATION_CREATE: 80\n* INTEGRATION_UPDATE: 81\n* INTEGRATION_DELETE: 82\n* STAGE_INSTANCE_CREATE: 83\n* STAGE_INSTANCE_UPDATE: 84\n* STAGE_INSTANCE_DELETE: 85\n* STICKER_CREATE: 90\n* STICKER_UPDATE: 91\n* STICKER_DELETE: 92\n* GUILD_SCHEDULED_EVENT_CREATE: 100\n* GUILD_SCHEDULED_EVENT_UPDATE: 101\n* GUILD_SCHEDULED_EVENT_DELETE: 102\n* THREAD_CREATE: 110\n* THREAD_UPDATE: 111\n* THREAD_DELETE: 112","see":["{@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events}"],"type":[[["number"]],[["string"]]],"meta":{"line":55,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogEntryTarget","description":"The target of an entry. It can be one of:\n* A guild\n* A channel\n* A user\n* A role\n* An invite\n* A webhook\n* An emoji\n* A message\n* An integration\n* A stage instance\n* A sticker\n* A guild scheduled event\n* A thread\n* An object with an id key if target was deleted\n* An object where the keys represent either the new value or the old value","type":[[["Object"]],[["Guild"]],[["Channel"]],[["User"]],[["Role"]],[["Invite"]],[["Webhook"]],[["GuildEmoji"]],[["Message"]],[["Integration"]],[["StageInstance"]],[["Sticker"]],[["GuildScheduledEvent"]]],"meta":{"line":217,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogActionType","description":"The action type of an entry, e.g. `CREATE`. Here are the available types:\n* CREATE\n* DELETE\n* UPDATE\n* ALL","type":[[["string"]]],"meta":{"line":260,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"AuditLogChange","description":"An entry in the audit log representing a specific change.","type":[[["Object"]]],"props":[{"name":"key","description":"The property that was changed, e.g. `nick` for nickname changes","type":[[["string"]]]},{"name":"old","description":"The old value of the change, e.g. for nicknames, the old nickname","optional":true,"type":[["*"]]},{"name":"new","description":"The new value of the change, e.g. for nicknames, the new nickname","optional":true,"type":[["*"]]}],"meta":{"line":391,"file":"GuildAuditLogs.js","path":"src/structures"}},{"name":"SetParentOptions","description":"Options used to set the parent of a channel.","type":[[["Object"]]],"props":[{"name":"lockPermissions","description":"Whether to lock the permissions to what the parent's permissions are","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"reason","description":"The reason for modifying the parent of the channel","optional":true,"type":[[["string"]]]}],"meta":{"line":293,"file":"GuildChannel.js","path":"src/structures"}},{"name":"SetChannelPositionOptions","description":"Options used to set the position of a channel.","type":[[["Object"]]],"props":[{"name":"relative","description":"Whether or not to change the position relative to its current value","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"reason","description":"The reason for changing the position","optional":true,"type":[[["string"]]]}],"meta":{"line":321,"file":"GuildChannel.js","path":"src/structures"}},{"name":"GuildChannelCloneOptions","description":"Options used to clone a guild channel.","type":[[["GuildChannelCreateOptions"]]],"props":[{"name":"name","description":"Name of the new channel","optional":true,"default":"this.name","type":[[["string"]]]}],"meta":{"line":343,"file":"GuildChannel.js","path":"src/structures"}},{"name":"GuildEmojiEditData","description":"Data for editing an emoji.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the emoji","optional":true,"type":[[["string"]]]},{"name":"roles","description":"Roles to restrict emoji to","optional":true,"type":[[["Collection","<"],["Snowflake",", "],["Role",">"]],[["Array","<"],["RoleResolvable",">"]]]}],"meta":{"line":79,"file":"GuildEmoji.js","path":"src/structures"}},{"name":"GuildScheduledEventEntityMetadata","description":"Represents the additional metadata for a {@link GuildScheduledEvent}","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata}"],"type":[[["Object"]]],"props":[{"name":"location","description":"The location of the guild scheduled event","nullable":true,"type":[[["string"]]]}],"meta":{"line":136,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"CreateGuildScheduledEventInviteURLOptions","description":"Options used to create an invite URL to a {@link GuildScheduledEvent}","type":[[["CreateInviteOptions"]]],"props":[{"name":"channel","description":"The channel to create the invite in.\nThis is required when the `entityType` of `GuildScheduledEvent` is `EXTERNAL`, gets ignored otherwise","optional":true,"type":[[["GuildInvitableChannelResolvable"]]]}],"meta":{"line":244,"file":"GuildScheduledEvent.js","path":"src/structures"}},{"name":"EditGuildTemplateOptions","description":"Options used to edit a guild template.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this template","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of this template","optional":true,"type":[[["string"]]]}],"meta":{"line":147,"file":"GuildTemplate.js","path":"src/structures"}},{"name":"IntegrationAccount","description":"The information account for an integration","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the account","type":[[["Snowflake"]],[["string"]]]},{"name":"name","description":"The name of the account","type":[[["string"]]]}],"meta":{"line":6,"file":"Integration.js","path":"src/structures"}},{"name":"IntegrationType","description":"The type of an {@link Integration}. This can be:\n* `twitch`\n* `youtube`\n* `discord`","type":[[["string"]]],"meta":{"line":13,"file":"Integration.js","path":"src/structures"}},{"name":"Locale","description":"A Discord locale string, possible values are:\n* en-US (English, US)\n* en-GB (English, UK)\n* bg (Bulgarian)\n* zh-CN (Chinese, China)\n* zh-TW (Chinese, Taiwan)\n* hr (Croatian)\n* cs (Czech)\n* da (Danish)\n* nl (Dutch)\n* fi (Finnish)\n* fr (French)\n* de (German)\n* el (Greek)\n* hi (Hindi)\n* hu (Hungarian)\n* it (Italian)\n* ja (Japanese)\n* ko (Korean)\n* lt (Lithuanian)\n* no (Norwegian)\n* pl (Polish)\n* pt-BR (Portuguese, Brazilian)\n* ro (Romanian, Romania)\n* ru (Russian)\n* es-ES (Spanish)\n* sv-SE (Swedish)\n* th (Thai)\n* tr (Turkish)\n* uk (Ukrainian)\n* vi (Vietnamese)","see":["{@link https://discord.com/developers/docs/reference#locales}"],"type":[[["string"]]],"meta":{"line":78,"file":"Interaction.js","path":"src/structures"}},{"name":"InteractionCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"channel","description":"The channel to listen to interactions from","optional":true,"type":[[["TextBasedChannelsResolvable"]]]},{"name":"componentType","description":"The type of component to listen for","optional":true,"type":[[["MessageComponentType"]]]},{"name":"guild","description":"The guild to listen to interactions from","optional":true,"type":[[["GuildResolvable"]]]},{"name":"interactionType","description":"The type of interaction to listen for","optional":true,"type":[[["InteractionType"]]]},{"name":"max","description":"The maximum total amount of interactions to collect","optional":true,"type":[[["number"]]]},{"name":"maxComponents","description":"The maximum number of components to collect","optional":true,"type":[[["number"]]]},{"name":"maxUsers","description":"The maximum number of users to interact","optional":true,"type":[[["number"]]]},{"name":"message","description":"The message to listen to interactions from","optional":true,"type":[[["Message"]],[["APIMessage"]]]}],"meta":{"line":8,"file":"InteractionCollector.js","path":"src/structures"}},{"name":"ApplicationAsset","description":"Asset data.","type":[[["Object"]]],"props":[{"name":"id","description":"The asset's id","type":[[["Snowflake"]]]},{"name":"name","description":"The asset's name","type":[[["string"]]]},{"name":"type","description":"The asset's type","type":[[["string"]]]}],"meta":{"line":98,"file":"Application.js","path":"src/structures/interfaces"}},{"name":"CollectorFilter","description":"Filter to be applied to the collector.","type":[[["function"]]],"params":[{"name":"args","description":"Any arguments received by the listener","variable":true,"type":[["*"]]},{"name":"collection","description":"The items collected by this collector","type":[[["Collection"]]]}],"returns":[[["boolean"]],[["Promise","<"],["boolean",">"]]],"meta":{"line":9,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"CollectorOptions","description":"Options to be applied to the collector.","type":[[["Object"]]],"props":[{"name":"filter","description":"The filter applied to this collector","optional":true,"type":[[["CollectorFilter"]]]},{"name":"time","description":"How long to run the collector for in milliseconds","optional":true,"type":[[["number"]]]},{"name":"idle","description":"How long to stop the collector after inactivity in milliseconds","optional":true,"type":[[["number"]]]},{"name":"dispose","description":"Whether to dispose data when it's deleted","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":17,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"CollectorResetTimerOptions","description":"Options used to reset the timeout and idle timer of a {@link Collector}.","type":[[["Object"]]],"props":[{"name":"time","description":"How long to run the collector for (in milliseconds)","optional":true,"type":[[["number"]]]},{"name":"idle","description":"How long to wait to stop the collector after inactivity (in milliseconds)","optional":true,"type":[[["number"]]]}],"meta":{"line":201,"file":"Collector.js","path":"src/structures/interfaces"}},{"name":"InteractionDeferReplyOptions","description":"Options for deferring the reply to an {@link Interaction}.","type":[[["Object"]]],"props":[{"name":"ephemeral","description":"Whether the reply should be ephemeral","optional":true,"type":[[["boolean"]]]},{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]}],"meta":{"line":15,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"InteractionDeferUpdateOptions","description":"Options for deferring and updating the reply to a {@link MessageComponentInteraction}.","type":[[["Object"]]],"props":[{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]}],"meta":{"line":22,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"InteractionReplyOptions","description":"Options for a reply to an {@link Interaction}.","type":[[["BaseMessageOptions"]]],"props":[{"name":"ephemeral","description":"Whether the reply should be ephemeral","optional":true,"type":[[["boolean"]]]},{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]},{"name":"flags","description":"Which flags to set for the message.\nOnly `SUPPRESS_EMBEDS` and `EPHEMERAL` can be set.","optional":true,"type":[[["MessageFlags"]]]}],"meta":{"line":28,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"InteractionUpdateOptions","description":"Options for updating the message received from a {@link MessageComponentInteraction}.","type":[[["MessageEditOptions"]]],"props":[{"name":"fetchReply","description":"Whether to fetch the reply","optional":true,"type":[[["boolean"]]]}],"meta":{"line":37,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"AwaitModalSubmitOptions","description":"An object containing the same properties as CollectorOptions, but a few more:","type":[[["Object"]]],"props":[{"name":"filter","description":"The filter applied to this collector","optional":true,"type":[[["CollectorFilter"]]]},{"name":"time","description":"Time to wait for an interaction before rejecting","type":[[["number"]]]}],"meta":{"line":249,"file":"InteractionResponses.js","path":"src/structures/interfaces"}},{"name":"BaseMessageOptions","description":"Base options provided when sending.","type":[[["Object"]]],"props":[{"name":"tts","description":"Whether or not the message should be spoken aloud","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"nonce","description":"The nonce for the message","optional":true,"default":"''","type":[[["string"]]]},{"name":"content","description":"The content for the message","optional":true,"default":"''","type":[[["string"]]]},{"name":"embeds","description":"The embeds for the message\n(see [here](https://discord.com/developers/docs/resources/channel#embed-object) for more details)","optional":true,"type":[[["Array","<"],["WebEmbed",">"]],[["Array","<"],["MessageEmbed",">"]],[["Array","<"],["APIEmbed",">"]]]},{"name":"allowedMentions","description":"Which mentions should be parsed from the message content\n(see [here](https://discord.com/developers/docs/resources/channel#allowed-mentions-object) for more details)","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"files","description":"Files to send with the message","optional":true,"type":[[["Array","<"],["FileOptions",">"]],[["Array","<"],["BufferResolvable",">"]],[["Array","<"],["MessageAttachment",">"]]]},{"name":"components","description":"Action rows containing interactive components for the message (buttons, select menus)","optional":true,"type":[[["Array","<"],["MessageActionRow",">"]],[["Array","<"],["MessageActionRowOptions",">"]]]},{"name":"attachments","description":"Attachments to send in the message","optional":true,"type":[[["Array","<"],["MessageAttachment",">"]]]}],"meta":{"line":56,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"MessageOptions","description":"Options provided when sending or editing a message.","type":[[["BaseMessageOptions"]]],"props":[{"name":"reply","description":"The options for replying to a message","optional":true,"type":[[["ReplyOptions"]]]},{"name":"stickers","description":"Stickers to send in the message","optional":true,"default":"[]","type":[[["Array","<"],["StickerResolvable",">"]]]},{"name":"flags","description":"Which flags to set for the message. Only `SUPPRESS_EMBEDS` can be set.","optional":true,"type":[[["MessageFlags"]]]}],"meta":{"line":72,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"MessageMentionOptions","description":"Options provided to control parsing of mentions by Discord","type":[[["Object"]]],"props":[{"name":"parse","description":"Types of mentions to be parsed","optional":true,"type":[[["Array","<"],["MessageMentionTypes",">"]]]},{"name":"users","description":"Snowflakes of Users to be parsed as mentions","optional":true,"type":[[["Array","<"],["Snowflake",">"]]]},{"name":"roles","description":"Snowflakes of Roles to be parsed as mentions","optional":true,"type":[[["Array","<"],["Snowflake",">"]]]},{"name":"repliedUser","description":"Whether the author of the Message being replied to should be pinged","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":80,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"MessageMentionTypes","description":"Types of mentions to enable in MessageMentionOptions.\n- `roles`\n- `users`\n- `everyone`","type":[[["string"]]],"meta":{"line":89,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"FileOptions","type":[[["Object"]]],"props":[{"name":"attachment","description":"File to attach","type":[[["BufferResolvable"]]]},{"name":"name","description":"Filename of the attachment","optional":true,"default":"'file.jpg'","type":[[["string"]]]},{"name":"description","description":"The description of the file","type":[[["string"]]]}],"meta":{"line":97,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"ReplyOptions","description":"Options for sending a message with a reply.","type":[[["Object"]]],"props":[{"name":"messageReference","description":"The message to reply to (must be in the same channel and not system)","type":[[["MessageResolvable"]]]},{"name":"failIfNotExists","description":"Whether to error if the referenced message\ndoes not exist (creates a standard message in this case when false)","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":104,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"AwaitMessagesOptions","description":"An object containing the same properties as CollectorOptions, but a few more:","type":[[["MessageCollectorOptions"]]],"props":[{"name":"errors","description":"Stop/end reasons that cause the promise to reject","optional":true,"type":[[["Array","<"],["string",">"]]]}],"meta":{"line":208,"file":"TextBasedChannel.js","path":"src/structures/interfaces"}},{"name":"TargetType","description":"The type of the invite target:\n* 1: STREAM\n* 2: EMBEDDED_APPLICATION","see":["{@link https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types}"],"type":[[["number"]]],"meta":{"line":154,"file":"Invite.js","path":"src/structures"}},{"name":"MessageReference","description":"Reference data sent in a message that contains ids identifying the referenced message.\nThis can be present in the following types of message:\n* Crossposted messages (IS_CROSSPOST {@link MessageFlags.FLAGS message flag})\n* CHANNEL_FOLLOW_ADD\n* CHANNEL_PINNED_MESSAGE\n* REPLY\n* THREAD_STARTER_MESSAGE","see":["{@link https://discord.com/developers/docs/resources/channel#message-types}"],"type":[[["Object"]]],"props":[{"name":"channelId","description":"The channel's id the message was referenced","type":[[["Snowflake"]]]},{"name":"guildId","description":"The guild's id the message was referenced","nullable":true,"type":[[["Snowflake"]]]},{"name":"messageId","description":"The message's id that was referenced","nullable":true,"type":[[["Snowflake"]]]}],"meta":{"line":298,"file":"Message.js","path":"src/structures"}},{"name":"MessageInteraction","description":"Partial data of the interaction that a message is a reply to","type":[[["Object"]]],"props":[{"name":"id","description":"The interaction's id","type":[[["Snowflake"]]]},{"name":"type","description":"The type of the interaction","type":[[["InteractionType"]]]},{"name":"commandName","description":"The name of the interaction's application command","type":[[["string"]]]},{"name":"user","description":"The user that invoked the interaction","type":[[["User"]]]}],"meta":{"line":334,"file":"Message.js","path":"src/structures"}},{"name":"AwaitReactionsOptions","description":"An object containing the same properties as CollectorOptions, but a few more:","type":[[["ReactionCollectorOptions"]]],"props":[{"name":"errors","description":"Stop/end reasons that cause the promise to reject","optional":true,"type":[[["Array","<"],["string",">"]]]}],"meta":{"line":499,"file":"Message.js","path":"src/structures"}},{"name":"MessageComponentCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"componentType","description":"The type of component to listen for","optional":true,"type":[[["MessageComponentType"]]]},{"name":"max","description":"The maximum total amount of interactions to collect","optional":true,"type":[[["number"]]]},{"name":"maxComponents","description":"The maximum number of components to collect","optional":true,"type":[[["number"]]]},{"name":"maxUsers","description":"The maximum number of users to interact","optional":true,"type":[[["number"]]]}],"meta":{"line":527,"file":"Message.js","path":"src/structures"}},{"name":"AwaitMessageComponentOptions","description":"An object containing the same properties as CollectorOptions, but a few more:","type":[[["Object"]]],"props":[{"name":"filter","description":"The filter applied to this collector","optional":true,"type":[[["CollectorFilter"]]]},{"name":"time","description":"Time to wait for an interaction before rejecting","optional":true,"type":[[["number"]]]},{"name":"componentType","description":"The type of component interaction to collect","optional":true,"type":[[["MessageComponentType"]]]}],"meta":{"line":554,"file":"Message.js","path":"src/structures"}},{"name":"MessageEditOptions","description":"Options that can be passed into {@link Message#edit}.","type":[[["Object"]]],"props":[{"name":"content","description":"Content to be edited","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"embeds","description":"Embeds to be added/edited","optional":true,"type":[[["Array","<"],["MessageEmbed",">"]],[["Array","<"],["APIEmbed",">"]]]},{"name":"allowedMentions","description":"Which mentions should be parsed from the message content","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"flags","description":"Which flags to set for the message. Only `SUPPRESS_EMBEDS` can be edited.","optional":true,"type":[[["MessageFlags"]]]},{"name":"attachments","description":"An array of attachments to keep,\nall attachments will be kept if omitted","optional":true,"type":[[["Array","<"],["MessageAttachment",">"]]]},{"name":"files","description":"Files to add to the message","optional":true,"type":[[["Array","<"],["FileOptions",">"]],[["Array","<"],["BufferResolvable",">"]],[["Array","<"],["MessageAttachment",">"]]]},{"name":"components","description":"Action rows containing interactive components for the message (buttons, select menus)","optional":true,"type":[[["Array","<"],["MessageActionRow",">"]],[["Array","<"],["MessageActionRowOptions",">"]]]}],"meta":{"line":681,"file":"Message.js","path":"src/structures"}},{"name":"ReplyMessageOptions","description":"Options provided when sending a message as an inline reply.","type":[[["BaseMessageOptions"]]],"props":[{"name":"failIfNotExists","description":"Whether to error if the referenced message\ndoes not exist (creates a standard message in this case when false)","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"stickers","description":"Stickers to send in the message","optional":true,"default":"[]","type":[[["Array","<"],["StickerResolvable",">"]]]}],"meta":{"line":803,"file":"Message.js","path":"src/structures"}},{"name":"ThreadAutoArchiveDuration","description":"A number that is allowed to be the duration (in minutes) of inactivity after which a thread is automatically\narchived. This can be:\n* `60` (1 hour)\n* `1440` (1 day)\n* `4320` (3 days) This is only available when the guild has the `THREE_DAY_THREAD_ARCHIVE` feature.\n* `10080` (7 days) This is only available when the guild has the `SEVEN_DAY_THREAD_ARCHIVE` feature.\n* `'MAX'` Based on the guild's features","type":[[["number"]],[["string"]]],"meta":{"line":838,"file":"Message.js","path":"src/structures"}},{"name":"StartThreadOptions","description":"Options for starting a thread on a message.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the new thread","type":[[["string"]]]},{"name":"autoArchiveDuration","description":"The amount of\ntime (in minutes) after which the thread should automatically archive in case of no recent activity","optional":true,"default":"this.channel.defaultAutoArchiveDuration","type":[[["ThreadAutoArchiveDuration"]]]},{"name":"reason","description":"Reason for creating the thread","optional":true,"type":[[["string"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the thread in seconds","optional":true,"type":[[["number"]]]}],"meta":{"line":849,"file":"Message.js","path":"src/structures"}},{"name":"MessageActionRowComponent","description":"Components that can be placed in an action row\n* MessageButton\n* MessageSelectMenu\n* TextInputComponent","type":[[["MessageButton"]],[["MessageSelectMenu"]],[["TextInputComponent"]]],"meta":{"line":11,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageActionRowComponentOptions","description":"Options for components that can be placed in an action row\n* MessageButtonOptions\n* MessageSelectMenuOptions\n* TextInputComponentOptions","type":[[["MessageButtonOptions"]],[["MessageSelectMenuOptions"]],[["TextInputComponentOptions"]]],"meta":{"line":19,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageActionRowComponentResolvable","description":"Data that can be resolved into components that can be placed in an action row\n* MessageActionRowComponent\n* MessageActionRowComponentOptions","type":[[["MessageActionRowComponent"]],[["MessageActionRowComponentOptions"]]],"meta":{"line":27,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageActionRowOptions","type":[[["BaseMessageComponentOptions"]]],"props":[{"name":"components","description":"The components to place in this action row","optional":true,"type":[[["Array","<"],["MessageActionRowComponentResolvable",">"]]]}],"meta":{"line":34,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"MessageButtonOptions","type":[[["BaseMessageComponentOptions"]]],"props":[{"name":"label","description":"The text to be displayed on this button","optional":true,"type":[[["string"]]]},{"name":"customId","description":"A unique string to be sent in the interaction when clicked","optional":true,"type":[[["string"]]]},{"name":"style","description":"The style of this button","optional":true,"type":[[["MessageButtonStyleResolvable"]]]},{"name":"emoji","description":"The emoji to be displayed to the left of the text","optional":true,"type":[[["EmojiIdentifierResolvable"]]]},{"name":"url","description":"Optional URL for link-style buttons","optional":true,"type":[[["string"]]]},{"name":"disabled","description":"Disables the button to prevent interactions","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":14,"file":"MessageButton.js","path":"src/structures"}},{"name":"MessageButtonStyleResolvable","description":"Data that can be resolved to a MessageButtonStyle. This can be\n* MessageButtonStyle\n* number","type":[[["number"]],[["MessageButtonStyle"]]],"meta":{"line":148,"file":"MessageButton.js","path":"src/structures"}},{"name":"MessageCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"max","description":"The maximum amount of messages to collect","type":[[["number"]]]},{"name":"maxProcessed","description":"The maximum amount of messages to process","type":[[["number"]]]}],"meta":{"line":6,"file":"MessageCollector.js","path":"src/structures"}},{"name":"APIMessageActionRowComponent","description":"Raw message components from the API\n* APIMessageButton\n* APIMessageSelectMenu","type":[[["APIMessageButton"]],[["APIMessageSelectMenu"]]],"meta":{"line":66,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"Partial","description":"A `Partial` object is a representation of any existing object.\nThis object contains between 0 and all of the original objects parameters.\nThis is true regardless of whether the parameters are optional in the base object.","type":[[["Object"]]],"meta":{"line":14,"file":"WebEmbed.js","path":"src/structures"}},{"name":"MessageEmbedOptions","description":"Represents the possible options for a MessageEmbed","type":[[["Object"]]],"props":[{"name":"title","description":"The title of this embed","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of this embed","optional":true,"type":[[["string"]]]},{"name":"url","description":"The URL of this embed","optional":true,"type":[[["string"]]]},{"name":"timestamp","description":"The timestamp of this embed","optional":true,"type":[[["Date"]],[["number"]]]},{"name":"color","description":"The color of this embed","optional":true,"type":[[["ColorResolvable"]]]},{"name":"fields","description":"The fields of this embed","optional":true,"type":[[["Array","<"],["EmbedFieldData",">"]]]},{"name":"author","description":"The author of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedAuthor",">"]]]},{"name":"thumbnail","description":"The thumbnail of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedThumbnail",">"]]]},{"name":"image","description":"The image of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedImage",">"]]]},{"name":"video","description":"The video of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedVideo",">"]]]},{"name":"footer","description":"The footer of this embed","optional":true,"type":[[["Partial","<"],["MessageEmbedFooter",">"]]]}],"meta":{"line":23,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"EmbedField","description":"Represents a field of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this field","type":[[["string"]]]},{"name":"value","description":"The value of this field","type":[[["string"]]]},{"name":"inline","description":"If this field will be displayed inline","type":[[["boolean"]]]}],"meta":{"line":92,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedThumbnail","description":"Represents the thumbnail of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL for this thumbnail","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this thumbnail","type":[[["string"]]]},{"name":"height","description":"Height of this thumbnail","type":[[["number"]]]},{"name":"width","description":"Width of this thumbnail","type":[[["number"]]]}],"meta":{"line":109,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedImage","description":"Represents the image of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL for this image","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this image","type":[[["string"]]]},{"name":"height","description":"Height of this image","type":[[["number"]]]},{"name":"width","description":"Width of this image","type":[[["number"]]]}],"meta":{"line":131,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedVideo","description":"Represents the video of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL of this video","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this video","type":[[["string"]]]},{"name":"height","description":"Height of this video","type":[[["number"]]]},{"name":"width","description":"Width of this video","type":[[["number"]]]}],"meta":{"line":153,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedAuthor","description":"Represents the author field of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this author","type":[[["string"]]]},{"name":"url","description":"URL of this author","type":[[["string"]]]},{"name":"iconURL","description":"URL of the icon for this author","type":[[["string"]]]},{"name":"proxyIconURL","description":"Proxied URL of the icon for this author","type":[[["string"]]]}],"meta":{"line":176,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedProvider","description":"Represents the provider of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this provider","type":[[["string"]]]},{"name":"url","description":"URL of this provider","type":[[["string"]]]}],"meta":{"line":198,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"MessageEmbedFooter","description":"Represents the footer field of a MessageEmbed","type":[[["Object"]]],"props":[{"name":"text","description":"The text of this footer","type":[[["string"]]]},{"name":"iconURL","description":"URL of the icon for this footer","type":[[["string"]]]},{"name":"proxyIconURL","description":"Proxied URL of the icon for this footer","type":[[["string"]]]}],"meta":{"line":216,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"EmbedAuthorData","description":"The options to provide for setting an author for a {@link WebEmbed}.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this author.","type":[[["string"]]]}],"meta":{"line":183,"file":"WebEmbed.js","path":"src/structures"}},{"name":"EmbedFooterData","description":"The options to provide for setting a footer for a {@link MessageEmbed}.","type":[[["Object"]]],"props":[{"name":"text","description":"The text of the footer.","type":[[["string"]]]},{"name":"iconURL","description":"The icon URL of the footer.","optional":true,"type":[[["string"]]]}],"meta":{"line":416,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"EmbedFieldData","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this field","type":[[["string"]]]},{"name":"value","description":"The value of this field","type":[[["string"]]]},{"name":"inline","description":"If this field will be displayed inline","optional":true,"type":[[["boolean"]]]}],"meta":{"line":549,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"CrosspostedChannel","description":"Crossposted channel data.","type":[[["Object"]]],"props":[{"name":"channelId","description":"The mentioned channel's id","type":[[["Snowflake"]]]},{"name":"guildId","description":"The id of the guild that has the channel","type":[[["Snowflake"]]]},{"name":"type","description":"The channel's type","type":[[["ChannelType"]]]},{"name":"name","description":"The channel's name","type":[[["string"]]]}],"meta":{"line":96,"file":"MessageMentions.js","path":"src/structures"}},{"name":"MessageMentionsHasOptions","description":"Options used to check for a mention.","type":[[["Object"]]],"props":[{"name":"ignoreDirect","description":"Whether to ignore direct mentions to the item","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"ignoreRoles","description":"Whether to ignore role mentions to a guild member","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"ignoreRepliedUser","description":"Whether to ignore replied user mention to an user","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"ignoreEveryone","description":"Whether to ignore `@everyone`/`@here` mentions","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":171,"file":"MessageMentions.js","path":"src/structures"}},{"name":"MessageTarget","description":"A target for a message.","type":[[["TextChannel"]],[["DMChannel"]],[["User"]],[["GuildMember"]],[["Webhook"]],[["WebhookClient"]],[["Interaction"]],[["InteractionWebhook"]],[["Message"]],[["MessageManager"]]],"meta":{"line":310,"file":"MessagePayload.js","path":"src/structures"}},{"name":"MessageFile","type":[[["Object"]]],"props":[{"name":"attachment","description":"The original attachment that generated this file","type":[[["Buffer"]],[["string"]],[["Stream"]]]},{"name":"name","description":"The name of this file","type":[[["string"]]]},{"name":"file","description":"The file to be sent to the API","type":[[["Buffer"]],[["Stream"]]]}],"meta":{"line":39,"file":"MessagePayload.js","path":"src/structures"}},{"name":"MessageSelectMenuOptions","type":[[["BaseMessageComponentOptions"]]],"props":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","optional":true,"type":[[["string"]]]},{"name":"placeholder","description":"Custom placeholder text to display when nothing is selected","optional":true,"type":[[["string"]]]},{"name":"minValues","description":"The minimum number of selections required","optional":true,"type":[[["number"]]]},{"name":"maxValues","description":"The maximum number of selections allowed","optional":true,"type":[[["number"]]]},{"name":"options","description":"Options for the select menu","optional":true,"type":[[["Array","<"],["MessageSelectOption",">"]]]},{"name":"disabled","description":"Disables the select menu to prevent interactions","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":13,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"MessageSelectOption","type":[[["Object"]]],"props":[{"name":"label","description":"The text to be displayed on this option","type":[[["string"]]]},{"name":"value","description":"The value to be sent for this option","type":[[["string"]]]},{"name":"description","description":"Optional description to show for this option","nullable":true,"type":[[["string"]]]},{"name":"emoji","description":"Emoji to display for this option","nullable":true,"type":[[["RawEmoji"]]]},{"name":"default","description":"Render this option as the default selection","type":[[["boolean"]]]}],"meta":{"line":23,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"MessageSelectOptionData","type":[[["Object"]]],"props":[{"name":"label","description":"The text to be displayed on this option","type":[[["string"]]]},{"name":"value","description":"The value to be sent for this option","type":[[["string"]]]},{"name":"description","description":"Optional description to show for this option","optional":true,"type":[[["string"]]]},{"name":"emoji","description":"Emoji to display for this option","optional":true,"type":[[["EmojiIdentifierResolvable"]]]},{"name":"default","description":"Render this option as the default selection","optional":true,"type":[[["boolean"]]]}],"meta":{"line":32,"file":"MessageSelectMenu.js","path":"src/structures"}},{"name":"ModalOptions","type":[[["Object"]]],"props":[{"name":"customId","description":"A unique string to be sent in the interaction when clicked","optional":true,"type":[[["string"]]]},{"name":"title","description":"The title to be displayed on this modal","optional":true,"type":[[["string"]]]},{"name":"components","description":"Action rows containing interactive components for the modal (text input components)","optional":true,"type":[[["Array","<"],["MessageActionRow",">"]],[["Array","<"],["MessageActionRowOptions",">"]]]}],"meta":{"line":10,"file":"Modal.js","path":"src/structures"}},{"name":"PartialTextInputData","type":[[["Object"]]],"props":[{"name":"customId","description":"A unique string to be sent in the interaction when submitted","optional":true,"type":[[["string"]]]},{"name":"type","description":"The type of this component","optional":true,"type":[[["MessageComponentType"]]]},{"name":"value","description":"Value of this text input component","optional":true,"type":[[["string"]]]}],"meta":{"line":24,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"PartialModalActionRow","type":[[["Object"]]],"props":[{"name":"type","description":"The type of this component","optional":true,"type":[[["MessageComponentType"]]]},{"name":"components","description":"Partial text input components","optional":true,"type":[[["Array","<"],["PartialTextInputData",">"]]]}],"meta":{"line":31,"file":"ModalSubmitInteraction.js","path":"src/structures"}},{"name":"PartialRecipient","description":"Recipient data received in a {@link PartialGroupDMChannel}.","type":[[["Object"]]],"props":[{"name":"username","description":"The username of the recipient","type":[[["string"]]]}],"meta":{"line":31,"file":"PartialGroupDMChannel.js","path":"src/structures"}},{"name":"PermissionOverwriteOptions","description":"An object mapping permission flags to `true` (enabled), `null` (unset) or `false` (disabled).\n```js\n{\n 'SEND_MESSAGES': true,\n 'EMBED_LINKS': null,\n 'ATTACH_FILES': false,\n}\n```","type":[[["Object"]]],"meta":{"line":97,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"ResolvedOverwriteOptions","type":[[["Object"]]],"props":[{"name":"allow","description":"The allowed permissions","type":[[["Permissions"]]]},{"name":"deny","description":"The denied permissions","type":[[["Permissions"]]]}],"meta":{"line":109,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"RawOverwriteData","description":"The raw data for a permission overwrite","type":[[["Object"]]],"props":[{"name":"id","description":"The id of the {@link Role} or {@link User} this overwrite belongs to","type":[[["Snowflake"]]]},{"name":"allow","description":"The permissions to allow","type":[[["string"]]]},{"name":"deny","description":"The permissions to deny","type":[[["string"]]]},{"name":"type","description":"The type of this OverwriteData","type":[[["number"]]]}],"meta":{"line":141,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"OverwriteResolvable","description":"Data that can be resolved into {@link RawOverwriteData}. This can be:\n* PermissionOverwrites\n* OverwriteData","type":[[["PermissionOverwrites"]],[["OverwriteData"]]],"meta":{"line":150,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"OverwriteData","description":"Data that can be used for a permission overwrite","type":[[["Object"]]],"props":[{"name":"id","description":"Member or role this overwrite is for","type":[[["GuildMemberResolvable"]],[["RoleResolvable"]]]},{"name":"allow","description":"The permissions to allow","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"deny","description":"The permissions to deny","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"type","description":"The type of this OverwriteData","optional":true,"type":[[["OverwriteType"]]]}],"meta":{"line":157,"file":"PermissionOverwrites.js","path":"src/structures"}},{"name":"MessageActivity","description":"Activity sent in a message.","type":[[["Object"]]],"props":[{"name":"partyId","description":"Id of the party represented in activity","optional":true,"type":[[["string"]]]},{"name":"type","description":"Type of activity sent","optional":true,"type":[[["number"]]]}],"meta":{"line":9,"file":"Presence.js","path":"src/structures"}},{"name":"PresenceStatus","description":"The status of this presence:\n* **`online`** - user is online\n* **`idle`** - user is AFK\n* **`offline`** - user is offline or invisible\n* **`dnd`** - user is in Do Not Disturb","type":[[["string"]]],"meta":{"line":16,"file":"Presence.js","path":"src/structures"}},{"name":"ClientPresenceStatus","description":"The status of this presence:\n* **`online`** - user is online\n* **`idle`** - user is AFK\n* **`dnd`** - user is in Do Not Disturb","type":[[["string"]]],"meta":{"line":25,"file":"Presence.js","path":"src/structures"}},{"name":"ActivityPlatform","description":"The platform of this activity:\n* **`desktop`**\n* **`samsung`** - playing on Samsung Galaxy\n* **`xbox`** - playing on Xbox Live","type":[[["string"]]],"meta":{"line":140,"file":"Presence.js","path":"src/structures"}},{"name":"ActivityTimestamps","description":"Represents timestamps of an activity","type":[[["Object"]]],"props":[{"name":"start","description":"When the activity started","nullable":true,"type":[[["Date"]]]},{"name":"end","description":"When the activity will end","nullable":true,"type":[[["Date"]]]}],"meta":{"line":197,"file":"Presence.js","path":"src/structures"}},{"name":"ActivityParty","description":"Represents a party of an activity","type":[[["Object"]]],"props":[{"name":"id","description":"The party's id","nullable":true,"type":[[["string"]]]},{"name":"size","description":"Size of the party as `[current, max]`","type":[[["Array","<"],["number",">"]]]}],"meta":{"line":227,"file":"Presence.js","path":"src/structures"}},{"name":"ReactionCollectorOptions","type":[[["CollectorOptions"]]],"props":[{"name":"max","description":"The maximum total amount of reactions to collect","type":[[["number"]]]},{"name":"maxEmojis","description":"The maximum number of emojis to collect","type":[[["number"]]]},{"name":"maxUsers","description":"The maximum number of users to react","type":[[["number"]]]}],"meta":{"line":7,"file":"ReactionCollector.js","path":"src/structures"}},{"name":"RoleData","description":"The data for a role.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the role","optional":true,"type":[[["string"]]]},{"name":"color","description":"The color of the role, either a hex string or a base 10 number","optional":true,"type":[[["ColorResolvable"]]]},{"name":"hoist","description":"Whether or not the role should be hoisted","optional":true,"type":[[["boolean"]]]},{"name":"position","description":"The position of the role","optional":true,"type":[[["number"]]]},{"name":"permissions","description":"The permissions of the role","optional":true,"type":[[["PermissionResolvable"]]]},{"name":"mentionable","description":"Whether or not the role should be mentionable","optional":true,"type":[[["boolean"]]]},{"name":"icon","description":"The icon for the role\nThe `EmojiResolvable` should belong to the same guild as the role.\nIf not, pass the emoji's URL directly","optional":true,"nullable":true,"type":[[["BufferResolvable"]],[["Base64Resolvable"]],[["EmojiResolvable"]]]},{"name":"unicodeEmoji","description":"The unicode emoji for the role","optional":true,"nullable":true,"type":[[["string"]]]}],"meta":{"line":233,"file":"Role.js","path":"src/structures"}},{"name":"SetRolePositionOptions","description":"Options used to set the position of a role.","type":[[["Object"]]],"props":[{"name":"relative","description":"Whether to change the position relative to its current value or not","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"reason","description":"The reason for changing the position","optional":true,"type":[[["string"]]]}],"meta":{"line":383,"file":"Role.js","path":"src/structures"}},{"name":"GuildStickerEditData","description":"Data for editing a sticker.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the sticker","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of the sticker","optional":true,"nullable":true,"type":[[["string"]]]},{"name":"tags","description":"The Discord name of a unicode emoji representing the sticker's expression","optional":true,"type":[[["string"]]]}],"meta":{"line":234,"file":"Sticker.js","path":"src/structures"}},{"name":"TextInputComponentOptions","type":[[["BaseMessageComponentOptions"]]],"props":[{"name":"customId","description":"A unique string to be sent in the interaction when submitted","optional":true,"type":[[["string"]]]},{"name":"label","description":"The text to be displayed above this text input component","optional":true,"type":[[["string"]]]},{"name":"maxLength","description":"Maximum length of text that can be entered","optional":true,"type":[[["number"]]]},{"name":"minLength","description":"Minimum length of text required to be entered","optional":true,"type":[[["number"]]]},{"name":"placeholder","description":"Custom placeholder text to display when no text is entered","optional":true,"type":[[["string"]]]},{"name":"required","description":"Whether or not this text input component is required","optional":true,"type":[[["boolean"]]]},{"name":"style","description":"The style of this text input component","optional":true,"type":[[["TextInputStyleResolvable"]]]},{"name":"value","description":"Value of this text input component","optional":true,"type":[[["string"]]]}],"meta":{"line":14,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"TextInputStyleResolvable","description":"Data that can be resolved to a TextInputStyle. This can be\n* TextInputStyle\n* number","type":[[["number"]],[["TextInputStyle"]]],"meta":{"line":183,"file":"TextInputComponent.js","path":"src/structures"}},{"name":"ThreadEditData","description":"The options used to edit a thread channel","type":[[["Object"]]],"props":[{"name":"name","description":"The new name for the thread","optional":true,"type":[[["string"]]]},{"name":"archived","description":"Whether the thread is archived","optional":true,"type":[[["boolean"]]]},{"name":"autoArchiveDuration","description":"The amount of time (in minutes) after which the thread\nshould automatically archive in case of no recent activity","optional":true,"type":[[["ThreadAutoArchiveDuration"]]]},{"name":"rateLimitPerUser","description":"The rate limit per user (slowmode) for the thread in seconds","optional":true,"type":[[["number"]]]},{"name":"locked","description":"Whether the thread is locked","optional":true,"type":[[["boolean"]]]},{"name":"invitable","description":"Whether non-moderators can add other non-moderators to a thread\nCan only be edited on `GUILD_PRIVATE_THREAD`","optional":true,"type":[[["boolean"]]]}],"meta":{"line":292,"file":"ThreadChannel.js","path":"src/structures"}},{"name":"ConnectionAccount","description":"An array of object (connected accounts), containing the following properties:\n* type: string\n* id: string\n* name: string\n* verified: boolean","type":[[["Object"]]],"meta":{"line":33,"file":"User.js","path":"src/structures"}},{"name":"WebEmbedOptions","description":"Represents the possible options for a WebEmbed","type":[[["Object"]]],"props":[{"name":"title","description":"The title of this embed","optional":true,"type":[[["string"]]]},{"name":"description","description":"The description of this embed","optional":true,"type":[[["string"]]]},{"name":"url","description":"The URL of this embed","optional":true,"type":[[["string"]]]},{"name":"color","description":"The color of this embed","optional":true,"type":[[["ColorResolvable"]]]},{"name":"author","description":"The author of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedAuthor",">"]]]},{"name":"thumbnail","description":"The thumbnail of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedThumbnail",">"]]]},{"name":"image","description":"The image of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedImage",">"]]]},{"name":"video","description":"The video of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedVideo",">"]]]},{"name":"footer","description":"The footer of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedFooter",">"]]]},{"name":"provider","description":"The provider of this embed","optional":true,"type":[[["Partial","<"],["WebEmbedProvider",">"]]]}],"meta":{"line":21,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedImage","description":"Represents the image of a WebEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL for this image","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this image","type":[[["string"]]]},{"name":"height","description":"Height of this image","type":[[["number"]]]},{"name":"width","description":"Width of this image","type":[[["number"]]]}],"meta":{"line":87,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedVideo","description":"Represents the video of a WebEmbed","type":[[["Object"]]],"props":[{"name":"url","description":"URL of this video","type":[[["string"]]]},{"name":"proxyURL","description":"ProxyURL for this video","type":[[["string"]]]},{"name":"height","description":"Height of this video","type":[[["number"]]]},{"name":"width","description":"Width of this video","type":[[["number"]]]}],"meta":{"line":122,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedAuthor","description":"Represents the author field of a WebEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this author","type":[[["string"]]]},{"name":"url","description":"URL of this author","type":[[["string"]]]},{"name":"iconURL","description":"URL of the icon for this author","type":[[["string"]]]},{"name":"proxyIconURL","description":"Proxied URL of the icon for this author","type":[[["string"]]]}],"meta":{"line":145,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebEmbedProvider","description":"Represents the provider of a WebEmbed","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this provider","type":[[["string"]]]},{"name":"url","description":"URL of this provider","type":[[["string"]]]}],"meta":{"line":165,"file":"WebEmbed.js","path":"src/structures"}},{"name":"EmbedProviderData","description":"The options to provide for setting an provider for a {@link WebEmbed}.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of this provider.","type":[[["string"]]]}],"meta":{"line":208,"file":"WebEmbed.js","path":"src/structures"}},{"name":"WebhookMessageOptions","description":"Options that can be passed into send.","type":[[["BaseMessageOptions"]]],"props":[{"name":"username","description":"Username override for the message","optional":true,"default":"this.name","type":[[["string"]]]},{"name":"avatarURL","description":"Avatar URL override for the message","optional":true,"type":[[["string"]]]},{"name":"threadId","description":"The id of the thread in the channel to send to.","optional":true,"type":[[["Snowflake"]]]},{"name":"flags","description":"Which flags to set for the message. Only `SUPPRESS_EMBEDS` can be set.\nFor interaction webhooks, this property is ignored","optional":true,"type":[[["MessageFlags"]]]}],"meta":{"line":113,"file":"Webhook.js","path":"src/structures"}},{"name":"WebhookEditMessageOptions","description":"Options that can be passed into editMessage.","type":[[["Object"]]],"props":[{"name":"embeds","description":"See {@link WebhookMessageOptions#embeds}","optional":true,"type":[[["Array","<"],["MessageEmbed",">"]],[["Array","<"],["APIEmbed",">"]]]},{"name":"content","description":"See {@link BaseMessageOptions#content}","optional":true,"type":[[["string"]]]},{"name":"files","description":"See {@link BaseMessageOptions#files}","optional":true,"type":[[["Array","<"],["FileOptions",">"]],[["Array","<"],["BufferResolvable",">"]],[["Array","<"],["MessageAttachment",">"]]]},{"name":"allowedMentions","description":"See {@link BaseMessageOptions#allowedMentions}","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"attachments","description":"Attachments to send with the message","optional":true,"type":[[["Array","<"],["MessageAttachment",">"]]]},{"name":"components","description":"Action rows containing interactive components for the message (buttons, select menus)","optional":true,"type":[[["Array","<"],["MessageActionRow",">"]],[["Array","<"],["MessageActionRowOptions",">"]]]},{"name":"threadId","description":"The id of the thread this message belongs to\nFor interaction webhooks, this property is ignored","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":123,"file":"Webhook.js","path":"src/structures"}},{"name":"WebhookEditData","description":"Options used to edit a {@link Webhook}.","type":[[["Object"]]],"props":[{"name":"name","description":"The new name for the webhook","optional":true,"default":"this.name","type":[[["string"]]]},{"name":"avatar","description":"The new avatar for the webhook","optional":true,"nullable":true,"type":[[["BufferResolvable"]]]},{"name":"channel","description":"The new channel for the webhook","optional":true,"type":[[["GuildTextChannelResolvable"]]]}],"meta":{"line":236,"file":"Webhook.js","path":"src/structures"}},{"name":"WebhookFetchMessageOptions","description":"Options that can be passed into fetchMessage.","type":[[["options"]]],"props":[{"name":"cache","description":"Whether to cache the message.","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"threadId","description":"The id of the thread this message belongs to.\nFor interaction webhooks, this property is ignored","optional":true,"type":[[["Snowflake"]]]}],"meta":{"line":267,"file":"Webhook.js","path":"src/structures"}},{"name":"WidgetChannel","description":"Represents a channel in a Widget","type":[[["Object"]]],"props":[{"name":"id","description":"Id of the channel","type":[[["Snowflake"]]]},{"name":"name","description":"Name of the channel","type":[[["string"]]]},{"name":"position","description":"Position of the channel","type":[[["number"]]]}],"meta":{"line":16,"file":"Widget.js","path":"src/structures"}},{"name":"WidgetActivity","description":"Activity sent in a {@link WidgetMember}.","type":[[["Object"]]],"props":[{"name":"name","description":"The name of the activity","type":[[["string"]]]}],"meta":{"line":9,"file":"WidgetMember.js","path":"src/structures"}},{"name":"BitFieldResolvable","description":"Data that can be resolved to give a bitfield. This can be:\n* A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS})\n* A string bit number\n* An instance of BitField\n* An Array of BitFieldResolvable","type":[[["number"]],[["string"]],[["bigint"]],[["BitField"]],[["Array","<"],["BitFieldResolvable",">"]]],"meta":{"line":129,"file":"BitField.js","path":"src/util"}},{"name":"Constants","description":"Constants that can be used in an enum or object-like way.","type":[[["Object"]]],"props":[{"name":"ActivityTypes","description":"The type of an activity of a users presence.","type":[[["ActivityType"]]]},{"name":"APIErrors","description":"An error encountered while performing an API request.","type":[[["APIError"]]]},{"name":"ApplicationCommandOptionTypes","description":"The type of an {@link ApplicationCommandOption} object.","type":[[["ApplicationCommandOptionType"]]]},{"name":"ApplicationCommandPermissionTypes","description":"The type of an {@link ApplicationCommandPermissions} object.","type":[[["ApplicationCommandPermissionType"]]]},{"name":"ChannelTypes","description":"All available channel types.","type":[[["ChannelType"]]]},{"name":"DefaultMessageNotificationLevels","description":"The value set for a guild's default message notifications.","type":[[["DefaultMessageNotificationLevel"]]]},{"name":"ExplicitContentFilterLevels","description":"The value set for the explicit content filter levels for a guild.","type":[[["ExplicitContentFilterLevel"]]]},{"name":"GuildScheduledEventStatuses","description":"The status of a {@link GuildScheduledEvent} object.","type":[[["GuildScheduledEventStatus"]]]},{"name":"GuildScheduledEventEntityTypes","description":"The entity type of a\n{@link GuildScheduledEvent} object.","type":[[["GuildScheduledEventEntityType"]]]},{"name":"GuildScheduledEventPrivacyLevels","description":"Privacy level of a\n{@link GuildScheduledEvent} object.","type":[[["GuildScheduledEventPrivacyLevel"]]]},{"name":"InteractionResponseTypes","description":"The type of an interaction response.","type":[[["InteractionResponseType"]]]},{"name":"InteractionTypes","description":"The type of an {@link Interaction} object.","type":[[["InteractionType"]]]},{"name":"MembershipStates","description":"The value set for a team member's membership state.","type":[[["MembershipState"]]]},{"name":"MessageButtonStyles","description":"The style of a message button.","type":[[["MessageButtonStyle"]]]},{"name":"MessageComponentTypes","description":"The type of a message component.","type":[[["MessageComponentType"]]]},{"name":"MFALevels","description":"The required MFA level for a guild.","type":[[["MFALevel"]]]},{"name":"NSFWLevels","description":"NSFW level of a guild.","type":[[["NSFWLevel"]]]},{"name":"OverwriteTypes","description":"An overwrite type.","type":[[["OverwriteType"]]]},{"name":"PartialTypes","description":"The type of Structure allowed to be a partial.","type":[[["PartialType"]]]},{"name":"PremiumTiers","description":"The premium tier (Server Boost level) of a guild.","type":[[["PremiumTier"]]]},{"name":"PrivacyLevels","description":"Privacy level of a {@link StageInstance} object.","type":[[["PrivacyLevel"]]]},{"name":"Status","description":"The available statuses of the client.","type":[[["Status"]]]},{"name":"StickerFormatTypes","description":"The value set for a sticker's format type.","type":[[["StickerFormatType"]]]},{"name":"StickerTypes","description":"The value set for a sticker's type.","type":[[["StickerType"]]]},{"name":"VerificationLevels","description":"The value set for the verification levels for a guild.","type":[[["VerificationLevel"]]]},{"name":"VideoQualityModes","description":"The camera video quality mode for a {@link VoiceChannel}.","type":[[["VideoQualityMode"]]]},{"name":"WebhookTypes","description":"The value set for a webhook's type.","type":[[["WebhookType"]]]},{"name":"WSEvents","description":"The type of a WebSocket message event.","type":[[["WSEventType"]]]}],"meta":{"line":1379,"file":"Constants.js","path":"src/util"}},{"name":"ImageURLOptions","description":"Options for Image URLs.","type":[[["StaticImageURLOptions"]]],"props":[{"name":"dynamic","description":"If true, the format will dynamically change to `gif` for animated avatars.","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":108,"file":"Constants.js","path":"src/util"}},{"name":"StaticImageURLOptions","description":"Options for static Image URLs.","type":[[["Object"]]],"props":[{"name":"format","description":"One of `webp`, `png`, `jpg`, `jpeg`.","optional":true,"default":"'webp'","type":[[["string"]]]},{"name":"size","description":"One of `16`, `32`, `56`, `64`, `96`, `128`, `256`, `300`, `512`, `600`, `1024`, `2048`,\n`4096`","optional":true,"type":[[["number"]]]}],"meta":{"line":114,"file":"Constants.js","path":"src/util"}},{"name":"Status","description":"The current status of the client. Here are the available statuses:\n* READY: 0\n* CONNECTING: 1\n* RECONNECTING: 2\n* IDLE: 3\n* NEARLY: 4\n* DISCONNECTED: 5\n* WAITING_FOR_GUILDS: 6\n* IDENTIFYING: 7\n* RESUMING: 8","type":[[["number"]]],"meta":{"line":168,"file":"Constants.js","path":"src/util"}},{"name":"PartialType","description":"The type of Structure allowed to be a partial:\n* USER\n* CHANNEL (only affects DMChannels)\n* GUILD_MEMBER\n* MESSAGE\n* REACTION\n* GUILD_SCHEDULED_EVENT\nPartials require you to put checks in place when handling data. See the \"Partial Structures\" topic on the\n[guide](https://discordjs.guide/popular-topics/partials.html) for more information.","type":[[["string"]]],"meta":{"line":345,"file":"Constants.js","path":"src/util"}},{"name":"WSEventType","description":"The type of a WebSocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:\n* READY\n* RESUMED\n* APPLICATION_COMMAND_CREATE (deprecated)\n* APPLICATION_COMMAND_DELETE (deprecated)\n* APPLICATION_COMMAND_UPDATE (deprecated)\n* GUILD_CREATE\n* GUILD_DELETE\n* GUILD_UPDATE\n* INVITE_CREATE\n* INVITE_DELETE\n* GUILD_MEMBER_ADD\n* GUILD_MEMBER_REMOVE\n* GUILD_MEMBER_UPDATE\n* GUILD_MEMBERS_CHUNK\n* GUILD_INTEGRATIONS_UPDATE\n* GUILD_ROLE_CREATE\n* GUILD_ROLE_DELETE\n* GUILD_ROLE_UPDATE\n* GUILD_BAN_ADD\n* GUILD_BAN_REMOVE\n* GUILD_EMOJIS_UPDATE\n* CHANNEL_CREATE\n* CHANNEL_DELETE\n* CHANNEL_UPDATE\n* CHANNEL_PINS_UPDATE\n* MESSAGE_CREATE\n* MESSAGE_DELETE\n* MESSAGE_UPDATE\n* MESSAGE_DELETE_BULK\n* MESSAGE_REACTION_ADD\n* MESSAGE_REACTION_REMOVE\n* MESSAGE_REACTION_REMOVE_ALL\n* MESSAGE_REACTION_REMOVE_EMOJI\n* THREAD_CREATE\n* THREAD_UPDATE\n* THREAD_DELETE\n* THREAD_LIST_SYNC\n* THREAD_MEMBER_UPDATE\n* THREAD_MEMBERS_UPDATE\n* USER_UPDATE\n* PRESENCE_UPDATE\n* TYPING_START\n* VOICE_STATE_UPDATE\n* VOICE_SERVER_UPDATE\n* WEBHOOKS_UPDATE\n* INTERACTION_CREATE\n* STAGE_INSTANCE_CREATE\n* STAGE_INSTANCE_UPDATE\n* STAGE_INSTANCE_DELETE\n* GUILD_STICKERS_UPDATE\n* GUILD_SCHEDULED_EVENT_CREATE\n* GUILD_SCHEDULED_EVENT_UPDATE\n* GUILD_SCHEDULED_EVENT_DELETE\n* GUILD_SCHEDULED_EVENT_USER_ADD\n* GUILD_SCHEDULED_EVENT_USER_REMOVE","see":["{@link https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events}"],"type":[[["string"]]],"meta":{"line":359,"file":"Constants.js","path":"src/util"}},{"name":"InviteScope","description":"A valid scope to request when generating an invite link.\nScopes that require whitelist are not considered valid for this generator\n* `applications.builds.read`: allows reading build data for a users applications\n* `applications.commands`: allows this bot to create commands in the server\n* `applications.entitlements`: allows reading entitlements for a users applications\n* `applications.store.update`: allows reading and updating of store data for a users applications\n* `bot`: makes the bot join the selected guild\n* `connections`: makes the endpoint for getting a users connections available\n* `email`: allows the `/users/@me` endpoint return with an email\n* `identify`: allows the `/users/@me` endpoint without an email\n* `guilds`: makes the `/users/@me/guilds` endpoint available for a user\n* `guilds.join`: allows the bot to join the user to any guild it is in using Guild#addMember\n* `gdm.join`: allows joining the user to a group dm\n* `webhook.incoming`: generates a webhook to a channel","see":["{@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}"],"type":[[["string"]]],"meta":{"line":477,"file":"Constants.js","path":"src/util"}},{"name":"IntegrationExpireBehavior","description":"The behavior of expiring subscribers for Integrations. This can be:\n* REMOVE_ROLE\n* KICK","see":["{@link https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors}"],"type":[[["string"]]],"meta":{"line":511,"file":"Constants.js","path":"src/util"}},{"name":"MessageType","description":"The type of a message, e.g. `DEFAULT`. Here are the available types:\n* DEFAULT\n* RECIPIENT_ADD\n* RECIPIENT_REMOVE\n* CALL\n* CHANNEL_NAME_CHANGE\n* CHANNEL_ICON_CHANGE\n* CHANNEL_PINNED_MESSAGE\n* GUILD_MEMBER_JOIN\n* USER_PREMIUM_GUILD_SUBSCRIPTION\n* USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1\n* USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2\n* USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3\n* CHANNEL_FOLLOW_ADD\n* GUILD_DISCOVERY_DISQUALIFIED\n* GUILD_DISCOVERY_REQUALIFIED\n* GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING\n* GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING\n* THREAD_CREATED\n* REPLY\n* APPLICATION_COMMAND\n* THREAD_STARTER_MESSAGE\n* GUILD_INVITE_REMINDER\n* CONTEXT_MENU_COMMAND","see":["{@link https://discord.com/developers/docs/resources/channel#message-object-message-types}"],"type":[[["string"]]],"meta":{"line":520,"file":"Constants.js","path":"src/util"}},{"name":"SweeperKey","description":"The name of an item to be swept in Sweepers\n* `applicationCommands` - both global and guild commands\n* `bans`\n* `emojis`\n* `invites` - accepts the `lifetime` property, using it will sweep based on expires timestamp\n* `guildMembers`\n* `messages` - accepts the `lifetime` property, using it will sweep based on edited or created timestamp\n* `presences`\n* `reactions`\n* `stageInstances`\n* `stickers`\n* `threadMembers`\n* `threads` - accepts the `lifetime` property, using it will sweep archived threads based on archived timestamp\n* `users`\n* `voiceStates`","type":[[["string"]]],"meta":{"line":575,"file":"Constants.js","path":"src/util"}},{"name":"SystemMessageType","description":"The types of messages that are `System`. The available types are `MessageTypes` excluding:\n* DEFAULT\n* REPLY\n* APPLICATION_COMMAND\n* CONTEXT_MENU_COMMAND","type":[[["string"]]],"meta":{"line":610,"file":"Constants.js","path":"src/util"}},{"name":"ActivityType","description":"Bots cannot set a `CUSTOM` activity type, it is only for custom statuses received from users\nThe type of an activity of a user's presence. Here are the available types:\n* PLAYING\n* STREAMING\n* LISTENING\n* WATCHING\n* CUSTOM\n* COMPETING","see":["{@link https://discord.com/developers/docs/game-sdk/activities#data-models-activitytype-enum}"],"type":[[["string"]]],"meta":{"line":622,"file":"Constants.js","path":"src/util"}},{"name":"ChannelType","description":"All available channel types:\n* `GUILD_TEXT` - a guild text channel\n* `DM` - a DM channel\n* `GUILD_VOICE` - a guild voice channel\n* `GROUP_DM` - a group DM channel\n* `GUILD_CATEGORY` - a guild category channel\n* `GUILD_NEWS` - a guild news channel\n* `GUILD_STORE` - a guild store channel\nStore channels are deprecated and will be removed from Discord in March 2022. See\n[Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/4414590563479)\nfor more information.\n* `GUILD_NEWS_THREAD` - a guild news channel's public thread channel\n* `GUILD_PUBLIC_THREAD` - a guild text channel's public thread channel\n* `GUILD_PRIVATE_THREAD` - a guild text channel's private thread channel\n* `GUILD_STAGE_VOICE` - a guild stage voice channel\n* `GUILD_DIRECTORY` - the channel in a hub containing guilds\n* `UNKNOWN` - a generic channel of unknown type, could be Channel or GuildChannel","see":["{@link https://discord.com/developers/docs/resources/channel#channel-object-channel-types}"],"type":[[["string"]]],"meta":{"line":636,"file":"Constants.js","path":"src/util"}},{"name":"TextBasedChannels","description":"The channels that are text-based.\n* DMChannel\n* TextChannel\n* NewsChannel\n* ThreadChannel","type":[[["DMChannel"]],[["TextChannel"]],[["NewsChannel"]],[["ThreadChannel"]]],"meta":{"line":674,"file":"Constants.js","path":"src/util"}},{"name":"TextBasedChannelsResolvable","description":"Data that resolves to give a text-based channel. This can be:\n* A text-based channel\n* A snowflake","type":[[["TextBasedChannels"]],[["Snowflake"]]],"meta":{"line":683,"file":"Constants.js","path":"src/util"}},{"name":"TextBasedChannelTypes","description":"The types of channels that are text-based. The available types are:\n* DM\n* GUILD_TEXT\n* GUILD_NEWS\n* GUILD_NEWS_THREAD\n* GUILD_PUBLIC_THREAD\n* GUILD_PRIVATE_THREAD","type":[[["string"]]],"meta":{"line":690,"file":"Constants.js","path":"src/util"}},{"name":"ThreadChannelTypes","description":"The types of channels that are threads. The available types are:\n* GUILD_NEWS_THREAD\n* GUILD_PUBLIC_THREAD\n* GUILD_PRIVATE_THREAD","type":[[["string"]]],"meta":{"line":709,"file":"Constants.js","path":"src/util"}},{"name":"VoiceBasedChannelTypes","description":"The types of channels that are voice-based. The available types are:\n* GUILD_VOICE\n* GUILD_STAGE_VOICE","type":[[["string"]]],"meta":{"line":718,"file":"Constants.js","path":"src/util"}},{"name":"ExplicitContentFilterLevel","description":"The value set for the explicit content filter levels for a guild:\n* DISABLED\n* MEMBERS_WITHOUT_ROLES\n* ALL_MEMBERS","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level}"],"type":[[["string"]]],"meta":{"line":764,"file":"Constants.js","path":"src/util"}},{"name":"VerificationLevel","description":"The value set for the verification levels for a guild:\n* NONE\n* LOW\n* MEDIUM\n* HIGH\n* VERY_HIGH","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}"],"type":[[["string"]]],"meta":{"line":774,"file":"Constants.js","path":"src/util"}},{"name":"APIError","description":"An error encountered while performing an API request. Here are the potential errors:\n* UNKNOWN_ACCOUNT\n* UNKNOWN_APPLICATION\n* UNKNOWN_CHANNEL\n* UNKNOWN_GUILD\n* UNKNOWN_INTEGRATION\n* UNKNOWN_INVITE\n* UNKNOWN_MEMBER\n* UNKNOWN_MESSAGE\n* UNKNOWN_OVERWRITE\n* UNKNOWN_PROVIDER\n* UNKNOWN_ROLE\n* UNKNOWN_TOKEN\n* UNKNOWN_USER\n* UNKNOWN_EMOJI\n* UNKNOWN_WEBHOOK\n* UNKNOWN_WEBHOOK_SERVICE\n* UNKNOWN_SESSION\n* UNKNOWN_BAN\n* UNKNOWN_SKU\n* UNKNOWN_STORE_LISTING\n* UNKNOWN_ENTITLEMENT\n* UNKNOWN_BUILD\n* UNKNOWN_LOBBY\n* UNKNOWN_BRANCH\n* UNKNOWN_STORE_DIRECTORY_LAYOUT\n* UNKNOWN_REDISTRIBUTABLE\n* UNKNOWN_GIFT_CODE\n* UNKNOWN_STREAM\n* UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN\n* UNKNOWN_GUILD_TEMPLATE\n* UNKNOWN_DISCOVERABLE_SERVER_CATEGORY\n* UNKNOWN_STICKER\n* UNKNOWN_INTERACTION\n* UNKNOWN_APPLICATION_COMMAND\n* UNKNOWN_APPLICATION_COMMAND_PERMISSIONS\n* UNKNOWN_STAGE_INSTANCE\n* UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM\n* UNKNOWN_GUILD_WELCOME_SCREEN\n* UNKNOWN_GUILD_SCHEDULED_EVENT\n* UNKNOWN_GUILD_SCHEDULED_EVENT_USER\n* BOT_PROHIBITED_ENDPOINT\n* BOT_ONLY_ENDPOINT\n* CANNOT_SEND_EXPLICIT_CONTENT\n* NOT_AUTHORIZED\n* SLOWMODE_RATE_LIMIT\n* ACCOUNT_OWNER_ONLY\n* ANNOUNCEMENT_EDIT_LIMIT_EXCEEDED\n* CHANNEL_HIT_WRITE_RATELIMIT\n* SERVER_HIT_WRITE_RATELIMIT\n* CONTENT_NOT_ALLOWED\n* GUILD_PREMIUM_LEVEL_TOO_LOW\n* MAXIMUM_GUILDS\n* MAXIMUM_FRIENDS\n* MAXIMUM_PINS\n* MAXIMUM_RECIPIENTS\n* MAXIMUM_ROLES\n* MAXIMUM_WEBHOOKS\n* MAXIMUM_EMOJIS\n* MAXIMUM_REACTIONS\n* MAXIMUM_CHANNELS\n* MAXIMUM_ATTACHMENTS\n* MAXIMUM_INVITES\n* MAXIMUM_ANIMATED_EMOJIS\n* MAXIMUM_SERVER_MEMBERS\n* MAXIMUM_NUMBER_OF_SERVER_CATEGORIES\n* GUILD_ALREADY_HAS_TEMPLATE\n* MAXIMUM_THREAD_PARTICIPANTS\n* MAXIMUM_NON_GUILD_MEMBERS_BANS\n* MAXIMUM_BAN_FETCHES\n* MAXIMUM_NUMBER_OF_UNCOMPLETED_GUILD_SCHEDULED_EVENTS_REACHED\n* MAXIMUM_NUMBER_OF_STICKERS_REACHED\n* MAXIMUM_PRUNE_REQUESTS\n* MAXIMUM_GUILD_WIDGET_SETTINGS_UPDATE\n* UNAUTHORIZED\n* ACCOUNT_VERIFICATION_REQUIRED\n* DIRECT_MESSAGES_TOO_FAST\n* REQUEST_ENTITY_TOO_LARGE\n* FEATURE_TEMPORARILY_DISABLED\n* USER_BANNED\n* TARGET_USER_NOT_CONNECTED_TO_VOICE\n* ALREADY_CROSSPOSTED\n* MISSING_ACCESS\n* INVALID_ACCOUNT_TYPE\n* CANNOT_EXECUTE_ON_DM\n* EMBED_DISABLED\n* CANNOT_EDIT_MESSAGE_BY_OTHER\n* CANNOT_SEND_EMPTY_MESSAGE\n* CANNOT_MESSAGE_USER\n* CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL\n* CHANNEL_VERIFICATION_LEVEL_TOO_HIGH\n* OAUTH2_APPLICATION_BOT_ABSENT\n* MAXIMUM_OAUTH2_APPLICATIONS\n* INVALID_OAUTH_STATE\n* MISSING_PERMISSIONS\n* INVALID_AUTHENTICATION_TOKEN\n* NOTE_TOO_LONG\n* INVALID_BULK_DELETE_QUANTITY\n* CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL\n* INVALID_OR_TAKEN_INVITE_CODE\n* CANNOT_EXECUTE_ON_SYSTEM_MESSAGE\n* CANNOT_EXECUTE_ON_CHANNEL_TYPE\n* INVALID_OAUTH_TOKEN\n* MISSING_OAUTH_SCOPE\n* INVALID_WEBHOOK_TOKEN\n* INVALID_ROLE\n* INVALID_RECIPIENTS\n* BULK_DELETE_MESSAGE_TOO_OLD\n* INVALID_FORM_BODY\n* INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT\n* INVALID_API_VERSION\n* FILE_UPLOADED_EXCEEDS_MAXIMUM_SIZE\n* INVALID_FILE_UPLOADED\n* CANNOT_SELF_REDEEM_GIFT\n* INVALID_GUILD\n* PAYMENT_SOURCE_REQUIRED\n* CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL\n* INVALID_STICKER_SENT\n* INVALID_OPERATION_ON_ARCHIVED_THREAD\n* INVALID_THREAD_NOTIFICATION_SETTINGS\n* PARAMETER_EARLIER_THAN_CREATION\n* GUILD_NOT_AVAILABLE_IN_LOCATION\n* GUILD_MONETIZATION_REQUIRED\n* INSUFFICIENT_BOOSTS\n* INVALID_JSON\n* TWO_FACTOR_REQUIRED\n* NO_USERS_WITH_DISCORDTAG_EXIST\n* REACTION_BLOCKED\n* RESOURCE_OVERLOADED\n* STAGE_ALREADY_OPEN\n* CANNOT_REPLY_WITHOUT_READ_MESSAGE_HISTORY_PERMISSION\n* MESSAGE_ALREADY_HAS_THREAD\n* THREAD_LOCKED\n* MAXIMUM_ACTIVE_THREADS\n* MAXIMUM_ACTIVE_ANNOUNCEMENT_THREAD\n* INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE\n* UPLOADED_LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES\n* STICKER_MAXIMUM_FRAMERATE_EXCEEDED\n* STICKER_FRAME_COUNT_EXCEEDS_MAXIMUM_OF_1000_FRAMES\n* LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS_EXCEEDED\n* STICKER_FRAME_RATE_IS_TOO_SMALL_OR_TOO_LARGE\n* STICKER_ANIMATION_DURATION_EXCEEDS_MAXIMUM_OF_5_SECONDS\n* CANNOT_UPDATE_A_FINISHED_EVENT\n* FAILED_TO_CREATE_STAGE_NEEDED_FOR_STAGE_EVENT","see":["{@link https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes}"],"type":[[["string"]]],"meta":{"line":786,"file":"Constants.js","path":"src/util"}},{"name":"DefaultMessageNotificationLevel","description":"The value set for a guild's default message notifications, e.g. `ALL_MESSAGES`. Here are the available types:\n* ALL_MESSAGES\n* ONLY_MENTIONS","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level}"],"type":[[["string"]]],"meta":{"line":1080,"file":"Constants.js","path":"src/util"}},{"name":"MembershipState","description":"The value set for a team member's membership state:\n* INVITED\n* ACCEPTED","see":["{@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}"],"type":[[["string"]]],"meta":{"line":1089,"file":"Constants.js","path":"src/util"}},{"name":"WebhookType","description":"The value set for a webhook's type:\n* Incoming\n* Channel Follower\n* Application","see":["{@link https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types}"],"type":[[["string"]]],"meta":{"line":1098,"file":"Constants.js","path":"src/util"}},{"name":"StickerType","description":"The value set for a sticker's type:\n* STANDARD\n* GUILD","see":["{@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types}"],"type":[[["string"]]],"meta":{"line":1108,"file":"Constants.js","path":"src/util"}},{"name":"StickerFormatType","description":"The value set for a sticker's format type:\n* PNG\n* APNG\n* LOTTIE","see":["{@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types}"],"type":[[["string"]]],"meta":{"line":1117,"file":"Constants.js","path":"src/util"}},{"name":"OverwriteType","description":"An overwrite type:\n* role\n* member","see":["{@link https://discord.com/developers/docs/resources/channel#overwrite-object-overwrite-structure}"],"type":[[["string"]]],"meta":{"line":1127,"file":"Constants.js","path":"src/util"}},{"name":"ApplicationCommandType","description":"The type of an {@link ApplicationCommand} object:\n* CHAT_INPUT\n* USER\n* MESSAGE","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types}"],"type":[[["string"]]],"meta":{"line":1137,"file":"Constants.js","path":"src/util"}},{"name":"ApplicationCommandOptionType","description":"The type of an {@link ApplicationCommandOption} object:\n* SUB_COMMAND\n* SUB_COMMAND_GROUP\n* STRING\n* INTEGER\n* BOOLEAN\n* USER\n* CHANNEL\n* ROLE\n* MENTIONABLE\n* NUMBER","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type}"],"type":[[["string"]]],"meta":{"line":1147,"file":"Constants.js","path":"src/util"}},{"name":"ApplicationCommandPermissionType","description":"The type of an {@link ApplicationCommandPermissions} object:\n* ROLE\n* USER","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type}"],"type":[[["string"]]],"meta":{"line":1177,"file":"Constants.js","path":"src/util"}},{"name":"InteractionType","description":"The type of an {@link Interaction} object:\n* PING\n* APPLICATION_COMMAND\n* MESSAGE_COMPONENT\n* APPLICATION_COMMAND_AUTOCOMPLETE","see":["{@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type}"],"type":[[["string"]]],"meta":{"line":1186,"file":"Constants.js","path":"src/util"}},{"name":"InteractionResponseType","description":"The type of an interaction response:\n* PONG\n* CHANNEL_MESSAGE_WITH_SOURCE\n* DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE\n* DEFERRED_MESSAGE_UPDATE\n* UPDATE_MESSAGE\n* APPLICATION_COMMAND_AUTOCOMPLETE_RESULT","see":["{@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type}"],"type":[[["string"]]],"meta":{"line":1204,"file":"Constants.js","path":"src/util"}},{"name":"MessageComponentType","description":"The type of a message component\n* ACTION_ROW\n* BUTTON\n* SELECT_MENU\n* TEXT_INPUT","see":["{@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}"],"type":[[["string"]]],"meta":{"line":1228,"file":"Constants.js","path":"src/util"}},{"name":"MessageButtonStyle","description":"The style of a message button\n* PRIMARY\n* SECONDARY\n* SUCCESS\n* DANGER\n* LINK","see":["{@link https://discord.com/developers/docs/interactions/message-components#button-object-button-styles}"],"type":[[["string"]]],"meta":{"line":1239,"file":"Constants.js","path":"src/util"}},{"name":"MFALevel","description":"The required MFA level for a guild\n* NONE\n* ELEVATED","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-mfa-level}"],"type":[[["string"]]],"meta":{"line":1251,"file":"Constants.js","path":"src/util"}},{"name":"NSFWLevel","description":"NSFW level of a Guild:\n* DEFAULT\n* EXPLICIT\n* SAFE\n* AGE_RESTRICTED","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level}"],"type":[[["string"]]],"meta":{"line":1260,"file":"Constants.js","path":"src/util"}},{"name":"PrivacyLevel","description":"Privacy level of a {@link StageInstance} object:\n* PUBLIC\n* GUILD_ONLY","see":["{@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level}"],"type":[[["string"]]],"meta":{"line":1271,"file":"Constants.js","path":"src/util"}},{"name":"TextInputStyle","description":"The style of a text input component\n* SHORT\n* PARAGRAPH","see":["{@link https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles}"],"type":[[["string"]]],"meta":{"line":1280,"file":"Constants.js","path":"src/util"}},{"name":"GuildScheduledEventPrivacyLevel","description":"Privacy level of a {@link GuildScheduledEvent} object:\n* GUILD_ONLY","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level}"],"type":[[["string"]]],"meta":{"line":1289,"file":"Constants.js","path":"src/util"}},{"name":"RelationshipType","description":"Relationship Enum\n* FRIEND\n* BLOCKED\n* INCOMING_REQUEST\n* OUTGOING_REQUEST","see":["{@link https://luna.gitlab.io/discord-unofficial-docs/relationships.html}"],"type":[[["string"]]],"meta":{"line":1297,"file":"Constants.js","path":"src/util"}},{"name":"PremiumTier","description":"The premium tier (Server Boost level) of a guild:\n* NONE\n* TIER_1\n* TIER_2\n* TIER_3","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object-premium-tier}"],"type":[[["string"]]],"meta":{"line":1317,"file":"Constants.js","path":"src/util"}},{"name":"GuildScheduledEventStatus","description":"The status of a {@link GuildScheduledEvent}:\n* SCHEDULED\n* ACTIVE\n* COMPLETED\n* CANCELED","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status}"],"type":[[["string"]]],"meta":{"line":1328,"file":"Constants.js","path":"src/util"}},{"name":"GuildScheduledEventEntityType","description":"The entity type of a {@link GuildScheduledEvent}:\n* NONE\n* STAGE_INSTANCE\n* VOICE\n* EXTERNAL","see":["{@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types}"],"type":[[["string"]]],"meta":{"line":1339,"file":"Constants.js","path":"src/util"}},{"name":"VideoQualityMode","description":"The camera video quality mode of a {@link VoiceChannel}:\n* AUTO\n* FULL","see":["{@link https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes}"],"type":[[["string"]]],"meta":{"line":1350,"file":"Constants.js","path":"src/util"}},{"name":"GuildTemplateResolvable","description":"Data that can be resolved to give a template code. This can be:\n* A template code\n* A template URL","type":[[["string"]]],"meta":{"line":23,"file":"DataResolver.js","path":"src/util"}},{"name":"Base64Resolvable","description":"Data that resolves to give a Base64 string, typically for image uploading. This can be:\n* A Buffer\n* A base64 string","type":[[["Buffer"]],[["string"]]],"meta":{"line":73,"file":"DataResolver.js","path":"src/util"}},{"name":"BufferResolvable","description":"Data that can be resolved to give a Buffer. This can be:\n* A Buffer\n* The path to a local file\n* A URL When provided a URL, discord.js will fetch the URL internally in order to create a Buffer.\nThis can pose a security risk when the URL has not been sanitized","type":[[["string"]],[["Buffer"]]],"meta":{"line":90,"file":"DataResolver.js","path":"src/util"}},{"name":"TimestampStylesString","description":"A message formatting timestamp style, as defined in\n[here](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles).\n* `t` Short time format, consisting of hours and minutes, e.g. 16:20.\n* `T` Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30.\n* `d` Short date format, consisting of day, month, and year, e.g. 20/04/2021.\n* `D` Long date format, consisting of day, month, and year, e.g. 20 April 2021.\n* `f` Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20.\n* `F` Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20.\n* `R` Relative time format, consisting of a relative duration format, e.g. 2 months ago.","type":[[["string"]]],"meta":{"line":159,"file":"Formatters.js","path":"src/util"}},{"name":"IntentsResolvable","description":"Data that can be resolved to give a permission number. This can be:\n* A string (see {@link Intents.FLAGS})\n* An intents flag\n* An instance of Intents\n* An array of IntentsResolvable","type":[[["string"]],[["number"]],[["Intents"]],[["Array","<"],["IntentsResolvable",">"]]],"meta":{"line":17,"file":"Intents.js","path":"src/util"}},{"name":"SweepFilter","type":[[["function"]]],"params":[{"name":"collection","description":"The collection being swept","type":[[["LimitedCollection"]]]}],"returns":{"types":[[["function"]],[["null"]]],"description":"Return `null` to skip sweeping, otherwise a function passed to `sweep()`,\nSee {@link [Collection#sweep](https://discord.js.org/#/docs/collection/main/class/Collection?scrollTo=sweep)}\nfor the definition of this function."},"meta":{"line":9,"file":"LimitedCollection.js","path":"src/util"}},{"name":"LimitedCollectionOptions","description":"Options for defining the behavior of a LimitedCollection","type":[[["Object"]]],"props":[{"name":"maxSize","description":"The maximum size of the Collection","optional":true,"default":"Infinity","nullable":true,"type":[[["number"]]]},{"name":"keepOverLimit","description":"A function, which is passed the value and key of an entry, ran to decide\nto keep an entry past the maximum size","optional":true,"default":null,"nullable":true,"type":[[["function"]]]},{"name":"sweepFilter","description":"DEPRECATED: There is no direct alternative to this,\nhowever most of its purpose is fulfilled by {@link Client#sweepers}\nA function ran every `sweepInterval` to determine how to sweep","optional":true,"default":null,"nullable":true,"type":[[["SweepFilter"]]]},{"name":"sweepInterval","description":"DEPRECATED: There is no direct alternative to this,\nhowever most of its purpose is fulfilled by {@link Client#sweepers}\nHow frequently, in seconds, to sweep the collection.","optional":true,"default":0,"nullable":true,"type":[[["number"]]]}],"meta":{"line":17,"file":"LimitedCollection.js","path":"src/util"}},{"name":"RateLimitData","description":"Rate limit data","type":[[["Object"]]],"props":[{"name":"timeout","description":"Time until this rate limit ends, in milliseconds","type":[[["number"]]]},{"name":"limit","description":"The maximum amount of requests of this endpoint","type":[[["number"]]]},{"name":"method","description":"The HTTP method of this request","type":[[["string"]]]},{"name":"path","description":"The path of the request relative to the HTTP endpoint","type":[[["string"]]]},{"name":"route","description":"The route of the request relative to the HTTP endpoint","type":[[["string"]]]},{"name":"global","description":"Whether this is a global rate limit","type":[[["boolean"]]]}],"meta":{"line":6,"file":"Options.js","path":"src/util"}},{"name":"RateLimitQueueFilter","description":"Whether this rate limit should throw an Error","type":[[["function"]]],"params":[{"name":"rateLimitData","description":"The data of this rate limit","type":[[["RateLimitData"]]]}],"returns":[[["boolean"]],[["Promise","<"],["boolean",">"]]],"meta":{"line":17,"file":"Options.js","path":"src/util"}},{"name":"CacheFactory","type":[[["function"]]],"params":[{"name":"manager","description":"The manager class the cache is being requested from.","type":[[["function"]]]},{"name":"holds","description":"The class that the cache will hold.","type":[[["function"]]]}],"returns":{"types":[[["Collection"]]],"description":"A Collection used to store the cache of the manager."},"meta":{"line":24,"file":"Options.js","path":"src/util"}},{"name":"ClientOptions","description":"Options for a client.","type":[[["Object"]]],"props":[{"name":"shards","description":"The shard's id to run, or an array of shard ids. If not specified,\nthe client will spawn {@link ClientOptions#shardCount} shards. If set to `auto`, it will fetch the\nrecommended amount of shards from Discord and spawn that amount","optional":true,"type":[[["number"]],[["Array","<"],["number",">"]],[["string"]]]},{"name":"checkUpdate","description":"Check for module updates at startup","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"readyStatus","description":"Sync state with Discord Client","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"autoCookie","description":"Automatically add Cookies to Request on startup","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"shardCount","description":"The total amount of shards used by all processes of this bot\n(e.g. recommended shard count, shard count of the ShardingManager)","optional":true,"default":1,"type":[[["number"]]]},{"name":"makeCache","description":"Function to create a cache.\nYou can use your own function, or the {@link Options} class to customize the Collection used for the cache.\nOverriding the cache used in `GuildManager`, `ChannelManager`, `GuildChannelManager`, `RoleManager`,\nand `PermissionOverwriteManager` is unsupported and **will** break functionality","optional":true,"type":[[["CacheFactory"]]]},{"name":"messageCacheLifetime","description":"DEPRECATED: Pass `lifetime` to `sweepers.messages` instead.\nHow long a message should stay in the cache until it is considered sweepable (in seconds, 0 for forever)","optional":true,"default":0,"type":[[["number"]]]},{"name":"messageSweepInterval","description":"DEPRECATED: Pass `interval` to `sweepers.messages` instead.\nHow frequently to remove messages from the cache that are older than the message cache lifetime\n(in seconds, 0 for never)","optional":true,"default":0,"type":[[["number"]]]},{"name":"allowedMentions","description":"Default value for {@link MessageOptions#allowedMentions}","optional":true,"type":[[["MessageMentionOptions"]]]},{"name":"invalidRequestWarningInterval","description":"The number of invalid REST requests (those that return\n401, 403, or 429) in a 10 minute window between emitted warnings (0 for no warnings). That is, if set to 500,\nwarnings will be emitted at invalid request number 500, 1000, 1500, and so on.","optional":true,"default":0,"type":[[["number"]]]},{"name":"partials","description":"Structures allowed to be partial. This means events can be emitted even when\nthey're missing all the data for a particular structure. See the \"Partial Structures\" topic on the\n[guide](https://discordjs.guide/popular-topics/partials.html) for some\nimportant usage information, as partials require you to put checks in place when handling data.","optional":true,"default":"['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT']","type":[[["Array","<"],["PartialType",">"]]]},{"name":"restWsBridgeTimeout","description":"Maximum time permitted between REST responses and their\ncorresponding WebSocket events","optional":true,"default":5000,"type":[[["number"]]]},{"name":"restTimeOffset","description":"Extra time in milliseconds to wait before continuing to make REST\nrequests (higher values will reduce rate-limiting errors on bad connections)","optional":true,"default":500,"type":[[["number"]]]},{"name":"restRequestTimeout","description":"Time to wait before cancelling a REST request, in milliseconds","optional":true,"default":15000,"type":[[["number"]]]},{"name":"restSweepInterval","description":"How frequently to delete inactive request buckets, in seconds\n(or 0 for never)","optional":true,"default":60,"type":[[["number"]]]},{"name":"restGlobalRateLimit","description":"How many requests to allow sending per second (0 for unlimited, 50 for\nthe standard global limit used by Discord)","optional":true,"default":0,"type":[[["number"]]]},{"name":"rejectOnRateLimit","description":"Decides how rate limits and pre-emptive throttles\nshould be handled. If this option is an array containing the prefix of the request route (e.g. /channels to match any\nroute starting with /channels, such as /channels/222197033908436994/messages) or a function returning true, a\n{@link RateLimitError} will be thrown. Otherwise the request will be queued for later","optional":true,"type":[[["Array","<"],["string",">"]],[["RateLimitQueueFilter"]]]},{"name":"retryLimit","description":"How many times to retry on 5XX errors\n(Infinity for an indefinite amount of retries)","optional":true,"default":1,"type":[[["number"]]]},{"name":"failIfNotExists","description":"Default value for {@link ReplyMessageOptions#failIfNotExists}","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"userAgentSuffix","description":"An array of additional bot info to be appended to the end of the required\n[User Agent](https://discord.com/developers/docs/reference#user-agent) header","optional":true,"type":[[["Array","<"],["string",">"]]]},{"name":"presence","description":"Presence data to use upon login","optional":true,"default":"{}","type":[[["PresenceData"]]]},{"name":"intents","description":"Intents to enable for this connection","optional":true,"type":[[["IntentsResolvable"]]]},{"name":"waitGuildTimeout","description":"Time in milliseconds that Clients with the GUILDS intent should wait for\nmissing guilds to be received before starting the bot. If not specified, the default is 15 seconds.","optional":true,"default":"15_000","type":[[["number"]]]},{"name":"sweepers","description":"Options for cache sweeping","optional":true,"default":"{}","type":[[["SweeperOptions"]]]},{"name":"ws","description":"Options for the WebSocket","optional":true,"type":[[["WebsocketOptions"]]]},{"name":"http","description":"HTTP options","optional":true,"type":[[["HTTPOptions"]]]}],"meta":{"line":31,"file":"Options.js","path":"src/util"}},{"name":"SweeperOptions","description":"Options for {@link Sweepers} defining the behavior of cache sweeping","type":[[["Object","<"],["SweeperKey",", "],["SweepOptions",">"]]],"meta":{"line":86,"file":"Options.js","path":"src/util"}},{"name":"SweepOptions","description":"Options for sweeping a single type of item from cache","type":[[["Object"]]],"props":[{"name":"interval","description":"The interval (in seconds) at which to perform sweeping of the item","type":[[["number"]]]},{"name":"lifetime","description":"How long an item should stay in cache until it is considered sweepable.\nThis property is only valid for the `invites`, `messages`, and `threads` keys. The `filter` property\nis mutually exclusive to this property and takes priority","optional":true,"type":[[["number"]]]},{"name":"filter","description":"The function used to determine the function passed to the sweep method\nThis property is optional when the key is `invites`, `messages`, or `threads` and `lifetime` is set","type":[[["GlobalSweepFilter"]]]}],"meta":{"line":91,"file":"Options.js","path":"src/util"}},{"name":"WebsocketOptions","description":"WebSocket options (these are left as snake_case to match the API)","type":[[["Object"]]],"props":[{"name":"large_threshold","description":"Number of members in a guild after which offline users will no longer be\nsent in the initial guild member list, must be between 50 and 250","optional":true,"default":50,"type":[[["number"]]]}],"meta":{"line":102,"file":"Options.js","path":"src/util"}},{"name":"AgentOptions","description":"HTTPS Agent options.","see":["{@link https://nodejs.org/api/https.html#https_class_https_agent}","{@link https://nodejs.org/api/http.html#http_new_agent_options}"],"type":[[["Object"]]],"meta":{"line":109,"file":"Options.js","path":"src/util"}},{"name":"HTTPOptions","description":"HTTP options","type":[[["Object"]]],"props":[{"name":"version","description":"API version to use","optional":true,"default":9,"type":[[["number"]]]},{"name":"agent","description":"HTTPS Agent options","optional":true,"default":"{}","type":[[["AgentOptions"]]]},{"name":"api","description":"Base URL of the API","optional":true,"default":"'https://discord.com/api'","type":[[["string"]]]},{"name":"cdn","description":"Base URL of the CDN","optional":true,"default":"'https://cdn.discordapp.com'","type":[[["string"]]]},{"name":"invite","description":"Base URL of invites","optional":true,"default":"'https://discord.gg'","type":[[["string"]]]},{"name":"template","description":"Base URL of templates","optional":true,"default":"'https://discord.new'","type":[[["string"]]]},{"name":"headers","description":"Additional headers to send for all API requests","optional":true,"type":[[["Object"]]]},{"name":"scheduledEvent","description":"Base URL of guild scheduled events","optional":true,"default":"'https://discord.com/events'","type":[[["string"]]]}],"meta":{"line":116,"file":"Options.js","path":"src/util"}},{"name":"PermissionResolvable","description":"Data that can be resolved to give a permission number. This can be:\n* A string (see {@link Permissions.FLAGS})\n* A permission number\n* An instance of Permissions\n* An Array of PermissionResolvable","type":[[["string"]],[["bigint"]],[["Permissions"]],[["Array","<"],["PermissionResolvable",">"]]],"meta":{"line":18,"file":"Permissions.js","path":"src/util"}},{"name":"Snowflake","description":"A {@link https://developer.twitter.com/en/docs/twitter-ids Twitter snowflake},\nexcept the epoch is 2015-01-01T00:00:00.000Z.\n\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n```\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of milliseconds since Discord epoch worker pid increment\n```","type":[[["string"]]],"meta":{"line":11,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"DeconstructedSnowflake","description":"A deconstructed snowflake.","type":[[["Object"]]],"props":[{"name":"timestamp","description":"Timestamp the snowflake was created","type":[[["number"]]]},{"name":"date","description":"Date the snowflake was created","type":[[["Date"]]]},{"name":"workerId","description":"The worker's id in the snowflake","type":[[["number"]]]},{"name":"processId","description":"The process's id in the snowflake","type":[[["number"]]]},{"name":"increment","description":"Increment in the snowflake","type":[[["number"]]]},{"name":"binary","description":"Binary representation of the snowflake","type":[[["string"]]]}],"meta":{"line":43,"file":"SnowflakeUtil.js","path":"src/util"}},{"name":"GlobalSweepFilter","type":[[["function"]]],"returns":{"types":[[["function"]],[["null"]]],"description":"Return `null` to skip sweeping, otherwise a function passed to `sweep()`,\nSee {@link [Collection#sweep](https://discord.js.org/#/docs/collection/main/class/Collection?scrollTo=sweep)}\nfor the definition of this function."},"meta":{"line":7,"file":"Sweepers.js","path":"src/util"}},{"name":"LifetimeFilterOptions","description":"Options for generating a filter function based on lifetime","type":[[["Object"]]],"props":[{"name":"lifetime","description":"How long, in seconds, an entry should stay in the collection\nbefore it is considered sweepable.","optional":true,"default":14400,"type":[[["number"]]]},{"name":"getComparisonTimestamp","description":"A function that takes an entry, key,\nand the collection and returns a timestamp to compare against in order to determine the lifetime of the entry.","optional":true,"default":"e => e?.createdTimestamp","type":[[["function"]]]},{"name":"excludeFromSweep","description":"A function that takes an entry, key, and the collection\nand returns a boolean, `true` when the entry should not be checked for sweepability.","optional":true,"default":"() => false","type":[[["function"]]]}],"meta":{"line":293,"file":"Sweepers.js","path":"src/util"}},{"name":"SweepEventOptions","description":"Configuration options for emitting the cache sweep client event","access":"private","type":[[["Object"]]],"props":[{"name":"emit","description":"Whether to emit the client event in this method","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"outputName","description":"A name to output in the client event if it should differ from the key","optional":true,"type":[[["string"]]]}],"meta":{"line":375,"file":"Sweepers.js","path":"src/util"}},{"name":"SystemChannelFlagsResolvable","description":"Data that can be resolved to give a system channel flag bitfield. This can be:\n* A string (see {@link SystemChannelFlags.FLAGS})\n* A system channel flag\n* An instance of SystemChannelFlags\n* An Array of SystemChannelFlagsResolvable","type":[[["string"]],[["number"]],[["SystemChannelFlags"]],[["Array","<"],["SystemChannelFlagsResolvable",">"]]],"meta":{"line":26,"file":"SystemChannelFlags.js","path":"src/util"}},{"name":"SplitOptions","description":"Options for splitting a message.","type":[[["Object"]]],"props":[{"name":"maxLength","description":"Maximum character length per message piece","optional":true,"default":2000,"type":[[["number"]]]},{"name":"char","description":"Character(s) or Regex(es) to split the message with,\nan array can be used to split multiple times","optional":true,"default":"'\\n'","type":[[["string"]],[["Array","<"],["string",">"]],[["RegExp"]],[["Array","<"],["RegExp",">"]]]},{"name":"prepend","description":"Text to prepend to every piece except the first","optional":true,"default":"''","type":[[["string"]]]},{"name":"append","description":"Text to append to every piece except the last","optional":true,"default":"''","type":[[["string"]]]}],"meta":{"line":60,"file":"Util.js","path":"src/util"}},{"name":"EscapeMarkdownOptions","description":"Options used to escape markdown.","type":[[["Object"]]],"props":[{"name":"codeBlock","description":"Whether to escape code blocks or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"inlineCode","description":"Whether to escape inline code or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"bold","description":"Whether to escape bolds or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"italic","description":"Whether to escape italics or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"underline","description":"Whether to escape underlines or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"strikethrough","description":"Whether to escape strikethroughs or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"spoiler","description":"Whether to escape spoilers or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"codeBlockContent","description":"Whether to escape text inside code blocks or not","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"inlineCodeContent","description":"Whether to escape text inside inline code or not","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":115,"file":"Util.js","path":"src/util"}},{"name":"FetchRecommendedShardsOptions","type":[[["Object"]]],"props":[{"name":"guildsPerShard","description":"Number of guilds assigned per shard","optional":true,"default":1000,"type":[[["number"]]]},{"name":"multipleOf","description":"The multiple the shard count should round up to. (16 for large bot sharding)","optional":true,"default":1,"type":[[["number"]]]}],"meta":{"line":272,"file":"Util.js","path":"src/util"}},{"name":"MakeErrorOptions","description":"Options used to make an error object.","type":[[["Object"]]],"props":[{"name":"name","description":"Error type","type":[[["string"]]]},{"name":"message","description":"Message for the error","type":[[["string"]]]},{"name":"stack","description":"Stack for the error","type":[[["string"]]]}],"meta":{"line":359,"file":"Util.js","path":"src/util"}},{"name":"ColorResolvable","description":"Can be a number, hex string, an RGB array like:\n```js\n[255, 0, 255] // purple\n```\nor one of the following strings:\n- `DEFAULT`\n- `WHITE`\n- `AQUA`\n- `GREEN`\n- `BLUE`\n- `YELLOW`\n- `PURPLE`\n- `LUMINOUS_VIVID_PINK`\n- `FUCHSIA`\n- `GOLD`\n- `ORANGE`\n- `RED`\n- `GREY`\n- `NAVY`\n- `DARK_AQUA`\n- `DARK_GREEN`\n- `DARK_BLUE`\n- `DARK_PURPLE`\n- `DARK_VIVID_PINK`\n- `DARK_GOLD`\n- `DARK_ORANGE`\n- `DARK_RED`\n- `DARK_GREY`\n- `DARKER_GREY`\n- `LIGHT_GREY`\n- `DARK_NAVY`\n- `BLURPLE`\n- `GREYPLE`\n- `DARK_BUT_NOT_BLACK`\n- `NOT_QUITE_BLACK`\n- `RANDOM`","type":[[["string"]],[["number"]],[["Array","<"],["number",">"]]],"meta":{"line":432,"file":"Util.js","path":"src/util"}}],"externals":[{"name":"Collection","see":["{@link https://discord.js.org/#/docs/collection/main/class/Collection}"],"meta":{"line":747,"file":"Client.js","path":"src/client"}},{"name":"Inflate","see":["{@link https://www.npmjs.com/package/zlib-sync}"],"meta":{"line":108,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"CloseEvent","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent}"],"meta":{"line":322,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"ErrorEvent","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent}"],"meta":{"line":327,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"MessageEvent","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent}"],"meta":{"line":332,"file":"WebSocketShard.js","path":"src/client/websocket"}},{"name":"APIApplicationCommandPermissions","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure}"],"meta":{"line":422,"file":"ApplicationCommandPermissionsManager.js","path":"src/managers"}},{"name":"APIError","see":["{@link https://discord.com/developers/docs/reference#error-messages}"],"meta":{"line":79,"file":"DiscordAPIError.js","path":"src/rest"}},{"name":"HTTPMethod","see":["{@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods}"],"meta":{"line":371,"file":"RequestHandler.js","path":"src/rest"}},{"name":"Response","see":["{@link https://developer.mozilla.org/en-US/docs/Web/API/Response}"],"meta":{"line":376,"file":"RequestHandler.js","path":"src/rest"}},{"name":"APIApplicationCommand","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure}"],"meta":{"line":678,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"APIApplicationCommandOption","see":["{@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure}"],"meta":{"line":683,"file":"ApplicationCommand.js","path":"src/structures"}},{"name":"APIInteractionDataResolved","see":["{@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}"],"meta":{"line":208,"file":"BaseCommandInteraction.js","path":"src/structures"}},{"name":"APIChannel","see":["{@link https://discord.com/developers/docs/resources/channel#channel-object}"],"meta":{"line":250,"file":"Channel.js","path":"src/structures"}},{"name":"APIPresence","see":["{@link https://discord.com/developers/docs/rich-presence/how-to#updating-presence-update-presence-payload-fields}"],"meta":{"line":74,"file":"ClientPresence.js","path":"src/structures"}},{"name":"APIEmoji","see":["{@link https://discord.com/developers/docs/resources/emoji#emoji-object}"],"meta":{"line":145,"file":"Emoji.js","path":"src/structures"}},{"name":"APIGuild","see":["{@link https://discord.com/developers/docs/resources/guild#guild-object}"],"meta":{"line":1581,"file":"Guild.js","path":"src/structures"}},{"name":"APIGuildMember","see":["{@link https://discord.com/developers/docs/resources/guild#guild-member-object}"],"meta":{"line":487,"file":"GuildMember.js","path":"src/structures"}},{"name":"APIMessageComponent","see":["{@link https://discord.com/developers/docs/interactions/message-components#component-object}"],"meta":{"line":100,"file":"MessageActionRow.js","path":"src/structures"}},{"name":"APIAttachment","see":["{@link https://discord.com/developers/docs/resources/channel#attachment-object}"],"meta":{"line":168,"file":"MessageAttachment.js","path":"src/structures"}},{"name":"APIMessageSelectMenu","see":["{@link https://discord.com/developers/docs/interactions/message-components#select-menu-object}"],"meta":{"line":112,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"APIMessageButton","see":["{@link https://discord.com/developers/docs/interactions/message-components#button-object}"],"meta":{"line":117,"file":"MessageComponentInteraction.js","path":"src/structures"}},{"name":"APIEmbed","see":["{@link https://discord.com/developers/docs/resources/channel#embed-object}"],"meta":{"line":572,"file":"MessageEmbed.js","path":"src/structures"}},{"name":"APIMessage","see":["{@link https://discord.com/developers/docs/resources/channel#message-object}"],"meta":{"line":316,"file":"MessagePayload.js","path":"src/structures"}},{"name":"APIRole","see":["{@link https://discord.com/developers/docs/topics/permissions#role-object}"],"meta":{"line":496,"file":"Role.js","path":"src/structures"}},{"name":"APISticker","see":["{@link https://discord.com/developers/docs/resources/sticker#sticker-object}"],"meta":{"line":306,"file":"Sticker.js","path":"src/structures"}},{"name":"APIUser","see":["{@link https://discord.com/developers/docs/resources/user#user-object}"],"meta":{"line":478,"file":"User.js","path":"src/structures"}},{"name":"Stream","see":["{@link https://nodejs.org/api/stream.html}"],"meta":{"line":99,"file":"DataResolver.js","path":"src/util"}}]}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 151e7930..17c3e0de 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "discord.js-selfbot-v13",
- "version": "1.4.31",
+ "version": "2.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "discord.js-selfbot-v13",
- "version": "1.4.31",
+ "version": "2.0.0",
"license": "GNU General Public License v3.0",
"dependencies": {
"@discordjs/builders": "^0.13.0",
@@ -21,21 +21,21 @@
"bufferutil": "^4.0.6",
"chalk": "^4.1.2",
"discord-api-types": "^0.32.0",
- "discord-bettermarkdown": "^1.1.0",
+ "discord-bettermarkdown": "^1.2.0",
"discord-rpc-contructor": "^1.1.5",
- "discord.js": "^13.6.0",
+ "discord.js": "^13.7.0",
"form-data": "^4.0.0",
"i": "^0.3.7",
"json-bigint": "^1.0.0",
"lodash": "^4.17.21",
"lodash.snakecase": "^4.1.1",
"node-fetch": "^2.6.1",
- "npm": "^8.8.0",
+ "npm": "^8.10.0",
"qrcode-terminal": "^0.12.0",
"safe-base64": "^2.0.1-0",
"string_decoder": "^1.3.0",
"string-similarity": "^4.0.4",
- "undici": "^5.1.1",
+ "undici": "^5.2.0",
"utf-8-validate": "^5.0.9",
"ws": "^8.5.0"
},
@@ -47,13 +47,13 @@
"@types/node": "^16.11.12",
"conventional-changelog-cli": "^2.2.2",
"dtslint": "^4.2.1",
- "eslint": "^8.5.0",
+ "eslint": "^8.15.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-prettier": "^4.0.0",
"husky": "^7.0.4",
"is-ci": "^3.0.1",
- "jest": "^28.0.1",
+ "jest": "^28.1.0",
"lint-staged": "^12.1.4",
"prettier": "^2.5.1",
"tsd": "^0.20.0",
@@ -4436,57 +4436,29 @@
}
},
"node_modules/discord.js": {
- "version": "13.6.0",
- "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz",
- "integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==",
- "dependencies": {
- "@discordjs/builders": "^0.11.0",
- "@discordjs/collection": "^0.4.0",
- "@sapphire/async-queue": "^1.1.9",
- "@types/node-fetch": "^2.5.12",
- "@types/ws": "^8.2.2",
- "discord-api-types": "^0.26.0",
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz",
+ "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==",
+ "dependencies": {
+ "@discordjs/builders": "^0.13.0",
+ "@discordjs/collection": "^0.6.0",
+ "@sapphire/async-queue": "^1.3.1",
+ "@types/node-fetch": "^2.6.1",
+ "@types/ws": "^8.5.3",
+ "discord-api-types": "^0.30.0",
"form-data": "^4.0.0",
"node-fetch": "^2.6.1",
- "ws": "^8.4.0"
+ "ws": "^8.6.0"
},
"engines": {
"node": ">=16.6.0",
"npm": ">=7.0.0"
}
},
- "node_modules/discord.js/node_modules/@discordjs/builders": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz",
- "integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==",
- "dependencies": {
- "@sindresorhus/is": "^4.2.0",
- "discord-api-types": "^0.26.0",
- "ts-mixer": "^6.0.0",
- "tslib": "^2.3.1",
- "zod": "^3.11.6"
- },
- "engines": {
- "node": ">=16.0.0",
- "npm": ">=7.0.0"
- }
- },
- "node_modules/discord.js/node_modules/@discordjs/collection": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz",
- "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==",
- "engines": {
- "node": ">=16.0.0",
- "npm": ">=7.0.0"
- }
- },
"node_modules/discord.js/node_modules/discord-api-types": {
- "version": "0.26.1",
- "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz",
- "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==",
- "engines": {
- "node": ">=12"
- }
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz",
+ "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw=="
},
"node_modules/dmd": {
"version": "4.0.6",
@@ -9317,9 +9289,9 @@
}
},
"node_modules/npm": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/npm/-/npm-8.9.0.tgz",
- "integrity": "sha512-4mhU5nEv7ktvHmJnM2nmWP2Zk4cCsD26imX+dvZ76HOuFUnIpU6+i1MWuoMg8N/xWHQgB0d2/ybWEGgJR9M/pw==",
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-8.10.0.tgz",
+ "integrity": "sha512-6oo65q9Quv9mRPGZJufmSH+C/UFdgelwzRXiglT/2mDB50zdy/lZK5dFY0TJ9fJ/8gHqnxcX1NM206KLjTBMlQ==",
"bundleDependencies": [
"@isaacs/string-locale-compare",
"@npmcli/arborist",
@@ -9428,7 +9400,7 @@
"libnpmsearch": "^5.0.2",
"libnpmteam": "^4.0.2",
"libnpmversion": "^3.0.1",
- "make-fetch-happen": "^10.1.2",
+ "make-fetch-happen": "^10.1.3",
"minipass": "^3.1.6",
"minipass-pipeline": "^1.2.4",
"mkdirp": "^1.0.4",
@@ -9550,7 +9522,7 @@
"license": "ISC"
},
"node_modules/npm/node_modules/@npmcli/arborist": {
- "version": "5.1.1",
+ "version": "5.2.0",
"inBundle": true,
"license": "ISC",
"dependencies": {
@@ -9904,7 +9876,7 @@
}
},
"node_modules/npm/node_modules/builtins": {
- "version": "5.0.0",
+ "version": "5.0.1",
"inBundle": true,
"license": "MIT",
"dependencies": {
@@ -10293,7 +10265,7 @@
}
},
"node_modules/npm/node_modules/https-proxy-agent": {
- "version": "5.0.0",
+ "version": "5.0.1",
"inBundle": true,
"license": "MIT",
"dependencies": {
@@ -10396,7 +10368,7 @@
}
},
"node_modules/npm/node_modules/ip": {
- "version": "1.1.5",
+ "version": "1.1.8",
"inBundle": true,
"license": "MIT"
},
@@ -10420,7 +10392,7 @@
}
},
"node_modules/npm/node_modules/is-core-module": {
- "version": "2.8.1",
+ "version": "2.9.0",
"inBundle": true,
"license": "MIT",
"dependencies": {
@@ -10470,7 +10442,7 @@
"license": "MIT"
},
"node_modules/npm/node_modules/just-diff": {
- "version": "5.0.1",
+ "version": "5.0.2",
"inBundle": true,
"license": "MIT"
},
@@ -10635,7 +10607,7 @@
}
},
"node_modules/npm/node_modules/lru-cache": {
- "version": "7.8.1",
+ "version": "7.9.0",
"inBundle": true,
"license": "ISC",
"engines": {
@@ -10643,7 +10615,7 @@
}
},
"node_modules/npm/node_modules/make-fetch-happen": {
- "version": "10.1.2",
+ "version": "10.1.3",
"inBundle": true,
"license": "ISC",
"dependencies": {
@@ -10952,7 +10924,7 @@
}
},
"node_modules/npm/node_modules/npm-packlist": {
- "version": "5.0.2",
+ "version": "5.0.3",
"inBundle": true,
"license": "ISC",
"dependencies": {
@@ -11384,13 +11356,13 @@
}
},
"node_modules/npm/node_modules/socks-proxy-agent": {
- "version": "6.1.1",
+ "version": "6.2.0",
"inBundle": true,
"license": "MIT",
"dependencies": {
"agent-base": "^6.0.2",
- "debug": "^4.3.1",
- "socks": "^2.6.1"
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
},
"engines": {
"node": ">= 10"
@@ -14191,9 +14163,9 @@
"dev": true
},
"node_modules/undici": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.1.1.tgz",
- "integrity": "sha512-CmK9JzLSMGx+2msOao8LhkKn3J7eKo2M50v0KZQ2XbiHcGqLS1HiIj01ceIm3jbUYlspw/FTSb6nMdSNyvVyaQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.2.0.tgz",
+ "integrity": "sha512-XY6+NS3WH9b3TKOHeNz2CjR+qrVz/k4fO9g3etPpLozRvULoQmZ1+dk9JbIz40ehn27xzFk4jYVU2MU3Nle62A==",
"engines": {
"node": ">=12.18"
}
@@ -14690,14 +14662,6 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
- },
- "node_modules/zod": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.14.2.tgz",
- "integrity": "sha512-iF+wrtzz7fQfkmn60PG6XFxaWBhYYKzp2i+nv24WbLUWb2JjymdkHlzBwP0erpc78WotwP5g9AAu7Sk8GWVVNw==",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
}
},
"dependencies": {
@@ -18144,42 +18108,25 @@
}
},
"discord.js": {
- "version": "13.6.0",
- "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz",
- "integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==",
- "requires": {
- "@discordjs/builders": "^0.11.0",
- "@discordjs/collection": "^0.4.0",
- "@sapphire/async-queue": "^1.1.9",
- "@types/node-fetch": "^2.5.12",
- "@types/ws": "^8.2.2",
- "discord-api-types": "^0.26.0",
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz",
+ "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==",
+ "requires": {
+ "@discordjs/builders": "^0.13.0",
+ "@discordjs/collection": "^0.6.0",
+ "@sapphire/async-queue": "^1.3.1",
+ "@types/node-fetch": "^2.6.1",
+ "@types/ws": "^8.5.3",
+ "discord-api-types": "^0.30.0",
"form-data": "^4.0.0",
"node-fetch": "^2.6.1",
- "ws": "^8.4.0"
+ "ws": "^8.6.0"
},
"dependencies": {
- "@discordjs/builders": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz",
- "integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==",
- "requires": {
- "@sindresorhus/is": "^4.2.0",
- "discord-api-types": "^0.26.0",
- "ts-mixer": "^6.0.0",
- "tslib": "^2.3.1",
- "zod": "^3.11.6"
- }
- },
- "@discordjs/collection": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz",
- "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw=="
- },
"discord-api-types": {
- "version": "0.26.1",
- "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz",
- "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ=="
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz",
+ "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw=="
}
}
},
@@ -21881,9 +21828,9 @@
"dev": true
},
"npm": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/npm/-/npm-8.9.0.tgz",
- "integrity": "sha512-4mhU5nEv7ktvHmJnM2nmWP2Zk4cCsD26imX+dvZ76HOuFUnIpU6+i1MWuoMg8N/xWHQgB0d2/ybWEGgJR9M/pw==",
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-8.10.0.tgz",
+ "integrity": "sha512-6oo65q9Quv9mRPGZJufmSH+C/UFdgelwzRXiglT/2mDB50zdy/lZK5dFY0TJ9fJ/8gHqnxcX1NM206KLjTBMlQ==",
"requires": {
"@isaacs/string-locale-compare": "^1.1.0",
"@npmcli/arborist": "^5.0.4",
@@ -21920,7 +21867,7 @@
"libnpmsearch": "^5.0.2",
"libnpmteam": "^4.0.2",
"libnpmversion": "^3.0.1",
- "make-fetch-happen": "^10.1.2",
+ "make-fetch-happen": "^10.1.3",
"minipass": "^3.1.6",
"minipass-pipeline": "^1.2.4",
"mkdirp": "^1.0.4",
@@ -21971,7 +21918,7 @@
"bundled": true
},
"@npmcli/arborist": {
- "version": "5.1.1",
+ "version": "5.2.0",
"bundled": true,
"requires": {
"@isaacs/string-locale-compare": "^1.1.0",
@@ -22217,7 +22164,7 @@
}
},
"builtins": {
- "version": "5.0.0",
+ "version": "5.0.1",
"bundled": true,
"requires": {
"semver": "^7.0.0"
@@ -22481,7 +22428,7 @@
}
},
"https-proxy-agent": {
- "version": "5.0.0",
+ "version": "5.0.1",
"bundled": true,
"requires": {
"agent-base": "6",
@@ -22552,7 +22499,7 @@
}
},
"ip": {
- "version": "1.1.5",
+ "version": "1.1.8",
"bundled": true
},
"ip-regex": {
@@ -22567,7 +22514,7 @@
}
},
"is-core-module": {
- "version": "2.8.1",
+ "version": "2.9.0",
"bundled": true,
"requires": {
"has": "^1.0.3"
@@ -22598,7 +22545,7 @@
"bundled": true
},
"just-diff": {
- "version": "5.0.1",
+ "version": "5.0.2",
"bundled": true
},
"just-diff-apply": {
@@ -22717,11 +22664,11 @@
}
},
"lru-cache": {
- "version": "7.8.1",
+ "version": "7.9.0",
"bundled": true
},
"make-fetch-happen": {
- "version": "10.1.2",
+ "version": "10.1.3",
"bundled": true,
"requires": {
"agentkeepalive": "^4.2.1",
@@ -22932,7 +22879,7 @@
}
},
"npm-packlist": {
- "version": "5.0.2",
+ "version": "5.0.3",
"bundled": true,
"requires": {
"glob": "^8.0.1",
@@ -23213,12 +23160,12 @@
}
},
"socks-proxy-agent": {
- "version": "6.1.1",
+ "version": "6.2.0",
"bundled": true,
"requires": {
"agent-base": "^6.0.2",
- "debug": "^4.3.1",
- "socks": "^2.6.1"
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
}
},
"spdx-correct": {
@@ -25367,9 +25314,9 @@
"dev": true
},
"undici": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.1.1.tgz",
- "integrity": "sha512-CmK9JzLSMGx+2msOao8LhkKn3J7eKo2M50v0KZQ2XbiHcGqLS1HiIj01ceIm3jbUYlspw/FTSb6nMdSNyvVyaQ=="
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.2.0.tgz",
+ "integrity": "sha512-XY6+NS3WH9b3TKOHeNz2CjR+qrVz/k4fO9g3etPpLozRvULoQmZ1+dk9JbIz40ehn27xzFk4jYVU2MU3Nle62A=="
},
"unique-filename": {
"version": "1.1.1",
@@ -25762,11 +25709,6 @@
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true
- },
- "zod": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.14.2.tgz",
- "integrity": "sha512-iF+wrtzz7fQfkmn60PG6XFxaWBhYYKzp2i+nv24WbLUWb2JjymdkHlzBwP0erpc78WotwP5g9AAu7Sk8GWVVNw=="
}
}
}
diff --git a/package.json b/package.json
index bcff5e45..8fa5f865 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,12 @@
{
"name": "discord.js-selfbot-v13",
- "version": "1.4.31",
+ "version": "2.0.0",
"description": "A unofficial discord.js fork for creating selfbots [Based on discord.js v13]",
"main": "./src/index.js",
"types": "./typings/index.d.ts",
"scripts": {
"test": "npm run lint:all && npm run lint:typings && npm run docs:test",
+ "fix:all": "npm run lint:fix && npm run lint:typings:fix && npm run format",
"test:typescript": "tsc --noEmit && tsd",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
@@ -62,21 +63,21 @@
"bufferutil": "^4.0.6",
"chalk": "^4.1.2",
"discord-api-types": "^0.32.0",
- "discord-bettermarkdown": "^1.1.0",
+ "discord-bettermarkdown": "^1.2.0",
"discord-rpc-contructor": "^1.1.5",
- "discord.js": "^13.6.0",
+ "discord.js": "^13.7.0",
"form-data": "^4.0.0",
"i": "^0.3.7",
"json-bigint": "^1.0.0",
"lodash": "^4.17.21",
"lodash.snakecase": "^4.1.1",
"node-fetch": "^2.6.1",
- "npm": "^8.8.0",
+ "npm": "^8.10.0",
"qrcode-terminal": "^0.12.0",
"safe-base64": "^2.0.1-0",
"string_decoder": "^1.3.0",
"string-similarity": "^4.0.4",
- "undici": "^5.1.1",
+ "undici": "^5.2.0",
"utf-8-validate": "^5.0.9",
"ws": "^8.5.0"
},
@@ -92,13 +93,13 @@
"@types/node": "^16.11.12",
"conventional-changelog-cli": "^2.2.2",
"dtslint": "^4.2.1",
- "eslint": "^8.5.0",
+ "eslint": "^8.15.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-prettier": "^4.0.0",
"husky": "^7.0.4",
"is-ci": "^3.0.1",
- "jest": "^28.0.1",
+ "jest": "^28.1.0",
"lint-staged": "^12.1.4",
"prettier": "^2.5.1",
"tsd": "^0.20.0",
diff --git a/src/client/actions/InteractionCreate.js b/src/client/actions/InteractionCreate.js
index 1a0484fa..c3c69244 100644
--- a/src/client/actions/InteractionCreate.js
+++ b/src/client/actions/InteractionCreate.js
@@ -6,6 +6,7 @@ const AutocompleteInteraction = require('../../structures/AutocompleteInteractio
const ButtonInteraction = require('../../structures/ButtonInteraction');
const CommandInteraction = require('../../structures/CommandInteraction');
const MessageContextMenuInteraction = require('../../structures/MessageContextMenuInteraction');
+const ModalSubmitInteraction = require('../../structures/ModalSubmitInteraction');
const SelectMenuInteraction = require('../../structures/SelectMenuInteraction');
const UserContextMenuInteraction = require('../../structures/UserContextMenuInteraction');
const { Events, InteractionTypes, MessageComponentTypes, ApplicationCommandTypes } = require('../../util/Constants');
@@ -17,8 +18,8 @@ class InteractionCreateAction extends Action {
const client = this.client;
// Resolve and cache partial channels for Interaction#channel getter
- this.getChannel(data);
-
+ const channel = this.getChannel(data);
+ // Do not emit this for interactions that cache messages that are non-text-based.
let InteractionType;
switch (data.type) {
case InteractionTypes.APPLICATION_COMMAND:
@@ -41,6 +42,7 @@ class InteractionCreateAction extends Action {
}
break;
case InteractionTypes.MESSAGE_COMPONENT:
+ if (channel && !channel.isText()) return;
switch (data.data.component_type) {
case MessageComponentTypes.BUTTON:
InteractionType = ButtonInteraction;
@@ -59,6 +61,9 @@ class InteractionCreateAction extends Action {
case InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE:
InteractionType = AutocompleteInteraction;
break;
+ case InteractionTypes.MODAL_SUBMIT:
+ InteractionType = ModalSubmitInteraction;
+ break;
default:
client.emit(
Events.DEBUG,
diff --git a/src/client/actions/ThreadCreate.js b/src/client/actions/ThreadCreate.js
index f7c36e67..d2d58599 100644
--- a/src/client/actions/ThreadCreate.js
+++ b/src/client/actions/ThreadCreate.js
@@ -13,8 +13,9 @@ class ThreadCreateAction extends Action {
* Emitted whenever a thread is created or when the client user is added to a thread.
* @event Client#threadCreate
* @param {ThreadChannel} thread The thread that was created
+ * @param {boolean} newlyCreated Whether the thread was newly created
*/
- client.emit(Events.THREAD_CREATE, thread);
+ client.emit(Events.THREAD_CREATE, thread, data.newly_created ?? false);
}
return { thread };
}
diff --git a/src/errors/Messages.js b/src/errors/Messages.js
index a8b45ae0..cead85fc 100644
--- a/src/errors/Messages.js
+++ b/src/errors/Messages.js
@@ -171,6 +171,18 @@ const Messages = {
MESSAGE_EMBED_LINK_LENGTH: 'Message content with embed link length is too long',
GUILD_MEMBERS_FETCH: msg => `${msg}`,
USER_NOT_STREAMING: 'User is not streaming',
+ // Djs v13.7
+ TEXT_INPUT_CUSTOM_ID: 'TextInputComponent customId must be a string',
+ TEXT_INPUT_LABEL: 'TextInputComponent label must be a string',
+ TEXT_INPUT_PLACEHOLDER: 'TextInputComponent placeholder must be a string',
+ TEXT_INPUT_VALUE: 'TextInputComponent value must be a string',
+
+ MODAL_CUSTOM_ID: 'Modal customId must be a string',
+ MODAL_TITLE: 'Modal title must be a string',
+
+ MODAL_SUBMIT_INTERACTION_FIELD_NOT_FOUND: customId => `Required field with custom id "${customId}" not found.`,
+ MODAL_SUBMIT_INTERACTION_FIELD_TYPE: (customId, type, expected) =>
+ `Field with custom id "${customId}" is of type: ${type}; expected ${expected}.`,
};
for (const [name, message] of Object.entries(Messages)) register(name, message);
diff --git a/src/index.js b/src/index.js
index 18e1e340..68ea250b 100644
--- a/src/index.js
+++ b/src/index.js
@@ -124,6 +124,8 @@ exports.MessageMentions = require('./structures/MessageMentions');
exports.MessagePayload = require('./structures/MessagePayload');
exports.MessageReaction = require('./structures/MessageReaction');
exports.MessageSelectMenu = require('./structures/MessageSelectMenu');
+exports.Modal = require('./structures/Modal');
+exports.ModalSubmitInteraction = require('./structures/ModalSubmitInteraction');
exports.NewsChannel = require('./structures/NewsChannel');
exports.OAuth2Guild = require('./structures/OAuth2Guild');
exports.PartialGroupDMChannel = require('./structures/PartialGroupDMChannel');
@@ -142,6 +144,7 @@ exports.StoreChannel = require('./structures/StoreChannel');
exports.Team = require('./structures/Team');
exports.TeamMember = require('./structures/TeamMember');
exports.TextChannel = require('./structures/TextChannel');
+exports.TextInputComponent = require('./structures/TextInputComponent');
exports.ThreadChannel = require('./structures/ThreadChannel');
exports.ThreadMember = require('./structures/ThreadMember');
exports.Typing = require('./structures/Typing');
diff --git a/src/managers/ApplicationCommandManager.js b/src/managers/ApplicationCommandManager.js
index a3f008bf..e1aacfc3 100644
--- a/src/managers/ApplicationCommandManager.js
+++ b/src/managers/ApplicationCommandManager.js
@@ -65,6 +65,8 @@ class ApplicationCommandManager extends CachedManager {
* Options used to fetch Application Commands from Discord
* @typedef {BaseFetchOptions} FetchApplicationCommandOptions
* @property {Snowflake} [guildId] The guild's id to fetch commands for, for when the guild is not cached
+ * @property {LocaleString} [locale] The locale to use when fetching this command
+ * @property {boolean} [withLocalizations] Whether to fetch all localization data
*/
/**
@@ -83,10 +85,10 @@ class ApplicationCommandManager extends CachedManager {
* .then(commands => console.log(`Fetched ${commands.size} commands`))
* .catch(console.error);
*/
- async fetch(id, { guildId, cache = true, force = false } = {}) {
+ async fetch(id, { guildId, cache = true, force = false, locale, withLocalizations } = {}) {
// Change from user.createDM to opcode (risky action)
if (typeof id === 'object') {
- ({ guildId, cache = true } = id);
+ ({ guildId, cache = true, locale, withLocalizations } = id);
} else if (id) {
if (!force) {
const existing = this.cache.get(id);
@@ -97,7 +99,15 @@ class ApplicationCommandManager extends CachedManager {
return this._add(command, cache);
}
await this.user.createDM().catch(() => {});
- const data = await this.commandPath({ guildId }).get();
+ const data = await this.commandPath({ guildId }).get({
+ headers: {
+ 'X-Discord-Locale': locale,
+ },
+ query:
+ typeof withLocalizations === 'boolean'
+ ? new URLSearchParams({ with_localizations: withLocalizations })
+ : undefined,
+ });
return data.reduce((coll, command) => coll.set(command.id, this._add(command, cache, guildId)), new Collection());
}
@@ -213,7 +223,9 @@ class ApplicationCommandManager extends CachedManager {
static transformCommand(command) {
return {
name: command.name,
+ name_localizations: command.nameLocalizations ?? command.name_localizations,
description: command.description,
+ description_localizations: command.descriptionLocalizations ?? command.description_localizations,
type: typeof command.type === 'number' ? command.type : ApplicationCommandTypes[command.type],
options: command.options?.map(o => ApplicationCommand.transformOption(o)),
default_permission: command.defaultPermission ?? command.default_permission,
diff --git a/src/managers/GuildBanManager.js b/src/managers/GuildBanManager.js
index e7039b33..e67fd435 100644
--- a/src/managers/GuildBanManager.js
+++ b/src/managers/GuildBanManager.js
@@ -54,9 +54,12 @@ class GuildBanManager extends CachedManager {
*/
/**
- * Options used to fetch all bans from a guild.
+ * Options used to fetch multiple bans from a guild.
* @typedef {Object} FetchBansOptions
- * @property {boolean} cache Whether or not to cache the fetched bans
+ * @property {number} [limit] The maximum number of bans to return
+ * @property {Snowflake} [before] Consider only bans before this id
+ * @property {Snowflake} [after] Consider only bans after this id
+ * @property {boolean} [cache] Whether to cache the fetched bans
*/
/**
@@ -64,13 +67,13 @@ class GuildBanManager extends CachedManager {
* @param {UserResolvable|FetchBanOptions|FetchBansOptions} [options] Options for fetching guild ban(s)
* @returns {Promise>}
* @example
- * // Fetch all bans from a guild
+ * // Fetch multiple bans from a guild
* guild.bans.fetch()
* .then(console.log)
* .catch(console.error);
* @example
- * // Fetch all bans from a guild without caching
- * guild.bans.fetch({ cache: false })
+ * // Fetch a maximum of 5 bans from a guild without caching
+ * guild.bans.fetch({ limit: 5, cache: false })
* .then(console.log)
* .catch(console.error);
* @example
@@ -91,14 +94,15 @@ class GuildBanManager extends CachedManager {
*/
fetch(options) {
if (!options) return this._fetchMany();
- const user = this.client.users.resolveId(options);
- if (user) return this._fetchSingle({ user, cache: true });
- options.user &&= this.client.users.resolveId(options.user);
- if (!options.user) {
- if ('cache' in options) return this._fetchMany(options.cache);
+ const { user, cache, force, limit, before, after } = options;
+ const resolvedUser = this.client.users.resolveId(user ?? options);
+ if (resolvedUser) return this._fetchSingle({ user: resolvedUser, cache, force });
+
+ if (!before && !after && !limit && typeof cache === 'undefined') {
return Promise.reject(new Error('FETCH_BAN_RESOLVE_ID'));
}
- return this._fetchSingle(options);
+
+ return this._fetchMany(options);
}
async _fetchSingle({ user, cache, force = false }) {
@@ -111,11 +115,13 @@ class GuildBanManager extends CachedManager {
return this._add(data, cache);
}
- async _fetchMany(cache) {
- const data = await this.client.api.guilds(this.guild.id).bans.get();
- return data.reduce((col, ban) => col.set(ban.user.id, this._add(ban, cache)), new Collection());
- }
+ async _fetchMany(options = {}) {
+ const data = await this.client.api.guilds(this.guild.id).bans.get({
+ query: options,
+ });
+ return data.reduce((col, ban) => col.set(ban.user.id, this._add(ban, options.cache)), new Collection());
+ }
/**
* Options used to ban a user from a guild.
* @typedef {Object} BanOptions
diff --git a/src/managers/GuildChannelManager.js b/src/managers/GuildChannelManager.js
index 687816f9..9d4f28f0 100644
--- a/src/managers/GuildChannelManager.js
+++ b/src/managers/GuildChannelManager.js
@@ -4,11 +4,15 @@ const process = require('node:process');
const { Collection } = require('@discordjs/collection');
const CachedManager = require('./CachedManager');
const ThreadManager = require('./ThreadManager');
-const { Error } = require('../errors');
+const { Error, TypeError } = require('../errors');
const GuildChannel = require('../structures/GuildChannel');
const PermissionOverwrites = require('../structures/PermissionOverwrites');
const ThreadChannel = require('../structures/ThreadChannel');
-const { ChannelTypes, ThreadChannelTypes } = require('../util/Constants');
+const Webhook = require('../structures/Webhook');
+const { ThreadChannelTypes, ChannelTypes, VideoQualityModes } = require('../util/Constants');
+const DataResolver = require('../util/DataResolver');
+const Util = require('../util/Util');
+const { resolveAutoArchiveMaxLimit } = require('../util/Util');
let cacheWarningEmitted = false;
let storeChannelDeprecationEmitted = false;
@@ -169,6 +173,153 @@ class GuildChannelManager extends CachedManager {
return this.client.actions.ChannelCreate.handle(data).channel;
}
+ /**
+ * Creates a webhook for the channel.
+ * @param {GuildChannelResolvable} channel The channel to create the webhook for
+ * @param {string} name The name of the webhook
+ * @param {ChannelWebhookCreateOptions} [options] Options for creating the webhook
+ * @returns {Promise} Returns the created Webhook
+ * @example
+ * // Create a webhook for the current channel
+ * guild.channels.createWebhook('222197033908436994', 'Snek', {
+ * avatar: 'https://i.imgur.com/mI8XcpG.jpg',
+ * reason: 'Needed a cool new Webhook'
+ * })
+ * .then(console.log)
+ * .catch(console.error)
+ */
+ async createWebhook(channel, name, { avatar, reason } = {}) {
+ const id = this.resolveId(channel);
+ if (!id) throw new TypeError('INVALID_TYPE', 'channel', 'GuildChannelResolvable');
+ if (typeof avatar === 'string' && !avatar.startsWith('data:')) {
+ avatar = await DataResolver.resolveImage(avatar);
+ }
+ const data = await this.client.api.channels[id].webhooks.post({
+ data: {
+ name,
+ avatar,
+ },
+ reason,
+ });
+ return new Webhook(this.client, data);
+ }
+
+ /**
+ * The data for a guild channel.
+ * @typedef {Object} ChannelData
+ * @property {string} [name] The name of the channel
+ * @property {ChannelType} [type] The type of the channel (only conversion between text and news is supported)
+ * @property {number} [position] The position of the channel
+ * @property {string} [topic] The topic of the text channel
+ * @property {boolean} [nsfw] Whether the channel is NSFW
+ * @property {number} [bitrate] The bitrate of the voice channel
+ * @property {number} [userLimit] The user limit of the voice channel
+ * @property {?CategoryChannelResolvable} [parent] The parent of the channel
+ * @property {boolean} [lockPermissions]
+ * Lock the permissions of the channel to what the parent's permissions are
+ * @property {OverwriteResolvable[]|Collection} [permissionOverwrites]
+ * Permission overwrites for the channel
+ * @property {number} [rateLimitPerUser] The rate limit per user (slowmode) for the channel in seconds
+ * @property {ThreadAutoArchiveDuration} [defaultAutoArchiveDuration]
+ * The default auto archive duration for all new threads in this channel
+ * @property {?string} [rtcRegion] The RTC region of the channel
+ * @property {?VideoQualityMode|number} [videoQualityMode] The camera video quality mode of the channel
+ */
+
+ /**
+ * Edits the channel.
+ * @param {GuildChannelResolvable} channel The channel to edit
+ * @param {ChannelData} data The new data for the channel
+ * @param {string} [reason] Reason for editing this channel
+ * @returns {Promise}
+ * @example
+ * // Edit a channel
+ * guild.channels.edit('222197033908436994', { name: 'new-channel' })
+ * .then(console.log)
+ * .catch(console.error);
+ */
+ async edit(channel, data, reason) {
+ channel = this.resolve(channel);
+ if (!channel) throw new TypeError('INVALID_TYPE', 'channel', 'GuildChannelResolvable');
+
+ const parent = data.parent && this.client.channels.resolveId(data.parent);
+
+ if (typeof data.position !== 'undefined') await this.setPosition(channel, data.position, { reason });
+
+ let permission_overwrites = data.permissionOverwrites?.map(o => PermissionOverwrites.resolve(o, this.guild));
+
+ if (data.lockPermissions) {
+ if (parent) {
+ const newParent = this.guild.channels.resolve(parent);
+ if (newParent?.type === 'GUILD_CATEGORY') {
+ permission_overwrites = newParent.permissionOverwrites.cache.map(o =>
+ PermissionOverwrites.resolve(o, this.guild),
+ );
+ }
+ } else if (channel.parent) {
+ permission_overwrites = this.parent.permissionOverwrites.cache.map(o =>
+ PermissionOverwrites.resolve(o, this.guild),
+ );
+ }
+ }
+
+ let defaultAutoArchiveDuration = data.defaultAutoArchiveDuration;
+ if (defaultAutoArchiveDuration === 'MAX') defaultAutoArchiveDuration = resolveAutoArchiveMaxLimit(this.guild);
+
+ const newData = await this.client.api.channels(channel.id).patch({
+ data: {
+ name: (data.name ?? channel.name).trim(),
+ type: data.type,
+ topic: data.topic,
+ nsfw: data.nsfw,
+ bitrate: data.bitrate ?? channel.bitrate,
+ user_limit: data.userLimit ?? channel.userLimit,
+ rtc_region: data.rtcRegion ?? channel.rtcRegion,
+ video_quality_mode:
+ typeof data.videoQualityMode === 'string' ? VideoQualityModes[data.videoQualityMode] : data.videoQualityMode,
+ parent_id: parent,
+ lock_permissions: data.lockPermissions,
+ rate_limit_per_user: data.rateLimitPerUser,
+ default_auto_archive_duration: defaultAutoArchiveDuration,
+ permission_overwrites,
+ },
+ reason,
+ });
+
+ return this.client.actions.ChannelUpdate.handle(newData).updated;
+ }
+
+ /**
+ * Sets a new position for the guild channel.
+ * @param {GuildChannelResolvable} channel The channel to set the position for
+ * @param {number} position The new position for the guild channel
+ * @param {SetChannelPositionOptions} [options] Options for setting position
+ * @returns {Promise}
+ * @example
+ * // Set a new channel position
+ * guild.channels.setPosition('222078374472843266', 2)
+ * .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))
+ * .catch(console.error);
+ */
+ async setPosition(channel, position, { relative, reason } = {}) {
+ channel = this.resolve(channel);
+ if (!channel) throw new TypeError('INVALID_TYPE', 'channel', 'GuildChannelResolvable');
+ const updatedChannels = await Util.setPosition(
+ channel,
+ position,
+ relative,
+ this.guild._sortedChannels(this),
+ this.client.api.guilds(this.guild.id).channels,
+ reason,
+ );
+
+ this.client.actions.GuildChannelsPositionUpdate.handle({
+ guild_id: this.guild.id,
+ channels: updatedChannels,
+ });
+ return channel;
+ }
+
/**
* Obtains one or more guild channels from Discord, or the channel cache if they're already available.
* @param {Snowflake} [id] The channel's id
@@ -204,6 +355,39 @@ class GuildChannelManager extends CachedManager {
return channels;
}
+ /**
+ * Fetches all webhooks for the channel.
+ * @param {GuildChannelResolvable} channel The channel to fetch webhooks for
+ * @returns {Promise>}
+ * @example
+ * // Fetch webhooks
+ * guild.channels.fetchWebhooks('769862166131245066')
+ * .then(hooks => console.log(`This channel has ${hooks.size} hooks`))
+ * .catch(console.error);
+ */
+ async fetchWebhooks(channel) {
+ const id = this.resolveId(channel);
+ if (!id) throw new TypeError('INVALID_TYPE', 'channel', 'GuildChannelResolvable');
+ const data = await this.client.api.channels[id].webhooks.get();
+ return data.reduce((hooks, hook) => hooks.set(hook.id, new Webhook(this.client, hook)), new Collection());
+ }
+
+ /**
+ * Data that can be resolved to give a Category Channel object. This can be:
+ * * A CategoryChannel object
+ * * A Snowflake
+ * @typedef {CategoryChannel|Snowflake} CategoryChannelResolvable
+ */
+
+ /**
+ * The data needed for updating a channel's position.
+ * @typedef {Object} ChannelPosition
+ * @property {GuildChannel|Snowflake} channel Channel to update
+ * @property {number} [position] New position for the channel
+ * @property {CategoryChannelResolvable} [parent] Parent channel for this channel
+ * @property {boolean} [lockPermissions] If the overwrites should be locked to the parents overwrites
+ */
+
/**
* Batch-updates the guild's channels' positions.
* Only one channel's parent can be changed at a time
@@ -243,6 +427,23 @@ class GuildChannelManager extends CachedManager {
const raw = await this.client.api.guilds(this.guild.id).threads.active.get();
return ThreadManager._mapThreads(raw, this.client, { guild: this.guild, cache });
}
+
+ /**
+ * Deletes the channel.
+ * @param {GuildChannelResolvable} channel The channel to delete
+ * @param {string} [reason] Reason for deleting this channel
+ * @returns {Promise}
+ * @example
+ * // Delete the channel
+ * guild.channels.delete('858850993013260338', 'making room for new channels')
+ * .then(console.log)
+ * .catch(console.error);
+ */
+ async delete(channel, reason) {
+ const id = this.resolveId(channel);
+ if (!id) throw new TypeError('INVALID_TYPE', 'channel', 'GuildChannelResolvable');
+ await this.client.api.channels(id).delete({ reason });
+ }
}
module.exports = GuildChannelManager;
diff --git a/src/managers/GuildEmojiManager.js b/src/managers/GuildEmojiManager.js
index 58ffa624..74661f28 100644
--- a/src/managers/GuildEmojiManager.js
+++ b/src/managers/GuildEmojiManager.js
@@ -2,8 +2,9 @@
const { Collection } = require('@discordjs/collection');
const BaseGuildEmojiManager = require('./BaseGuildEmojiManager');
-const { TypeError } = require('../errors');
+const { Error, TypeError } = require('../errors');
const DataResolver = require('../util/DataResolver');
+const Permissions = require('../util/Permissions');
/**
* Manages API methods for GuildEmojis and stores their cache.
@@ -100,6 +101,71 @@ class GuildEmojiManager extends BaseGuildEmojiManager {
for (const emoji of data) emojis.set(emoji.id, this._add(emoji, cache));
return emojis;
}
+
+ /**
+ * Deletes an emoji.
+ * @param {EmojiResolvable} emoji The Emoji resolvable to delete
+ * @param {string} [reason] Reason for deleting the emoji
+ * @returns {Promise}
+ */
+ async delete(emoji, reason) {
+ const id = this.resolveId(emoji);
+ if (!id) throw new TypeError('INVALID_TYPE', 'emoji', 'EmojiResolvable', true);
+ await this.client.api.guilds(this.guild.id).emojis(id).delete({ reason });
+ }
+
+ /**
+ * Edits an emoji.
+ * @param {EmojiResolvable} emoji The Emoji resolvable to edit
+ * @param {GuildEmojiEditData} data The new data for the emoji
+ * @param {string} [reason] Reason for editing this emoji
+ * @returns {Promise}
+ */
+ async edit(emoji, data, reason) {
+ const id = this.resolveId(emoji);
+ if (!id) throw new TypeError('INVALID_TYPE', 'emoji', 'EmojiResolvable', true);
+ const roles = data.roles?.map(r => this.guild.roles.resolveId(r));
+ const newData = await this.client.api
+ .guilds(this.guild.id)
+ .emojis(id)
+ .patch({
+ data: {
+ name: data.name,
+ roles,
+ },
+ reason,
+ });
+ const existing = this.cache.get(id);
+ if (existing) {
+ const clone = existing._clone();
+ clone._patch(newData);
+ return clone;
+ }
+ return this._add(newData);
+ }
+
+ /**
+ * Fetches the author for this emoji
+ * @param {EmojiResolvable} emoji The emoji to fetch the author of
+ * @returns {Promise}
+ */
+ async fetchAuthor(emoji) {
+ emoji = this.resolve(emoji);
+ if (!emoji) throw new TypeError('INVALID_TYPE', 'emoji', 'EmojiResolvable', true);
+ if (emoji.managed) {
+ throw new Error('EMOJI_MANAGED');
+ }
+
+ const { me } = this.guild;
+ if (!me) throw new Error('GUILD_UNCACHED_ME');
+ if (!me.permissions.has(Permissions.FLAGS.MANAGE_EMOJIS_AND_STICKERS)) {
+ throw new Error('MISSING_MANAGE_EMOJIS_AND_STICKERS_PERMISSION', this.guild);
+ }
+
+ const data = await this.client.api.guilds(this.guild.id).emojis(emoji.id).get();
+ emoji._patch(data);
+ return emoji.author;
+ }
}
module.exports = GuildEmojiManager;
diff --git a/src/managers/GuildManager.js b/src/managers/GuildManager.js
index ad6c0d05..c859171b 100644
--- a/src/managers/GuildManager.js
+++ b/src/managers/GuildManager.js
@@ -18,6 +18,7 @@ const {
VerificationLevels,
DefaultMessageNotificationLevels,
ExplicitContentFilterLevels,
+ VideoQualityModes,
} = require('../util/Constants');
const DataResolver = require('../util/DataResolver');
const Permissions = require('../util/Permissions');
@@ -94,6 +95,7 @@ class GuildManager extends CachedManager {
* @property {number} [bitrate] The bitrate of the voice channel
* @property {number} [userLimit] The user limit of the channel
* @property {?string} [rtcRegion] The RTC region of the channel
+ * @property {VideoQualityMode|number} [videoQualityMode] The camera video quality mode of the channel
* @property {PartialOverwriteData[]} [permissionOverwrites]
* Overwrites of the channel
* @property {number} [rateLimitPerUser] The rate limit per user (slowmode) of the channel in seconds
@@ -200,6 +202,11 @@ class GuildManager extends CachedManager {
delete channel.rateLimitPerUser;
channel.rtc_region = channel.rtcRegion;
delete channel.rtcRegion;
+ channel.video_quality_mode =
+ typeof channel.videoQualityMode === 'string'
+ ? VideoQualityModes[channel.videoQualityMode]
+ : channel.videoQualityMode;
+ delete channel.videoQualityMode;
if (!channel.permissionOverwrites) continue;
for (const overwrite of channel.permissionOverwrites) {
diff --git a/src/managers/GuildMemberManager.js b/src/managers/GuildMemberManager.js
index 3127e6fb..873d86e2 100644
--- a/src/managers/GuildMemberManager.js
+++ b/src/managers/GuildMemberManager.js
@@ -353,7 +353,7 @@ class GuildMemberManager extends CachedManager {
* @example
* // Kick a user by id (or with a user/guild member object)
* guild.members.kick('84484653687267328')
- * .then(banInfo => console.log(`Kicked ${banInfo.user?.tag ?? banInfo.tag ?? banInfo}`))
+ * .then(kickInfo => console.log(`Kicked ${kickInfo.user?.tag ?? kickInfo.tag ?? kickInfo}`))
* .catch(console.error);
*/
async kick(user, reason) {
@@ -376,7 +376,7 @@ class GuildMemberManager extends CachedManager {
* @example
* // Ban a user by id (or with a user/guild member object)
* guild.members.ban('84484653687267328')
- * .then(kickInfo => console.log(`Banned ${kickInfo.user?.tag ?? kickInfo.tag ?? kickInfo}`))
+ * .then(banInfo => console.log(`Banned ${banInfo.user?.tag ?? banInfo.tag ?? banInfo}`))
* .catch(console.error);
*/
ban(user, options = { days: 0 }) {
@@ -387,7 +387,7 @@ class GuildMemberManager extends CachedManager {
* Unbans a user from the guild. Internally calls the {@link GuildBanManager#remove} method.
* @param {UserResolvable} user The user to unban
* @param {string} [reason] Reason for unbanning user
- * @returns {Promise} The user that was unbanned
+ * @returns {Promise} The user that was unbanned
* @example
* // Unban a user by id (or with a user/guild member object)
* guild.members.unban('84484653687267328')
diff --git a/src/managers/GuildScheduledEventManager.js b/src/managers/GuildScheduledEventManager.js
index 2440ca7e..1259e5ac 100644
--- a/src/managers/GuildScheduledEventManager.js
+++ b/src/managers/GuildScheduledEventManager.js
@@ -5,6 +5,7 @@ const CachedManager = require('./CachedManager');
const { TypeError, Error } = require('../errors');
const { GuildScheduledEvent } = require('../structures/GuildScheduledEvent');
const { PrivacyLevels, GuildScheduledEventEntityTypes, GuildScheduledEventStatuses } = require('../util/Constants');
+const DataResolver = require('../util/DataResolver');
/**
* Manages API methods for GuildScheduledEvents and stores their cache.
@@ -49,6 +50,7 @@ class GuildScheduledEventManager extends CachedManager {
* @property {GuildScheduledEventEntityMetadataOptions} [entityMetadata] The entity metadata of the
* guild scheduled event
* This is required if `entityType` is 'EXTERNAL'
+ * @property {?(BufferResolvable|Base64Resolvable)} [image] The cover image of the guild scheduled event
* @property {string} [reason] The reason for creating the guild scheduled event
*/
@@ -76,6 +78,7 @@ class GuildScheduledEventManager extends CachedManager {
scheduledEndTime,
entityMetadata,
reason,
+ image,
} = options;
if (typeof privacyLevel === 'string') privacyLevel = PrivacyLevels[privacyLevel];
@@ -99,6 +102,7 @@ class GuildScheduledEventManager extends CachedManager {
scheduled_start_time: new Date(scheduledStartTime).toISOString(),
scheduled_end_time: scheduledEndTime ? new Date(scheduledEndTime).toISOString() : scheduledEndTime,
description,
+ image: image && (await DataResolver.resolveImage(image)),
entity_type: entityType,
entity_metadata,
},
@@ -172,6 +176,7 @@ class GuildScheduledEventManager extends CachedManager {
* @property {GuildScheduledEventEntityMetadataOptions} [entityMetadata] The entity metadata of the
* guild scheduled event
* This can be modified only if `entityType` of the `GuildScheduledEvent` to be edited is 'EXTERNAL'
+ * @property {?(BufferResolvable|Base64Resolvable)} [image] The cover image of the guild scheduled event
* @property {string} [reason] The reason for editing the guild scheduled event
*/
@@ -197,6 +202,7 @@ class GuildScheduledEventManager extends CachedManager {
scheduledEndTime,
entityMetadata,
reason,
+ image,
} = options;
if (typeof privacyLevel === 'string') privacyLevel = PrivacyLevels[privacyLevel];
@@ -220,6 +226,7 @@ class GuildScheduledEventManager extends CachedManager {
description,
entity_type: entityType,
status,
+ image: image && (await DataResolver.resolveImage(image)),
entity_metadata,
},
reason,
@@ -268,7 +275,7 @@ class GuildScheduledEventManager extends CachedManager {
const guildScheduledEventId = this.resolveId(guildScheduledEvent);
if (!guildScheduledEventId) throw new Error('GUILD_SCHEDULED_EVENT_RESOLVE');
- const { limit, withMember, before, after } = options;
+ let { limit, withMember, before, after } = options;
const data = await this.client.api.guilds(this.guild.id, 'scheduled-events', guildScheduledEventId).users.get({
query: { limit, with_member: withMember, before, after },
diff --git a/src/managers/GuildStickerManager.js b/src/managers/GuildStickerManager.js
index 68abfb03..4897b027 100644
--- a/src/managers/GuildStickerManager.js
+++ b/src/managers/GuildStickerManager.js
@@ -161,6 +161,19 @@ class GuildStickerManager extends CachedManager {
const data = await this.client.api.guilds(this.guild.id).stickers.get();
return new Collection(data.map(sticker => [sticker.id, this._add(sticker, cache)]));
}
+
+ /**
+ * Fetches the user who uploaded this sticker, if this is a guild sticker.
+ * @param {StickerResolvable} sticker The sticker to fetch the user for
+ * @returns {Promise}
+ */
+ async fetchUser(sticker) {
+ sticker = this.resolve(sticker);
+ if (!sticker) throw new TypeError('INVALID_TYPE', 'sticker', 'StickerResolvable');
+ const data = await this.client.api.guilds(this.guildId).stickers(sticker.id).get();
+ sticker._patch(data);
+ return sticker.user;
+ }
}
module.exports = GuildStickerManager;
diff --git a/src/managers/MessageManager.js b/src/managers/MessageManager.js
index 8f30ae9a..b6d74740 100644
--- a/src/managers/MessageManager.js
+++ b/src/managers/MessageManager.js
@@ -158,25 +158,27 @@ class MessageManager extends CachedManager {
/**
* Pins a message to the channel's pinned messages, even if it's not cached.
* @param {MessageResolvable} message The message to pin
+ * @param {string} [reason] Reason for pinning
* @returns {Promise}
*/
- async pin(message) {
+ async pin(message, reason) {
message = this.resolveId(message);
if (!message) throw new TypeError('INVALID_TYPE', 'message', 'MessageResolvable');
- await this.client.api.channels(this.channel.id).pins(message).put();
+ await this.client.api.channels(this.channel.id).pins(message).put({ reason });
}
/**
* Unpins a message from the channel's pinned messages, even if it's not cached.
* @param {MessageResolvable} message The message to unpin
+ * @param {string} [reason] Reason for unpinning
* @returns {Promise}
*/
- async unpin(message) {
+ async unpin(message, reason) {
message = this.resolveId(message);
if (!message) throw new TypeError('INVALID_TYPE', 'message', 'MessageResolvable');
- await this.client.api.channels(this.channel.id).pins(message).delete();
+ await this.client.api.channels(this.channel.id).pins(message).delete({ reason });
}
/**
diff --git a/src/managers/RoleManager.js b/src/managers/RoleManager.js
index 94f35b4f..f3041b84 100644
--- a/src/managers/RoleManager.js
+++ b/src/managers/RoleManager.js
@@ -7,7 +7,8 @@ const { TypeError } = require('../errors');
const { Role } = require('../structures/Role');
const DataResolver = require('../util/DataResolver');
const Permissions = require('../util/Permissions');
-const { resolveColor, setPosition } = require('../util/Util');
+const { resolveColor } = require('../util/Util');
+const Util = require('../util/Util');
let cacheWarningEmitted = false;
@@ -159,7 +160,7 @@ class RoleManager extends CachedManager {
guild_id: this.guild.id,
role: data,
});
- if (position) return role.setPosition(position, reason);
+ if (position) return this.setPosition(role, position, { reason });
return role;
}
@@ -179,21 +180,7 @@ class RoleManager extends CachedManager {
role = this.resolve(role);
if (!role) throw new TypeError('INVALID_TYPE', 'role', 'RoleResolvable');
- if (typeof data.position === 'number') {
- const updatedRoles = await setPosition(
- role,
- data.position,
- false,
- this.guild._sortedRoles(),
- this.client.api.guilds(this.guild.id).roles,
- reason,
- );
-
- this.client.actions.GuildRolesPositionUpdate.handle({
- guild_id: this.guild.id,
- roles: updatedRoles,
- });
- }
+ if (typeof data.position === 'number') await this.setPosition(role, data.position, { reason });
let icon = data.icon;
if (icon) {
@@ -227,7 +214,7 @@ class RoleManager extends CachedManager {
* @example
* // Delete a role
* guild.roles.delete('222079219327434752', 'The role needed to go')
- * .then(deleted => console.log(`Deleted role ${deleted.name}`))
+ * .then(() => console.log('Deleted the role.'))
* .catch(console.error);
*/
async delete(role, reason) {
@@ -236,6 +223,44 @@ class RoleManager extends CachedManager {
this.client.actions.GuildRoleDelete.handle({ guild_id: this.guild.id, role_id: id });
}
+ /**
+ * Sets the new position of the role.
+ * @param {RoleResolvable} role The role to change the position of
+ * @param {number} position The new position for the role
+ * @param {SetRolePositionOptions} [options] Options for setting the position
+ * @returns {Promise}
+ * @example
+ * // Set the position of the role
+ * guild.roles.setPosition('222197033908436994', 1)
+ * .then(updated => console.log(`Role position: ${updated.position}`))
+ * .catch(console.error);
+ */
+ async setPosition(role, position, { relative, reason } = {}) {
+ role = this.resolve(role);
+ if (!role) throw new TypeError('INVALID_TYPE', 'role', 'RoleResolvable');
+ const updatedRoles = await Util.setPosition(
+ role,
+ position,
+ relative,
+ this.guild._sortedRoles(),
+ this.client.api.guilds(this.guild.id).roles,
+ reason,
+ );
+
+ this.client.actions.GuildRolesPositionUpdate.handle({
+ guild_id: this.guild.id,
+ roles: updatedRoles,
+ });
+ return role;
+ }
+
+ /**
+ * The data needed for updating a guild role's position
+ * @typedef {Object} GuildRolePosition
+ * @property {RoleResolvable} role The role's id
+ * @property {number} position The position to update
+ */
+
/**
* Batch-updates the guild's role positions
* @param {GuildRolePosition[]} rolePositions Role positions to update
diff --git a/src/managers/StageInstanceManager.js b/src/managers/StageInstanceManager.js
index 478f26f5..cea36709 100644
--- a/src/managers/StageInstanceManager.js
+++ b/src/managers/StageInstanceManager.js
@@ -31,6 +31,7 @@ class StageInstanceManager extends CachedManager {
* @typedef {Object} StageInstanceCreateOptions
* @property {string} topic The topic of the stage instance
* @property {PrivacyLevel|number} [privacyLevel] The privacy level of the stage instance
+ * @property {boolean} [sendStartNotification] Whether to notify `@everyone` that the stage instance has started
*/
/**
@@ -58,7 +59,7 @@ class StageInstanceManager extends CachedManager {
const channelId = this.guild.channels.resolveId(channel);
if (!channelId) throw new Error('STAGE_CHANNEL_RESOLVE');
if (typeof options !== 'object') throw new TypeError('INVALID_TYPE', 'options', 'object', true);
- let { topic, privacyLevel } = options;
+ let { topic, privacyLevel, sendStartNotification } = options;
privacyLevel &&= typeof privacyLevel === 'number' ? privacyLevel : PrivacyLevels[privacyLevel];
@@ -67,6 +68,7 @@ class StageInstanceManager extends CachedManager {
channel_id: channelId,
topic,
privacy_level: privacyLevel,
+ send_start_notification: sendStartNotification,
},
});
diff --git a/src/managers/ThreadManager.js b/src/managers/ThreadManager.js
index 9cd4f049..0568c6c3 100644
--- a/src/managers/ThreadManager.js
+++ b/src/managers/ThreadManager.js
@@ -5,6 +5,7 @@ const CachedManager = require('./CachedManager');
const { TypeError } = require('../errors');
const ThreadChannel = require('../structures/ThreadChannel');
const { ChannelTypes } = require('../util/Constants');
+const { resolveAutoArchiveMaxLimit } = require('../util/Util');
/**
* Manages API methods for {@link ThreadChannel} objects and stores their cache.
@@ -120,14 +121,8 @@ class ThreadManager extends CachedManager {
} else if (this.channel.type !== 'GUILD_NEWS') {
resolvedType = typeof type === 'string' ? ChannelTypes[type] : type ?? resolvedType;
}
- if (autoArchiveDuration === 'MAX') {
- autoArchiveDuration = 1440;
- if (this.channel.guild.features.includes('SEVEN_DAY_THREAD_ARCHIVE')) {
- autoArchiveDuration = 10080;
- } else if (this.channel.guild.features.includes('THREE_DAY_THREAD_ARCHIVE')) {
- autoArchiveDuration = 4320;
- }
- }
+
+ if (autoArchiveDuration === 'MAX') autoArchiveDuration = resolveAutoArchiveMaxLimit(this.channel.guild);
const data = await path.threads.post({
data: {
diff --git a/src/rest/RESTManager.js b/src/rest/RESTManager.js
index 485b7bb4..ed6775bb 100644
--- a/src/rest/RESTManager.js
+++ b/src/rest/RESTManager.js
@@ -29,11 +29,16 @@ class RESTManager {
}
getAuth() {
- if (this.client.token && this.client.user && this.client.user.bot) {
+ if ((this.client.token && this.client.user && this.client.user.bot) || this.client.accessToken) {
return `Bot ${this.client.token}`;
} else if (this.client.token) {
return this.client.token;
}
+ /*
+ // v13.7
+ const token = this.client.token ?? this.client.accessToken;
+ if (token) return `Bot ${token}`;
+ */
throw new Error('TOKEN_MISSING');
}
diff --git a/src/rest/RateLimitError.js b/src/rest/RateLimitError.js
index 494954c7..2b3f3a87 100644
--- a/src/rest/RateLimitError.js
+++ b/src/rest/RateLimitError.js
@@ -15,7 +15,7 @@ class RateLimitError extends Error {
this.name = 'RateLimitError';
/**
- * Time until this rate limit ends, in ms
+ * Time until this rate limit ends, in milliseconds
* @type {number}
*/
this.timeout = timeout;
diff --git a/src/rest/RequestHandler.js b/src/rest/RequestHandler.js
index f93ac6c0..b305b0c0 100644
--- a/src/rest/RequestHandler.js
+++ b/src/rest/RequestHandler.js
@@ -280,7 +280,7 @@ class RequestHandler {
/**
* @typedef {Object} InvalidRequestWarningData
* @property {number} count Number of invalid requests that have been made in the window
- * @property {number} remainingTime Time in ms remaining before the count resets
+ * @property {number} remainingTime Time in milliseconds remaining before the count resets
*/
/**
diff --git a/src/sharding/Shard.js b/src/sharding/Shard.js
index 67d9d033..321c0797 100644
--- a/src/sharding/Shard.js
+++ b/src/sharding/Shard.js
@@ -249,14 +249,18 @@ class Shard extends EventEmitter {
const listener = message => {
if (message?._fetchProp !== prop) return;
child.removeListener('message', listener);
+ this.decrementMaxListeners(child);
this._fetches.delete(prop);
if (!message._error) resolve(message._result);
else reject(Util.makeError(message._error));
};
+
+ this.incrementMaxListeners(child);
child.on('message', listener);
this.send({ _fetchProp: prop }).catch(err => {
child.removeListener('message', listener);
+ this.decrementMaxListeners(child);
this._fetches.delete(prop);
reject(err);
});
@@ -288,14 +292,18 @@ class Shard extends EventEmitter {
const listener = message => {
if (message?._eval !== _eval) return;
child.removeListener('message', listener);
+ this.decrementMaxListeners(child);
this._evals.delete(_eval);
if (!message._error) resolve(message._result);
else reject(Util.makeError(message._error));
};
+
+ this.incrementMaxListeners(child);
child.on('message', listener);
this.send({ _eval }).catch(err => {
child.removeListener('message', listener);
+ this.decrementMaxListeners(child);
this._evals.delete(_eval);
reject(err);
});
@@ -406,6 +414,30 @@ class Shard extends EventEmitter {
if (respawn) this.spawn(timeout).catch(err => this.emit('error', err));
}
+
+ /**
+ * Increments max listeners by one for a given emitter, if they are not zero.
+ * @param {EventEmitter|process} emitter The emitter that emits the events.
+ * @private
+ */
+ incrementMaxListeners(emitter) {
+ const maxListeners = emitter.getMaxListeners();
+ if (maxListeners !== 0) {
+ emitter.setMaxListeners(maxListeners + 1);
+ }
+ }
+
+ /**
+ * Decrements max listeners by one for a given emitter, if they are not zero.
+ * @param {EventEmitter|process} emitter The emitter that emits the events.
+ * @private
+ */
+ decrementMaxListeners(emitter) {
+ const maxListeners = emitter.getMaxListeners();
+ if (maxListeners !== 0) {
+ emitter.setMaxListeners(maxListeners - 1);
+ }
+ }
}
module.exports = Shard;
diff --git a/src/sharding/ShardClientUtil.js b/src/sharding/ShardClientUtil.js
index 81cba426..982d4090 100644
--- a/src/sharding/ShardClientUtil.js
+++ b/src/sharding/ShardClientUtil.js
@@ -111,13 +111,16 @@ class ShardClientUtil {
const listener = message => {
if (message?._sFetchProp !== prop || message._sFetchPropShard !== shard) return;
parent.removeListener('message', listener);
+ this.decrementMaxListeners(parent);
if (!message._error) resolve(message._result);
else reject(Util.makeError(message._error));
};
+ this.incrementMaxListeners(parent);
parent.on('message', listener);
this.send({ _sFetchProp: prop, _sFetchPropShard: shard }).catch(err => {
parent.removeListener('message', listener);
+ this.decrementMaxListeners(parent);
reject(err);
});
});
@@ -146,13 +149,15 @@ class ShardClientUtil {
const listener = message => {
if (message?._sEval !== script || message._sEvalShard !== options.shard) return;
parent.removeListener('message', listener);
+ this.decrementMaxListeners(parent);
if (!message._error) resolve(message._result);
else reject(Util.makeError(message._error));
};
+ this.incrementMaxListeners(parent);
parent.on('message', listener);
-
this.send({ _sEval: script, _sEvalShard: options.shard }).catch(err => {
parent.removeListener('message', listener);
+ this.decrementMaxListeners(parent);
reject(err);
});
});
@@ -241,6 +246,30 @@ class ShardClientUtil {
if (shard < 0) throw new Error('SHARDING_SHARD_MISCALCULATION', shard, guildId, shardCount);
return shard;
}
+
+ /**
+ * Increments max listeners by one for a given emitter, if they are not zero.
+ * @param {EventEmitter|process} emitter The emitter that emits the events.
+ * @private
+ */
+ incrementMaxListeners(emitter) {
+ const maxListeners = emitter.getMaxListeners();
+ if (maxListeners !== 0) {
+ emitter.setMaxListeners(maxListeners + 1);
+ }
+ }
+
+ /**
+ * Decrements max listeners by one for a given emitter, if they are not zero.
+ * @param {EventEmitter|process} emitter The emitter that emits the events.
+ * @private
+ */
+ decrementMaxListeners(emitter) {
+ const maxListeners = emitter.getMaxListeners();
+ if (maxListeners !== 0) {
+ emitter.setMaxListeners(maxListeners - 1);
+ }
+ }
}
module.exports = ShardClientUtil;
diff --git a/src/sharding/ShardingManager.js b/src/sharding/ShardingManager.js
index 5ddf5ab0..db8581c7 100644
--- a/src/sharding/ShardingManager.js
+++ b/src/sharding/ShardingManager.js
@@ -36,7 +36,7 @@ class ShardingManager extends EventEmitter {
* @property {boolean} [respawn=true] Whether shards should automatically respawn upon exiting
* @property {string[]} [shardArgs=[]] Arguments to pass to the shard script when spawning
* (only available when mode is set to 'process')
- * @property {string} [execArgv=[]] Arguments to pass to the shard script executable when spawning
+ * @property {string[]} [execArgv=[]] Arguments to pass to the shard script executable when spawning
* (only available when mode is set to 'process')
* @property {string} [token] Token to use for automatic shard count and passing to shards
*/
diff --git a/src/structures/AnonymousGuild.js b/src/structures/AnonymousGuild.js
index 5415e548..96309109 100644
--- a/src/structures/AnonymousGuild.js
+++ b/src/structures/AnonymousGuild.js
@@ -64,6 +64,16 @@ class AnonymousGuild extends BaseGuild {
*/
this.nsfwLevel = NSFWLevels[data.nsfw_level];
}
+
+ if ('premium_subscription_count' in data) {
+ /**
+ * The total number of boosts for this server
+ * @type {?number}
+ */
+ this.premiumSubscriptionCount = data.premium_subscription_count;
+ } else {
+ this.premiumSubscriptionCount ??= null;
+ }
}
/**
diff --git a/src/structures/ApplicationCommand.js b/src/structures/ApplicationCommand.js
index bf85e603..6b55cf78 100644
--- a/src/structures/ApplicationCommand.js
+++ b/src/structures/ApplicationCommand.js
@@ -65,6 +65,26 @@ class ApplicationCommand extends Base {
this.name = data.name;
}
+ if ('name_localizations' in data) {
+ /**
+ * The name localizations for this command
+ * @type {?Object}
+ */
+ this.nameLocalizations = data.name_localizations;
+ } else {
+ this.nameLocalizations ??= null;
+ }
+
+ if ('name_localized' in data) {
+ /**
+ * The localized name for this command
+ * @type {?string}
+ */
+ this.nameLocalized = data.name_localized;
+ } else {
+ this.nameLocalized ??= null;
+ }
+
if ('description' in data) {
/**
* The description of this command
@@ -73,6 +93,26 @@ class ApplicationCommand extends Base {
this.description = data.description;
}
+ if ('description_localizations' in data) {
+ /**
+ * The description localizations for this command
+ * @type {?Object}
+ */
+ this.descriptionLocalizations = data.description_localizations;
+ } else {
+ this.descriptionLocalizations ??= null;
+ }
+
+ if ('description_localized' in data) {
+ /**
+ * The localized description for this command
+ * @type {?string}
+ */
+ this.descriptionLocalized = data.description_localized;
+ } else {
+ this.descriptionLocalized ??= null;
+ }
+
if ('options' in data) {
/**
* The options of this command
@@ -131,7 +171,9 @@ class ApplicationCommand extends Base {
* Data for creating or editing an application command.
* @typedef {Object} ApplicationCommandData
* @property {string} name The name of the command
+ * @property {Object} [nameLocalizations] The localizations for the command name
* @property {string} description The description of the command
+ * @property {Object} [descriptionLocalizations] The localizations for the command description
* @property {ApplicationCommandType} [type] The type of the command
* @property {ApplicationCommandOptionData[]} [options] Options for the command
* @property {boolean} [defaultPermission] Whether the command is enabled by default when the app is added to a guild
@@ -146,10 +188,12 @@ class ApplicationCommand extends Base {
* @typedef {Object} ApplicationCommandOptionData
* @property {ApplicationCommandOptionType|number} type The type of the option
* @property {string} name The name of the option
+ * @property {Object} [nameLocalizations] The name localizations for the option
* @property {string} description The description of the option
+ * @property {Object} [descriptionLocalizations] The description localizations for the option
* @property {boolean} [autocomplete] Whether the option is an autocomplete option
* @property {boolean} [required] Whether the option is required
- * @property {ApplicationCommandOptionChoice[]} [choices] The choices of the option for the user to pick from
+ * @property {ApplicationCommandOptionChoiceData[]} [choices] The choices of the option for the user to pick from
* @property {ApplicationCommandOptionData[]} [options] Additional options if this option is a subcommand (group)
* @property {ChannelType[]|number[]} [channelTypes] When the option type is channel,
* the allowed types of channels that can be selected
@@ -157,6 +201,13 @@ class ApplicationCommand extends Base {
* @property {number} [maxValue] The maximum value for an `INTEGER` or `NUMBER` option
*/
+ /**
+ * @typedef {Object} ApplicationCommandOptionChoiceData
+ * @property {string} name The name of the choice
+ * @property {Object} [nameLocalizations] The localized names for this choice
+ * @property {string|number} value The value of the choice
+ */
+
/**
* Edits this application command.
* @param {ApplicationCommandData} data The data to update the command with
@@ -182,6 +233,23 @@ class ApplicationCommand extends Base {
return this.edit({ name });
}
+ /**
+ * Edits the localized names of this ApplicationCommand
+ * @param {Object} nameLocalizations The new localized names for the command
+ * @returns {Promise}
+ * @example
+ * // Edit the name localizations of this command
+ * command.setLocalizedNames({
+ * 'en-GB': 'test',
+ * 'pt-BR': 'teste',
+ * })
+ * .then(console.log)
+ * .catch(console.error)
+ */
+ setNameLocalizations(nameLocalizations) {
+ return this.edit({ nameLocalizations });
+ }
+
/**
* Edits the description of this ApplicationCommand
* @param {string} description The new description of the command
@@ -191,6 +259,23 @@ class ApplicationCommand extends Base {
return this.edit({ description });
}
+ /**
+ * Edits the localized descriptions of this ApplicationCommand
+ * @param {Object} descriptionLocalizations The new localized descriptions for the command
+ * @returns {Promise}
+ * @example
+ * // Edit the description localizations of this command
+ * command.setLocalizedDescriptions({
+ * 'en-GB': 'A test command',
+ * 'pt-BR': 'Um comando de teste',
+ * })
+ * .then(console.log)
+ * .catch(console.error)
+ */
+ setDescriptionLocalizations(descriptionLocalizations) {
+ return this.edit({ descriptionLocalizations });
+ }
+
/**
* Edits the default permission of this ApplicationCommand
* @param {boolean} [defaultPermission=true] The default permission for this command
@@ -349,7 +434,11 @@ class ApplicationCommand extends Base {
* @typedef {Object} ApplicationCommandOption
* @property {ApplicationCommandOptionType} type The type of the option
* @property {string} name The name of the option
+ * @property {Object} [nameLocalizations] The localizations for the option name
+ * @property {string} [nameLocalized] The localized name for this option
* @property {string} description The description of the option
+ * @property {Object} [descriptionLocalizations] The localizations for the option description
+ * @property {string} [descriptionLocalized] The localized description for this option
* @property {boolean} [required] Whether the option is required
* @property {boolean} [autocomplete] Whether the option is an autocomplete option
* @property {ApplicationCommandOptionChoice[]} [choices] The choices of the option for the user to pick from
@@ -364,12 +453,14 @@ class ApplicationCommand extends Base {
* A choice for an application command option.
* @typedef {Object} ApplicationCommandOptionChoice
* @property {string} name The name of the choice
+ * @property {?string} nameLocalized The localized name of the choice in the provided locale, if any
+ * @property {?Object} [nameLocalizations] The localized names for this choice
* @property {string|number} value The value of the choice
*/
/**
* Transforms an {@link ApplicationCommandOptionData} object into something that can be used with the API.
- * @param {ApplicationCommandOptionData} option The option to transform
+ * @param {ApplicationCommandOptionData|ApplicationCommandOption} option The option to transform
* @param {boolean} [received] Whether this option has been received from Discord
* @returns {APIApplicationCommandOption}
* @private
@@ -379,14 +470,27 @@ class ApplicationCommand extends Base {
const channelTypesKey = received ? 'channelTypes' : 'channel_types';
const minValueKey = received ? 'minValue' : 'min_value';
const maxValueKey = received ? 'maxValue' : 'max_value';
+ const nameLocalizationsKey = received ? 'nameLocalizations' : 'name_localizations';
+ const nameLocalizedKey = received ? 'nameLocalized' : 'name_localized';
+ const descriptionLocalizationsKey = received ? 'descriptionLocalizations' : 'description_localizations';
+ const descriptionLocalizedKey = received ? 'descriptionLocalized' : 'description_localized';
return {
type: typeof option.type === 'number' && !received ? option.type : ApplicationCommandOptionTypes[option.type],
name: option.name,
+ [nameLocalizationsKey]: option.nameLocalizations ?? option.name_localizations,
+ [nameLocalizedKey]: option.nameLocalized ?? option.name_localized,
description: option.description,
+ [descriptionLocalizationsKey]: option.descriptionLocalizations ?? option.description_localizations,
+ [descriptionLocalizedKey]: option.descriptionLocalized ?? option.description_localized,
required:
option.required ?? (stringType === 'SUB_COMMAND' || stringType === 'SUB_COMMAND_GROUP' ? undefined : false),
autocomplete: option.autocomplete,
- choices: option.choices,
+ choices: option.choices?.map(choice => ({
+ name: choice.name,
+ [nameLocalizedKey]: choice.nameLocalized ?? choice.name_localized,
+ [nameLocalizationsKey]: choice.nameLocalizations ?? choice.name_localizations,
+ value: choice.value,
+ })),
options: option.options?.map(o => this.transformOption(o, received)),
[channelTypesKey]: received
? option.channel_types?.map(type => ChannelTypes[type])
diff --git a/src/structures/AutocompleteInteraction.js b/src/structures/AutocompleteInteraction.js
index e942a6dc..3f1a2e30 100644
--- a/src/structures/AutocompleteInteraction.js
+++ b/src/structures/AutocompleteInteraction.js
@@ -76,7 +76,7 @@ class AutocompleteInteraction extends Interaction {
/**
* Sends results for the autocomplete of this interaction.
- * @param {ApplicationCommandOptionChoice[]} options The options for the autocomplete
+ * @param {ApplicationCommandOptionChoiceData[]} options The options for the autocomplete
* @returns {Promise}
* @example
* // respond to autocomplete interaction
diff --git a/src/structures/BaseCommandInteraction.js b/src/structures/BaseCommandInteraction.js
index 0ddaf6bf..38cc73b9 100644
--- a/src/structures/BaseCommandInteraction.js
+++ b/src/structures/BaseCommandInteraction.js
@@ -3,6 +3,7 @@
const { Collection } = require('@discordjs/collection');
const Interaction = require('./Interaction');
const InteractionWebhook = require('./InteractionWebhook');
+const MessageAttachment = require('./MessageAttachment');
const InteractionResponses = require('./interfaces/InteractionResponses');
const { ApplicationCommandOptionTypes } = require('../util/Constants');
@@ -76,6 +77,7 @@ class BaseCommandInteraction extends Interaction {
* @property {Collection} [roles] The resolved roles
* @property {Collection} [channels] The resolved channels
* @property {Collection} [messages] The resolved messages
+ * @property {Collection} [attachments] The resolved attachments
*/
/**
@@ -84,7 +86,7 @@ class BaseCommandInteraction extends Interaction {
* @returns {CommandInteractionResolvedData}
* @private
*/
- transformResolved({ members, users, channels, roles, messages }) {
+ transformResolved({ members, users, channels, roles, messages, attachments }) {
const result = {};
if (members) {
@@ -123,6 +125,14 @@ class BaseCommandInteraction extends Interaction {
}
}
+ if (attachments) {
+ result.attachments = new Collection();
+ for (const attachment of Object.values(attachments)) {
+ const patched = new MessageAttachment(attachment.url, attachment.filename, attachment);
+ result.attachments.set(attachment.id, patched);
+ }
+ }
+
return result;
}
@@ -139,6 +149,7 @@ class BaseCommandInteraction extends Interaction {
* @property {GuildMember|APIGuildMember} [member] The resolved member
* @property {GuildChannel|ThreadChannel|APIChannel} [channel] The resolved channel
* @property {Role|APIRole} [role] The resolved role
+ * @property {MessageAttachment} [attachment] The resolved attachment
*/
/**
@@ -169,6 +180,9 @@ class BaseCommandInteraction extends Interaction {
const role = resolved.roles?.[option.value];
if (role) result.role = this.guild?.roles._add(role) ?? role;
+
+ const attachment = resolved.attachments?.[option.value];
+ if (attachment) result.attachment = new MessageAttachment(attachment.url, attachment.filename, attachment);
}
return result;
@@ -182,6 +196,8 @@ class BaseCommandInteraction extends Interaction {
editReply() {}
deleteReply() {}
followUp() {}
+ showModal() {}
+ awaitModalSubmit() {}
}
InteractionResponses.applyToClass(BaseCommandInteraction, ['deferUpdate', 'update']);
diff --git a/src/structures/BaseGuildTextChannel.js b/src/structures/BaseGuildTextChannel.js
index abb40756..fd59508c 100644
--- a/src/structures/BaseGuildTextChannel.js
+++ b/src/structures/BaseGuildTextChannel.js
@@ -1,12 +1,9 @@
'use strict';
-const { Collection } = require('@discordjs/collection');
const GuildChannel = require('./GuildChannel');
-const Webhook = require('./Webhook');
const TextBasedChannel = require('./interfaces/TextBasedChannel');
const MessageManager = require('../managers/MessageManager');
const ThreadManager = require('../managers/ThreadManager');
-const DataResolver = require('../util/DataResolver');
/**
* Represents a text-based guild channel on Discord.
@@ -72,7 +69,7 @@ class BaseGuildTextChannel extends GuildChannel {
if ('default_auto_archive_duration' in data) {
/**
* The default auto archive duration for newly created threads in this channel
- * @type {?ThreadAutoArchiveDuration}
+ * @type {?number}
*/
this.defaultAutoArchiveDuration = data.default_auto_archive_duration;
}
@@ -121,11 +118,8 @@ class BaseGuildTextChannel extends GuildChannel {
* .then(hooks => console.log(`This channel has ${hooks.size} hooks`))
* .catch(console.error);
*/
- async fetchWebhooks() {
- const data = await this.client.api.channels[this.id].webhooks.get();
- const hooks = new Collection();
- for (const hook of data) hooks.set(hook.id, new Webhook(this.client, hook));
- return hooks;
+ fetchWebhooks() {
+ return this.guild.channels.fetchWebhooks(this.id);
}
/**
@@ -149,18 +143,8 @@ class BaseGuildTextChannel extends GuildChannel {
* .then(console.log)
* .catch(console.error)
*/
- async createWebhook(name, { avatar, reason } = {}) {
- if (typeof avatar === 'string' && !avatar.startsWith('data:')) {
- avatar = await DataResolver.resolveImage(avatar);
- }
- const data = await this.client.api.channels[this.id].webhooks.post({
- data: {
- name,
- avatar,
- },
- reason,
- });
- return new Webhook(this.client, data);
+ createWebhook(name, options = {}) {
+ return this.guild.channels.createWebhook(this.id, name, options);
}
/**
@@ -178,6 +162,14 @@ class BaseGuildTextChannel extends GuildChannel {
return this.edit({ topic }, reason);
}
+ /**
+ * Data that can be resolved to an Application. This can be:
+ * * An Application
+ * * An Activity with associated Application
+ * * A Snowflake
+ * @typedef {Application|Snowflake} ApplicationResolvable
+ */
+
/**
* Options used to create an invite to a guild channel.
* @typedef {Object} CreateInviteOptions
diff --git a/src/structures/BaseGuildVoiceChannel.js b/src/structures/BaseGuildVoiceChannel.js
index e048eb3e..8fe65a16 100644
--- a/src/structures/BaseGuildVoiceChannel.js
+++ b/src/structures/BaseGuildVoiceChannel.js
@@ -82,17 +82,18 @@ class BaseGuildVoiceChannel extends GuildChannel {
/**
* Sets the RTC region of the channel.
- * @param {?string} region The new region of the channel. Set to `null` to remove a specific region for the channel
+ * @param {?string} rtcRegion The new region of the channel. Set to `null` to remove a specific region for the channel
+ * @param {string} [reason] The reason for modifying this region.
* @returns {Promise}
* @example
- * // Set the RTC region to europe
- * channel.setRTCRegion('europe');
+ * // Set the RTC region to sydney
+ * channel.setRTCRegion('sydney');
* @example
* // Remove a fixed region for this channel - let Discord decide automatically
- * channel.setRTCRegion(null);
+ * channel.setRTCRegion(null, 'We want to let Discord decide.');
*/
- setRTCRegion(region) {
- return this.edit({ rtcRegion: region });
+ setRTCRegion(rtcRegion, reason) {
+ return this.edit({ rtcRegion }, reason);
}
/**
diff --git a/src/structures/BaseMessageComponent.js b/src/structures/BaseMessageComponent.js
index c2470e0c..40758273 100644
--- a/src/structures/BaseMessageComponent.js
+++ b/src/structures/BaseMessageComponent.js
@@ -4,7 +4,7 @@ const { TypeError } = require('../errors');
const { MessageComponentTypes, Events } = require('../util/Constants');
/**
- * Represents an interactive component of a Message. It should not be necessary to construct this directly.
+ * Represents an interactive component of a Message or Modal. It should not be necessary to construct this directly.
* See {@link MessageComponent}
*/
class BaseMessageComponent {
@@ -15,18 +15,20 @@ class BaseMessageComponent {
*/
/**
- * Data that can be resolved into options for a MessageComponent. This can be:
+ * Data that can be resolved into options for a component. This can be:
* * MessageActionRowOptions
* * MessageButtonOptions
* * MessageSelectMenuOptions
+ * * TextInputComponentOptions
* @typedef {MessageActionRowOptions|MessageButtonOptions|MessageSelectMenuOptions} MessageComponentOptions
*/
/**
- * Components that can be sent in a message. These can be:
+ * Components that can be sent in a payload. These can be:
* * MessageActionRow
* * MessageButton
* * MessageSelectMenu
+ * * TextInputComponent
* @typedef {MessageActionRow|MessageButton|MessageSelectMenu} MessageComponent
* @see {@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}
*/
@@ -51,10 +53,10 @@ class BaseMessageComponent {
}
/**
- * Constructs a MessageComponent based on the type of the incoming data
+ * Constructs a component based on the type of the incoming data
* @param {MessageComponentOptions} data Data for a MessageComponent
* @param {Client|WebhookClient} [client] Client constructing this component
- * @returns {?MessageComponent}
+ * @returns {?(MessageComponent|ModalComponent)}
* @private
*/
static create(data, client) {
@@ -79,6 +81,11 @@ class BaseMessageComponent {
component = data instanceof MessageSelectMenu ? data : new MessageSelectMenu(data);
break;
}
+ case MessageComponentTypes.TEXT_INPUT: {
+ const TextInputComponent = require('./TextInputComponent');
+ component = data instanceof TextInputComponent ? data : new TextInputComponent(data);
+ break;
+ }
default:
if (client) {
client.emit(Events.DEBUG, `[BaseMessageComponent] Received component with unknown type: ${data.type}`);
@@ -90,7 +97,7 @@ class BaseMessageComponent {
}
/**
- * Resolves the type of a MessageComponent
+ * Resolves the type of a component
* @param {MessageComponentTypeResolvable} type The type to resolve
* @returns {MessageComponentType}
* @private
diff --git a/src/structures/Channel.js b/src/structures/Channel.js
index 88cbc894..2460dd6f 100644
--- a/src/structures/Channel.js
+++ b/src/structures/Channel.js
@@ -10,6 +10,7 @@ let StoreChannel;
let TextChannel;
let ThreadChannel;
let VoiceChannel;
+let DirectoryChannel;
const { ChannelTypes, ThreadChannelTypes, VoiceBasedChannelTypes } = require('../util/Constants');
const SnowflakeUtil = require('../util/SnowflakeUtil');
// Const { ApplicationCommand } = require('discord.js-selfbot-v13'); - Not being used in this file, not necessary.
@@ -165,6 +166,14 @@ class Channel extends Base {
return ThreadChannelTypes.includes(this.type);
}
+ /**
+ * Indicates whether this channel is a {@link DirectoryChannel}
+ * @returns {boolean}
+ */
+ isDirectory() {
+ return this.type === 'GUILD_DIRECTORY';
+ }
+
static create(client, data, guild, { allowUnknownGuild, fromInteraction } = {}) {
CategoryChannel ??= require('./CategoryChannel');
DMChannel ??= require('./DMChannel');
@@ -174,6 +183,7 @@ class Channel extends Base {
TextChannel ??= require('./TextChannel');
ThreadChannel ??= require('./ThreadChannel');
VoiceChannel ??= require('./VoiceChannel');
+ DirectoryChannel ??= require('./DirectoryChannel');
let channel;
if (!data.guild_id && !guild) {
@@ -219,6 +229,9 @@ class Channel extends Base {
if (!allowUnknownGuild) channel.parent?.threads.cache.set(channel.id, channel);
break;
}
+ case ChannelTypes.GUILD_DIRECTORY:
+ channel = new DirectoryChannel(client, data);
+ break;
}
if (channel && !allowUnknownGuild) guild.channels?.cache.set(channel.id, channel);
}
diff --git a/src/structures/ClientApplication.js b/src/structures/ClientApplication.js
index b33cbf83..dfcef303 100644
--- a/src/structures/ClientApplication.js
+++ b/src/structures/ClientApplication.js
@@ -3,7 +3,15 @@
const Team = require('./Team');
const Application = require('./interfaces/Application');
const { Error } = require('../errors/DJSError');
+const ApplicationCommandManager = require('../managers/ApplicationCommandManager');
const ApplicationFlags = require('../util/ApplicationFlags');
+const Permissions = require('../util/Permissions');
+
+/**
+ * @typedef {Object} ClientApplicationInstallParams
+ * @property {InviteScope[]} scopes The scopes to add the application to the server with
+ * @property {Readonly} permissions The permissions this bot will request upon joining
+ */
/**
* Represents a Client OAuth2 Application.
@@ -17,12 +25,41 @@ class ClientApplication extends Application {
* The application command manager for this application
* @type {ApplicationCommandManager}
*/
- this.commands = null; // Selfbot
+ this.commands = new ApplicationCommandManager(this.client);
}
_patch(data) {
super._patch(data);
+ /**
+ * The tags this application has (max of 5)
+ * @type {string[]}
+ */
+ this.tags = data.tags ?? [];
+
+ if ('install_params' in data) {
+ /**
+ * Settings for this application's default in-app authorization
+ * @type {?ClientApplicationInstallParams}
+ */
+ this.installParams = {
+ scopes: data.install_params.scopes,
+ permissions: new Permissions(data.install_params.permissions).freeze(),
+ };
+ } else {
+ this.installParams ??= null;
+ }
+
+ if ('custom_install_url' in data) {
+ /**
+ * This application's custom installation URL
+ * @type {?string}
+ */
+ this.customInstallURL = data.custom_install_url;
+ } else {
+ this.customInstallURL = null;
+ }
+
if ('flags' in data) {
/**
* The flags this application has
diff --git a/src/structures/CommandInteractionOptionResolver.js b/src/structures/CommandInteractionOptionResolver.js
index c83fd8e2..10da7b99 100644
--- a/src/structures/CommandInteractionOptionResolver.js
+++ b/src/structures/CommandInteractionOptionResolver.js
@@ -251,6 +251,17 @@ class CommandInteractionOptionResolver {
if (!focusedOption) throw new TypeError('AUTOCOMPLETE_INTERACTION_OPTION_NO_FOCUSED_OPTION');
return getFull ? focusedOption : focusedOption.value;
}
+
+ /**
+ * Gets an attachment option.
+ * @param {string} name The name of the option.
+ * @param {boolean} [required=false] Whether to throw an error if the option is not found.
+ * @returns {?MessageAttachment} The value of the option, or null if not set and not required.
+ */
+ getAttachment(name, required = false) {
+ const option = this._getTypedOption(name, 'ATTACHMENT', ['attachment'], required);
+ return option?.attachment ?? null;
+ }
}
module.exports = CommandInteractionOptionResolver;
diff --git a/src/structures/DirectoryChannel.js b/src/structures/DirectoryChannel.js
new file mode 100644
index 00000000..faf2e3d0
--- /dev/null
+++ b/src/structures/DirectoryChannel.js
@@ -0,0 +1,19 @@
+'use strict';
+
+const { Channel } = require('./Channel');
+
+/**
+ * Represents a channel that displays a directory of guilds
+ */
+class DirectoryChannel extends Channel {
+ _patch(data) {
+ super._patch(data);
+ /**
+ * The channel's name
+ * @type {string}
+ */
+ this.name = data.name;
+ }
+}
+
+module.exports = DirectoryChannel;
diff --git a/src/structures/Guild.js b/src/structures/Guild.js
index 200952f3..54b931fa 100644
--- a/src/structures/Guild.js
+++ b/src/structures/Guild.js
@@ -283,14 +283,6 @@ class Guild extends AnonymousGuild {
this.premiumTier = PremiumTiers[data.premium_tier];
}
- if ('premium_subscription_count' in data) {
- /**
- * The total number of boosts for this server
- * @type {?number}
- */
- this.premiumSubscriptionCount = data.premium_subscription_count;
- }
-
if ('widget_enabled' in data) {
/**
* Whether widget images are enabled on this guild
@@ -416,8 +408,8 @@ class Guild extends AnonymousGuild {
if ('preferred_locale' in data) {
/**
* The preferred locale of the guild, defaults to `en-US`
- * @type {string}
- * @see {@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}
+ * @type {Locale}
+ * @see {@link https://discord.com/developers/docs/reference#locales}
*/
this.preferredLocale = data.preferred_locale;
}
@@ -874,24 +866,24 @@ class Guild extends AnonymousGuild {
* The data for editing a guild.
* @typedef {Object} GuildEditData
* @property {string} [name] The name of the guild
- * @property {VerificationLevel|number} [verificationLevel] The verification level of the guild
- * @property {ExplicitContentFilterLevel|number} [explicitContentFilter] The level of the explicit content filter
- * @property {VoiceChannelResolvable} [afkChannel] The AFK channel of the guild
- * @property {TextChannelResolvable} [systemChannel] The system channel of the guild
+ * @property {?(VerificationLevel|number)} [verificationLevel] The verification level of the guild
+ * @property {?(ExplicitContentFilterLevel|number)} [explicitContentFilter] The level of the explicit content filter
+ * @property {?VoiceChannelResolvable} [afkChannel] The AFK channel of the guild
+ * @property {?TextChannelResolvable} [systemChannel] The system channel of the guild
* @property {number} [afkTimeout] The AFK timeout of the guild
* @property {?(BufferResolvable|Base64Resolvable)} [icon] The icon of the guild
* @property {GuildMemberResolvable} [owner] The owner of the guild
* @property {?(BufferResolvable|Base64Resolvable)} [splash] The invite splash image of the guild
* @property {?(BufferResolvable|Base64Resolvable)} [discoverySplash] The discovery splash image of the guild
* @property {?(BufferResolvable|Base64Resolvable)} [banner] The banner of the guild
- * @property {DefaultMessageNotificationLevel|number} [defaultMessageNotifications] The default message notification
+ * @property {?(DefaultMessageNotificationLevel|number)} [defaultMessageNotifications] The default message notification
* level of the guild
* @property {SystemChannelFlagsResolvable} [systemChannelFlags] The system channel flags of the guild
- * @property {TextChannelResolvable} [rulesChannel] The rules channel of the guild
- * @property {TextChannelResolvable} [publicUpdatesChannel] The community updates channel of the guild
- * @property {string} [preferredLocale] The preferred locale of the guild
+ * @property {?TextChannelResolvable} [rulesChannel] The rules channel of the guild
+ * @property {?TextChannelResolvable} [publicUpdatesChannel] The community updates channel of the guild
+ * @property {?string} [preferredLocale] The preferred locale of the guild
* @property {boolean} [premiumProgressBarEnabled] Whether the guild's premium progress bar is enabled
- * @property {string} [description] The discovery description of the guild
+ * @property {?string} [description] The discovery description of the guild
* @property {Features[]} [features] The features of the guild
*/
@@ -978,7 +970,7 @@ class Guild extends AnonymousGuild {
if (typeof data.description !== 'undefined') {
_data.description = data.description;
}
- if (data.preferredLocale) _data.preferred_locale = data.preferredLocale;
+ if (typeof data.preferredLocale !== 'undefined') _data.preferred_locale = data.preferredLocale;
if ('premiumProgressBarEnabled' in data) {
_data.premium_progress_bar_enabled = data.premiumProgressBarEnabled;
}
@@ -1058,7 +1050,7 @@ class Guild extends AnonymousGuild {
/**
* Edits the level of the explicit content filter.
- * @param {ExplicitContentFilterLevel|number} explicitContentFilter The new level of the explicit content filter
+ * @param {?(ExplicitContentFilterLevel|number)} explicitContentFilter The new level of the explicit content filter
* @param {string} [reason] Reason for changing the level of the guild's explicit content filter
* @returns {Promise}
*/
@@ -1105,7 +1097,7 @@ class Guild extends AnonymousGuild {
/**
* Edits the verification level of the guild.
- * @param {VerificationLevel|number} verificationLevel The new verification level of the guild
+ * @param {(VerificationLevel|number)} verificationLevel The new verification level of the guild
* @param {string} [reason] Reason for changing the guild's verification level
* @returns {Promise}
* @example
@@ -1120,7 +1112,7 @@ class Guild extends AnonymousGuild {
/**
* Edits the AFK channel of the guild.
- * @param {VoiceChannelResolvable} afkChannel The new AFK channel
+ * @param {?VoiceChannelResolvable} afkChannel The new AFK channel
* @param {string} [reason] Reason for changing the guild's AFK channel
* @returns {Promise}
* @example
@@ -1135,7 +1127,7 @@ class Guild extends AnonymousGuild {
/**
* Edits the system channel of the guild.
- * @param {TextChannelResolvable} systemChannel The new system channel
+ * @param {?TextChannelResolvable} systemChannel The new system channel
* @param {string} [reason] Reason for changing the guild's system channel
* @returns {Promise}
* @example
@@ -1240,7 +1232,7 @@ class Guild extends AnonymousGuild {
/**
* Edits the rules channel of the guild.
- * @param {TextChannelResolvable} rulesChannel The new rules channel
+ * @param {?TextChannelResolvable} rulesChannel The new rules channel
* @param {string} [reason] Reason for changing the guild's rules channel
* @returns {Promise}
* @example
@@ -1296,7 +1288,7 @@ class Guild extends AnonymousGuild {
/**
* Edits the community updates channel of the guild.
- * @param {TextChannelResolvable} publicUpdatesChannel The new community updates channel
+ * @param {?TextChannelResolvable} publicUpdatesChannel The new community updates channel
* @param {string} [reason] Reason for changing the guild's community updates channel
* @returns {Promise}
* @example
@@ -1311,7 +1303,7 @@ class Guild extends AnonymousGuild {
/**
* Edits the preferred locale of the guild.
- * @param {string} preferredLocale The new preferred locale of the guild
+ * @param {?string} preferredLocale The new preferred locale of the guild
* @param {string} [reason] Reason for changing the guild's preferred locale
* @returns {Promise}
* @example
diff --git a/src/structures/GuildChannel.js b/src/structures/GuildChannel.js
index 03e86d3a..37dace27 100644
--- a/src/structures/GuildChannel.js
+++ b/src/structures/GuildChannel.js
@@ -1,12 +1,10 @@
'use strict';
const { Channel } = require('./Channel');
-const PermissionOverwrites = require('./PermissionOverwrites');
const { Error } = require('../errors');
const PermissionOverwriteManager = require('../managers/PermissionOverwriteManager');
-const { ChannelTypes, VoiceBasedChannelTypes } = require('../util/Constants');
+const { VoiceBasedChannelTypes } = require('../util/Constants');
const Permissions = require('../util/Permissions');
-const Util = require('../util/Util');
/**
* Represents a guild channel from any of the following:
@@ -262,27 +260,6 @@ class GuildChannel extends Channel {
return this.guild.members.cache.filter(m => this.permissionsFor(m).has(Permissions.FLAGS.VIEW_CHANNEL, false));
}
- /**
- * The data for a guild channel.
- * @typedef {Object} ChannelData
- * @property {string} [name] The name of the channel
- * @property {ChannelType} [type] The type of the channel (only conversion between text and news is supported)
- * @property {number} [position] The position of the channel
- * @property {string} [topic] The topic of the text channel
- * @property {boolean} [nsfw] Whether the channel is NSFW
- * @property {number} [bitrate] The bitrate of the voice channel
- * @property {number} [userLimit] The user limit of the voice channel
- * @property {?CategoryChannelResolvable} [parent] The parent of the channel
- * @property {boolean} [lockPermissions]
- * Lock the permissions of the channel to what the parent's permissions are
- * @property {OverwriteResolvable[]|Collection} [permissionOverwrites]
- * Permission overwrites for the channel
- * @property {number} [rateLimitPerUser] The rate limit per user (slowmode) for the channel in seconds
- * @property {ThreadAutoArchiveDuration} [defaultAutoArchiveDuration]
- * The default auto archive duration for all new threads in this channel
- * @property {?string} [rtcRegion] The RTC region of the channel
- */
-
/**
* Edits the channel.
* @param {ChannelData} data The new data for the channel
@@ -294,64 +271,8 @@ class GuildChannel extends Channel {
* .then(console.log)
* .catch(console.error);
*/
- async edit(data, reason) {
- data.parent &&= this.client.channels.resolveId(data.parent);
-
- if (typeof data.position !== 'undefined') {
- const updatedChannels = await Util.setPosition(
- this,
- data.position,
- false,
- this.guild._sortedChannels(this),
- this.client.api.guilds(this.guild.id).channels,
- reason,
- );
- this.client.actions.GuildChannelsPositionUpdate.handle({
- guild_id: this.guild.id,
- channels: updatedChannels,
- });
- }
-
- let permission_overwrites;
-
- if (data.permissionOverwrites) {
- permission_overwrites = data.permissionOverwrites.map(o => PermissionOverwrites.resolve(o, this.guild));
- }
-
- if (data.lockPermissions) {
- if (data.parent) {
- const newParent = this.guild.channels.resolve(data.parent);
- if (newParent?.type === 'GUILD_CATEGORY') {
- permission_overwrites = newParent.permissionOverwrites.cache.map(o =>
- PermissionOverwrites.resolve(o, this.guild),
- );
- }
- } else if (this.parent) {
- permission_overwrites = this.parent.permissionOverwrites.cache.map(o =>
- PermissionOverwrites.resolve(o, this.guild),
- );
- }
- }
-
- const newData = await this.client.api.channels(this.id).patch({
- data: {
- name: (data.name ?? this.name).trim(),
- type: ChannelTypes[data.type],
- topic: data.topic,
- nsfw: data.nsfw,
- bitrate: data.bitrate ?? this.bitrate,
- user_limit: data.userLimit ?? this.userLimit,
- rtc_region: data.rtcRegion ?? this.rtcRegion,
- parent_id: data.parent,
- lock_permissions: data.lockPermissions,
- rate_limit_per_user: data.rateLimitPerUser,
- default_auto_archive_duration: data.defaultAutoArchiveDuration,
- permission_overwrites,
- },
- reason,
- });
-
- return this.client.actions.ChannelUpdate.handle(newData).updated;
+ edit(data, reason) {
+ return this.guild.channels.edit(this, data, reason);
}
/**
@@ -415,30 +336,10 @@ class GuildChannel extends Channel {
* .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))
* .catch(console.error);
*/
- async setPosition(position, { relative, reason } = {}) {
- const updatedChannels = await Util.setPosition(
- this,
- position,
- relative,
- this.guild._sortedChannels(this),
- this.client.api.guilds(this.guild.id).channels,
- reason,
- );
- this.client.actions.GuildChannelsPositionUpdate.handle({
- guild_id: this.guild.id,
- channels: updatedChannels,
- });
- return this;
+ setPosition(position, options = {}) {
+ return this.guild.channels.setPosition(this, position, options);
}
- /**
- * Data that can be resolved to an Application. This can be:
- * * An Application
- * * An Activity with associated Application
- * * A Snowflake
- * @typedef {Application|Snowflake} ApplicationResolvable
- */
-
/**
* Options used to clone a guild channel.
* @typedef {GuildChannelCreateOptions} GuildChannelCloneOptions
@@ -544,7 +445,7 @@ class GuildChannel extends Channel {
* .catch(console.error);
*/
async delete(reason) {
- await this.client.api.channels(this.id).delete({ reason });
+ await this.guild.channels.delete(this.id, reason);
return this;
}
}
diff --git a/src/structures/GuildEmoji.js b/src/structures/GuildEmoji.js
index e5629fde..abe26333 100644
--- a/src/structures/GuildEmoji.js
+++ b/src/structures/GuildEmoji.js
@@ -72,18 +72,8 @@ class GuildEmoji extends BaseGuildEmoji {
* Fetches the author for this emoji
* @returns {Promise}
*/
- async fetchAuthor() {
- if (this.managed) {
- throw new Error('EMOJI_MANAGED');
- } else {
- if (!this.guild.me) throw new Error('GUILD_UNCACHED_ME');
- if (!this.guild.me.permissions.has(Permissions.FLAGS.MANAGE_EMOJIS_AND_STICKERS)) {
- throw new Error('MISSING_MANAGE_EMOJIS_AND_STICKERS_PERMISSION', this.guild);
- }
- }
- const data = await this.client.api.guilds(this.guild.id).emojis(this.id).get();
- this._patch(data);
- return this.author;
+ fetchAuthor() {
+ return this.guild.emojis.fetchAuthor(this);
}
/**
@@ -137,7 +127,7 @@ class GuildEmoji extends BaseGuildEmoji {
* @returns {Promise}
*/
async delete(reason) {
- await this.client.api.guilds(this.guild.id).emojis(this.id).delete({ reason });
+ await this.guild.emojis.delete(this, reason);
return this;
}
diff --git a/src/structures/GuildMember.js b/src/structures/GuildMember.js
index f271def0..16da298b 100644
--- a/src/structures/GuildMember.js
+++ b/src/structures/GuildMember.js
@@ -300,7 +300,11 @@ class GuildMember extends Base {
* @readonly
*/
get moderatable() {
- return this.manageable && (this.guild.me?.permissions.has(Permissions.FLAGS.MODERATE_MEMBERS) ?? false);
+ return (
+ !this.permissions.has(Permissions.FLAGS.ADMINISTRATOR) &&
+ this.manageable &&
+ (this.guild.me?.permissions.has(Permissions.FLAGS.MODERATE_MEMBERS) ?? false)
+ );
}
/**
diff --git a/src/structures/GuildPreview.js b/src/structures/GuildPreview.js
index 4627fafa..dfff316d 100644
--- a/src/structures/GuildPreview.js
+++ b/src/structures/GuildPreview.js
@@ -3,6 +3,7 @@
const { Collection } = require('@discordjs/collection');
const Base = require('./Base');
const GuildPreviewEmoji = require('./GuildPreviewEmoji');
+const { Sticker } = require('./Sticker');
const SnowflakeUtil = require('../util/SnowflakeUtil');
/**
@@ -103,6 +104,15 @@ class GuildPreview extends Base {
for (const emoji of data.emojis) {
this.emojis.set(emoji.id, new GuildPreviewEmoji(this.client, emoji, this));
}
+
+ /**
+ * Collection of stickers belonging to this guild
+ * @type {Collection}
+ */
+ this.stickers = data.stickers.reduce(
+ (stickers, sticker) => stickers.set(sticker.id, new Sticker(this.client, sticker)),
+ new Collection(),
+ );
}
/**
* The timestamp this guild was created at
diff --git a/src/structures/GuildScheduledEvent.js b/src/structures/GuildScheduledEvent.js
index ff862b87..5be66d82 100644
--- a/src/structures/GuildScheduledEvent.js
+++ b/src/structures/GuildScheduledEvent.js
@@ -156,6 +156,25 @@ class GuildScheduledEvent extends Base {
} else {
this.entityMetadata ??= null;
}
+
+ if ('image' in data) {
+ /**
+ * The cover image hash for this scheduled event
+ * @type {?string}
+ */
+ this.image = data.image;
+ } else {
+ this.image ??= null;
+ }
+ }
+
+ /**
+ * The URL of this scheduled event's cover image
+ * @param {StaticImageURLOptions} [options={}] Options for image URL
+ * @returns {?string}
+ */
+ coverImageURL({ format, size } = {}) {
+ return this.image && this.client.rest.cdn.guildScheduledEventCover(this.id, this.image, format, size);
}
/**
diff --git a/src/structures/IntegrationApplication.js b/src/structures/IntegrationApplication.js
index 1a81df1f..61cb199e 100644
--- a/src/structures/IntegrationApplication.js
+++ b/src/structures/IntegrationApplication.js
@@ -54,6 +54,7 @@ class IntegrationApplication extends Application {
/**
* The application's summary
* @type {?string}
+ * @deprecated This property is no longer being sent by the API.
*/
this.summary = data.summary;
} else {
diff --git a/src/structures/Interaction.js b/src/structures/Interaction.js
index 2a19cade..4095df8e 100644
--- a/src/structures/Interaction.js
+++ b/src/structures/Interaction.js
@@ -75,16 +75,51 @@ class Interaction extends Base {
*/
this.memberPermissions = data.member?.permissions ? new Permissions(data.member.permissions).freeze() : null;
+ /**
+ * A Discord locale string, possible values are:
+ * * en-US (English, US)
+ * * en-GB (English, UK)
+ * * bg (Bulgarian)
+ * * zh-CN (Chinese, China)
+ * * zh-TW (Chinese, Taiwan)
+ * * hr (Croatian)
+ * * cs (Czech)
+ * * da (Danish)
+ * * nl (Dutch)
+ * * fi (Finnish)
+ * * fr (French)
+ * * de (German)
+ * * el (Greek)
+ * * hi (Hindi)
+ * * hu (Hungarian)
+ * * it (Italian)
+ * * ja (Japanese)
+ * * ko (Korean)
+ * * lt (Lithuanian)
+ * * no (Norwegian)
+ * * pl (Polish)
+ * * pt-BR (Portuguese, Brazilian)
+ * * ro (Romanian, Romania)
+ * * ru (Russian)
+ * * es-ES (Spanish)
+ * * sv-SE (Swedish)
+ * * th (Thai)
+ * * tr (Turkish)
+ * * uk (Ukrainian)
+ * * vi (Vietnamese)
+ * @see {@link https://discord.com/developers/docs/reference#locales}
+ * @typedef {string} Locale
+ */
+
/**
* The locale of the user who invoked this interaction
- * @type {string}
- * @see {@link https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales}
+ * @type {Locale}
*/
this.locale = data.locale;
/**
* The preferred locale from the guild this interaction was sent in
- * @type {?string}
+ * @type {?Locale}
*/
this.guildLocale = data.guild_locale ?? null;
}
@@ -173,6 +208,14 @@ class Interaction extends Base {
return InteractionTypes[this.type] === InteractionTypes.APPLICATION_COMMAND && typeof this.targetId !== 'undefined';
}
+ /**
+ * Indicates whether this interaction is a {@link ModalSubmitInteraction}
+ * @returns {boolean}
+ */
+ isModalSubmit() {
+ return InteractionTypes[this.type] === InteractionTypes.MODAL_SUBMIT;
+ }
+
/**
* Indicates whether this interaction is a {@link UserContextMenuInteraction}
* @returns {boolean}
@@ -226,6 +269,16 @@ class Interaction extends Base {
MessageComponentTypes[this.componentType] === MessageComponentTypes.SELECT_MENU
);
}
+
+ /**
+ * Indicates whether this interaction can be replied to.
+ * @returns {boolean}
+ */
+ isRepliable() {
+ return ![InteractionTypes.PING, InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE].includes(
+ InteractionTypes[this.type],
+ );
+ }
}
module.exports = Interaction;
diff --git a/src/structures/InteractionCollector.js b/src/structures/InteractionCollector.js
index 574c047e..f28173c2 100644
--- a/src/structures/InteractionCollector.js
+++ b/src/structures/InteractionCollector.js
@@ -7,9 +7,9 @@ const { InteractionTypes, MessageComponentTypes } = require('../util/Constants')
/**
* @typedef {CollectorOptions} InteractionCollectorOptions
- * @property {TextBasedChannels} [channel] The channel to listen to interactions from
+ * @property {TextBasedChannelsResolvable} [channel] The channel to listen to interactions from
* @property {MessageComponentType} [componentType] The type of component to listen for
- * @property {Guild} [guild] The guild to listen to interactions from
+ * @property {GuildResolvable} [guild] The guild to listen to interactions from
* @property {InteractionType} [interactionType] The type of interaction to listen for
* @property {number} [max] The maximum total amount of interactions to collect
* @property {number} [maxComponents] The maximum number of components to collect
diff --git a/src/structures/Invite.js b/src/structures/Invite.js
index 763ef4f6..22465cf2 100644
--- a/src/structures/Invite.js
+++ b/src/structures/Invite.js
@@ -197,8 +197,11 @@ class Invite extends Base {
this.createdTimestamp ??= null;
}
- if ('expires_at' in data) this._expiresTimestamp = new Date(data.expires_at).getTime();
- else this._expiresTimestamp ??= null;
+ if ('expires_at' in data) {
+ this._expiresTimestamp = data.expires_at && Date.parse(data.expires_at);
+ } else {
+ this._expiresTimestamp ??= null;
+ }
if ('stage_instance' in data) {
/**
diff --git a/src/structures/Message.js b/src/structures/Message.js
index 324b6437..b0c60029 100644
--- a/src/structures/Message.js
+++ b/src/structures/Message.js
@@ -725,6 +725,7 @@ class Message extends Base {
/**
* Pins this message to the channel's pinned messages.
+ * @param {string} [reason] Reason for pinning
* @returns {Promise}
* @example
* // Pin a message
@@ -732,14 +733,15 @@ class Message extends Base {
* .then(console.log)
* .catch(console.error)
*/
- async pin() {
+ async pin(reason) {
if (!this.channel) throw new Error('CHANNEL_NOT_CACHED');
- await this.channel.messages.pin(this.id);
+ await this.channel.messages.pin(this.id, reason);
return this;
}
/**
* Unpins this message from the channel's pinned messages.
+ * @param {string} [reason] Reason for unpinning
* @returns {Promise}
* @example
* // Unpin a message
@@ -747,9 +749,9 @@ class Message extends Base {
* .then(console.log)
* .catch(console.error)
*/
- async unpin() {
+ async unpin(reason) {
if (!this.channel) throw new Error('CHANNEL_NOT_CACHED');
- await this.channel.messages.unpin(this.id);
+ await this.channel.messages.unpin(this.id, reason);
return this;
}
diff --git a/src/structures/MessageActionRow.js b/src/structures/MessageActionRow.js
index c44b32a6..d2115d6c 100644
--- a/src/structures/MessageActionRow.js
+++ b/src/structures/MessageActionRow.js
@@ -12,14 +12,16 @@ class MessageActionRow extends BaseMessageComponent {
* Components that can be placed in an action row
* * MessageButton
* * MessageSelectMenu
- * @typedef {MessageButton|MessageSelectMenu} MessageActionRowComponent
+ * * TextInputComponent
+ * @typedef {MessageButton|MessageSelectMenu|TextInputComponent} MessageActionRowComponent
*/
/**
* Options for components that can be placed in an action row
* * MessageButtonOptions
* * MessageSelectMenuOptions
- * @typedef {MessageButtonOptions|MessageSelectMenuOptions} MessageActionRowComponentOptions
+ * * TextInputComponentOptions
+ * @typedef {MessageButtonOptions|MessageSelectMenuOptions|TextInputComponentOptions} MessageActionRowComponentOptions
*/
/**
diff --git a/src/structures/MessageAttachment.js b/src/structures/MessageAttachment.js
index 79e87bf2..3426a17a 100644
--- a/src/structures/MessageAttachment.js
+++ b/src/structures/MessageAttachment.js
@@ -124,7 +124,7 @@ class MessageAttachment {
if ('content_type' in data) {
/**
- * This media type of this attachment
+ * The media type of this attachment
* @type {?string}
*/
this.contentType = data.content_type;
diff --git a/src/structures/MessageComponentInteraction.js b/src/structures/MessageComponentInteraction.js
index dae0107e..d97d170b 100644
--- a/src/structures/MessageComponentInteraction.js
+++ b/src/structures/MessageComponentInteraction.js
@@ -101,6 +101,8 @@ class MessageComponentInteraction extends Interaction {
followUp() {}
deferUpdate() {}
update() {}
+ showModal() {}
+ awaitModalSubmit() {}
}
InteractionResponses.applyToClass(MessageComponentInteraction);
diff --git a/src/structures/MessageEmbed.js b/src/structures/MessageEmbed.js
index 39fef449..02367fd8 100644
--- a/src/structures/MessageEmbed.js
+++ b/src/structures/MessageEmbed.js
@@ -209,7 +209,7 @@ class MessageEmbed {
this.provider = data.provider
? {
name: data.provider.name,
- url: data.provider.name,
+ url: data.provider.url,
}
: null;
@@ -430,7 +430,7 @@ class MessageEmbed {
*/
setFooter(options, deprecatedIconURL) {
if (options === null) {
- this.footer = {};
+ this.footer = undefined;
return this;
}
diff --git a/src/structures/MessageMentions.js b/src/structures/MessageMentions.js
index 9b935f94..9d0baebb 100644
--- a/src/structures/MessageMentions.js
+++ b/src/structures/MessageMentions.js
@@ -173,28 +173,35 @@ class MessageMentions {
* @typedef {Object} MessageMentionsHasOptions
* @property {boolean} [ignoreDirect=false] Whether to ignore direct mentions to the item
* @property {boolean} [ignoreRoles=false] Whether to ignore role mentions to a guild member
- * @property {boolean} [ignoreEveryone=false] Whether to ignore everyone/here mentions
+ * @property {boolean} [ignoreRepliedUser=false] Whether to ignore replied user mention to an user
+ * @property {boolean} [ignoreEveryone=false] Whether to ignore `@everyone`/`@here` mentions
*/
/**
- * Checks if a user, guild member, role, or channel is mentioned.
- * Takes into account user mentions, role mentions, and `@everyone`/`@here` mentions.
+ * Checks if a user, guild member, thread member, role, or channel is mentioned.
+ * Takes into account user mentions, role mentions, channel mentions,
+ * replied user mention, and `@everyone`/`@here` mentions.
* @param {UserResolvable|RoleResolvable|ChannelResolvable} data The User/Role/Channel to check for
* @param {MessageMentionsHasOptions} [options] The options for the check
* @returns {boolean}
*/
- has(data, { ignoreDirect = false, ignoreRoles = false, ignoreEveryone = false } = {}) {
- if (!ignoreEveryone && this.everyone) return true;
- const { GuildMember } = require('./GuildMember');
- if (!ignoreRoles && data instanceof GuildMember) {
- for (const role of this.roles.values()) if (data.roles.cache.has(role.id)) return true;
- }
+ has(data, { ignoreDirect = false, ignoreRoles = false, ignoreRepliedUser = false, ignoreEveryone = false } = {}) {
+ const user = this.client.users.resolve(data);
+ const role = this.guild?.roles.resolve(data);
+ const channel = this.client.channels.resolve(data);
+ if (!ignoreRepliedUser && this.users.has(this.repliedUser?.id) && this.repliedUser?.id === user?.id) return true;
if (!ignoreDirect) {
- const id =
- this.guild?.roles.resolveId(data) ?? this.client.channels.resolveId(data) ?? this.client.users.resolveId(data);
-
- return typeof id === 'string' && (this.users.has(id) || this.channels.has(id) || this.roles.has(id));
+ if (this.users.has(user?.id)) return true;
+ if (this.roles.has(role?.id)) return true;
+ if (this.channels.has(channel?.id)) return true;
+ }
+ if (user && !ignoreEveryone && this.everyone) return true;
+ if (!ignoreRoles) {
+ const member = this.guild?.members.resolve(data);
+ if (member) {
+ for (const mentionedRole of this.roles.values()) if (member.roles.cache.has(mentionedRole.id)) return true;
+ }
}
return false;
diff --git a/src/structures/MessagePayload.js b/src/structures/MessagePayload.js
index 9deae408..43eec181 100644
--- a/src/structures/MessagePayload.js
+++ b/src/structures/MessagePayload.js
@@ -149,11 +149,17 @@ class MessagePayload {
}
let flags;
- if (this.isMessage || this.isMessageManager) {
+ if (
+ typeof this.options.flags !== 'undefined' ||
+ (this.isMessage && typeof this.options.reply === 'undefined') ||
+ this.isMessageManager
+ ) {
// eslint-disable-next-line eqeqeq
flags = this.options.flags != null ? new MessageFlags(this.options.flags).bitfield : this.target.flags?.bitfield;
- } else if (isInteraction && this.options.ephemeral) {
- flags = MessageFlags.FLAGS.EPHEMERAL;
+ }
+
+ if (isInteraction && this.options.ephemeral) {
+ flags |= MessageFlags.FLAGS.EPHEMERAL;
}
let allowedMentions =
diff --git a/src/structures/MessageReaction.js b/src/structures/MessageReaction.js
index 8a294be0..60e0189e 100644
--- a/src/structures/MessageReaction.js
+++ b/src/structures/MessageReaction.js
@@ -114,7 +114,7 @@ class MessageReaction {
if (this.partial) return;
this.users.cache.set(user.id, user);
if (!this.me || user.id !== this.message.client.user.id || this.count === 0) this.count++;
- this.me ??= user.id === this.message.client.user.id;
+ this.me ||= user.id === this.message.client.user.id;
}
_remove(user) {
diff --git a/src/structures/Modal.js b/src/structures/Modal.js
new file mode 100644
index 00000000..91ec04cd
--- /dev/null
+++ b/src/structures/Modal.js
@@ -0,0 +1,103 @@
+'use strict';
+
+const BaseMessageComponent = require('./BaseMessageComponent');
+const Util = require('../util/Util');
+
+/**
+ * Represents a modal (form) to be shown in response to an interaction
+ */
+class Modal {
+ /**
+ * @typedef {Object} ModalOptions
+ * @property {string} [customId] A unique string to be sent in the interaction when clicked
+ * @property {string} [title] The title to be displayed on this modal
+ * @property {MessageActionRow[]|MessageActionRowOptions[]} [components]
+ * Action rows containing interactive components for the modal (text input components)
+ */
+
+ /**
+ * @param {Modal|ModalOptions} data Modal to clone or raw data
+ * @param {Client} client The client constructing this Modal, if provided
+ */
+ constructor(data = {}, client = null) {
+ /**
+ * A list of MessageActionRows in the modal
+ * @type {MessageActionRow[]}
+ */
+ this.components = data.components?.map(c => BaseMessageComponent.create(c, client)) ?? [];
+
+ /**
+ * A unique string to be sent in the interaction when submitted
+ * @type {?string}
+ */
+ this.customId = data.custom_id ?? data.customId ?? null;
+
+ /**
+ * The title to be displayed on this modal
+ * @type {?string}
+ */
+ this.title = data.title ?? null;
+ }
+
+ /**
+ * Adds components to the modal.
+ * @param {...MessageActionRowResolvable[]} components The components to add
+ * @returns {Modal}
+ */
+ addComponents(...components) {
+ this.components.push(...components.flat(Infinity).map(c => BaseMessageComponent.create(c)));
+ return this;
+ }
+
+ /**
+ * Sets the components of the modal.
+ * @param {...MessageActionRowResolvable[]} components The components to set
+ * @returns {Modal}
+ */
+ setComponents(...components) {
+ this.spliceComponents(0, this.components.length, components);
+ return this;
+ }
+
+ /**
+ * Sets the custom id for this modal
+ * @param {string} customId A unique string to be sent in the interaction when submitted
+ * @returns {Modal}
+ */
+ setCustomId(customId) {
+ this.customId = Util.verifyString(customId, RangeError, 'MODAL_CUSTOM_ID');
+ return this;
+ }
+
+ /**
+ * Removes, replaces, and inserts components in the modal.
+ * @param {number} index The index to start at
+ * @param {number} deleteCount The number of components to remove
+ * @param {...MessageActionRowResolvable[]} [components] The replacing components
+ * @returns {Modal}
+ */
+ spliceComponents(index, deleteCount, ...components) {
+ this.components.splice(index, deleteCount, ...components.flat(Infinity).map(c => BaseMessageComponent.create(c)));
+ return this;
+ }
+
+ /**
+ * Sets the title of this modal
+ * @param {string} title The title to be displayed on this modal
+ * @returns {Modal}
+ */
+ setTitle(title) {
+ this.title = Util.verifyString(title, RangeError, 'MODAL_TITLE');
+ return this;
+ }
+
+ toJSON() {
+ return {
+ components: this.components.map(c => c.toJSON()),
+ custom_id: this.customId,
+ title: this.title,
+ };
+ }
+}
+
+module.exports = Modal;
diff --git a/src/structures/ModalSubmitFieldsResolver.js b/src/structures/ModalSubmitFieldsResolver.js
new file mode 100644
index 00000000..c60d1183
--- /dev/null
+++ b/src/structures/ModalSubmitFieldsResolver.js
@@ -0,0 +1,53 @@
+'use strict';
+
+const { TypeError } = require('../errors');
+const { MessageComponentTypes } = require('../util/Constants');
+
+/**
+ * A resolver for modal submit interaction text inputs.
+ */
+class ModalSubmitFieldsResolver {
+ constructor(components) {
+ /**
+ * The components within the modal
+ * @type {PartialModalActionRow[]} The components in the modal
+ */
+ this.components = components;
+ }
+
+ /**
+ * The extracted fields from the modal
+ * @type {PartialInputTextData[]} The fields in the modal
+ * @private
+ */
+ get _fields() {
+ return this.components.reduce((previous, next) => previous.concat(next.components), []);
+ }
+
+ /**
+ * Gets a field given a custom id from a component
+ * @param {string} customId The custom id of the component
+ * @returns {?PartialInputTextData}
+ */
+ getField(customId) {
+ const field = this._fields.find(f => f.customId === customId);
+ if (!field) throw new TypeError('MODAL_SUBMIT_INTERACTION_FIELD_NOT_FOUND', customId);
+ return field;
+ }
+
+ /**
+ * Gets the value of a text input component given a custom id
+ * @param {string} customId The custom id of the text input component
+ * @returns {?string}
+ */
+ getTextInputValue(customId) {
+ const field = this.getField(customId);
+ const expectedType = MessageComponentTypes[MessageComponentTypes.TEXT_INPUT];
+ if (field.type !== expectedType) {
+ throw new TypeError('MODAL_SUBMIT_INTERACTION_FIELD_TYPE', customId, field.type, expectedType);
+ }
+ return field.value;
+ }
+}
+
+module.exports = ModalSubmitFieldsResolver;
diff --git a/src/structures/ModalSubmitInteraction.js b/src/structures/ModalSubmitInteraction.js
new file mode 100644
index 00000000..306320f2
--- /dev/null
+++ b/src/structures/ModalSubmitInteraction.js
@@ -0,0 +1,111 @@
+'use strict';
+
+const Interaction = require('./Interaction');
+const InteractionWebhook = require('./InteractionWebhook');
+const ModalSubmitFieldsResolver = require('./ModalSubmitFieldsResolver');
+const InteractionResponses = require('./interfaces/InteractionResponses');
+const { MessageComponentTypes } = require('../util/Constants');
+
+/**
+ * Represents a modal submit interaction.
+ * @extends {Interaction}
+ * @implements {InteractionResponses}
+ */
+class ModalSubmitInteraction extends Interaction {
+ constructor(client, data) {
+ super(client, data);
+
+ /**
+ * The custom id of the modal.
+ * @type {string}
+ */
+ this.customId = data.data.custom_id;
+
+ /**
+ * @typedef {Object} PartialTextInputData
+ * @property {string} [customId] A unique string to be sent in the interaction when submitted
+ * @property {MessageComponentType} [type] The type of this component
+ * @property {string} [value] Value of this text input component
+ */
+
+ /**
+ * @typedef {Object} PartialModalActionRow
+ * @property {MessageComponentType} [type] The type of this component
+ * @property {PartialTextInputData[]} [components] Partial text input components
+ */
+
+ /**
+ * The inputs within the modal
+ * @type {PartialModalActionRow[]}
+ */
+ this.components =
+ data.data.components?.map(c => ({
+ type: MessageComponentTypes[c.type],
+ components: ModalSubmitInteraction.transformComponent(c),
+ })) ?? [];
+
+ /**
+ * The message associated with this interaction
+ * @type {Message|APIMessage|null}
+ */
+ this.message = data.message ? this.channel?.messages._add(data.message) ?? data.message : null;
+
+ /**
+ * The fields within the modal
+ * @type {ModalSubmitFieldsResolver}
+ */
+ this.fields = new ModalSubmitFieldsResolver(this.components);
+
+ /**
+ * Whether the reply to this interaction has been deferred
+ * @type {boolean}
+ */
+ this.deferred = false;
+
+ /**
+ * Whether the reply to this interaction is ephemeral
+ * @type {?boolean}
+ */
+ this.ephemeral = null;
+
+ /**
+ * Whether this interaction has already been replied to
+ * @type {boolean}
+ */
+ this.replied = false;
+
+ /**
+ * An associated interaction webhook, can be used to further interact with this interaction
+ * @type {InteractionWebhook}
+ */
+ this.webhook = new InteractionWebhook(this.client, this.applicationId, this.token);
+ }
+
+ /**
+ * Transforms component data to discord.js-compatible data
+ * @param {*} rawComponent The data to transform
+ * @returns {PartialTextInputData[]}
+ */
+ static transformComponent(rawComponent) {
+ return rawComponent.components.map(c => ({
+ value: c.value,
+ type: MessageComponentTypes[c.type],
+ customId: c.custom_id,
+ }));
+ }
+
+ // These are here only for documentation purposes - they are implemented by InteractionResponses
+ /* eslint-disable no-empty-function */
+ deferReply() {}
+ reply() {}
+ fetchReply() {}
+ editReply() {}
+ deleteReply() {}
+ followUp() {}
+ update() {}
+ deferUpdate() {}
+}
+
+InteractionResponses.applyToClass(ModalSubmitInteraction, ['showModal', 'awaitModalSubmit']);
+
+module.exports = ModalSubmitInteraction;
diff --git a/src/structures/Presence.js b/src/structures/Presence.js
index ce7620b4..afa32126 100644
--- a/src/structures/Presence.js
+++ b/src/structures/Presence.js
@@ -351,13 +351,21 @@ class RichPresenceAssets {
* @returns {?string}
*/
smallImageURL({ format, size } = {}) {
- return (
- this.smallImage &&
- this.activity.presence.client.rest.cdn.AppAsset(this.activity.applicationId, this.smallImage, {
- format,
- size,
- })
- );
+ if (!this.smallImage) return null;
+ if (this.smallImage.includes(':')) {
+ const [platform, id] = this.smallImage.split(':');
+ switch (platform) {
+ case 'mp':
+ return `https://media.discordapp.net/${id}`;
+ default:
+ return null;
+ }
+ }
+
+ return this.activity.presence.client.rest.cdn.AppAsset(this.activity.applicationId, this.smallImage, {
+ format,
+ size,
+ });
}
/**
@@ -367,11 +375,20 @@ class RichPresenceAssets {
*/
largeImageURL({ format, size } = {}) {
if (!this.largeImage) return null;
- if (/^spotify:/.test(this.largeImage)) {
- return `https://i.scdn.co/image/${this.largeImage.slice(8)}`;
- } else if (/^twitch:/.test(this.largeImage)) {
- return `https://static-cdn.jtvnw.net/previews-ttv/live_user_${this.largeImage.slice(7)}.png`;
+ if (this.largeImage.includes(':')) {
+ const [platform, id] = this.largeImage.split(':');
+ switch (platform) {
+ case 'mp':
+ return `https://media.discordapp.net/${id}`;
+ case 'spotify':
+ return `https://i.scdn.co/image/${id}`;
+ case 'twitch':
+ return `https://static-cdn.jtvnw.net/previews-ttv/live_user_${id}.png`;
+ default:
+ return null;
+ }
}
+
return this.activity.presence.client.rest.cdn.AppAsset(this.activity.applicationId, this.largeImage, {
format,
size,
diff --git a/src/structures/Role.js b/src/structures/Role.js
index f0ee3a86..fbacb749 100644
--- a/src/structures/Role.js
+++ b/src/structures/Role.js
@@ -5,7 +5,6 @@ const Base = require('./Base');
const { Error } = require('../errors');
const Permissions = require('../util/Permissions');
const SnowflakeUtil = require('../util/SnowflakeUtil');
-const Util = require('../util/Util');
let deprecationEmittedForComparePositions = false;
@@ -399,20 +398,8 @@ class Role extends Base {
* .then(updated => console.log(`Role position: ${updated.position}`))
* .catch(console.error);
*/
- async setPosition(position, { relative, reason } = {}) {
- const updatedRoles = await Util.setPosition(
- this,
- position,
- relative,
- this.guild._sortedRoles(),
- this.client.api.guilds(this.guild.id).roles,
- reason,
- );
- this.client.actions.GuildRolesPositionUpdate.handle({
- guild_id: this.guild.id,
- roles: updatedRoles,
- });
- return this;
+ setPosition(position, options = {}) {
+ return this.guild.roles.setPosition(this, position, options);
}
/**
diff --git a/src/structures/StageChannel.js b/src/structures/StageChannel.js
index f5fb4d88..b57beb5c 100644
--- a/src/structures/StageChannel.js
+++ b/src/structures/StageChannel.js
@@ -55,14 +55,15 @@ class StageChannel extends BaseGuildVoiceChannel {
/**
* Sets the RTC region of the channel.
* @name StageChannel#setRTCRegion
- * @param {?string} region The new region of the channel. Set to `null` to remove a specific region for the channel
+ * @param {?string} rtcRegion The new region of the channel. Set to `null` to remove a specific region for the channel
+ * @param {string} [reason] The reason for modifying this region.
* @returns {Promise}
* @example
- * // Set the RTC region to europe
- * stageChannel.setRTCRegion('europe');
+ * // Set the RTC region to sydney
+ * stageChannel.setRTCRegion('sydney');
* @example
* // Remove a fixed region for this channel - let Discord decide automatically
- * stageChannel.setRTCRegion(null);
+ * stageChannel.setRTCRegion(null, 'We want to let Discord decide.');
*/
}
diff --git a/src/structures/StageInstance.js b/src/structures/StageInstance.js
index 040d1e04..10fb85eb 100644
--- a/src/structures/StageInstance.js
+++ b/src/structures/StageInstance.js
@@ -72,6 +72,16 @@ class StageInstance extends Base {
} else {
this.discoverableDisabled ??= null;
}
+
+ if ('guild_scheduled_event_id' in data) {
+ /**
+ * The associated guild scheduled event id of this stage instance
+ * @type {?Snowflake}
+ */
+ this.guildScheduledEventId = data.guild_scheduled_event_id;
+ } else {
+ this.guildScheduledEventId ??= null;
+ }
}
/**
@@ -83,6 +93,15 @@ class StageInstance extends Base {
return this.client.channels.resolve(this.channelId);
}
+ /**
+ * The associated guild scheduled event of this stage instance
+ * @type {?GuildScheduledEvent}
+ * @readonly
+ */
+ get guildScheduledEvent() {
+ return this.guild?.scheduledEvents.resolve(this.guildScheduledEventId) ?? null;
+ }
+
/**
* Whether or not the stage instance has been deleted
* @type {boolean}
diff --git a/src/structures/Sticker.js b/src/structures/Sticker.js
index a3347375..ed016322 100644
--- a/src/structures/Sticker.js
+++ b/src/structures/Sticker.js
@@ -228,10 +228,7 @@ class Sticker extends Base {
async fetchUser() {
if (this.partial) await this.fetch();
if (!this.guildId) throw new Error('NOT_GUILD_STICKER');
-
- const data = await this.client.api.guilds(this.guildId).stickers(this.id).get();
- this._patch(data);
- return this.user;
+ return this.guild.stickers.fetchUser(this);
}
/**
diff --git a/src/structures/StoreChannel.js b/src/structures/StoreChannel.js
index e8bd745f..3db1e40c 100644
--- a/src/structures/StoreChannel.js
+++ b/src/structures/StoreChannel.js
@@ -4,7 +4,7 @@ const GuildChannel = require('./GuildChannel');
/**
* Represents a guild store channel on Discord.
- * Store channels are deprecated and will be removed from Discord in March 2022. See
+ * Store channels have been removed from Discord. See
* [Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/4414590563479)
* for more information.
* @extends {GuildChannel}
diff --git a/src/structures/TextInputComponent.js b/src/structures/TextInputComponent.js
new file mode 100644
index 00000000..72180480
--- /dev/null
+++ b/src/structures/TextInputComponent.js
@@ -0,0 +1,201 @@
+'use strict';
+
+const BaseMessageComponent = require('./BaseMessageComponent');
+const { RangeError } = require('../errors');
+const { TextInputStyles, MessageComponentTypes } = require('../util/Constants');
+const Util = require('../util/Util');
+
+/**
+ * Represents a text input component in a modal
+ * @extends {BaseMessageComponent}
+ */
+
+class TextInputComponent extends BaseMessageComponent {
+ /**
+ * @typedef {BaseMessageComponentOptions} TextInputComponentOptions
+ * @property {string} [customId] A unique string to be sent in the interaction when submitted
+ * @property {string} [label] The text to be displayed above this text input component
+ * @property {number} [maxLength] Maximum length of text that can be entered
+ * @property {number} [minLength] Minimum length of text required to be entered
+ * @property {string} [placeholder] Custom placeholder text to display when no text is entered
+ * @property {boolean} [required] Whether or not this text input component is required
+ * @property {TextInputStyleResolvable} [style] The style of this text input component
+ * @property {string} [value] Value of this text input component
+ */
+
+ /**
+ * @param {TextInputComponent|TextInputComponentOptions} [data={}] TextInputComponent to clone or raw data
+ */
+ constructor(data = {}) {
+ super({ type: 'TEXT_INPUT' });
+
+ this.setup(data);
+ }
+
+ setup(data) {
+ /**
+ * A unique string to be sent in the interaction when submitted
+ * @type {?string}
+ */
+ this.customId = data.custom_id ?? data.customId ?? null;
+
+ /**
+ * The text to be displayed above this text input component
+ * @type {?string}
+ */
+ this.label = data.label ?? null;
+
+ /**
+ * Maximum length of text that can be entered
+ * @type {?number}
+ */
+ this.maxLength = data.max_length ?? data.maxLength ?? null;
+
+ /**
+ * Minimum length of text required to be entered
+ * @type {?string}
+ */
+ this.minLength = data.min_length ?? data.minLength ?? null;
+
+ /**
+ * Custom placeholder text to display when no text is entered
+ * @type {?string}
+ */
+ this.placeholder = data.placeholder ?? null;
+
+ /**
+ * Whether or not this text input component is required
+ * @type {?boolean}
+ */
+ this.required = data.required ?? false;
+
+ /**
+ * The style of this text input component
+ * @type {?TextInputStyle}
+ */
+ this.style = data.style ? TextInputComponent.resolveStyle(data.style) : null;
+
+ /**
+ * Value of this text input component
+ * @type {?string}
+ */
+ this.value = data.value ?? null;
+ }
+
+ /**
+ * Sets the custom id of this text input component
+ * @param {string} customId A unique string to be sent in the interaction when submitted
+ * @returns {TextInputComponent}
+ */
+ setCustomId(customId) {
+ this.customId = Util.verifyString(customId, RangeError, 'TEXT_INPUT_CUSTOM_ID');
+ return this;
+ }
+
+ /**
+ * Sets the label of this text input component
+ * @param {string} label The text to be displayed above this text input component
+ * @returns {TextInputComponent}
+ */
+ setLabel(label) {
+ this.label = Util.verifyString(label, RangeError, 'TEXT_INPUT_LABEL');
+ return this;
+ }
+
+ /**
+ * Sets the text input component to be required for modal submission
+ * @param {boolean} [required=true] Whether this text input component is required
+ * @returns {TextInputComponent}
+ */
+ setRequired(required = true) {
+ this.required = required;
+ return this;
+ }
+
+ /**
+ * Sets the maximum length of text input required in this text input component
+ * @param {number} maxLength Maximum length of text to be required
+ * @returns {TextInputComponent}
+ */
+ setMaxLength(maxLength) {
+ this.maxLength = maxLength;
+ return this;
+ }
+
+ /**
+ * Sets the minimum length of text input required in this text input component
+ * @param {number} minLength Minimum length of text to be required
+ * @returns {TextInputComponent}
+ */
+ setMinLength(minLength) {
+ this.minLength = minLength;
+ return this;
+ }
+
+ /**
+ * Sets the placeholder of this text input component
+ * @param {string} placeholder Custom placeholder text to display when no text is entered
+ * @returns {TextInputComponent}
+ */
+ setPlaceholder(placeholder) {
+ this.placeholder = Util.verifyString(placeholder, RangeError, 'TEXT_INPUT_PLACEHOLDER');
+ return this;
+ }
+
+ /**
+ * Sets the style of this text input component
+ * @param {TextInputStyleResolvable} style The style of this text input component
+ * @returns {TextInputComponent}
+ */
+ setStyle(style) {
+ this.style = TextInputComponent.resolveStyle(style);
+ return this;
+ }
+
+ /**
+ * Sets the value of this text input component
+ * @param {string} value Value of this text input component
+ * @returns {TextInputComponent}
+ */
+ setValue(value) {
+ this.value = Util.verifyString(value, RangeError, 'TEXT_INPUT_VALUE');
+ return this;
+ }
+
+ /**
+ * Transforms the text input component into a plain object
+ * @returns {APITextInput} The raw data of this text input component
+ */
+ toJSON() {
+ return {
+ custom_id: this.customId,
+ label: this.label,
+ max_length: this.maxLength,
+ min_length: this.minLength,
+ placeholder: this.placeholder,
+ required: this.required,
+ style: TextInputStyles[this.style],
+ type: MessageComponentTypes[this.type],
+ value: this.value,
+ };
+ }
+
+ /**
+ * Data that can be resolved to a TextInputStyle. This can be
+ * * TextInputStyle
+ * * number
+ * @typedef {number|TextInputStyle} TextInputStyleResolvable
+ */
+
+ /**
+ * Resolves the style of a text input component
+ * @param {TextInputStyleResolvable} style The style to resolve
+ * @returns {TextInputStyle}
+ * @private
+ */
+ static resolveStyle(style) {
+ return typeof style === 'string' ? style : TextInputStyles[style];
+ }
+}
+
+module.exports = TextInputComponent;
diff --git a/src/structures/ThreadChannel.js b/src/structures/ThreadChannel.js
index 7c45cbc3..0ef83d2e 100644
--- a/src/structures/ThreadChannel.js
+++ b/src/structures/ThreadChannel.js
@@ -6,6 +6,7 @@ const { RangeError } = require('../errors');
const MessageManager = require('../managers/MessageManager');
const ThreadMemberManager = require('../managers/ThreadMemberManager');
const Permissions = require('../util/Permissions');
+const { resolveAutoArchiveMaxLimit } = require('../util/Util');
/**
* Represents a thread channel on Discord.
@@ -100,6 +101,11 @@ class ThreadChannel extends Channel {
* @type {?number}
*/
this.archiveTimestamp = new Date(data.thread_metadata.archive_timestamp).getTime();
+
+ if ('create_timestamp' in data.thread_metadata) {
+ // Note: this is needed because we can't assign directly to getters
+ this._createdTimestamp = Date.parse(data.thread_metadata.create_timestamp);
+ }
} else {
this.locked ??= null;
this.archived ??= null;
@@ -108,6 +114,8 @@ class ThreadChannel extends Channel {
this.invitable ??= null;
}
+ this._createdTimestamp ??= this.type === 'GUILD_PRIVATE_THREAD' ? super.createdTimestamp : null;
+
if ('owner_id' in data) {
/**
* The id of the member who created this thread
@@ -176,6 +184,16 @@ class ThreadChannel extends Channel {
if (data.messages) for (const message of data.messages) this.messages._add(message);
}
+ /**
+ * The timestamp when this thread was created. This isn't available for threads
+ * created before 2022-01-09
+ * @type {?number}
+ * @readonly
+ */
+ get createdTimestamp() {
+ return this._createdTimestamp;
+ }
+
/**
* A collection of associated guild member objects of this thread's members
* @type {Collection}
@@ -196,6 +214,15 @@ class ThreadChannel extends Channel {
return new Date(this.archiveTimestamp);
}
+ /**
+ * The time the thread was created at
+ * @type {?Date}
+ * @readonly
+ */
+ get createdAt() {
+ return this.createdTimestamp && new Date(this.createdTimestamp);
+ }
+
/**
* The parent channel of this thread
* @type {?(NewsChannel|TextChannel)}
@@ -288,14 +315,8 @@ class ThreadChannel extends Channel {
*/
async edit(data, reason) {
let autoArchiveDuration = data.autoArchiveDuration;
- if (data.autoArchiveDuration === 'MAX') {
- autoArchiveDuration = 1440;
- if (this.guild.features.includes('SEVEN_DAY_THREAD_ARCHIVE')) {
- autoArchiveDuration = 10080;
- } else if (this.guild.features.includes('THREE_DAY_THREAD_ARCHIVE')) {
- autoArchiveDuration = 4320;
- }
- }
+ if (autoArchiveDuration === 'MAX') autoArchiveDuration = resolveAutoArchiveMaxLimit(this.guild);
+
const newData = await this.client.api.channels(this.id).patch({
data: {
name: (data.name ?? this.name).trim(),
@@ -487,7 +508,15 @@ class ThreadChannel extends Channel {
* @readonly
*/
get unarchivable() {
- return this.archived && (this.locked ? this.manageable : this.sendable);
+ return this.archived && this.sendable && (!this.locked || this.manageable);
+ }
+
+ /**
+ * Whether this thread is a private thread
+ * @returns {boolean}
+ */
+ isPrivate() {
+ return this.type === 'GUILD_PRIVATE_THREAD';
}
/**
@@ -501,7 +530,7 @@ class ThreadChannel extends Channel {
* .catch(console.error);
*/
async delete(reason) {
- await this.client.api.channels(this.id).delete({ reason });
+ await this.guild.channels.delete(this.id, reason);
return this;
}
diff --git a/src/structures/VoiceChannel.js b/src/structures/VoiceChannel.js
index d3537715..3ad79269 100644
--- a/src/structures/VoiceChannel.js
+++ b/src/structures/VoiceChannel.js
@@ -2,6 +2,7 @@
const process = require('node:process');
const BaseGuildVoiceChannel = require('./BaseGuildVoiceChannel');
+const { VideoQualityModes } = require('../util/Constants');
const Permissions = require('../util/Permissions');
let deprecationEmittedForEditable = false;
@@ -11,6 +12,20 @@ let deprecationEmittedForEditable = false;
* @extends {BaseGuildVoiceChannel}
*/
class VoiceChannel extends BaseGuildVoiceChannel {
+ _patch(data) {
+ super._patch(data);
+
+ if ('video_quality_mode' in data) {
+ /**
+ * The camera video quality mode of the channel.
+ * @type {?VideoQualityMode}
+ */
+ this.videoQualityMode = VideoQualityModes[data.videoQualityMode];
+ } else {
+ this.videoQualityMode ??= null;
+ }
+ }
+
/**
* Whether the channel is editable by the client user
* @type {boolean}
@@ -87,17 +102,28 @@ class VoiceChannel extends BaseGuildVoiceChannel {
return this.edit({ userLimit }, reason);
}
+ /**
+ * Sets the camera video quality mode of the channel.
+ * @param {VideoQualityMode|number} videoQualityMode The new camera video quality mode.
+ * @param {string} [reason] Reason for changing the camera video quality mode.
+ * @returns {Promise}
+ */
+ setVideoQualityMode(videoQualityMode, reason) {
+ return this.edit({ videoQualityMode }, reason);
+ }
+
/**
* Sets the RTC region of the channel.
* @name VoiceChannel#setRTCRegion
- * @param {?string} region The new region of the channel. Set to `null` to remove a specific region for the channel
+ * @param {?string} rtcRegion The new region of the channel. Set to `null` to remove a specific region for the channel
+ * @param {string} [reason] The reason for modifying this region.
* @returns {Promise}
* @example
- * // Set the RTC region to europe
- * voiceChannel.setRTCRegion('europe');
+ * // Set the RTC region to sydney
+ * voiceChannel.setRTCRegion('sydney');
* @example
* // Remove a fixed region for this channel - let Discord decide automatically
- * voiceChannel.setRTCRegion(null);
+ * voiceChannel.setRTCRegion(null, 'We want to let Discord decide.');
*/
}
diff --git a/src/structures/VoiceRegion.js b/src/structures/VoiceRegion.js
index fe399b49..7cf6c881 100644
--- a/src/structures/VoiceRegion.js
+++ b/src/structures/VoiceRegion.js
@@ -22,6 +22,7 @@ class VoiceRegion {
/**
* Whether the region is VIP-only
* @type {boolean}
+ * @deprecated This property is no longer being sent by the API.
*/
this.vip = data.vip;
diff --git a/src/structures/VoiceState.js b/src/structures/VoiceState.js
index 7bf42812..d2185d54 100644
--- a/src/structures/VoiceState.js
+++ b/src/structures/VoiceState.js
@@ -118,7 +118,7 @@ class VoiceState extends Base {
* The time at which the member requested to speak. This property is specific to stage channels only.
* @type {?number}
*/
- this.requestToSpeakTimestamp = new Date(data.request_to_speak_timestamp).getTime();
+ this.requestToSpeakTimestamp = data.request_to_speak_timestamp && Date.parse(data.request_to_speak_timestamp);
} else {
this.requestToSpeakTimestamp ??= null;
}
diff --git a/src/structures/Webhook.js b/src/structures/Webhook.js
index f8c27f0e..6b2ddb27 100644
--- a/src/structures/Webhook.js
+++ b/src/structures/Webhook.js
@@ -116,6 +116,7 @@ class Webhook {
* @property {string} [username=this.name] Username override for the message
* @property {string} [avatarURL] Avatar URL override for the message
* @property {Snowflake} [threadId] The id of the thread in the channel to send to.
+ * @property {MessageFlags} [flags] Which flags to set for the message. Only `SUPPRESS_EMBEDS` can be set.
* For interaction webhooks, this property is ignored
*/
diff --git a/src/structures/interfaces/Application.js b/src/structures/interfaces/Application.js
index 738faee4..2334bdaa 100644
--- a/src/structures/interfaces/Application.js
+++ b/src/structures/interfaces/Application.js
@@ -1,11 +1,14 @@
'use strict';
+const process = require('node:process');
const { ClientApplicationAssetTypes, Endpoints } = require('../../util/Constants');
const SnowflakeUtil = require('../../util/SnowflakeUtil');
const Base = require('../Base');
const AssetTypes = Object.keys(ClientApplicationAssetTypes);
+let deprecationEmittedForFetchAssets = false;
+
/**
* Represents an OAuth2 Application.
* @abstract
@@ -13,10 +16,7 @@ const AssetTypes = Object.keys(ClientApplicationAssetTypes);
class Application extends Base {
constructor(client, data) {
super(client);
-
- if (data) {
- this._patch(data);
- }
+ this._patch(data);
}
_patch(data) {
@@ -106,8 +106,18 @@ class Application extends Base {
/**
* Gets the application's rich presence assets.
* @returns {Promise>}
+ * @deprecated This will be removed in the next major as it is unsupported functionality.
*/
async fetchAssets() {
+ if (!deprecationEmittedForFetchAssets) {
+ process.emitWarning(
+ 'Application#fetchAssets is deprecated as it is unsupported and will be removed in the next major version.',
+ 'DeprecationWarning',
+ );
+
+ deprecationEmittedForFetchAssets = true;
+ }
+
const assets = await this.client.api.oauth2.applications(this.id).assets.get();
return assets.map(a => ({
id: a.id,
diff --git a/src/structures/interfaces/InteractionResponses.js b/src/structures/interfaces/InteractionResponses.js
index dbe7c232..4d9a6f6c 100644
--- a/src/structures/interfaces/InteractionResponses.js
+++ b/src/structures/interfaces/InteractionResponses.js
@@ -1,9 +1,11 @@
'use strict';
const { Error } = require('../../errors');
-const { InteractionResponseTypes } = require('../../util/Constants');
+const { InteractionResponseTypes, InteractionTypes } = require('../../util/Constants');
const MessageFlags = require('../../util/MessageFlags');
+const InteractionCollector = require('../InteractionCollector');
const MessagePayload = require('../MessagePayload');
+const Modal = require('../Modal');
/**
* Interface for classes that support shared interaction response types.
@@ -28,6 +30,8 @@ class InteractionResponses {
* @typedef {BaseMessageOptions} InteractionReplyOptions
* @property {boolean} [ephemeral] Whether the reply should be ephemeral
* @property {boolean} [fetchReply] Whether to fetch the reply
+ * @property {MessageFlags} [flags] Which flags to set for the message.
+ * Only `SUPPRESS_EMBEDS` and `EPHEMERAL` can be set.
*/
/**
@@ -224,6 +228,56 @@ class InteractionResponses {
return options.fetchReply ? this.fetchReply() : undefined;
}
+ /**
+ * Shows a modal component
+ * @param {Modal|ModalOptions} modal The modal to show
+ * @returns {Promise}
+ */
+ async showModal(modal) {
+ if (this.deferred || this.replied) throw new Error('INTERACTION_ALREADY_REPLIED');
+
+ const _modal = modal instanceof Modal ? modal : new Modal(modal);
+ await this.client.api.interactions(this.id, this.token).callback.post({
+ data: {
+ type: InteractionResponseTypes.MODAL,
+ data: _modal.toJSON(),
+ },
+ });
+ this.replied = true;
+ }
+
+ /**
+ * An object containing the same properties as CollectorOptions, but a few more:
+ * @typedef {Object} AwaitModalSubmitOptions
+ * @property {CollectorFilter} [filter] The filter applied to this collector
+ * @property {number} time Time to wait for an interaction before rejecting
+ */
+
+ /**
+ * Collects a single modal submit interaction that passes the filter.
+ * The Promise will reject if the time expires.
+ * @param {AwaitModalSubmitOptions} options Options to pass to the internal collector
+ * @returns {Promise}
+ * @example
+ * // Collect a modal submit interaction
+ * const filter = (interaction) => interaction.customId === 'modal';
+ * interaction.awaitModalSubmit({ filter, time: 15_000 })
+ * .then(interaction => console.log(`${interaction.customId} was submitted!`))
+ * .catch(console.error);
+ */
+ awaitModalSubmit(options) {
+ if (typeof options.time !== 'number') throw new Error('INVALID_TYPE', 'time', 'number');
+ const _options = { ...options, max: 1, interactionType: InteractionTypes.MODAL_SUBMIT };
+ return new Promise((resolve, reject) => {
+ const collector = new InteractionCollector(this.client, _options);
+ collector.once('end', (interactions, reason) => {
+ const interaction = interactions.first();
+ if (interaction) resolve(interaction);
+ else reject(new Error('INTERACTION_COLLECTOR_ERROR', reason));
+ });
+ });
+ }
+
static applyToClass(structure, ignore = []) {
const props = [
'deferReply',
@@ -234,6 +288,8 @@ class InteractionResponses {
'followUp',
'deferUpdate',
'update',
+ 'showModal',
+ 'awaitModalSubmit',
];
for (const prop of props) {
diff --git a/src/structures/interfaces/TextBasedChannel.js b/src/structures/interfaces/TextBasedChannel.js
index 0c3c0df7..48060def 100644
--- a/src/structures/interfaces/TextBasedChannel.js
+++ b/src/structures/interfaces/TextBasedChannel.js
@@ -74,6 +74,7 @@ class TextBasedChannel {
* @typedef {BaseMessageOptions} MessageOptions
* @property {ReplyOptions} [reply] The options for replying to a message
* @property {StickerResolvable[]} [stickers=[]] Stickers to send in the message
+ * @property {MessageFlags} [flags] Which flags to set for the message. Only `SUPPRESS_EMBEDS` can be set.
*/
/**
@@ -129,7 +130,7 @@ class TextBasedChannel {
* channel.send({
* files: [{
* attachment: 'entire/path/to/file.jpg',
- * name: 'file.jpg'
+ * name: 'file.jpg',
* description: 'A description of the file'
* }]
* })
@@ -237,7 +238,7 @@ class TextBasedChannel {
}
/**
- * Creates a button interaction collector.
+ * Creates a component interaction collector.
* @param {MessageComponentCollectorOptions} [options={}] Options to send to the collector
* @returns {InteractionCollector}
* @example
diff --git a/src/util/Constants.js b/src/util/Constants.js
index 62916388..cf8258b6 100644
--- a/src/util/Constants.js
+++ b/src/util/Constants.js
@@ -156,6 +156,8 @@ exports.Endpoints = {
`${root}/stickers/${stickerId}.${stickerFormat === 'LOTTIE' ? 'json' : 'png'}`,
RoleIcon: (roleId, hash, format = 'webp', size) =>
makeImageUrl(`${root}/role-icons/${roleId}/${hash}`, { size, format }),
+ guildScheduledEventCover: (scheduledEventId, coverHash, format, size) =>
+ makeImageUrl(`${root}/guild-events/${scheduledEventId}/${coverHash}`, { size, format }),
};
},
invite: (root, code, eventId) => (eventId ? `${root}/${code}?event=${eventId}` : `${root}/${code}`),
@@ -647,6 +649,7 @@ exports.ActivityTypes = createEnum(['PLAYING', 'STREAMING', 'LISTENING', 'WATCHI
* * `GUILD_PUBLIC_THREAD` - a guild text channel's public thread channel
* * `GUILD_PRIVATE_THREAD` - a guild text channel's private thread channel
* * `GUILD_STAGE_VOICE` - a guild stage voice channel
+ * * `GUILD_DIRECTORY` - the channel in a hub containing guilds
* * `UNKNOWN` - a generic channel of unknown type, could be Channel or GuildChannel
* @typedef {string} ChannelType
* @see {@link https://discord.com/developers/docs/resources/channel#channel-object-channel-types}
@@ -665,6 +668,7 @@ exports.ChannelTypes = createEnum([
'GUILD_PUBLIC_THREAD',
'GUILD_PRIVATE_THREAD',
'GUILD_STAGE_VOICE',
+ 'GUILD_DIRECTORY',
]);
/**
@@ -676,6 +680,13 @@ exports.ChannelTypes = createEnum([
* @typedef {DMChannel|TextChannel|NewsChannel|ThreadChannel} TextBasedChannels
*/
+/**
+ * Data that resolves to give a text-based channel. This can be:
+ * * A text-based channel
+ * * A snowflake
+ * @typedef {TextBasedChannels|Snowflake} TextBasedChannelsResolvable
+ */
+
/**
* The types of channels that are text-based. The available types are:
* * DM
@@ -1160,6 +1171,7 @@ exports.ApplicationCommandOptionTypes = createEnum([
'ROLE',
'MENTIONABLE',
'NUMBER',
+ 'ATTACHMENT',
]);
/**
@@ -1186,6 +1198,7 @@ exports.InteractionTypes = createEnum([
'APPLICATION_COMMAND',
'MESSAGE_COMPONENT',
'APPLICATION_COMMAND_AUTOCOMPLETE',
+ 'MODAL_SUBMIT',
]);
/**
@@ -1209,6 +1222,7 @@ exports.InteractionResponseTypes = createEnum([
'DEFERRED_MESSAGE_UPDATE',
'UPDATE_MESSAGE',
'APPLICATION_COMMAND_AUTOCOMPLETE_RESULT',
+ 'MODAL',
]);
/**
@@ -1216,10 +1230,11 @@ exports.InteractionResponseTypes = createEnum([
* * ACTION_ROW
* * BUTTON
* * SELECT_MENU
+ * * TEXT_INPUT
* @typedef {string} MessageComponentType
* @see {@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}
*/
-exports.MessageComponentTypes = createEnum([null, 'ACTION_ROW', 'BUTTON', 'SELECT_MENU']);
+exports.MessageComponentTypes = createEnum([null, 'ACTION_ROW', 'BUTTON', 'SELECT_MENU', 'TEXT_INPUT']);
/**
* The style of a message button
@@ -1262,6 +1277,15 @@ exports.NSFWLevels = createEnum(['DEFAULT', 'EXPLICIT', 'SAFE', 'AGE_RESTRICTED'
*/
exports.PrivacyLevels = createEnum([null, 'PUBLIC', 'GUILD_ONLY']);
+/**
+ * The style of a text input component
+ * * SHORT
+ * * PARAGRAPH
+ * @typedef {string} TextInputStyle
+ * @see {@link https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles}
+ */
+exports.TextInputStyles = createEnum([null, 'SHORT', 'PARAGRAPH']);
+
/**
* Privacy level of a {@link GuildScheduledEvent} object:
* * GUILD_ONLY
@@ -1323,6 +1347,15 @@ exports.GuildScheduledEventStatuses = createEnum([null, 'SCHEDULED', 'ACTIVE', '
*/
exports.GuildScheduledEventEntityTypes = createEnum([null, 'STAGE_INSTANCE', 'VOICE', 'EXTERNAL']);
/* eslint-enable max-len */
+/**
+ * The camera video quality mode of a {@link VoiceChannel}:
+ * * AUTO
+ * * FULL
+ * @typedef {string} VideoQualityMode
+ * @see {@link https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes}
+ */
+exports.VideoQualityModes = createEnum([null, 'AUTO', 'FULL']);
+
exports.HypeSquadOptions = createEnum(['LEAVE', 'HOUSE_BRAVERY', 'HOUSE_BRILLIANCE', 'HOUSE_BALANCE']);
exports._cleanupSymbol = Symbol('djsCleanup');
@@ -1376,6 +1409,7 @@ function createEnum(keys) {
* @property {StickerFormatType} StickerFormatTypes The value set for a sticker's format type.
* @property {StickerType} StickerTypes The value set for a sticker's type.
* @property {VerificationLevel} VerificationLevels The value set for the verification levels for a guild.
+ * @property {VideoQualityMode} VideoQualityModes The camera video quality mode for a {@link VoiceChannel}.
* @property {WebhookType} WebhookTypes The value set for a webhook's type.
* @property {WSEventType} WSEvents The type of a WebSocket message event.
*/
diff --git a/src/util/Formatters.js b/src/util/Formatters.js
index 94c14b15..aa5888fd 100644
--- a/src/util/Formatters.js
+++ b/src/util/Formatters.js
@@ -10,7 +10,6 @@ const {
hyperlink,
inlineCode,
italic,
- memberNicknameMention,
quote,
roleMention,
spoiler,
@@ -111,15 +110,6 @@ Formatters.inlineCode = inlineCode;
*/
Formatters.italic = italic;
-/**
- * Formats a user id into a member-nickname mention.
- * @method memberNicknameMention
- * @memberof Formatters
- * @param {string} memberId The user id to format.
- * @returns {string}
- */
-Formatters.memberNicknameMention = memberNicknameMention;
-
/**
* Formats the content into a quote. This needs to be at the start of the line for Discord to format it.
* @method quote
diff --git a/src/util/Options.js b/src/util/Options.js
index 24d68f41..adca9d34 100644
--- a/src/util/Options.js
+++ b/src/util/Options.js
@@ -6,7 +6,7 @@ const JSONBig = require('json-bigint');
/**
* Rate limit data
* @typedef {Object} RateLimitData
- * @property {number} timeout Time until this rate limit ends, in ms
+ * @property {number} timeout Time until this rate limit ends, in milliseconds
* @property {number} limit The maximum amount of requests of this endpoint
* @property {string} method The HTTP method of this request
* @property {string} path The path of the request relative to the HTTP endpoint
@@ -77,7 +77,7 @@ const JSONBig = require('json-bigint');
* @property {PresenceData} [presence={}] Presence data to use upon login
* @property {IntentsResolvable} [intents] Intents to enable for this connection
* @property {number} [waitGuildTimeout=15_000] Time in milliseconds that Clients with the GUILDS intent should wait for
- * missing guilds to be recieved before starting the bot. If not specified, the default is 15 seconds.
+ * missing guilds to be received before starting the bot. If not specified, the default is 15 seconds.
* @property {SweeperOptions} [sweepers={}] Options for cache sweeping
* @property {WebsocketOptions} [ws] Options for the WebSocket
* @property {HTTPOptions} [http] HTTP options
diff --git a/src/util/SnowflakeUtil.js b/src/util/SnowflakeUtil.js
index 3e89efd7..94fb4514 100644
--- a/src/util/SnowflakeUtil.js
+++ b/src/util/SnowflakeUtil.js
@@ -16,7 +16,7 @@ class SnowflakeUtil extends null {
* ```
* 64 22 17 12 0
* 000000111011000111100001101001000101000000 00001 00000 000000000000
- * number of ms since Discord epoch worker pid increment
+ * number of milliseconds since Discord epoch worker pid increment
* ```
* @typedef {string} Snowflake
*/
diff --git a/src/util/Sweepers.js b/src/util/Sweepers.js
index ab91bf95..a826115a 100644
--- a/src/util/Sweepers.js
+++ b/src/util/Sweepers.js
@@ -192,6 +192,15 @@ class Sweepers {
return this._sweepGuildDirectProp('stageInstances', filter, { outputName: 'stage instances' }).items;
}
+ /**
+ * Sweeps all guild stickers and removes the ones which are indicated by the filter.
+ * @param {Function} filter The function used to determine which stickers will be removed from the caches.
+ * @returns {number} Amount of stickers that were removed from the caches
+ */
+ sweepStickers(filter) {
+ return this._sweepGuildDirectProp('stickers', filter).items;
+ }
+
/**
* Sweeps all thread members and removes the ones which are indicated by the filter.
* It is highly recommended to keep the client thread member cached
diff --git a/src/util/Util.js b/src/util/Util.js
index 7901f778..12e84e9f 100644
--- a/src/util/Util.js
+++ b/src/util/Util.js
@@ -10,6 +10,7 @@ const { Error: DiscordError, RangeError, TypeError } = require('../errors');
const has = (o, k) => Object.prototype.hasOwnProperty.call(o, k);
const isObject = d => typeof d === 'object' && d !== null;
+let deprecationEmittedForSplitMessage = false;
let deprecationEmittedForRemoveMentions = false;
/**
@@ -70,9 +71,19 @@ class Util extends null {
* Splits a string into multiple chunks at a designated character that do not exceed a specific length.
* @param {string} text Content to split
* @param {SplitOptions} [options] Options controlling the behavior of the split
+ * @deprecated This will be removed in the next major version.
* @returns {string[]}
*/
static splitMessage(text, { maxLength = 2_000, char = '\n', prepend = '', append = '' } = {}) {
+ if (!deprecationEmittedForSplitMessage) {
+ process.emitWarning(
+ 'The Util.splitMessage method is deprecated and will be removed in the next major version.',
+ 'DeprecationWarning',
+ );
+
+ deprecationEmittedForSplitMessage = true;
+ }
+
text = Util.verifyString(text);
if (text.length <= maxLength) return [text];
let splitText = [text];
@@ -603,6 +614,17 @@ class Util extends null {
filter.isDefault = true;
return filter;
}
+
+ /**
+ * Resolves the maximum time a guild's thread channels should automatcally archive in case of no recent activity.
+ * @param {Guild} guild The guild to resolve this limit from.
+ * @returns {number}
+ */
+ static resolveAutoArchiveMaxLimit({ features }) {
+ if (features.includes('SEVEN_DAY_THREAD_ARCHIVE')) return 10080;
+ if (features.includes('THREE_DAY_THREAD_ARCHIVE')) return 4320;
+ return 1440;
+ }
}
module.exports = Util;
diff --git a/typings/enums.d.ts b/typings/enums.d.ts
index 463d7b20..43dd665f 100644
--- a/typings/enums.d.ts
+++ b/typings/enums.d.ts
@@ -79,6 +79,7 @@ export const enum ApplicationCommandOptionTypes {
ROLE = 8,
MENTIONABLE = 9,
NUMBER = 10,
+ ATTACHMENT = 11,
}
export const enum ApplicationCommandPermissionTypes {
@@ -99,6 +100,7 @@ export const enum ChannelTypes {
GUILD_PUBLIC_THREAD = 11,
GUILD_PRIVATE_THREAD = 12,
GUILD_STAGE_VOICE = 13,
+ GUILD_DIRECTORY = 14,
}
export const enum MessageTypes {
@@ -168,6 +170,7 @@ export const enum InteractionResponseTypes {
DEFERRED_MESSAGE_UPDATE = 6,
UPDATE_MESSAGE = 7,
APPLICATION_COMMAND_AUTOCOMPLETE_RESULT = 8,
+ MODAL = 9,
}
export const enum InteractionTypes {
@@ -175,6 +178,7 @@ export const enum InteractionTypes {
APPLICATION_COMMAND = 2,
MESSAGE_COMPONENT = 3,
APPLICATION_COMMAND_AUTOCOMPLETE = 4,
+ MODAL_SUBMIT = 5,
}
export const enum InviteTargetType {
@@ -199,6 +203,12 @@ export const enum MessageComponentTypes {
ACTION_ROW = 1,
BUTTON = 2,
SELECT_MENU = 3,
+ TEXT_INPUT = 4,
+}
+
+export const enum ModalComponentTypes {
+ ACTION_ROW = 1,
+ TEXT_INPUT = 4,
}
export const enum MFALevels {
@@ -241,6 +251,11 @@ export const enum StickerTypes {
GUILD = 2,
}
+export const enum TextInputStyles {
+ SHORT = 1,
+ PARAGRAPH = 2,
+}
+
export const enum VerificationLevels {
NONE = 0,
LOW = 1,
@@ -249,6 +264,11 @@ export const enum VerificationLevels {
VERY_HIGH = 4,
}
+export const enum VideoQualityModes {
+ AUTO = 1,
+ FULL = 2,
+}
+
export const enum WebhookTypes {
Incoming = 1,
'Channel Follower' = 2,
diff --git a/typings/index.d.ts b/typings/index.d.ts
index fabf1e5f..e907868d 100644
--- a/typings/index.d.ts
+++ b/typings/index.d.ts
@@ -8,7 +8,6 @@ import {
hyperlink,
inlineCode,
italic,
- memberNicknameMention,
quote,
roleMention,
spoiler,
@@ -22,6 +21,7 @@ import {
import { Collection } from '@discordjs/collection';
import {
APIActionRowComponent,
+ APIActionRowComponentTypes,
APIApplicationCommand,
APIApplicationCommandInteractionData,
APIApplicationCommandOption,
@@ -35,7 +35,9 @@ import {
APIInteractionDataResolvedGuildMember,
APIInteractionGuildMember,
APIMessage,
+ APIMessageActionRowComponent,
APIMessageComponent,
+ APIModalActionRowComponent,
APIOverwrite,
APIPartialChannel,
APIPartialEmoji,
@@ -49,6 +51,8 @@ import {
GatewayVoiceStateUpdateDispatchData,
RESTPostAPIApplicationCommandsJSONBody,
Snowflake,
+ LocalizationMap,
+ LocalizedString,
} from 'discord-api-types/v9';
import { ChildProcess } from 'node:child_process';
import { EventEmitter } from 'node:events';
@@ -76,6 +80,7 @@ import {
MessageButtonStyles,
MessageComponentTypes,
MessageTypes,
+ ModalComponentTypes,
MFALevels,
NSFWLevels,
OverwriteTypes,
@@ -83,12 +88,14 @@ import {
PrivacyLevels,
StickerFormatTypes,
StickerTypes,
+ TextInputStyles,
VerificationLevels,
WebhookTypes,
GuildScheduledEventEntityTypes,
GuildScheduledEventStatuses,
GuildScheduledEventPrivacyLevels,
HypeSquadOptions,
+ VideoQualityModes,
} from './enums';
import {
RawActivityData,
@@ -123,6 +130,7 @@ import {
RawMessagePayloadData,
RawMessageReactionData,
RawMessageSelectMenuInteractionData,
+ RawModalSubmitInteractionData,
RawOAuth2GuildData,
RawPartialGroupDMChannelData,
RawPartialMessageData,
@@ -136,6 +144,7 @@ import {
RawStickerPackData,
RawTeamData,
RawTeamMemberData,
+ RawTextInputComponentData,
RawThreadChannelData,
RawThreadMemberData,
RawTypingData,
@@ -191,6 +200,7 @@ export abstract class AnonymousGuild extends BaseGuild {
public banner: string | null;
public description: string | null;
public nsfwLevel: NSFWLevel;
+ public premiumSubscriptionCount: number | null;
public splash: string | null;
public vanityURLCode: string | null;
public verificationLevel: VerificationLevel;
@@ -207,6 +217,7 @@ export abstract class Application extends Base {
public id: Snowflake;
public name: string | null;
public coverURL(options?: StaticImageURLOptions): string | null;
+ /** @deprecated This method is deprecated as it is unsupported and will be removed in the next major version. */
public fetchAssets(): Promise;
public iconURL(options?: StaticImageURLOptions): string | null;
public toJSON(): unknown;
@@ -220,12 +231,16 @@ export class ApplicationCommand extends Base {
public readonly createdTimestamp: number;
public defaultPermission: boolean;
public description: string;
+ public descriptionLocalizations: LocalizationMap | null;
+ public descriptionLocalized: string | null;
public guild: Guild | null;
public guildId: Snowflake | null;
public readonly manager: ApplicationCommandManager;
public id: Snowflake;
public name: string;
- public options: ApplicationCommandOption[];
+ public nameLocalizations: LocalizationMap | null;
+ public nameLocalized: string | null;
+ public options: (ApplicationCommandOption & { nameLocalized?: string; descriptionLocalized?: string })[];
public permissions: ApplicationCommandPermissionsManager<
PermissionsFetchType,
PermissionsFetchType,
@@ -238,7 +253,11 @@ export class ApplicationCommand extends Base {
public delete(): Promise>;
public edit(data: ApplicationCommandData): Promise>;
public setName(name: string): Promise>;
+ public setNameLocalizations(nameLocalizations: LocalizationMap): Promise>;
public setDescription(description: string): Promise>;
+ public setDescriptionLocalizations(
+ descriptionLocalizations: LocalizationMap,
+ ): Promise>;
public setDefaultPermission(defaultPermission?: boolean): Promise>;
public setOptions(options: ApplicationCommandOptionData[]): Promise>;
public equals(
@@ -330,6 +349,21 @@ export type GuildCacheMessage = CacheTypeReducer<
Message | APIMessage
>;
+export interface InteractionResponseFields {
+ deferred: boolean;
+ ephemeral: boolean | null;
+ replied: boolean;
+ webhook: InteractionWebhook;
+ reply(options: InteractionReplyOptions & { fetchReply: true }): Promise>;
+ reply(options: string | MessagePayload | InteractionReplyOptions): Promise;
+ deleteReply(): Promise;
+ editReply(options: string | MessagePayload | WebhookEditMessageOptions): Promise>;
+ deferReply(options: InteractionDeferReplyOptions & { fetchReply: true }): Promise>;
+ deferReply(options?: InteractionDeferReplyOptions): Promise;
+ fetchReply(): Promise>;
+ followUp(options: string | MessagePayload | InteractionReplyOptions): Promise>;
+}
+
export abstract class BaseCommandInteraction extends Interaction {
public readonly command: ApplicationCommand | ApplicationCommand<{ guild: GuildResolvable }> | null;
public options: Omit<
@@ -345,6 +379,7 @@ export abstract class BaseCommandInteraction;
public channelId: Snowflake;
public commandId: Snowflake;
@@ -353,7 +388,10 @@ export abstract class BaseCommandInteraction;
+ public awaitModalSubmit(
+ options: AwaitModalSubmitOptions,
+ ): Promise>;
+ public inGuild(): this is BaseCommandInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is BaseCommandInteraction<'cached'>;
public inRawGuild(): this is BaseCommandInteraction<'raw'>;
public deferReply(options: InteractionDeferReplyOptions & { fetchReply: true }): Promise>;
@@ -364,6 +402,7 @@ export abstract class BaseCommandInteraction>;
public reply(options: InteractionReplyOptions & { fetchReply: true }): Promise>;
public reply(options: string | MessagePayload | InteractionReplyOptions): Promise;
+ public showModal(modal: Modal | ModalOptions): Promise;
private transformOption(
option: APIApplicationCommandOption,
resolved: APIApplicationCommandInteractionData['resolved'],
@@ -411,7 +450,7 @@ export class BaseGuildTextChannel extends TextBasedChannelMixin(GuildChannel) {
public createWebhook(name: string, options?: ChannelWebhookCreateOptions): Promise;
public fetchInvites(cache?: boolean): Promise>;
public setDefaultAutoArchiveDuration(
- defaultAutoArchiveDuration: ThreadAutoArchiveDuration,
+ defaultAutoArchiveDuration: ThreadAutoArchiveDuration | 'MAX',
reason?: string,
): Promise;
public setNSFW(nsfw?: boolean, reason?: string): Promise;
@@ -430,7 +469,7 @@ export class BaseGuildVoiceChannel extends GuildChannel {
public bitrate: number;
public userLimit: number;
public createInvite(options?: CreateInviteOptions): Promise;
- public setRTCRegion(region: string | null): Promise;
+ public setRTCRegion(rtcRegion: string | null, reason?: string): Promise;
public fetchInvites(cache?: boolean): Promise>;
}
@@ -470,7 +509,7 @@ export class ButtonInteraction extends Mes
MessageButton | APIButtonComponent
>;
public componentType: 'BUTTON';
- public inGuild(): this is ButtonInteraction<'present'>;
+ public inGuild(): this is ButtonInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is ButtonInteraction<'cached'>;
public inRawGuild(): this is ButtonInteraction<'raw'>;
}
@@ -503,13 +542,14 @@ export type CategoryChannelTypes = ExcludeEnum<
| 'GUILD_NEWS_THREAD'
| 'GUILD_PRIVATE_THREAD'
| 'GUILD_CATEGORY'
+ | 'GUILD_DIRECTORY'
>;
export class CategoryChannel extends GuildChannel {
public readonly children: Collection>;
public type: 'GUILD_CATEGORY';
- public createChannel>(
+ public createChannel>(
name: string,
options: CategoryCreateChannelOptions & { type: T },
): Promise;
@@ -526,8 +566,8 @@ export type CategoryChannelResolvable = Snowflake | CategoryChannel;
export abstract class Channel extends Base {
public constructor(client: Client, data?: RawChannelData, immediatePatch?: boolean);
- public readonly createdAt: Date;
- public readonly createdTimestamp: number;
+ public readonly createdAt: Date | null;
+ public readonly createdTimestamp: number | null;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public id: Snowflake;
@@ -538,6 +578,7 @@ export abstract class Channel extends Base {
public isText(): this is TextBasedChannel;
public isVoice(): this is BaseGuildVoiceChannel;
public isThread(): this is ThreadChannel;
+ public isDirectory(): this is DirectoryChannel;
public toString(): ChannelMention;
}
@@ -621,6 +662,9 @@ export class ClientApplication extends Application {
public commands: ApplicationCommandManager;
public cover: string | null;
public flags: Readonly;
+ public tags: string[];
+ public installParams: ClientApplicationInstallParams | null;
+ public customInstallURL: string | null;
public owner: User | Team | null;
public readonly partial: boolean;
public rpcOrigins: string[];
@@ -763,7 +807,7 @@ export interface ApplicationCommandInteractionOptionResolver extends BaseCommandInteraction {
public options: Omit, 'getMessage' | 'getFocused'>;
- public inGuild(): this is CommandInteraction<'present'>;
+ public inGuild(): this is CommandInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is CommandInteraction<'cached'>;
public inRawGuild(): this is CommandInteraction<'raw'>;
public toString(): string;
@@ -776,11 +820,11 @@ export class AutocompleteInteraction exten
public commandName: string;
public responded: boolean;
public options: Omit, 'getMessage'>;
- public inGuild(): this is AutocompleteInteraction<'present'>;
+ public inGuild(): this is AutocompleteInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is AutocompleteInteraction<'cached'>;
public inRawGuild(): this is AutocompleteInteraction<'raw'>;
private transformOption(option: APIApplicationCommandOption): CommandInteractionOption;
- public respond(options: ApplicationCommandOptionChoice[]): Promise;
+ public respond(options: ApplicationCommandOptionChoiceData[]): Promise;
}
export class CommandInteractionOptionResolver {
@@ -837,8 +881,13 @@ export class CommandInteractionOptionResolver['member' | 'role' | 'user']> | null;
public getMessage(name: string, required: true): NonNullable['message']>;
public getMessage(name: string, required?: boolean): NonNullable['message']> | null;
- public getFocused(getFull: true): ApplicationCommandOptionChoice;
+ public getFocused(getFull: true): ApplicationCommandOptionChoiceData;
public getFocused(getFull?: boolean): string | number;
+ public getAttachment(name: string, required: true): NonNullable['attachment']>;
+ public getAttachment(
+ name: string,
+ required?: boolean,
+ ): NonNullable['attachment']> | null;
}
export class ContextMenuInteraction extends BaseCommandInteraction {
@@ -857,7 +906,7 @@ export class ContextMenuInteraction extend
>;
public targetId: Snowflake;
public targetType: Exclude;
- public inGuild(): this is ContextMenuInteraction<'present'>;
+ public inGuild(): this is ContextMenuInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is ContextMenuInteraction<'cached'>;
public inRawGuild(): this is ContextMenuInteraction<'raw'>;
private resolveContextMenuOptions(data: APIApplicationCommandInteractionData): CommandInteractionOption[];
@@ -992,7 +1041,7 @@ export class Guild extends AnonymousGuild {
/** @deprecated Use {@link GuildChannelManager.setPositions} instead */
public setChannelPositions(channelPositions: readonly ChannelPosition[]): Promise;
public setDefaultMessageNotifications(
- defaultMessageNotifications: DefaultMessageNotificationLevel | number,
+ defaultMessageNotifications: DefaultMessageNotificationLevel | number | null,
reason?: string,
): Promise;
public setDiscoverySplash(
@@ -1000,7 +1049,7 @@ export class Guild extends AnonymousGuild {
reason?: string,
): Promise;
public setExplicitContentFilter(
- explicitContentFilter: ExplicitContentFilterLevel | number,
+ explicitContentFilter: ExplicitContentFilterLevel | number | null,
reason?: string,
): Promise;
public setIcon(icon: BufferResolvable | Base64Resolvable | null, reason?: string): Promise;
@@ -1015,7 +1064,7 @@ export class Guild extends AnonymousGuild {
public setSplash(splash: BufferResolvable | Base64Resolvable | null, reason?: string): Promise;
public setSystemChannel(systemChannel: TextChannelResolvable | null, reason?: string): Promise;
public setSystemChannelFlags(systemChannelFlags: SystemChannelFlagsResolvable, reason?: string): Promise;
- public setVerificationLevel(verificationLevel: VerificationLevel | number, reason?: string): Promise;
+ public setVerificationLevel(verificationLevel: VerificationLevel | number | null, reason?: string): Promise;
public setPremiumProgressBarEnabled(enabled?: boolean, reason?: string): Promise;
public setCommunity(
stats: boolean,
@@ -1088,6 +1137,8 @@ export abstract class GuildChannel extends Channel {
private memberPermissions(member: GuildMember, checkAdmin: boolean): Readonly;
private rolePermissions(role: Role, checkAdmin: boolean): Readonly;
+ public readonly createdAt: Date;
+ public readonly createdTimestamp: number;
public readonly calculatedPosition: number;
public readonly deletable: boolean;
public guild: Guild;
@@ -1193,6 +1244,7 @@ export class GuildPreview extends Base {
public description: string | null;
public discoverySplash: string | null;
public emojis: Collection;
+ public stickers: Collection;
public features: GuildFeatures[];
public icon: string | null;
public id: Snowflake;
@@ -1229,7 +1281,8 @@ export class GuildScheduledEvent;
public edit>(
options: GuildScheduledEventEditOptions,
@@ -1328,6 +1381,7 @@ export class IntegrationApplication extends Application {
public termsOfServiceURL: string | null;
public privacyPolicyURL: string | null;
public rpcOrigins: string[];
+ /** @deprecated This property is no longer being sent by the API. */
public summary: string | null;
public hook: boolean | null;
public cover: string | null;
@@ -1339,7 +1393,7 @@ export class Intents extends BitField {
public static resolve(bit?: BitFieldResolvable): number;
}
-export type CacheType = 'cached' | 'raw' | 'present';
+export type CacheType = 'cached' | 'raw' | undefined;
export type CacheTypeReducer<
State extends CacheType,
@@ -1351,7 +1405,7 @@ export type CacheTypeReducer<
? CachedType
: [State] extends ['raw']
? RawType
- : [State] extends ['present']
+ : [State] extends ['raw' | 'cached']
? PresentType
: Fallback;
@@ -1381,7 +1435,7 @@ export class Interaction extends Base {
public memberPermissions: CacheTypeReducer>;
public locale: string;
public guildLocale: CacheTypeReducer;
- public inGuild(): this is Interaction<'present'>;
+ public inGuild(): this is Interaction<'raw' | 'cached'>;
public inCachedGuild(): this is Interaction<'cached'>;
public inRawGuild(): this is Interaction<'raw'>;
public isApplicationCommand(): this is BaseCommandInteraction;
@@ -1392,7 +1446,9 @@ export class Interaction extends Base {
public isUserContextMenu(): this is UserContextMenuInteraction;
public isMessageContextMenu(): this is MessageContextMenuInteraction;
public isMessageComponent(): this is MessageComponentInteraction;
+ public isModalSubmit(): this is ModalSubmitInteraction;
public isSelectMenu(): this is SelectMenuInteraction;
+ public isRepliable(): this is this & InteractionResponseFields;
}
export class InteractionCollector extends Collector {
@@ -1527,6 +1583,7 @@ export type MappedInteractionTypes = EnumValue
BUTTON: ButtonInteraction>;
SELECT_MENU: SelectMenuInteraction>;
ACTION_ROW: MessageComponentInteraction>;
+ TEXT_INPUT: ModalSubmitInteraction>;
}
>;
@@ -1591,7 +1648,7 @@ export class Message extends Base {
public fetchWebhook(): Promise;
public crosspost(): Promise;
public fetch(force?: boolean): Promise;
- public pin(): Promise;
+ public pin(reason?: string): Promise;
public react(emoji: EmojiIdentifierResolvable): Promise;
public removeAttachments(): Promise;
public reply(options: string | MessagePayload | ReplyMessageOptions): Promise;
@@ -1600,7 +1657,7 @@ export class Message extends Base {
public suppressEmbeds(suppress?: boolean): Promise;
public toJSON(): unknown;
public toString(): string;
- public unpin(): Promise;
+ public unpin(reason?: string): Promise;
public inGuild(): this is Message & this;
// Added
public markUnread(): Promise;
@@ -1609,22 +1666,20 @@ export class Message extends Base {
public contextMenu(botID: DiscordBotID, commandName: String): Promise;
}
-export class MessageActionRow extends BaseMessageComponent {
- public constructor(data?: MessageActionRow | MessageActionRowOptions | APIActionRowComponent);
+export class MessageActionRow<
+ T extends MessageActionRowComponent | ModalActionRowComponent = MessageActionRowComponent,
+ U = T extends ModalActionRowComponent ? ModalActionRowComponentResolvable : MessageActionRowComponentResolvable,
+ V = T extends ModalActionRowComponent
+ ? APIActionRowComponent
+ : APIActionRowComponent,
+> extends BaseMessageComponent {
+ public constructor(data?: MessageActionRow | MessageActionRowOptions | V);
public type: 'ACTION_ROW';
- public components: MessageActionRowComponent[];
- public addComponents(
- ...components: MessageActionRowComponentResolvable[] | MessageActionRowComponentResolvable[][]
- ): this;
- public setComponents(
- ...components: MessageActionRowComponentResolvable[] | MessageActionRowComponentResolvable[][]
- ): this;
- public spliceComponents(
- index: number,
- deleteCount: number,
- ...components: MessageActionRowComponentResolvable[] | MessageActionRowComponentResolvable[][]
- ): this;
- public toJSON(): APIActionRowComponent;
+ public components: T[];
+ public addComponents(...components: U[] | U[][]): this;
+ public setComponents(...components: U[] | U[][]): this;
+ public spliceComponents(index: number, deleteCount: number, ...components: U[] | U[][]): this;
+ public toJSON(): V;
}
export class MessageAttachment {
@@ -1688,9 +1743,9 @@ export class MessageComponentInteraction e
public readonly component: CacheTypeReducer<
Cached,
MessageActionRowComponent,
- Exclude,
- MessageActionRowComponent | Exclude,
- MessageActionRowComponent | Exclude
+ Exclude>,
+ MessageActionRowComponent | Exclude>,
+ MessageActionRowComponent | Exclude>
>;
public componentType: Exclude;
public customId: string;
@@ -1700,7 +1755,10 @@ export class MessageComponentInteraction e
public message: GuildCacheMessage;
public replied: boolean;
public webhook: InteractionWebhook;
- public inGuild(): this is MessageComponentInteraction<'present'>;
+ public awaitModalSubmit(
+ options: AwaitModalSubmitOptions,
+ ): Promise>;
+ public inGuild(): this is MessageComponentInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is MessageComponentInteraction<'cached'>;
public inRawGuild(): this is MessageComponentInteraction<'raw'>;
public deferReply(options: InteractionDeferReplyOptions & { fetchReply: true }): Promise>;
@@ -1713,6 +1771,7 @@ export class MessageComponentInteraction e
public followUp(options: string | MessagePayload | InteractionReplyOptions): Promise>;
public reply(options: InteractionReplyOptions & { fetchReply: true }): Promise>;
public reply(options: string | MessagePayload | InteractionReplyOptions): Promise;
+ public showModal(modal: Modal | ModalOptions): Promise;
public update(options: InteractionUpdateOptions & { fetchReply: true }): Promise>;
public update(options: string | MessagePayload | InteractionUpdateOptions): Promise;
@@ -1723,7 +1782,7 @@ export class MessageContextMenuInteraction<
Cached extends CacheType = CacheType,
> extends ContextMenuInteraction {
public readonly targetMessage: NonNullable['message']>;
- public inGuild(): this is MessageContextMenuInteraction<'present'>;
+ public inGuild(): this is MessageContextMenuInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is MessageContextMenuInteraction<'cached'>;
public inRawGuild(): this is MessageContextMenuInteraction<'raw'>;
}
@@ -1811,11 +1870,11 @@ export class MessageMentions {
everyone: boolean,
repliedUser?: APIUser | User,
);
- private _channels: Collection | null;
+ private _channels: Collection | null;
private readonly _content: string;
private _members: Collection | null;
- public readonly channels: Collection;
+ public readonly channels: Collection;
public readonly client: Client;
public everyone: boolean;
public readonly guild: Guild;
@@ -1900,6 +1959,84 @@ export class MessageSelectMenu extends BaseMessageComponent {
public select(message: Message, values: string[]): Promise;
}
+// Todo
+export class Modal {
+ public constructor(data?: Modal | ModalOptions);
+ public components: MessageActionRow[];
+ public customId: string | null;
+ public title: string | null;
+ public addComponents(
+ ...components: (
+ | MessageActionRow
+ | (Required & MessageActionRowOptions)
+ )[]
+ ): this;
+ public setComponents(
+ ...components: (
+ | MessageActionRow
+ | (Required & MessageActionRowOptions)
+ )[]
+ ): this;
+ public setCustomId(customId: string): this;
+ public spliceComponents(
+ index: number,
+ deleteCount: number,
+ ...components: (
+ | MessageActionRow
+ | (Required & MessageActionRowOptions)
+ )[]
+ ): this;
+ public setTitle(title: string): this;
+ public toJSON(): RawModalSubmitInteractionData;
+}
+
+export class ModalSubmitFieldsResolver {
+ constructor(components: PartialModalActionRow[]);
+ private readonly _fields: PartialTextInputData[];
+ public getField(customId: string): PartialTextInputData;
+ public getTextInputValue(customId: string): string;
+}
+
+export interface ModalMessageModalSubmitInteraction
+ extends ModalSubmitInteraction {
+ message: GuildCacheMessage;
+ update(options: InteractionUpdateOptions & { fetchReply: true }): Promise>;
+ update(options: string | MessagePayload | InteractionUpdateOptions): Promise;
+ deferUpdate(options: InteractionDeferUpdateOptions & { fetchReply: true }): Promise>;
+ deferUpdate(options?: InteractionDeferUpdateOptions): Promise;
+ inGuild(): this is ModalMessageModalSubmitInteraction<'raw' | 'cached'>;
+ inCachedGuild(): this is ModalMessageModalSubmitInteraction<'cached'>;
+ inRawGuild(): this is ModalMessageModalSubmitInteraction<'raw'>;
+}
+
+export class ModalSubmitInteraction extends Interaction {
+ protected constructor(client: Client, data: RawModalSubmitInteractionData);
+ public customId: string;
+ public components: PartialModalActionRow[];
+ public deferred: boolean;
+ public ephemeral: boolean | null;
+ public message: GuildCacheMessage | null;
+ public fields: ModalSubmitFieldsResolver;
+ public replied: false;
+ public webhook: InteractionWebhook;
+ public reply(options: InteractionReplyOptions & { fetchReply: true }): Promise>;
+ public reply(options: string | MessagePayload | InteractionReplyOptions): Promise;
+ public deleteReply(): Promise;
+ public editReply(options: string | MessagePayload | WebhookEditMessageOptions): Promise>;
+ public deferReply(options: InteractionDeferReplyOptions & { fetchReply: true }): Promise>;
+ public deferReply(options?: InteractionDeferReplyOptions): Promise;
+ public deferUpdate(options: InteractionDeferUpdateOptions & { fetchReply: true }): Promise>;
+ public deferUpdate(options?: InteractionDeferUpdateOptions): Promise;
+ public fetchReply(): Promise>;
+ public followUp(options: string | MessagePayload | InteractionReplyOptions): Promise>;
+ public inGuild(): this is ModalSubmitInteraction<'raw' | 'cached'>;
+ public inCachedGuild(): this is ModalSubmitInteraction<'cached'>;
+ public inRawGuild(): this is ModalSubmitInteraction<'raw'>;
+ public isFromMessage(): this is ModalMessageModalSubmitInteraction;
+ public update(options: InteractionUpdateOptions & { fetchReply: true }): Promise>;
+ public update(options: string | MessagePayload | InteractionUpdateOptions): Promise;
+}
+
export class NewsChannel extends BaseGuildTextChannel {
public threads: ThreadManager;
public type: 'GUILD_NEWS';
@@ -2076,7 +2213,7 @@ export class SelectMenuInteraction extends
>;
public componentType: 'SELECT_MENU';
public values: string[];
- public inGuild(): this is SelectMenuInteraction<'present'>;
+ public inGuild(): this is SelectMenuInteraction<'raw' | 'cached'>;
public inCachedGuild(): this is SelectMenuInteraction<'cached'>;
public inRawGuild(): this is SelectMenuInteraction<'raw'>;
}
@@ -2090,7 +2227,6 @@ export interface ShardEventTypes {
error: [error: Error];
message: [message: any];
}
-
export class Shard extends EventEmitter {
private constructor(manager: ShardingManager, id: number);
private _evals: Map>;
@@ -2098,6 +2234,8 @@ export class Shard extends EventEmitter {
private _fetches: Map>;
private _handleExit(respawn?: boolean, timeout?: number): void;
private _handleMessage(message: unknown): void;
+ private incrementMaxListeners(emitter: EventEmitter | ChildProcess): void;
+ private decrementMaxListeners(emitter: EventEmitter | ChildProcess): void;
public args: string[];
public execArgv: string[];
@@ -2131,6 +2269,8 @@ export class ShardClientUtil {
private constructor(client: Client, mode: ShardingManagerMode);
private _handleMessage(message: unknown): void;
private _respond(type: string, message: unknown): void;
+ private incrementMaxListeners(emitter: EventEmitter | ChildProcess): void;
+ private decrementMaxListeners(emitter: EventEmitter | ChildProcess): void;
public client: Client;
public readonly count: number;
@@ -2211,6 +2351,8 @@ export class StageChannel extends BaseGuildVoiceChannel {
public setTopic(topic: string): Promise;
}
+export class DirectoryChannel extends Channel {}
+
export class StageInstance extends Base {
private constructor(client: Client, data: RawStageInstanceData, channel: StageChannel);
public id: Snowflake;
@@ -2221,8 +2363,10 @@ export class StageInstance extends Base {
public topic: string;
public privacyLevel: PrivacyLevel;
public discoverableDisabled: boolean | null;
+ public guildScheduledEventId?: Snowflake;
public readonly channel: StageChannel | null;
public readonly guild: Guild | null;
+ public get guildScheduledEvent(): GuildScheduledEvent | null;
public edit(options: StageInstanceEditOptions): Promise;
public delete(): Promise;
public setTopic(topic: string): Promise