From 985681f1f6e25a5fc1b0a45cafa524a9f9de8ca7 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Sun, 21 Aug 2016 17:26:35 +0100 Subject: [PATCH 1/8] change doc gen --- docs/docs.json | 2 +- docs/gen/index.js | 166 ------------------ docs/generator/config.json | 4 + docs/generator/doc-scanner.js | 25 +++ docs/generator/documentation.js | 111 ++++++++++++ docs/generator/generator.js | 26 +++ docs/generator/types/DocumentedClass.js | 83 +++++++++ docs/generator/types/DocumentedConstructor.js | 32 ++++ docs/generator/types/DocumentedEvent.js | 72 ++++++++ docs/generator/types/DocumentedFunction.js | 91 ++++++++++ docs/generator/types/DocumentedInterface.js | 32 ++++ docs/generator/types/DocumentedItem.js | 17 ++ docs/generator/types/DocumentedItemMeta.js | 29 +++ docs/generator/types/DocumentedMember.js | 47 +++++ docs/generator/types/DocumentedParam.js | 35 ++++ docs/generator/types/DocumentedTypeDef.js | 44 +++++ docs/generator/types/DocumentedVarType.js | 47 +++++ package.json | 2 +- 18 files changed, 697 insertions(+), 168 deletions(-) delete mode 100644 docs/gen/index.js create mode 100644 docs/generator/config.json create mode 100644 docs/generator/doc-scanner.js create mode 100644 docs/generator/documentation.js create mode 100644 docs/generator/generator.js create mode 100644 docs/generator/types/DocumentedClass.js create mode 100644 docs/generator/types/DocumentedConstructor.js create mode 100644 docs/generator/types/DocumentedEvent.js create mode 100644 docs/generator/types/DocumentedFunction.js create mode 100644 docs/generator/types/DocumentedInterface.js create mode 100644 docs/generator/types/DocumentedItem.js create mode 100644 docs/generator/types/DocumentedItemMeta.js create mode 100644 docs/generator/types/DocumentedMember.js create mode 100644 docs/generator/types/DocumentedParam.js create mode 100644 docs/generator/types/DocumentedTypeDef.js create mode 100644 docs/generator/types/DocumentedVarType.js diff --git a/docs/docs.json b/docs/docs.json index cec5cb4c6..715a3f683 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1 +1 @@ -{"meta":{"version":10},"custom":{"general":{"Getting Started":"# Welcome!\ndiscord.js is an easy-to-use and intuitive JavaScript library that wraps around the Discord API.\n\n## Installation\nTo install discord.js from npm:\n```bash\nnpm i --save discord.js\n```\n\nTo install discord.js from the master branch:\n```bash\nnpm i --save hydrabolt/discord.js\n```\n\nTo install discord.js from the development branch:\n```bash\nnpm i --save hydrabolt/discord.js#indev\n```\n\nTo install discord.js from the rewrite branch:\n```bash\nnpm i --save hydrabolt/discord.js#indev-rewrite\n```\n\n## Tutorials\nLuckyEvie, a helper in the discord.js channel, has put together a great tutorial on getting to grips with discord.js.\nIt's worth a read and you can find it [here.](https://eslachance.gitbooks.io/discord-js-bot-guide/content/samples/selfbots,_the_awesomest_thing_in_the_universe.html)\n"}},"json":{"classes":{"Client":{"meta":{"id":"Client","longname":"Client","name":"Client","scope":"global","kind":"class","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"lineno":18,"filename":"Client.js","path":"src/client"},"order":0},"functions":[{"id":"Client#login","longname":"Client#login","name":"login","scope":"instance","kind":"function","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","params":[{"type":{"names":["String"]},"description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","name":"emailOrToken"},{"type":{"names":["String"]},"optional":true,"description":"The password for the account, only needed if an email was provided.","name":"password"}],"examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"returns":[[["Promise",".<"],["String",">"]]],"meta":{"lineno":120,"filename":"Client.js","path":"src/client"},"order":15}],"properties":[{"id":"Client#rest","longname":"Client#rest","name":"rest","scope":"instance","kind":"member","description":"The REST manager of the client","memberof":"Client","type":[[[["RESTManager"],""]]],"access":"private","meta":{"lineno":32,"filename":"Client.js","path":"src/client"},"order":2},{"id":"Client#dataManager","longname":"Client#dataManager","name":"dataManager","scope":"instance","kind":"member","description":"The data manager of the Client","memberof":"Client","type":[[[["ClientDataManager"],""]]],"access":"private","meta":{"lineno":38,"filename":"Client.js","path":"src/client"},"order":3},{"id":"Client#manager","longname":"Client#manager","name":"manager","scope":"instance","kind":"member","description":"The manager of the Client","memberof":"Client","type":[[[["ClientManager"],""]]],"access":"private","meta":{"lineno":44,"filename":"Client.js","path":"src/client"},"order":4},{"id":"Client#ws","longname":"Client#ws","name":"ws","scope":"instance","kind":"member","description":"The WebSocket Manager of the Client","memberof":"Client","type":[[[["WebSocketManager"],""]]],"access":"private","meta":{"lineno":50,"filename":"Client.js","path":"src/client"},"order":5},{"id":"Client#resolver","longname":"Client#resolver","name":"resolver","scope":"instance","kind":"member","description":"The Data Resolver of the Client","memberof":"Client","type":[[[["ClientDataResolver"],""]]],"access":"private","meta":{"lineno":56,"filename":"Client.js","path":"src/client"},"order":6},{"id":"Client#actions","longname":"Client#actions","name":"actions","scope":"instance","kind":"member","description":"The Action Manager of the Client","memberof":"Client","type":[[[["ActionsManager"],""]]],"access":"private","meta":{"lineno":62,"filename":"Client.js","path":"src/client"},"order":7},{"id":"Client#users","longname":"Client#users","name":"users","scope":"instance","kind":"member","description":"A map of the Client's stored users","memberof":"Client","type":[[["Map",".<"],["String",", "],["User",">"]]],"meta":{"lineno":68,"filename":"Client.js","path":"src/client"},"order":8},{"id":"Client#guilds","longname":"Client#guilds","name":"guilds","scope":"instance","kind":"member","description":"A map of the Client's stored guilds","memberof":"Client","type":[[["Map",".<"],["String",", "],["Guild",">"]]],"meta":{"lineno":73,"filename":"Client.js","path":"src/client"},"order":9},{"id":"Client#channels","longname":"Client#channels","name":"channels","scope":"instance","kind":"member","description":"A map of the Client's stored channels","memberof":"Client","type":[[["Map",".<"],["String",", "],["Channel",">"]]],"meta":{"lineno":78,"filename":"Client.js","path":"src/client"},"order":10},{"id":"Client#token","longname":"Client#token","name":"token","scope":"instance","kind":"member","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":83,"filename":"Client.js","path":"src/client"},"order":11},{"id":"Client#user","longname":"Client#user","name":"user","scope":"instance","kind":"member","description":"The ClientUser representing the logged in Client","memberof":"Client","type":[[[["ClientUser"],""]]],"nullable":true,"meta":{"lineno":88,"filename":"Client.js","path":"src/client"},"order":12},{"id":"Client#email","longname":"Client#email","name":"email","scope":"instance","kind":"member","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":93,"filename":"Client.js","path":"src/client"},"order":13},{"id":"Client#password","longname":"Client#password","name":"password","scope":"instance","kind":"member","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":98,"filename":"Client.js","path":"src/client"},"order":14}],"events":[{"id":"Client#event:guildCreate","longname":"Client#event:guildCreate","name":"guildCreate","scope":"instance","kind":"event","description":"Emitted whenever the client joins a Guild.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the created guild.","name":"guild"}]}],"meta":{"lineno":24,"filename":"ClientDataManager.js","path":"src/client"},"order":16},{"id":"Client#event:guildMemberRolesUpdate","longname":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","scope":"instance","kind":"event","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the guild that the update affects","name":"guild"},{"type":[[["Array",".<"],["Role",">"]]],"description":"the roles before the update","name":"oldRoles"},{"type":[[[["Guild"],""]]],"description":"the roles after the update","name":"newRoles"}]}],"meta":{"lineno":91,"filename":"Guild.js","path":"src/structures"},"order":57},{"id":"Client#event:channelUpdate","longname":"Client#event:channelUpdate","name":"channelUpdate","scope":"instance","kind":"event","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","params":[{"type":[{"type":[[[["Channel"],""]]],"description":"the channel before the update","name":"oldChannel"},{"type":[[[["Channel"],""]]],"description":"the channel after the update","name":"newChannel"}]}],"meta":{"lineno":31,"filename":"ChannelUpdate.js","path":"src/client/actions"},"order":180},{"id":"Client#event:guildUnavailable","longname":"Client#event:guildUnavailable","name":"guildUnavailable","scope":"instance","kind":"event","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the guild that has become unavailable.","name":"guild"}]}],"meta":{"lineno":49,"filename":"GuildDelete.js","path":"src/client/actions"},"order":181},{"id":"Client#event:guildMemberRemove","longname":"Client#event:guildMemberRemove","name":"guildMemberRemove","scope":"instance","kind":"event","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the guild that the member has left.","name":"guild"},{"type":[[[["GuildMember"],""]]],"description":"the member that has left the guild.","name":"member"}]}],"meta":{"lineno":49,"filename":"GuildMemberRemove.js","path":"src/client/actions"},"order":182},{"id":"Client#event:guildRoleCreate","longname":"Client#event:guildRoleCreate","name":"guildRoleCreate","scope":"instance","kind":"event","description":"Emitted whenever a guild role is created.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the guild that the role was created in.","name":"guild"},{"type":[[[["Role"],""]]],"description":"the role that was created.","name":"role"}]}],"meta":{"lineno":32,"filename":"GuildRoleCreate.js","path":"src/client/actions"},"order":183},{"id":"Client#event:guildRoleDelete","longname":"Client#event:guildRoleDelete","name":"guildRoleDelete","scope":"instance","kind":"event","description":"Emitted whenever a guild role is deleted.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the guild that the role was deleted in.","name":"guild"},{"type":[[[["Role"],""]]],"description":"the role that was deleted.","name":"role"}]}],"meta":{"lineno":47,"filename":"GuildRoleDelete.js","path":"src/client/actions"},"order":184},{"id":"Client#event:guildRoleUpdated","longname":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","scope":"instance","kind":"event","description":"Emitted whenever a guild role is updated.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the guild that the role was updated in.","name":"guild"},{"type":[[[["Role"],""]]],"description":"the role before the update.","name":"oldRole"},{"type":[[[["Role"],""]]],"description":"the role after the update.","name":"newRole"}]}],"meta":{"lineno":36,"filename":"GuildRoleUpdate.js","path":"src/client/actions"},"order":185},{"id":"Client#event:guildUpdate","longname":"Client#event:guildUpdate","name":"guildUpdate","scope":"instance","kind":"event","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"the guild before the update.","name":"oldGuild"},{"type":[[[["Guild"],""]]],"description":"the guild after the update.","name":"newGuild"}]}],"meta":{"lineno":38,"filename":"GuildUpdate.js","path":"src/client/actions"},"order":186},{"id":"Client#event:messageUpdate","longname":"Client#event:messageUpdate","name":"messageUpdate","scope":"instance","kind":"event","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","params":[{"type":[{"type":[[[["Message"],""]]],"description":"the message before the update.","name":"oldMessage"},{"type":[[[["Message"],""]]],"description":"the message after the update.","name":"newMessage"}]}],"meta":{"lineno":36,"filename":"MessageUpdate.js","path":"src/client/actions"},"order":187},{"id":"Client#event:userUpdate","longname":"Client#event:userUpdate","name":"userUpdate","scope":"instance","kind":"event","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","params":[{"type":[{"type":[[[["ClientUser"],""]]],"description":"the client user before the update.","name":"oldClientUser"},{"type":[[[["ClientUser"],""]]],"description":"the client user after the update.","name":"newClientUser"}]}],"meta":{"lineno":36,"filename":"UserUpdate.js","path":"src/client/actions"},"order":188},{"id":"Client#event:channelCreate","longname":"Client#event:channelCreate","name":"channelCreate","scope":"instance","kind":"event","description":"Emitted whenever a Channel is created.","memberof":"Client","params":[{"type":[{"type":[[[["Channel"],""]]],"description":"The channel that was created","name":"channel"}]}],"meta":{"lineno":20,"filename":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"},"order":199},{"id":"Client#event:channelDelete","longname":"Client#event:channelDelete","name":"channelDelete","scope":"instance","kind":"event","description":"Emitted whenever a Channel is deleted.","memberof":"Client","params":[{"type":[{"type":[[[["Channel"],""]]],"description":"The channel that was deleted","name":"channel"}]}],"meta":{"lineno":20,"filename":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"},"order":200},{"id":"Client#event:guildBanAdd","longname":"Client#event:guildBanAdd","name":"guildBanAdd","scope":"instance","kind":"event","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"The guild that the ban occurred in","name":"guild"},{"type":[[[["User"],""]]],"description":"The user that was banned","name":"user"}]}],"meta":{"lineno":22,"filename":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"},"order":201},{"id":"Client#event:guildBanRemove","longname":"Client#event:guildBanRemove","name":"guildBanRemove","scope":"instance","kind":"event","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"The guild that the unban occurred in","name":"guild"},{"type":[[[["User"],""]]],"description":"The user that was unbanned","name":"user"}]}],"meta":{"lineno":23,"filename":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"},"order":202},{"id":"Client#event:guildDelete","longname":"Client#event:guildDelete","name":"guildDelete","scope":"instance","kind":"event","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"The guild that was deleted","name":"guild"}]}],"meta":{"lineno":19,"filename":"GuildDelete.js","path":"src/client/websocket/packets/handlers"},"order":203},{"id":"Client#event:guildMembersChunk","longname":"Client#event:guildMembersChunk","name":"guildMembersChunk","scope":"instance","kind":"event","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"The guild that the chunks relate to","name":"guild"},{"type":[[["Array",".<"],["GuildMember",">"]]],"description":"The members in the chunk","name":"members"}]}],"meta":{"lineno":25,"filename":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"},"order":204},{"id":"Client#event:message","longname":"Client#event:message","name":"message","scope":"instance","kind":"event","description":"Emitted whenever a message is created","memberof":"Client","params":[{"type":[{"type":[[[["Message"],""]]],"description":"The created message","name":"message"}]}],"meta":{"lineno":19,"filename":"MessageCreate.js","path":"src/client/websocket/packets/handlers"},"order":205},{"id":"Client#event:messageDelete","longname":"Client#event:messageDelete","name":"messageDelete","scope":"instance","kind":"event","description":"Emitted whenever a message is deleted","memberof":"Client","params":[{"type":[{"type":[[[["Message"],""]]],"description":"The deleted message","name":"message"}]}],"meta":{"lineno":19,"filename":"MessageDelete.js","path":"src/client/websocket/packets/handlers"},"order":206},{"id":"Client#event:presenceUpdate","longname":"Client#event:presenceUpdate","name":"presenceUpdate","scope":"instance","kind":"event","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","params":[{"type":[{"type":[[[["User"],""]]],"description":"the user before the presence update","name":"oldUser"},{"type":[[[["User"],""]]],"description":"the user after the presence update","name":"newUser"}]}],"meta":{"lineno":66,"filename":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"order":207},{"id":"Client#event:guildMemberAvailable","longname":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","scope":"instance","kind":"event","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","params":[{"type":[{"type":[[[["Guild"],""]]],"description":"The guild that the member became available in","name":"guild"},{"type":[[[["GuildMember"],""]]],"description":"the member that became available","name":"member"}]}],"meta":{"lineno":74,"filename":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"order":208},{"id":"Client#event:typingStart","longname":"Client#event:typingStart","name":"typingStart","scope":"instance","kind":"event","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","params":[{"type":[{"type":[[[["Channel"],""]]],"description":"the channel the user started typing in","name":"channel"},{"type":[[[["User"],""]]],"description":"the user that started typing","name":"user"}]}],"meta":{"lineno":52,"filename":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"order":209},{"id":"Client#event:typingStop","longname":"Client#event:typingStop","name":"typingStop","scope":"instance","kind":"event","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","params":[{"type":[{"type":[[[["Channel"],""]]],"description":"the channel the user stopped typing in","name":"channel"},{"type":[[[["User"],""]]],"description":"the user that stopped typing","name":"user"}]}],"meta":{"lineno":60,"filename":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"order":210},{"id":"Client#event:voiceStateUpdate","longname":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","scope":"instance","kind":"event","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","params":[{"type":[{"type":[[[["GuildMember"],""]]],"description":"the member before the voice state update","name":"oldMember"},{"type":[[[["GuildMember"],""]]],"description":"the member before the voice state update","name":"newMember"}]}],"meta":{"lineno":34,"filename":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"},"order":211},{"id":"Client#event:ready","longname":"Client#event:ready","name":"ready","scope":"instance","kind":"event","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"lineno":185,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":230,"params":[{}]},{"id":"Client#event:reconnecting","longname":"Client#event:reconnecting","name":"reconnecting","scope":"instance","kind":"event","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"lineno":204,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":232,"params":[{}]}],"constructor":{"id":"Client()","longname":"Client","name":"Client","kind":"constructor","description":"Creates an instance of Client.","memberof":"Client","params":[{"type":{"names":["Object"]},"optional":true,"description":"options to pass to the client","name":"options"}],"order":1}},"ClientDataResolver":{"meta":{"id":"ClientDataResolver","longname":"ClientDataResolver","name":"ClientDataResolver","scope":"global","kind":"class","description":"The DataResolver identifies different objects and tries to resolve a specific piece of information from them, e.g.\nextracting a User from a Message object.","access":"private","meta":{"lineno":18,"filename":"ClientDataResolver.js","path":"src/client"},"order":17},"functions":[{"id":"ClientDataResolver#resolveUser","longname":"ClientDataResolver#resolveUser","name":"resolveUser","scope":"instance","kind":"function","description":"Resolves a UserResolvable to a User object","memberof":"ClientDataResolver","params":[{"type":{"names":["UserResolvable"]},"description":"the UserResolvable to identify","name":"user"}],"returns":[[[["User"],""]]],"meta":{"lineno":37,"filename":"ClientDataResolver.js","path":"src/client"},"order":19},{"id":"ClientDataResolver#resolveGuild","longname":"ClientDataResolver#resolveGuild","name":"resolveGuild","scope":"instance","kind":"function","description":"Resolves a GuildResolvable to a Guild object","memberof":"ClientDataResolver","params":[{"type":{"names":["GuildResolvable"]},"description":"the GuildResolvable to identify","name":"guild"}],"returns":[[[["Guild"],""]]],"meta":{"lineno":62,"filename":"ClientDataResolver.js","path":"src/client"},"order":21},{"id":"ClientDataResolver#resolveGuildMember","longname":"ClientDataResolver#resolveGuildMember","name":"resolveGuildMember","scope":"instance","kind":"function","description":"Resolves a GuildMemberResolvable to a GuildMember object","memberof":"ClientDataResolver","params":[{"type":{"names":["GuildResolvable"]},"description":"the guild that the member is part of","name":"guild"},{"type":{"names":["UserResolvable"]},"description":"the user that is part of the guild","name":"user"}],"returns":[[[["GuildMember"],""]]],"meta":{"lineno":81,"filename":"ClientDataResolver.js","path":"src/client"},"order":23},{"id":"ClientDataResolver#resolveBase64","longname":"ClientDataResolver#resolveBase64","name":"resolveBase64","scope":"instance","kind":"function","description":"Resolves a Base64Resolvable to a Base 64 image","memberof":"ClientDataResolver","params":[{"type":{"names":["Base64Resolvable"]},"description":"the base 64 resolvable you want to resolve","name":"dataResolvable"}],"returns":[[[["String"],""]]],"meta":{"lineno":110,"filename":"ClientDataResolver.js","path":"src/client"},"order":25},{"id":"ClientDataResolver#resolveChannel","longname":"ClientDataResolver#resolveChannel","name":"resolveChannel","scope":"instance","kind":"function","description":"Resolves a ChannelResolvable to a Channel object","memberof":"ClientDataResolver","params":[{"type":{"names":["ChannelResolvable"]},"description":"the channel resolvable to resolve","name":"channelResolvable"}],"returns":[[[["Channel"],""]]],"meta":{"lineno":130,"filename":"ClientDataResolver.js","path":"src/client"},"order":27},{"id":"ClientDataResolver#resolveString","longname":"ClientDataResolver#resolveString","name":"resolveString","scope":"instance","kind":"function","description":"Resolves a StringResolvable to a String","memberof":"ClientDataResolver","params":[{"type":{"names":["StringResolvable"]},"description":"the string resolvable to resolve","name":"stringResolvable"}],"returns":[[[["String"],""]]],"meta":{"lineno":155,"filename":"ClientDataResolver.js","path":"src/client"},"order":29}],"properties":[],"events":[]},"ClientManager":{"meta":{"id":"ClientManager","longname":"ClientManager","name":"ClientManager","scope":"global","kind":"class","description":"Manages the State and Background Tasks of the Client","access":"private","meta":{"lineno":7,"filename":"ClientManager.js","path":"src/client"},"order":30},"functions":[{"id":"ClientManager#connectToWebSocket","longname":"ClientManager#connectToWebSocket","name":"connectToWebSocket","scope":"instance","kind":"function","description":"Connects the Client to the WebSocket","memberof":"ClientManager","params":[{"type":{"names":["String"]},"description":"the authorization token","name":"token"},{"type":{"names":["function"]},"description":"function to run when connection is successful","name":"resolve"},{"type":{"names":["function"]},"description":"function to run when connection fails","name":"reject"}],"returns":[[[["null"],""]]],"meta":{"lineno":29,"filename":"ClientManager.js","path":"src/client"},"order":33},{"id":"ClientManager#setupKeepAlive","longname":"ClientManager#setupKeepAlive","name":"setupKeepAlive","scope":"instance","kind":"function","description":"Sets up a keep-alive interval to keep the Client's connection valid","memberof":"ClientManager","params":[{"type":{"names":["Number"]},"description":"the interval in milliseconds at which heartbeat packets should be sent","name":"time"}],"returns":[[[["null"],""]]],"meta":{"lineno":46,"filename":"ClientManager.js","path":"src/client"},"order":34}],"properties":[{"id":"ClientManager#client","longname":"ClientManager#client","name":"client","scope":"instance","kind":"member","description":"The Client that instantiated this Manager","memberof":"ClientManager","type":[[[["Client"],""]]],"meta":{"lineno":14,"filename":"ClientManager.js","path":"src/client"},"order":31},{"id":"ClientManager#heartbeatInterval","longname":"ClientManager#heartbeatInterval","name":"heartbeatInterval","scope":"instance","kind":"member","description":"The heartbeat interval, null if not yet set","memberof":"ClientManager","type":[[[["Number"],""]]],"nullable":true,"meta":{"lineno":19,"filename":"ClientManager.js","path":"src/client"},"order":32}],"events":[]},"Channel":{"meta":{"id":"Channel","longname":"Channel","name":"Channel","scope":"global","kind":"class","description":"Represents any Channel on Discord","meta":{"lineno":4,"filename":"Channel.js","path":"src/structures"},"order":35},"functions":[{"id":"Channel#delete","longname":"Channel#delete","name":"delete","scope":"instance","kind":"function","description":"Deletes the channel","memberof":"Channel","params":[],"examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"returns":[[["Promise",".<"],["Channel",">"]]],"meta":{"lineno":39,"filename":"Channel.js","path":"src/structures"},"order":38}],"properties":[{"id":"Channel#client","longname":"Channel#client","name":"client","scope":"instance","kind":"member","description":"The client that instantiated the Channel","memberof":"Channel","type":[[[["Client"],""]]],"meta":{"lineno":10,"filename":"Channel.js","path":"src/structures"},"order":36},{"id":"Channel#id","longname":"Channel#id","name":"id","scope":"instance","kind":"member","description":"The unique ID of the channel","memberof":"Channel","type":[[[["String"],""]]],"meta":{"lineno":27,"filename":"Channel.js","path":"src/structures"},"order":37}],"events":[]},"ClientUser":{"meta":{"id":"ClientUser","longname":"ClientUser","name":"ClientUser","scope":"global","kind":"class","augments":["User"],"description":"Represents the logged in client's Discord User","meta":{"lineno":7,"filename":"ClientUser.js","path":"src/structures"},"order":39},"functions":[{"id":"ClientUser#setUsername","longname":"ClientUser#setUsername","name":"setUsername","scope":"instance","kind":"function","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","params":[{"type":{"names":["String"]},"description":"the new username","name":"username"}],"examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["ClientUser",">"]]],"meta":{"lineno":34,"filename":"ClientUser.js","path":"src/structures"},"order":42},{"id":"ClientUser#setEmail","longname":"ClientUser#setEmail","name":"setEmail","scope":"instance","kind":"function","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","params":[{"type":{"names":["String"]},"description":"the new email","name":"email"}],"examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["ClientUser",">"]]],"meta":{"lineno":49,"filename":"ClientUser.js","path":"src/structures"},"order":43},{"id":"ClientUser#setPassword","longname":"ClientUser#setPassword","name":"setPassword","scope":"instance","kind":"function","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","params":[{"type":{"names":["String"]},"description":"the new password","name":"password"}],"examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"returns":[[["Promise",".<"],["ClientUser",">"]]],"meta":{"lineno":64,"filename":"ClientUser.js","path":"src/structures"},"order":44},{"id":"ClientUser#setAvatar","longname":"ClientUser#setAvatar","name":"setAvatar","scope":"instance","kind":"function","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","params":[{"type":{"names":["Base64Resolvable"]},"description":"the new avatar","name":"avatar"}],"examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["ClientUser",">"]]],"meta":{"lineno":77,"filename":"ClientUser.js","path":"src/structures"},"order":45},{"id":"ClientUser#toString","longname":"ClientUser#toString","name":"toString","scope":"instance","kind":"function","inherits":"User#toString","inherited":true,"description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","params":[],"examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"returns":[[[["String"],""]]],"meta":{"lineno":64,"filename":"User.js","path":"src/structures"},"order":284},{"id":"ClientUser#deleteDM","longname":"ClientUser#deleteDM","name":"deleteDM","scope":"instance","kind":"function","inherits":"User#deleteDM","inherited":true,"description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","params":[],"returns":[[["Promise",".<"],["DMChannel",">"]]],"meta":{"lineno":72,"filename":"User.js","path":"src/structures"},"order":285},{"id":"ClientUser#equals","longname":"ClientUser#equals","name":"equals","scope":"instance","kind":"function","inherits":"User#equals","inherited":true,"description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","params":[{"type":{"names":["User"]},"description":"the user to compare","name":"user"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":82,"filename":"User.js","path":"src/structures"},"order":286},{"id":"ClientUser#sendMessage","longname":"ClientUser#sendMessage","name":"sendMessage","scope":"instance","kind":"function","inherits":"User#sendMessage","inherited":true,"implements":["TextBasedChannel#sendMessage"],"description":"Send a message to this channel","memberof":"ClientUser","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"},{"type":{"names":["MessageOptions"]},"optional":true,"defaultvalue":"{}","description":"the options to provide","name":"options"}],"examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":25,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":287},{"id":"ClientUser#sendTTSMessage","longname":"ClientUser#sendTTSMessage","name":"sendTTSMessage","scope":"instance","kind":"function","inherits":"User#sendTTSMessage","inherited":true,"implements":["TextBasedChannel#sendTTSMessage"],"description":"Send a text-to-speech message to this channel","memberof":"ClientUser","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"}],"examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":38,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":288}],"properties":[{"id":"ClientUser#verified","longname":"ClientUser#verified","name":"verified","scope":"instance","kind":"member","description":"Whether or not this account has been verified","memberof":"ClientUser","type":[[[["Boolean"],""]]],"meta":{"lineno":14,"filename":"ClientUser.js","path":"src/structures"},"order":40},{"id":"ClientUser#email","longname":"ClientUser#email","name":"email","scope":"instance","kind":"member","description":"The email of this account","memberof":"ClientUser","type":[[[["String"],""]]],"meta":{"lineno":19,"filename":"ClientUser.js","path":"src/structures"},"order":41},{"id":"ClientUser#username","longname":"ClientUser#username","name":"username","scope":"instance","kind":"member","inherits":"User#username","inherited":true,"description":"The username of the User","memberof":"ClientUser","type":[[[["String"],""]]],"meta":{"lineno":20,"filename":"User.js","path":"src/structures"},"order":277},{"id":"ClientUser#id","longname":"ClientUser#id","name":"id","scope":"instance","kind":"member","inherits":"User#id","inherited":true,"description":"The ID of the User","memberof":"ClientUser","type":[[[["String"],""]]],"meta":{"lineno":25,"filename":"User.js","path":"src/structures"},"order":278},{"id":"ClientUser#discriminator","longname":"ClientUser#discriminator","name":"discriminator","scope":"instance","kind":"member","inherits":"User#discriminator","inherited":true,"description":"A discriminator based on username for the User","memberof":"ClientUser","type":[[[["String"],""]]],"meta":{"lineno":30,"filename":"User.js","path":"src/structures"},"order":279},{"id":"ClientUser#avatar","longname":"ClientUser#avatar","name":"avatar","scope":"instance","kind":"member","inherits":"User#avatar","inherited":true,"description":"The ID of the user's avatar","memberof":"ClientUser","type":[[[["String"],""]]],"meta":{"lineno":35,"filename":"User.js","path":"src/structures"},"order":280},{"id":"ClientUser#bot","longname":"ClientUser#bot","name":"bot","scope":"instance","kind":"member","inherits":"User#bot","inherited":true,"description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":[[[["Boolean"],""]]],"meta":{"lineno":40,"filename":"User.js","path":"src/structures"},"order":281},{"id":"ClientUser#status","longname":"ClientUser#status","name":"status","scope":"instance","kind":"member","inherits":"User#status","inherited":true,"description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":[[[["String"],""]]],"meta":{"lineno":49,"filename":"User.js","path":"src/structures"},"order":282},{"id":"ClientUser#game","longname":"ClientUser#game","name":"game","scope":"instance","kind":"member","inherits":"User#game","inherited":true,"description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":[[[["String"],""]]],"meta":{"lineno":54,"filename":"User.js","path":"src/structures"},"order":283}],"events":[]},"DMChannel":{"meta":{"id":"DMChannel","longname":"DMChannel","name":"DMChannel","scope":"global","kind":"class","augments":["Channel"],"implements":["TextBasedChannel"],"description":"Represents a Direct Message Channel between two users.","meta":{"lineno":10,"filename":"DMChannel.js","path":"src/structures"},"order":46},"functions":[{"id":"DMChannel#toString","longname":"DMChannel#toString","name":"toString","scope":"instance","kind":"function","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","params":[],"returns":[[[["String"],""]]],"meta":{"lineno":36,"filename":"DMChannel.js","path":"src/structures"},"order":49},{"id":"DMChannel#sendMessage","longname":"DMChannel#sendMessage","name":"sendMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendMessage"],"description":"Send a message to this channel","memberof":"DMChannel","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"},{"type":{"names":["MessageOptions"]},"optional":true,"defaultvalue":"{}","description":"the options to provide","name":"options"}],"examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":25,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":240},{"id":"DMChannel#sendTTSMessage","longname":"DMChannel#sendTTSMessage","name":"sendTTSMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendTTSMessage"],"description":"Send a text-to-speech message to this channel","memberof":"DMChannel","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"}],"examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":38,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":241},{"id":"DMChannel#delete","longname":"DMChannel#delete","name":"delete","scope":"instance","kind":"function","inherits":"Channel#delete","inherited":true,"description":"Deletes the channel","memberof":"DMChannel","params":[],"examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"returns":[[["Promise",".<"],["Channel",">"]]],"meta":{"lineno":39,"filename":"Channel.js","path":"src/structures"},"order":249}],"properties":[{"id":"DMChannel#recipient","longname":"DMChannel#recipient","name":"recipient","scope":"instance","kind":"member","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":[[[["User"],""]]],"meta":{"lineno":23,"filename":"DMChannel.js","path":"src/structures"},"order":47},{"id":"DMChannel#lastMessageID","longname":"DMChannel#lastMessageID","name":"lastMessageID","scope":"instance","kind":"member","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":28,"filename":"DMChannel.js","path":"src/structures"},"order":48},{"id":"DMChannel#messages","longname":"DMChannel#messages","name":"messages","scope":"instance","kind":"member","implements":["TextBasedChannel#messages"],"description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":[[["Map",".<"],["String",", "],["Message",">"]]],"meta":{"lineno":12,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":239},{"id":"DMChannel#client","longname":"DMChannel#client","name":"client","scope":"instance","kind":"member","inherits":"Channel#client","inherited":true,"description":"The client that instantiated the Channel","memberof":"DMChannel","type":[[[["Client"],""]]],"meta":{"lineno":10,"filename":"Channel.js","path":"src/structures"},"order":247},{"id":"DMChannel#id","longname":"DMChannel#id","name":"id","scope":"instance","kind":"member","inherits":"Channel#id","inherited":true,"description":"The unique ID of the channel","memberof":"DMChannel","type":[[[["String"],""]]],"meta":{"lineno":27,"filename":"Channel.js","path":"src/structures"},"order":248}],"events":[]},"Guild":{"meta":{"id":"Guild","longname":"Guild","name":"Guild","scope":"global","kind":"class","description":"Represents a Guild (or a Server) on Discord.","meta":{"lineno":24,"filename":"Guild.js","path":"src/structures"},"order":50},"functions":[{"id":"Guild#toString","longname":"Guild#toString","name":"toString","scope":"instance","kind":"function","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","params":[],"examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"returns":[[[["String"],""]]],"meta":{"lineno":117,"filename":"Guild.js","path":"src/structures"},"order":58},{"id":"Guild#kick","longname":"Guild#kick","name":"kick","scope":"instance","kind":"function","description":"Tries to kick a member from the guild.","memberof":"Guild","params":[{"type":{"names":["GuildMemberResolvable"]},"description":"the member to kick","name":"member"}],"examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"returns":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]],"meta":{"lineno":131,"filename":"Guild.js","path":"src/structures"},"order":59},{"id":"Guild#member","longname":"Guild#member","name":"member","scope":"instance","kind":"function","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","params":[{"type":{"names":["UserResolvable"]},"description":"the user that you want to obtain the GuildMember of.","name":"user"}],"examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"returns":[[[["GuildMember"],""]],[[["null"],""]]],"meta":{"lineno":143,"filename":"Guild.js","path":"src/structures"},"order":60},{"id":"Guild#equals","longname":"Guild#equals","name":"equals","scope":"instance","kind":"function","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.","memberof":"Guild","params":[{"type":{"names":["Guild"]},"description":"the guild to compare","name":"guild"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":154,"filename":"Guild.js","path":"src/structures"},"order":61},{"id":"Guild#setup","longname":"Guild#setup","name":"setup","scope":"instance","kind":"function","description":"Sets up the Guild","memberof":"Guild","params":[{"type":{"names":["any"]},"name":"data"}],"returns":[[[["null"],""]]],"access":"private","meta":{"lineno":188,"filename":"Guild.js","path":"src/structures"},"order":62},{"id":"Guild#createChannel","longname":"Guild#createChannel","name":"createChannel","scope":"instance","kind":"function","description":"Creates a new Channel in the Guild.","memberof":"Guild","params":[{"type":{"names":["String"]},"description":"the name of the new channel.","name":"name"},{"type":{"names":["String"]},"description":"the type of the new channel, either `text` or `voice`.","name":"type"}],"examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"returns":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]],"meta":{"lineno":328,"filename":"Guild.js","path":"src/structures"},"order":78},{"id":"Guild#createRole","longname":"Guild#createRole","name":"createRole","scope":"instance","kind":"function","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","params":[],"examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":341,"filename":"Guild.js","path":"src/structures"},"order":79},{"id":"Guild#leave","longname":"Guild#leave","name":"leave","scope":"instance","kind":"function","description":"Causes the Client to leave the guild.","memberof":"Guild","params":[],"examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":354,"filename":"Guild.js","path":"src/structures"},"order":80},{"id":"Guild#delete","longname":"Guild#delete","name":"delete","scope":"instance","kind":"function","description":"Causes the Client to delete the guild.","memberof":"Guild","params":[],"examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":367,"filename":"Guild.js","path":"src/structures"},"order":81},{"id":"Guild#edit","longname":"Guild#edit","name":"edit","scope":"instance","kind":"function","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","params":[{"type":{"names":["GuildEditData"]},"description":"the data to update the guild with.","name":"data"}],"examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":384,"filename":"Guild.js","path":"src/structures"},"order":82},{"id":"Guild#setName","longname":"Guild#setName","name":"setName","scope":"instance","kind":"function","description":"Edit the name of the Guild.","memberof":"Guild","params":[{"type":{"names":["String"]},"description":"the new name of the Guild.","name":"name"}],"examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":398,"filename":"Guild.js","path":"src/structures"},"order":83},{"id":"Guild#setRegion","longname":"Guild#setRegion","name":"setRegion","scope":"instance","kind":"function","description":"Edit the region of the Guild.","memberof":"Guild","params":[{"type":{"names":["Region"]},"description":"the new region of the guild.","name":"region"}],"examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":412,"filename":"Guild.js","path":"src/structures"},"order":84},{"id":"Guild#setVerificationLevel","longname":"Guild#setVerificationLevel","name":"setVerificationLevel","scope":"instance","kind":"function","description":"Edit the verification level of the Guild.","memberof":"Guild","params":[{"type":{"names":["VerificationLevel"]},"description":"the new verification level of the guild.","name":"verificationLevel"}],"examples":["// edit the guild verification level\nguild.setVerificationLevel(1)\n .then(updated => console.log(`Updated guild verification level to ${guild.verificationLevel}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":426,"filename":"Guild.js","path":"src/structures"},"order":85},{"id":"Guild#setAFKChannel","longname":"Guild#setAFKChannel","name":"setAFKChannel","scope":"instance","kind":"function","description":"Edit the AFK channel of the Guild.","memberof":"Guild","params":[{"type":{"names":["GuildChannelResolvable"]},"description":"the new AFK channel.","name":"afkChannel"}],"examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":440,"filename":"Guild.js","path":"src/structures"},"order":86},{"id":"Guild#setAFKTimeout","longname":"Guild#setAFKTimeout","name":"setAFKTimeout","scope":"instance","kind":"function","description":"Edit the AFK timeout of the Guild.","memberof":"Guild","params":[{"type":{"names":["Number"]},"description":"the time in seconds that a user must be idle to be considered AFK.","name":"afkTimeout"}],"examples":["// edit the guild AFK channel\nguild.setAFKTimeout(60)\n .then(updated => console.log(`Updated guild AFK timeout to ${guild.afkTimeout}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":454,"filename":"Guild.js","path":"src/structures"},"order":87},{"id":"Guild#setIcon","longname":"Guild#setIcon","name":"setIcon","scope":"instance","kind":"function","description":"Set a new Guild Icon.","memberof":"Guild","params":[{"type":{"names":["Base64Resolvable"]},"description":"the new icon of the guild.","name":"icon"}],"examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":468,"filename":"Guild.js","path":"src/structures"},"order":88},{"id":"Guild#setOwner","longname":"Guild#setOwner","name":"setOwner","scope":"instance","kind":"function","description":"Sets a new owner of the Guild.","memberof":"Guild","params":[{"type":{"names":["GuildMemberResolvable"]},"description":"the new owner of the Guild.","name":"owner"}],"examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":482,"filename":"Guild.js","path":"src/structures"},"order":89},{"id":"Guild#setSplash","longname":"Guild#setSplash","name":"setSplash","scope":"instance","kind":"function","description":"Set a new Guild Splash Logo.","memberof":"Guild","params":[{"type":{"names":["Base64Resolvable"]},"description":"the new splash screen of the guild.","name":"splash"}],"examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Guild",", "],["Error",">"]]],"meta":{"lineno":496,"filename":"Guild.js","path":"src/structures"},"order":90}],"properties":[{"id":"Guild#client","longname":"Guild#client","name":"client","scope":"instance","kind":"member","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":[[[["Client"],""]]],"meta":{"lineno":30,"filename":"Guild.js","path":"src/structures"},"order":51},{"id":"Guild#members","longname":"Guild#members","name":"members","scope":"instance","kind":"member","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":[[["Map",".<"],["String",", "],["GuildMember",">"]]],"meta":{"lineno":36,"filename":"Guild.js","path":"src/structures"},"order":52},{"id":"Guild#channels","longname":"Guild#channels","name":"channels","scope":"instance","kind":"member","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":[[["Map",".<"],["String",", "],["GuildChannel",">"]]],"meta":{"lineno":42,"filename":"Guild.js","path":"src/structures"},"order":53},{"id":"Guild#roles","longname":"Guild#roles","name":"roles","scope":"instance","kind":"member","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":[[["Map",".<"],["String",", "],["Role",">"]]],"meta":{"lineno":48,"filename":"Guild.js","path":"src/structures"},"order":54},{"id":"Guild#available","longname":"Guild#available","name":"available","scope":"instance","kind":"member","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":[[[["Boolean"],""]]],"meta":{"lineno":59,"filename":"Guild.js","path":"src/structures"},"order":55},{"id":"Guild#id","longname":"Guild#id","name":"id","scope":"instance","kind":"member","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":[[[["String"],""]]],"meta":{"lineno":64,"filename":"Guild.js","path":"src/structures"},"order":56},{"id":"Guild#splash","longname":"Guild#splash","name":"splash","scope":"instance","kind":"member","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":195,"filename":"Guild.js","path":"src/structures"},"order":63},{"id":"Guild#region","longname":"Guild#region","name":"region","scope":"instance","kind":"member","description":"The region the guild is located in","memberof":"Guild","type":[[[["String"],""]]],"meta":{"lineno":200,"filename":"Guild.js","path":"src/structures"},"order":64},{"id":"Guild#name","longname":"Guild#name","name":"name","scope":"instance","kind":"member","description":"The name of the guild","memberof":"Guild","type":[[[["String"],""]]],"meta":{"lineno":205,"filename":"Guild.js","path":"src/structures"},"order":65},{"id":"Guild#memberCount","longname":"Guild#memberCount","name":"memberCount","scope":"instance","kind":"member","description":"The amount of initial members in the guild.","memberof":"Guild","type":[[[["Number"],""]]],"meta":{"lineno":210,"filename":"Guild.js","path":"src/structures"},"order":66},{"id":"Guild#large","longname":"Guild#large","name":"large","scope":"instance","kind":"member","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":[[[["Boolean"],""]]],"meta":{"lineno":215,"filename":"Guild.js","path":"src/structures"},"order":67},{"id":"Guild#joinDate","longname":"Guild#joinDate","name":"joinDate","scope":"instance","kind":"member","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":[[[["Date"],""]]],"meta":{"lineno":220,"filename":"Guild.js","path":"src/structures"},"order":68},{"id":"Guild#icon","longname":"Guild#icon","name":"icon","scope":"instance","kind":"member","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":225,"filename":"Guild.js","path":"src/structures"},"order":69},{"id":"Guild#features","longname":"Guild#features","name":"features","scope":"instance","kind":"member","description":"An array of guild features.","memberof":"Guild","type":[[["Array",".<"],["Object",">"]]],"meta":{"lineno":230,"filename":"Guild.js","path":"src/structures"},"order":70},{"id":"Guild#emojis","longname":"Guild#emojis","name":"emojis","scope":"instance","kind":"member","description":"An array of guild emojis.","memberof":"Guild","type":[[["Array",".<"],["Object",">"]]],"meta":{"lineno":235,"filename":"Guild.js","path":"src/structures"},"order":71},{"id":"Guild#afkTimeout","longname":"Guild#afkTimeout","name":"afkTimeout","scope":"instance","kind":"member","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":[[[["Number"],""]]],"nullable":true,"meta":{"lineno":240,"filename":"Guild.js","path":"src/structures"},"order":72},{"id":"Guild#afkChannelID","longname":"Guild#afkChannelID","name":"afkChannelID","scope":"instance","kind":"member","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":245,"filename":"Guild.js","path":"src/structures"},"order":73},{"id":"Guild#embedEnabled","longname":"Guild#embedEnabled","name":"embedEnabled","scope":"instance","kind":"member","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":[[[["Boolean"],""]]],"meta":{"lineno":250,"filename":"Guild.js","path":"src/structures"},"order":74},{"id":"Guild#verificationLevel","longname":"Guild#verificationLevel","name":"verificationLevel","scope":"instance","kind":"member","description":"The verification level of the guild.","memberof":"Guild","type":[[[["Number"],""]]],"meta":{"lineno":255,"filename":"Guild.js","path":"src/structures"},"order":75},{"id":"Guild#owner","longname":"Guild#owner","name":"owner","scope":"instance","kind":"member","description":"The owner of the guild","memberof":"Guild","type":[[[["User"],""]]],"meta":{"lineno":269,"filename":"Guild.js","path":"src/structures"},"order":76},{"id":"Guild#embedChannel","longname":"Guild#embedChannel","name":"embedChannel","scope":"instance","kind":"member","description":"The embed channel of the Guild.","memberof":"Guild","type":[[[["GuildChannel"],""]]],"meta":{"lineno":282,"filename":"Guild.js","path":"src/structures"},"order":77}],"events":[]},"GuildChannel":{"meta":{"id":"GuildChannel","longname":"GuildChannel","name":"GuildChannel","scope":"global","kind":"class","augments":["Channel"],"description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"lineno":25,"filename":"GuildChannel.js","path":"src/structures"},"order":91},"functions":[{"id":"GuildChannel#equals","longname":"GuildChannel#equals","name":"equals","scope":"instance","kind":"function","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.","memberof":"GuildChannel","params":[{"type":{"names":["GuildChannel"]},"description":"the channel to compare this channel to","name":"channel"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":76,"filename":"GuildChannel.js","path":"src/structures"},"order":98},{"id":"GuildChannel#permissionsFor","longname":"GuildChannel#permissionsFor","name":"permissionsFor","scope":"instance","kind":"function","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","params":[{"type":{"names":["GuildMemberResolvable"]},"description":"the user that you want to obtain the overall permissions for","name":"member"}],"returns":[[[["EvaluatedPermissions"],""]]],"meta":{"lineno":108,"filename":"GuildChannel.js","path":"src/structures"},"order":99},{"id":"GuildChannel#setName","longname":"GuildChannel#setName","name":"setName","scope":"instance","kind":"function","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","params":[{"type":{"names":["String"]},"description":"the new name for the guild channel","name":"name"}],"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.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":178,"filename":"GuildChannel.js","path":"src/structures"},"order":100},{"id":"GuildChannel#setPosition","longname":"GuildChannel#setPosition","name":"setPosition","scope":"instance","kind":"function","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","params":[{"type":{"names":["Number"]},"description":"the new position for the guild channel","name":"position"}],"examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":192,"filename":"GuildChannel.js","path":"src/structures"},"order":101},{"id":"GuildChannel#setTopic","longname":"GuildChannel#setTopic","name":"setTopic","scope":"instance","kind":"function","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","params":[{"type":{"names":["String"]},"description":"the new topic for the guild channel","name":"topic"}],"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.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":206,"filename":"GuildChannel.js","path":"src/structures"},"order":102},{"id":"GuildChannel#toString","longname":"GuildChannel#toString","name":"toString","scope":"instance","kind":"function","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","params":[],"examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"returns":[[[["String"],""]]],"meta":{"lineno":220,"filename":"GuildChannel.js","path":"src/structures"},"order":103},{"id":"GuildChannel#delete","longname":"GuildChannel#delete","name":"delete","scope":"instance","kind":"function","inherits":"Channel#delete","inherited":true,"description":"Deletes the channel","memberof":"GuildChannel","params":[],"examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"returns":[[["Promise",".<"],["Channel",">"]]],"meta":{"lineno":39,"filename":"Channel.js","path":"src/structures"},"order":276}],"properties":[{"id":"GuildChannel#type","longname":"GuildChannel#type","name":"type","scope":"instance","kind":"member","description":"The type of the Guild Channel","memberof":"GuildChannel","type":[[[["Number"],""]]],"meta":{"lineno":36,"filename":"GuildChannel.js","path":"src/structures"},"order":92},{"id":"GuildChannel#topic","longname":"GuildChannel#topic","name":"topic","scope":"instance","kind":"member","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":41,"filename":"GuildChannel.js","path":"src/structures"},"order":93},{"id":"GuildChannel#position","longname":"GuildChannel#position","name":"position","scope":"instance","kind":"member","description":"The position of the channel in the list.","memberof":"GuildChannel","type":[[[["Number"],""]]],"meta":{"lineno":46,"filename":"GuildChannel.js","path":"src/structures"},"order":94},{"id":"GuildChannel#name","longname":"GuildChannel#name","name":"name","scope":"instance","kind":"member","description":"The name of the Guild Channel","memberof":"GuildChannel","type":[[[["String"],""]]],"meta":{"lineno":51,"filename":"GuildChannel.js","path":"src/structures"},"order":95},{"id":"GuildChannel#lastMessageID","longname":"GuildChannel#lastMessageID","name":"lastMessageID","scope":"instance","kind":"member","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":56,"filename":"GuildChannel.js","path":"src/structures"},"order":96},{"id":"GuildChannel#permissionOverwrites","longname":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","scope":"instance","kind":"member","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":[[["Array",".<"],["PermissionOverwrites",">"]]],"meta":{"lineno":62,"filename":"GuildChannel.js","path":"src/structures"},"order":97},{"id":"GuildChannel#client","longname":"GuildChannel#client","name":"client","scope":"instance","kind":"member","inherits":"Channel#client","inherited":true,"description":"The client that instantiated the Channel","memberof":"GuildChannel","type":[[[["Client"],""]]],"meta":{"lineno":10,"filename":"Channel.js","path":"src/structures"},"order":274},{"id":"GuildChannel#id","longname":"GuildChannel#id","name":"id","scope":"instance","kind":"member","inherits":"Channel#id","inherited":true,"description":"The unique ID of the channel","memberof":"GuildChannel","type":[[[["String"],""]]],"meta":{"lineno":27,"filename":"Channel.js","path":"src/structures"},"order":275}],"events":[]},"GuildMember":{"meta":{"id":"GuildMember","longname":"GuildMember","name":"GuildMember","scope":"global","kind":"class","implements":["TextBasedChannel"],"description":"Represents a Member of a Guild on Discord","meta":{"lineno":7,"filename":"GuildMember.js","path":"src/structures"},"order":104},"functions":[{"id":"GuildMember#deleteDM","longname":"GuildMember#deleteDM","name":"deleteDM","scope":"instance","kind":"function","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","params":[],"returns":[[["Promise",".<"],["DMChannel",">"]]],"meta":{"lineno":133,"filename":"GuildMember.js","path":"src/structures"},"order":120},{"id":"GuildMember#kick","longname":"GuildMember#kick","name":"kick","scope":"instance","kind":"function","description":"Kick this member from the Guild","memberof":"GuildMember","params":[],"returns":[[["Promise",".<"],["GuildMember",">"]]],"meta":{"lineno":141,"filename":"GuildMember.js","path":"src/structures"},"order":121},{"id":"GuildMember#sendMessage","longname":"GuildMember#sendMessage","name":"sendMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendMessage"],"description":"Send a message to this channel","memberof":"GuildMember","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"},{"type":{"names":["MessageOptions"]},"optional":true,"defaultvalue":"{}","description":"the options to provide","name":"options"}],"examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":25,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":245},{"id":"GuildMember#sendTTSMessage","longname":"GuildMember#sendTTSMessage","name":"sendTTSMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendTTSMessage"],"description":"Send a text-to-speech message to this channel","memberof":"GuildMember","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"}],"examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":38,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":246}],"properties":[{"id":"GuildMember#client","longname":"GuildMember#client","name":"client","scope":"instance","kind":"member","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":[[[["Client"],""]]],"meta":{"lineno":13,"filename":"GuildMember.js","path":"src/structures"},"order":105},{"id":"GuildMember#guild","longname":"GuildMember#guild","name":"guild","scope":"instance","kind":"member","description":"The guild that this member is part of","memberof":"GuildMember","type":[[[["Guild"],""]]],"meta":{"lineno":18,"filename":"GuildMember.js","path":"src/structures"},"order":106},{"id":"GuildMember#user","longname":"GuildMember#user","name":"user","scope":"instance","kind":"member","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":[[[["User"],""]]],"meta":{"lineno":23,"filename":"GuildMember.js","path":"src/structures"},"order":107},{"id":"GuildMember#serverDeaf","longname":"GuildMember#serverDeaf","name":"serverDeaf","scope":"instance","kind":"member","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":[[[["Boolean"],""]]],"meta":{"lineno":36,"filename":"GuildMember.js","path":"src/structures"},"order":108},{"id":"GuildMember#serverMute","longname":"GuildMember#serverMute","name":"serverMute","scope":"instance","kind":"member","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":[[[["Boolean"],""]]],"meta":{"lineno":41,"filename":"GuildMember.js","path":"src/structures"},"order":109},{"id":"GuildMember#selfMute","longname":"GuildMember#selfMute","name":"selfMute","scope":"instance","kind":"member","description":"Whether this member is self-muted","memberof":"GuildMember","type":[[[["Boolean"],""]]],"meta":{"lineno":46,"filename":"GuildMember.js","path":"src/structures"},"order":110},{"id":"GuildMember#selfDeaf","longname":"GuildMember#selfDeaf","name":"selfDeaf","scope":"instance","kind":"member","description":"Whether this member is self-deafened","memberof":"GuildMember","type":[[[["Boolean"],""]]],"meta":{"lineno":51,"filename":"GuildMember.js","path":"src/structures"},"order":111},{"id":"GuildMember#voiceSessionID","longname":"GuildMember#voiceSessionID","name":"voiceSessionID","scope":"instance","kind":"member","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":56,"filename":"GuildMember.js","path":"src/structures"},"order":112},{"id":"GuildMember#voiceChannelID","longname":"GuildMember#voiceChannelID","name":"voiceChannelID","scope":"instance","kind":"member","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":61,"filename":"GuildMember.js","path":"src/structures"},"order":113},{"id":"GuildMember#joinDate","longname":"GuildMember#joinDate","name":"joinDate","scope":"instance","kind":"member","description":"The date this member joined the guild","memberof":"GuildMember","type":[[[["Date"],""]]],"meta":{"lineno":66,"filename":"GuildMember.js","path":"src/structures"},"order":114},{"id":"GuildMember#roles","longname":"GuildMember#roles","name":"roles","scope":"instance","kind":"member","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","params":[],"type":[[["Array",".<"],["Role",">"]]],"readonly":true,"meta":{"lineno":75,"filename":"GuildMember.js","path":"src/structures"},"order":115},{"id":"GuildMember#mute","longname":"GuildMember#mute","name":"mute","scope":"instance","kind":"member","description":"Whether this member is muted in any way","memberof":"GuildMember","params":[],"type":[[[["Boolean"],""]]],"readonly":true,"meta":{"lineno":98,"filename":"GuildMember.js","path":"src/structures"},"order":116},{"id":"GuildMember#deaf","longname":"GuildMember#deaf","name":"deaf","scope":"instance","kind":"member","description":"Whether this member is deafened in any way","memberof":"GuildMember","params":[],"type":[[[["Boolean"],""]]],"readonly":true,"meta":{"lineno":107,"filename":"GuildMember.js","path":"src/structures"},"order":117},{"id":"GuildMember#voiceChannel","longname":"GuildMember#voiceChannel","name":"voiceChannel","scope":"instance","kind":"member","description":"The voice channel this member is in, if any","memberof":"GuildMember","params":[],"type":[[[["VoiceChannel"],""]]],"readonly":true,"nullable":true,"meta":{"lineno":116,"filename":"GuildMember.js","path":"src/structures"},"order":118},{"id":"GuildMember#id","longname":"GuildMember#id","name":"id","scope":"instance","kind":"member","description":"The ID of this User","memberof":"GuildMember","params":[],"type":[[[["String"],""]]],"readonly":true,"meta":{"lineno":125,"filename":"GuildMember.js","path":"src/structures"},"order":119}],"events":[]},"Message":{"meta":{"id":"Message","longname":"Message","name":"Message","scope":"global","kind":"class","description":"Represents a Message on Discord","meta":{"lineno":4,"filename":"Message.js","path":"src/structures"},"order":122},"functions":[{"id":"Message#equals","longname":"Message#equals","name":"equals","scope":"instance","kind":"function","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.","memberof":"Message","params":[{"type":{"names":["Message"]},"description":"The message to compare it to","name":"message"},{"type":{"names":["Object"]},"description":"Raw data passed through the WebSocket about this message","name":"rawData"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":150,"filename":"Message.js","path":"src/structures"},"order":137},{"id":"Message#delete","longname":"Message#delete","name":"delete","scope":"instance","kind":"function","description":"Deletes the message","memberof":"Message","params":[],"examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",", "],["Error",">"]]],"meta":{"lineno":184,"filename":"Message.js","path":"src/structures"},"order":138},{"id":"Message#edit","longname":"Message#edit","name":"edit","scope":"instance","kind":"function","description":"Edit the content of a message","memberof":"Message","params":[{"type":{"names":["String"]},"description":"the new content of a message","name":"content"}],"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 from ${msg.author}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",", "],["Error",">"]]],"meta":{"lineno":198,"filename":"Message.js","path":"src/structures"},"order":139}],"properties":[{"id":"Message#channel","longname":"Message#channel","name":"channel","scope":"instance","kind":"member","description":"The channel that the message was sent in","memberof":"Message","type":[[[["Channel"],""]]],"meta":{"lineno":10,"filename":"Message.js","path":"src/structures"},"order":123},{"id":"Message#guild","longname":"Message#guild","name":"guild","scope":"instance","kind":"member","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":[[[["Guild"],""]]],"nullable":true,"meta":{"lineno":17,"filename":"Message.js","path":"src/structures"},"order":124},{"id":"Message#client","longname":"Message#client","name":"client","scope":"instance","kind":"member","description":"The client that instantiated the Message","memberof":"Message","type":[[[["Client"],""]]],"meta":{"lineno":24,"filename":"Message.js","path":"src/structures"},"order":125},{"id":"Message#author","longname":"Message#author","name":"author","scope":"instance","kind":"member","description":"The author of the message","memberof":"Message","type":[[[["User"],""]]],"meta":{"lineno":35,"filename":"Message.js","path":"src/structures"},"order":126},{"id":"Message#content","longname":"Message#content","name":"content","scope":"instance","kind":"member","description":"The content of the message","memberof":"Message","type":[[[["String"],""]]],"meta":{"lineno":40,"filename":"Message.js","path":"src/structures"},"order":127},{"id":"Message#timestamp","longname":"Message#timestamp","name":"timestamp","scope":"instance","kind":"member","description":"When the message was sent","memberof":"Message","type":[[[["Date"],""]]],"meta":{"lineno":45,"filename":"Message.js","path":"src/structures"},"order":128},{"id":"Message#editedTimestamp","longname":"Message#editedTimestamp","name":"editedTimestamp","scope":"instance","kind":"member","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":[[[["Date"],""]]],"nullable":true,"meta":{"lineno":50,"filename":"Message.js","path":"src/structures"},"order":129},{"id":"Message#tts","longname":"Message#tts","name":"tts","scope":"instance","kind":"member","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":[[[["Boolean"],""]]],"meta":{"lineno":55,"filename":"Message.js","path":"src/structures"},"order":130},{"id":"Message#mentionEveryone","longname":"Message#mentionEveryone","name":"mentionEveryone","scope":"instance","kind":"member","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":[[[["Boolean"],""]]],"meta":{"lineno":60,"filename":"Message.js","path":"src/structures"},"order":131},{"id":"Message#nonce","longname":"Message#nonce","name":"nonce","scope":"instance","kind":"member","description":"A random number used for checking message delivery","memberof":"Message","type":[[[["String"],""]]],"meta":{"lineno":65,"filename":"Message.js","path":"src/structures"},"order":132},{"id":"Message#embeds","longname":"Message#embeds","name":"embeds","scope":"instance","kind":"member","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":[[["Array",".<"],["Object",">"]]],"meta":{"lineno":70,"filename":"Message.js","path":"src/structures"},"order":133},{"id":"Message#attachments","longname":"Message#attachments","name":"attachments","scope":"instance","kind":"member","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":[[["Array",".<"],["Object",">"]]],"meta":{"lineno":75,"filename":"Message.js","path":"src/structures"},"order":134},{"id":"Message#mentions","longname":"Message#mentions","name":"mentions","scope":"instance","kind":"member","description":"A list of users mentioned in the message","memberof":"Message","type":[[["Array",".<"],["User",">"]]],"meta":{"lineno":80,"filename":"Message.js","path":"src/structures"},"order":135},{"id":"Message#id","longname":"Message#id","name":"id","scope":"instance","kind":"member","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":[[[["String"],""]]],"meta":{"lineno":85,"filename":"Message.js","path":"src/structures"},"order":136}],"events":[]},"PermissionOverwrites":{"meta":{"id":"PermissionOverwrites","longname":"PermissionOverwrites","name":"PermissionOverwrites","scope":"global","kind":"class","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"lineno":4,"filename":"PermissionOverwrites.js","path":"src/structures"},"order":140},"functions":[],"properties":[{"id":"PermissionOverwrites#channel","longname":"PermissionOverwrites#channel","name":"channel","scope":"instance","kind":"member","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":[[[["GuildChannel"],""]]],"meta":{"lineno":10,"filename":"PermissionOverwrites.js","path":"src/structures"},"order":141},{"id":"PermissionOverwrites#type","longname":"PermissionOverwrites#type","name":"type","scope":"instance","kind":"member","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":[[[["String"],""]]],"meta":{"lineno":21,"filename":"PermissionOverwrites.js","path":"src/structures"},"order":142},{"id":"PermissionOverwrites#id","longname":"PermissionOverwrites#id","name":"id","scope":"instance","kind":"member","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":[[[["String"],""]]],"meta":{"lineno":26,"filename":"PermissionOverwrites.js","path":"src/structures"},"order":143}],"events":[]},"Role":{"meta":{"id":"Role","longname":"Role","name":"Role","scope":"global","kind":"class","description":"Represents a Role on Discord","meta":{"lineno":6,"filename":"Role.js","path":"src/structures"},"order":144},"functions":[{"id":"Role#delete","longname":"Role#delete","name":"delete","scope":"instance","kind":"function","description":"Deletes the role","memberof":"Role","params":[],"examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":82,"filename":"Role.js","path":"src/structures"},"order":154},{"id":"Role#edit","longname":"Role#edit","name":"edit","scope":"instance","kind":"function","description":"Edits the role","memberof":"Role","params":[{"type":{"names":["RoleData"]},"description":"the new data for the role","name":"data"}],"examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":96,"filename":"Role.js","path":"src/structures"},"order":155},{"id":"Role#setName","longname":"Role#setName","name":"setName","scope":"instance","kind":"function","description":"Set a new name for the role","memberof":"Role","params":[{"type":{"names":["String"]},"description":"the new name of the role","name":"name"}],"examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":110,"filename":"Role.js","path":"src/structures"},"order":156},{"id":"Role#setColor","longname":"Role#setColor","name":"setColor","scope":"instance","kind":"function","description":"Set a new color for the role","memberof":"Role","params":[{"type":{"names":["Number"]},"description":"the new color for the role","name":"color"}],"examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":124,"filename":"Role.js","path":"src/structures"},"order":157},{"id":"Role#setHoist","longname":"Role#setHoist","name":"setHoist","scope":"instance","kind":"function","description":"Set whether or not the role should be hoisted","memberof":"Role","params":[{"type":{"names":["Boolean"]},"description":"whether or not to hoist the role","name":"hoist"}],"examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":138,"filename":"Role.js","path":"src/structures"},"order":158},{"id":"Role#setPosition","longname":"Role#setPosition","name":"setPosition","scope":"instance","kind":"function","description":"Set the position of the role","memberof":"Role","params":[{"type":{"names":["Number"]},"description":"the position of the role","name":"position"}],"examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":152,"filename":"Role.js","path":"src/structures"},"order":159},{"id":"Role#setPermissions","longname":"Role#setPermissions","name":"setPermissions","scope":"instance","kind":"function","description":"Set the permissions of the role","memberof":"Role","params":[{"type":{"names":["Array."]},"description":"the permissions of the role","name":"permissions"}],"examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Role",", "],["Error",">"]]],"meta":{"lineno":166,"filename":"Role.js","path":"src/structures"},"order":160},{"id":"Role#serialize","longname":"Role#serialize","name":"serialize","scope":"instance","kind":"function","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","params":[],"examples":["// print the serialized role\nconsole.log(role.serialize());"],"returns":[[["Object",".<"],["String",", "],["Boolean",">"]]],"meta":{"lineno":177,"filename":"Role.js","path":"src/structures"},"order":161},{"id":"Role#hasPermission","longname":"Role#hasPermission","name":"hasPermission","scope":"instance","kind":"function","description":"Whether or not the role includes the given permission","memberof":"Role","params":[{"type":{"names":["String"]},"description":"the name of the permission to test","name":"permission"},{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"whether or not the inclusion of the permission is explicit","name":"explicit"}],"examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"returns":[[[["Boolean"],""]]],"meta":{"lineno":199,"filename":"Role.js","path":"src/structures"},"order":162}],"properties":[{"id":"Role#guild","longname":"Role#guild","name":"guild","scope":"instance","kind":"member","description":"The guild that the role belongs to","memberof":"Role","type":[[[["Guild"],""]]],"meta":{"lineno":12,"filename":"Role.js","path":"src/structures"},"order":145},{"id":"Role#client","longname":"Role#client","name":"client","scope":"instance","kind":"member","description":"The client that instantiated the role","memberof":"Role","type":[[[["Client"],""]]],"meta":{"lineno":17,"filename":"Role.js","path":"src/structures"},"order":146},{"id":"Role#id","longname":"Role#id","name":"id","scope":"instance","kind":"member","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":[[[["String"],""]]],"meta":{"lineno":40,"filename":"Role.js","path":"src/structures"},"order":147},{"id":"Role#name","longname":"Role#name","name":"name","scope":"instance","kind":"member","description":"The name of the role","memberof":"Role","type":[[[["String"],""]]],"meta":{"lineno":45,"filename":"Role.js","path":"src/structures"},"order":148},{"id":"Role#color","longname":"Role#color","name":"color","scope":"instance","kind":"member","description":"The base 10 color of the role","memberof":"Role","type":[[[["Number"],""]]],"meta":{"lineno":50,"filename":"Role.js","path":"src/structures"},"order":149},{"id":"Role#hoist","longname":"Role#hoist","name":"hoist","scope":"instance","kind":"member","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":[[[["Boolean"],""]]],"meta":{"lineno":55,"filename":"Role.js","path":"src/structures"},"order":150},{"id":"Role#position","longname":"Role#position","name":"position","scope":"instance","kind":"member","description":"The position of the role in the role manager","memberof":"Role","type":[[[["Number"],""]]],"meta":{"lineno":60,"filename":"Role.js","path":"src/structures"},"order":151},{"id":"Role#permissions","longname":"Role#permissions","name":"permissions","scope":"instance","kind":"member","description":"The evaluated permissions number","memberof":"Role","type":[[[["Number"],""]]],"meta":{"lineno":65,"filename":"Role.js","path":"src/structures"},"order":152},{"id":"Role#managed","longname":"Role#managed","name":"managed","scope":"instance","kind":"member","description":"Whether or not the role is managed by an external service","memberof":"Role","type":[[[["Boolean"],""]]],"meta":{"lineno":70,"filename":"Role.js","path":"src/structures"},"order":153}],"events":[]},"TextChannel":{"meta":{"id":"TextChannel","longname":"TextChannel","name":"TextChannel","scope":"global","kind":"class","augments":["GuildChannel"],"implements":["TextBasedChannel"],"description":"Represents a Server Text Channel on Discord.","meta":{"lineno":9,"filename":"TextChannel.js","path":"src/structures"},"order":163},"functions":[{"id":"TextChannel#sendMessage","longname":"TextChannel#sendMessage","name":"sendMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendMessage"],"description":"Send a message to this channel","memberof":"TextChannel","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"},{"type":{"names":["MessageOptions"]},"optional":true,"defaultvalue":"{}","description":"the options to provide","name":"options"}],"examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":25,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":243},{"id":"TextChannel#sendTTSMessage","longname":"TextChannel#sendTTSMessage","name":"sendTTSMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendTTSMessage"],"description":"Send a text-to-speech message to this channel","memberof":"TextChannel","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"}],"examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":38,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":244},{"id":"TextChannel#equals","longname":"TextChannel#equals","name":"equals","scope":"instance","kind":"function","inherits":"GuildChannel#equals","inherited":true,"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.","memberof":"TextChannel","params":[{"type":{"names":["GuildChannel"]},"description":"the channel to compare this channel to","name":"channel"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":76,"filename":"GuildChannel.js","path":"src/structures"},"order":256},{"id":"TextChannel#permissionsFor","longname":"TextChannel#permissionsFor","name":"permissionsFor","scope":"instance","kind":"function","inherits":"GuildChannel#permissionsFor","inherited":true,"description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","params":[{"type":{"names":["GuildMemberResolvable"]},"description":"the user that you want to obtain the overall permissions for","name":"member"}],"returns":[[[["EvaluatedPermissions"],""]]],"meta":{"lineno":108,"filename":"GuildChannel.js","path":"src/structures"},"order":257},{"id":"TextChannel#setName","longname":"TextChannel#setName","name":"setName","scope":"instance","kind":"function","inherits":"GuildChannel#setName","inherited":true,"description":"Set a new name for the Guild Channel","memberof":"TextChannel","params":[{"type":{"names":["String"]},"description":"the new name for the guild channel","name":"name"}],"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.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":178,"filename":"GuildChannel.js","path":"src/structures"},"order":258},{"id":"TextChannel#setPosition","longname":"TextChannel#setPosition","name":"setPosition","scope":"instance","kind":"function","inherits":"GuildChannel#setPosition","inherited":true,"description":"Set a new position for the Guild Channel","memberof":"TextChannel","params":[{"type":{"names":["Number"]},"description":"the new position for the guild channel","name":"position"}],"examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":192,"filename":"GuildChannel.js","path":"src/structures"},"order":259},{"id":"TextChannel#setTopic","longname":"TextChannel#setTopic","name":"setTopic","scope":"instance","kind":"function","inherits":"GuildChannel#setTopic","inherited":true,"description":"Set a new topic for the Guild Channel","memberof":"TextChannel","params":[{"type":{"names":["String"]},"description":"the new topic for the guild channel","name":"topic"}],"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.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":206,"filename":"GuildChannel.js","path":"src/structures"},"order":260},{"id":"TextChannel#toString","longname":"TextChannel#toString","name":"toString","scope":"instance","kind":"function","inherits":"GuildChannel#toString","inherited":true,"description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","params":[],"examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"returns":[[[["String"],""]]],"meta":{"lineno":220,"filename":"GuildChannel.js","path":"src/structures"},"order":261}],"properties":[{"id":"TextChannel#messages","longname":"TextChannel#messages","name":"messages","scope":"instance","kind":"member","implements":["TextBasedChannel#messages"],"description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":[[["Map",".<"],["String",", "],["Message",">"]]],"meta":{"lineno":12,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":242},{"id":"TextChannel#type","longname":"TextChannel#type","name":"type","scope":"instance","kind":"member","inherits":"GuildChannel#type","inherited":true,"description":"The type of the Guild Channel","memberof":"TextChannel","type":[[[["Number"],""]]],"meta":{"lineno":36,"filename":"GuildChannel.js","path":"src/structures"},"order":250},{"id":"TextChannel#topic","longname":"TextChannel#topic","name":"topic","scope":"instance","kind":"member","inherits":"GuildChannel#topic","inherited":true,"description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":41,"filename":"GuildChannel.js","path":"src/structures"},"order":251},{"id":"TextChannel#position","longname":"TextChannel#position","name":"position","scope":"instance","kind":"member","inherits":"GuildChannel#position","inherited":true,"description":"The position of the channel in the list.","memberof":"TextChannel","type":[[[["Number"],""]]],"meta":{"lineno":46,"filename":"GuildChannel.js","path":"src/structures"},"order":252},{"id":"TextChannel#name","longname":"TextChannel#name","name":"name","scope":"instance","kind":"member","inherits":"GuildChannel#name","inherited":true,"description":"The name of the Guild Channel","memberof":"TextChannel","type":[[[["String"],""]]],"meta":{"lineno":51,"filename":"GuildChannel.js","path":"src/structures"},"order":253},{"id":"TextChannel#lastMessageID","longname":"TextChannel#lastMessageID","name":"lastMessageID","scope":"instance","kind":"member","inherits":"GuildChannel#lastMessageID","inherited":true,"description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":56,"filename":"GuildChannel.js","path":"src/structures"},"order":254},{"id":"TextChannel#permissionOverwrites","longname":"TextChannel#permissionOverwrites","name":"permissionOverwrites","scope":"instance","kind":"member","inherits":"GuildChannel#permissionOverwrites","inherited":true,"description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":[[["Array",".<"],["PermissionOverwrites",">"]]],"meta":{"lineno":62,"filename":"GuildChannel.js","path":"src/structures"},"order":255}],"events":[]},"User":{"meta":{"id":"User","longname":"User","name":"User","scope":"global","kind":"class","implements":["TextBasedChannel"],"description":"Represents a User on Discord.","meta":{"lineno":7,"filename":"User.js","path":"src/structures"},"order":164},"functions":[{"id":"User#toString","longname":"User#toString","name":"toString","scope":"instance","kind":"function","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","params":[],"examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"returns":[[[["String"],""]]],"meta":{"lineno":64,"filename":"User.js","path":"src/structures"},"order":172},{"id":"User#deleteDM","longname":"User#deleteDM","name":"deleteDM","scope":"instance","kind":"function","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","params":[],"returns":[[["Promise",".<"],["DMChannel",">"]]],"meta":{"lineno":72,"filename":"User.js","path":"src/structures"},"order":173},{"id":"User#equals","longname":"User#equals","name":"equals","scope":"instance","kind":"function","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","params":[{"type":{"names":["User"]},"description":"the user to compare","name":"user"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":82,"filename":"User.js","path":"src/structures"},"order":174},{"id":"User#sendMessage","longname":"User#sendMessage","name":"sendMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendMessage"],"description":"Send a message to this channel","memberof":"User","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"},{"type":{"names":["MessageOptions"]},"optional":true,"defaultvalue":"{}","description":"the options to provide","name":"options"}],"examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":25,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":237},{"id":"User#sendTTSMessage","longname":"User#sendTTSMessage","name":"sendTTSMessage","scope":"instance","kind":"function","implements":["TextBasedChannel#sendTTSMessage"],"description":"Send a text-to-speech message to this channel","memberof":"User","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"}],"examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":38,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":238}],"properties":[{"id":"User#username","longname":"User#username","name":"username","scope":"instance","kind":"member","description":"The username of the User","memberof":"User","type":[[[["String"],""]]],"meta":{"lineno":20,"filename":"User.js","path":"src/structures"},"order":165},{"id":"User#id","longname":"User#id","name":"id","scope":"instance","kind":"member","description":"The ID of the User","memberof":"User","type":[[[["String"],""]]],"meta":{"lineno":25,"filename":"User.js","path":"src/structures"},"order":166},{"id":"User#discriminator","longname":"User#discriminator","name":"discriminator","scope":"instance","kind":"member","description":"A discriminator based on username for the User","memberof":"User","type":[[[["String"],""]]],"meta":{"lineno":30,"filename":"User.js","path":"src/structures"},"order":167},{"id":"User#avatar","longname":"User#avatar","name":"avatar","scope":"instance","kind":"member","description":"The ID of the user's avatar","memberof":"User","type":[[[["String"],""]]],"meta":{"lineno":35,"filename":"User.js","path":"src/structures"},"order":168},{"id":"User#bot","longname":"User#bot","name":"bot","scope":"instance","kind":"member","description":"Whether or not the User is a Bot.","memberof":"User","type":[[[["Boolean"],""]]],"meta":{"lineno":40,"filename":"User.js","path":"src/structures"},"order":169},{"id":"User#status","longname":"User#status","name":"status","scope":"instance","kind":"member","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":[[[["String"],""]]],"meta":{"lineno":49,"filename":"User.js","path":"src/structures"},"order":170},{"id":"User#game","longname":"User#game","name":"game","scope":"instance","kind":"member","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":[[[["String"],""]]],"meta":{"lineno":54,"filename":"User.js","path":"src/structures"},"order":171}],"events":[]},"VoiceChannel":{"meta":{"id":"VoiceChannel","longname":"VoiceChannel","name":"VoiceChannel","scope":"global","kind":"class","augments":["GuildChannel"],"description":"Represents a Server Voice Channel on Discord.","meta":{"lineno":7,"filename":"VoiceChannel.js","path":"src/structures"},"order":175},"functions":[{"id":"VoiceChannel#setBitrate","longname":"VoiceChannel#setBitrate","name":"setBitrate","scope":"instance","kind":"function","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","params":[{"type":{"names":["Number"]},"description":"the new bitrate","name":"bitrate"}],"examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["VoiceChannel",">"]]],"meta":{"lineno":41,"filename":"VoiceChannel.js","path":"src/structures"},"order":179},{"id":"VoiceChannel#equals","longname":"VoiceChannel#equals","name":"equals","scope":"instance","kind":"function","inherits":"GuildChannel#equals","inherited":true,"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.","memberof":"VoiceChannel","params":[{"type":{"names":["GuildChannel"]},"description":"the channel to compare this channel to","name":"channel"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":76,"filename":"GuildChannel.js","path":"src/structures"},"order":268},{"id":"VoiceChannel#permissionsFor","longname":"VoiceChannel#permissionsFor","name":"permissionsFor","scope":"instance","kind":"function","inherits":"GuildChannel#permissionsFor","inherited":true,"description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","params":[{"type":{"names":["GuildMemberResolvable"]},"description":"the user that you want to obtain the overall permissions for","name":"member"}],"returns":[[[["EvaluatedPermissions"],""]]],"meta":{"lineno":108,"filename":"GuildChannel.js","path":"src/structures"},"order":269},{"id":"VoiceChannel#setName","longname":"VoiceChannel#setName","name":"setName","scope":"instance","kind":"function","inherits":"GuildChannel#setName","inherited":true,"description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","params":[{"type":{"names":["String"]},"description":"the new name for the guild channel","name":"name"}],"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.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":178,"filename":"GuildChannel.js","path":"src/structures"},"order":270},{"id":"VoiceChannel#setPosition","longname":"VoiceChannel#setPosition","name":"setPosition","scope":"instance","kind":"function","inherits":"GuildChannel#setPosition","inherited":true,"description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","params":[{"type":{"names":["Number"]},"description":"the new position for the guild channel","name":"position"}],"examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":192,"filename":"GuildChannel.js","path":"src/structures"},"order":271},{"id":"VoiceChannel#setTopic","longname":"VoiceChannel#setTopic","name":"setTopic","scope":"instance","kind":"function","inherits":"GuildChannel#setTopic","inherited":true,"description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","params":[{"type":{"names":["String"]},"description":"the new topic for the guild channel","name":"topic"}],"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.log);"],"returns":[[["Promise",".<"],["GuildChannel",">"]]],"meta":{"lineno":206,"filename":"GuildChannel.js","path":"src/structures"},"order":272},{"id":"VoiceChannel#toString","longname":"VoiceChannel#toString","name":"toString","scope":"instance","kind":"function","inherits":"GuildChannel#toString","inherited":true,"description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","params":[],"examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"returns":[[[["String"],""]]],"meta":{"lineno":220,"filename":"GuildChannel.js","path":"src/structures"},"order":273}],"properties":[{"id":"VoiceChannel#members","longname":"VoiceChannel#members","name":"members","scope":"instance","kind":"member","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":[[["Map",".<"],["String",", "],["GuildMember",">"]]],"meta":{"lineno":14,"filename":"VoiceChannel.js","path":"src/structures"},"order":176},{"id":"VoiceChannel#bitrate","longname":"VoiceChannel#bitrate","name":"bitrate","scope":"instance","kind":"member","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":[[[["Number"],""]]],"meta":{"lineno":23,"filename":"VoiceChannel.js","path":"src/structures"},"order":177},{"id":"VoiceChannel#userLimit","longname":"VoiceChannel#userLimit","name":"userLimit","scope":"instance","kind":"member","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":[[[["Number"],""]]],"meta":{"lineno":28,"filename":"VoiceChannel.js","path":"src/structures"},"order":178},{"id":"VoiceChannel#type","longname":"VoiceChannel#type","name":"type","scope":"instance","kind":"member","inherits":"GuildChannel#type","inherited":true,"description":"The type of the Guild Channel","memberof":"VoiceChannel","type":[[[["Number"],""]]],"meta":{"lineno":36,"filename":"GuildChannel.js","path":"src/structures"},"order":262},{"id":"VoiceChannel#topic","longname":"VoiceChannel#topic","name":"topic","scope":"instance","kind":"member","inherits":"GuildChannel#topic","inherited":true,"description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":41,"filename":"GuildChannel.js","path":"src/structures"},"order":263},{"id":"VoiceChannel#position","longname":"VoiceChannel#position","name":"position","scope":"instance","kind":"member","inherits":"GuildChannel#position","inherited":true,"description":"The position of the channel in the list.","memberof":"VoiceChannel","type":[[[["Number"],""]]],"meta":{"lineno":46,"filename":"GuildChannel.js","path":"src/structures"},"order":264},{"id":"VoiceChannel#name","longname":"VoiceChannel#name","name":"name","scope":"instance","kind":"member","inherits":"GuildChannel#name","inherited":true,"description":"The name of the Guild Channel","memberof":"VoiceChannel","type":[[[["String"],""]]],"meta":{"lineno":51,"filename":"GuildChannel.js","path":"src/structures"},"order":265},{"id":"VoiceChannel#lastMessageID","longname":"VoiceChannel#lastMessageID","name":"lastMessageID","scope":"instance","kind":"member","inherits":"GuildChannel#lastMessageID","inherited":true,"description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":56,"filename":"GuildChannel.js","path":"src/structures"},"order":266},{"id":"VoiceChannel#permissionOverwrites","longname":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","scope":"instance","kind":"member","inherits":"GuildChannel#permissionOverwrites","inherited":true,"description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":[[["Array",".<"],["PermissionOverwrites",">"]]],"meta":{"lineno":62,"filename":"GuildChannel.js","path":"src/structures"},"order":267}],"events":[]},"RequestHandler":{"meta":{"id":"RequestHandler","longname":"RequestHandler","name":"RequestHandler","scope":"global","kind":"class","description":"A base class for different types of rate limiting handlers for the REST API.","access":"private","meta":{"lineno":5,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":189},"functions":[{"id":"RequestHandler#push","longname":"RequestHandler#push","name":"push","scope":"instance","kind":"function","description":"Push a new API request into this bucket","memberof":"RequestHandler","params":[{"type":{"names":["APIRequest"]},"description":"the new request to push into the queue","name":"request"}],"meta":{"lineno":36,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":193,"returns":[[[["null"],""]]]},{"id":"RequestHandler#handle","longname":"RequestHandler#handle","name":"handle","scope":"instance","kind":"function","description":"Attempts to get this RequestHandler to process its current queue","memberof":"RequestHandler","params":[],"meta":{"lineno":43,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":194,"returns":[[[["null"],""]]]}],"properties":[{"id":"RequestHandler#restManager","longname":"RequestHandler#restManager","name":"restManager","scope":"instance","kind":"member","description":"The RESTManager that instantiated this RequestHandler","memberof":"RequestHandler","type":[[[["RESTManager"],""]]],"meta":{"lineno":11,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":190},{"id":"RequestHandler#queue","longname":"RequestHandler#queue","name":"queue","scope":"instance","kind":"member","description":"A list of requests that have yet to be processed.","memberof":"RequestHandler","type":[[["Array",".<"],["APIRequest",">"]]],"meta":{"lineno":17,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":191},{"id":"RequestHandler#globalLimit","longname":"RequestHandler#globalLimit","name":"globalLimit","scope":"instance","kind":"member","description":"Whether or not the client is being rate limited on every endpoint.","memberof":"RequestHandler","params":[],"type":[[[["Boolean"],""]]],"meta":{"lineno":24,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":192}],"events":[]},"SequentialRequestHandler":{"meta":{"id":"SequentialRequestHandler","longname":"SequentialRequestHandler","name":"SequentialRequestHandler","scope":"global","kind":"class","augments":["RequestHandler"],"description":"Handles API Requests sequentially, i.e. we wait until the current request is finished before moving onto\nthe next. This plays a _lot_ nicer in terms of avoiding 429's when there is more than one session of the account,\nbut it can be slower.","access":"private","meta":{"lineno":10,"filename":"Sequential.js","path":"src/client/rest/RequestHandlers"},"order":195},"functions":[{"id":"SequentialRequestHandler#execute","longname":"SequentialRequestHandler#execute","name":"execute","scope":"instance","kind":"function","description":"Performs a request then resolves a promise to indicate its readiness for a new request","memberof":"SequentialRequestHandler","params":[{"type":{"names":["APIRequest"]},"description":"the item to execute","name":"item"}],"returns":[[["Promise",".<"],["Object",", "],["Error",">"]]],"meta":{"lineno":39,"filename":"Sequential.js","path":"src/client/rest/RequestHandlers"},"order":198},{"id":"SequentialRequestHandler#push","longname":"SequentialRequestHandler#push","name":"push","scope":"instance","kind":"function","inherits":"RequestHandler#push","inherited":true,"overrides":"RequestHandler#push","description":"Push a new API request into this bucket","memberof":"SequentialRequestHandler","params":[{"type":{"names":["APIRequest"]},"description":"the new request to push into the queue","name":"request"}],"meta":{"lineno":36,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":292,"returns":[[[["null"],""]]]},{"id":"SequentialRequestHandler#handle","longname":"SequentialRequestHandler#handle","name":"handle","scope":"instance","kind":"function","inherits":"RequestHandler#handle","inherited":true,"overrides":"RequestHandler#handle","description":"Attempts to get this RequestHandler to process its current queue","memberof":"SequentialRequestHandler","params":[],"meta":{"lineno":43,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":293,"returns":[[[["null"],""]]]}],"properties":[{"id":"SequentialRequestHandler#waiting","longname":"SequentialRequestHandler#waiting","name":"waiting","scope":"instance","kind":"member","description":"Whether this rate limiter is waiting for a response from a request","memberof":"SequentialRequestHandler","type":[[[["Boolean"],""]]],"meta":{"lineno":19,"filename":"Sequential.js","path":"src/client/rest/RequestHandlers"},"order":196},{"id":"SequentialRequestHandler#timeDifference","longname":"SequentialRequestHandler#timeDifference","name":"timeDifference","scope":"instance","kind":"member","description":"The time difference between Discord's Dates and the local computer's Dates. A positive number means the local\ncomputer's time is ahead of Discord's.","memberof":"SequentialRequestHandler","type":[[[["Number"],""]]],"meta":{"lineno":26,"filename":"Sequential.js","path":"src/client/rest/RequestHandlers"},"order":197},{"id":"SequentialRequestHandler#restManager","longname":"SequentialRequestHandler#restManager","name":"restManager","scope":"instance","kind":"member","inherits":"RequestHandler#restManager","inherited":true,"description":"The RESTManager that instantiated this RequestHandler","memberof":"SequentialRequestHandler","type":[[[["RESTManager"],""]]],"meta":{"lineno":11,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":289},{"id":"SequentialRequestHandler#queue","longname":"SequentialRequestHandler#queue","name":"queue","scope":"instance","kind":"member","inherits":"RequestHandler#queue","inherited":true,"description":"A list of requests that have yet to be processed.","memberof":"SequentialRequestHandler","type":[[["Array",".<"],["APIRequest",">"]]],"meta":{"lineno":17,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":290},{"id":"SequentialRequestHandler#globalLimit","longname":"SequentialRequestHandler#globalLimit","name":"globalLimit","scope":"instance","kind":"member","inherits":"RequestHandler#globalLimit","inherited":true,"overrides":"RequestHandler#globalLimit","description":"Whether or not the client is being rate limited on every endpoint.","memberof":"SequentialRequestHandler","params":[],"type":[[[["Boolean"],""]]],"meta":{"lineno":24,"filename":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"order":291}],"events":[]},"WebSocketManager":{"meta":{"id":"WebSocketManager","longname":"WebSocketManager","name":"WebSocketManager","scope":"global","kind":"class","description":"The WebSocket Manager of the Client","access":"private","meta":{"lineno":10,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":212},"functions":[{"id":"WebSocketManager#connect","longname":"WebSocketManager#connect","name":"connect","scope":"instance","kind":"function","description":"Connects the client to a given gateway","memberof":"WebSocketManager","params":[{"type":{"names":["String"]},"description":"the gateway to connect to","name":"gateway"}],"returns":[[[["null"],""]]],"meta":{"lineno":54,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":219},{"id":"WebSocketManager#send","longname":"WebSocketManager#send","name":"send","scope":"instance","kind":"function","description":"Sends a packet to the gateway","memberof":"WebSocketManager","params":[{"type":{"names":["Object"]},"description":"An object that can be JSON stringified","name":"packet"}],"returns":[[[["null"],""]]],"meta":{"lineno":76,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":222},{"id":"WebSocketManager#eventOpen","longname":"WebSocketManager#eventOpen","name":"eventOpen","scope":"instance","kind":"function","description":"Run whenever the gateway connections opens up","memberof":"WebSocketManager","params":[],"returns":[[[["null"],""]]],"meta":{"lineno":86,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":223},{"id":"WebSocketManager#_sendResume","longname":"WebSocketManager#_sendResume","name":"_sendResume","scope":"instance","kind":"function","description":"Sends a gatway resume packet, in cases of unexpected disconnections.","memberof":"WebSocketManager","params":[],"returns":[[[["null"],""]]],"meta":{"lineno":98,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":224},{"id":"WebSocketManager#_sendNewIdentify","longname":"WebSocketManager#_sendNewIdentify","name":"_sendNewIdentify","scope":"instance","kind":"function","description":"Sends a new identification packet, in cases of new connections or failed reconnections.","memberof":"WebSocketManager","params":[],"returns":[[[["null"],""]]],"meta":{"lineno":115,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":225},{"id":"WebSocketManager#eventClose","longname":"WebSocketManager#eventClose","name":"eventClose","scope":"instance","kind":"function","description":"Run whenever the connection to the gateway is closed, it will try to reconnect the client.","memberof":"WebSocketManager","params":[],"returns":[[[["null"],""]]],"meta":{"lineno":130,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":226},{"id":"WebSocketManager#eventMessage","longname":"WebSocketManager#eventMessage","name":"eventMessage","scope":"instance","kind":"function","description":"Run whenever a message is received from the WebSocket. Returns `true` if the message\nwas handled properly.","memberof":"WebSocketManager","params":[{"type":{"names":["Object"]},"description":"the received websocket data","name":"data"}],"returns":[[[["Boolean"],""]]],"meta":{"lineno":142,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":227},{"id":"WebSocketManager#eventError","longname":"WebSocketManager#eventError","name":"eventError","scope":"instance","kind":"function","description":"Run whenever an error occurs with the WebSocket connection. Tries to reconnect","memberof":"WebSocketManager","params":[],"returns":[[[["null"],""]]],"meta":{"lineno":166,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":228},{"id":"WebSocketManager#checkIfReady","longname":"WebSocketManager#checkIfReady","name":"checkIfReady","scope":"instance","kind":"function","description":"Runs on new packets before `READY` to see if the Client is ready yet, if it is prepares\nthe `READY` event.","memberof":"WebSocketManager","params":[],"returns":[[[["null"],""]]],"meta":{"lineno":176,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":229},{"id":"WebSocketManager#tryReconnect","longname":"WebSocketManager#tryReconnect","name":"tryReconnect","scope":"instance","kind":"function","description":"Tries to reconnect the client, changing the status to Constants.Status.RECONNECTING.","memberof":"WebSocketManager","params":[],"returns":[[[["null"],""]]],"meta":{"lineno":200,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":231}],"properties":[{"id":"WebSocketManager#client","longname":"WebSocketManager#client","name":"client","scope":"instance","kind":"member","description":"The Client that instantiated this WebSocketManager","memberof":"WebSocketManager","type":[[[["Client"],""]]],"meta":{"lineno":17,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":213},{"id":"WebSocketManager#packetManager","longname":"WebSocketManager#packetManager","name":"packetManager","scope":"instance","kind":"member","description":"A WebSocket Packet manager, it handles all the messages","memberof":"WebSocketManager","type":[[[["PacketManager"],""]]],"meta":{"lineno":23,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":214},{"id":"WebSocketManager#status","longname":"WebSocketManager#status","name":"status","scope":"instance","kind":"member","description":"The status of the WebSocketManager, a type of Constants.Status. It defaults to IDLE.","memberof":"WebSocketManager","type":[[[["Number"],""]]],"meta":{"lineno":28,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":215},{"id":"WebSocketManager#sessionID","longname":"WebSocketManager#sessionID","name":"sessionID","scope":"instance","kind":"member","description":"The session ID of the connection, null if not yet available.","memberof":"WebSocketManager","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":34,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":216},{"id":"WebSocketManager#sequence","longname":"WebSocketManager#sequence","name":"sequence","scope":"instance","kind":"member","description":"The packet count of the client, null if not yet available.","memberof":"WebSocketManager","type":[[[["Number"],""]]],"nullable":true,"meta":{"lineno":40,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":217},{"id":"WebSocketManager#gateway","longname":"WebSocketManager#gateway","name":"gateway","scope":"instance","kind":"member","description":"The gateway address for this WebSocket connection, null if not yet available.","memberof":"WebSocketManager","type":[[[["String"],""]]],"nullable":true,"meta":{"lineno":46,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":218},{"id":"WebSocketManager#status","longname":"WebSocketManager#status","name":"status","scope":"instance","kind":"member","description":"The status of the Client's connection, a type of Constants.Status","memberof":"WebSocketManager","type":[[[["Number"],""]]],"meta":{"lineno":59,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":220},{"id":"WebSocketManager#ws","longname":"WebSocketManager#ws","name":"ws","scope":"instance","kind":"member","description":"The WebSocket connection to the gateway","memberof":"WebSocketManager","type":[[[["WebSocket"],""]]],"nullable":true,"meta":{"lineno":64,"filename":"WebSocketManager.js","path":"src/client/websocket"},"order":221}],"events":[]}},"interfaces":{"TextBasedChannel":{"meta":{"id":"TextBasedChannel","longname":"TextBasedChannel","name":"TextBasedChannel","scope":"global","kind":"interface","classdesc":"Interface for classes that have text-channel-like features","params":[],"meta":{"lineno":5,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":233},"functions":[{"id":"TextBasedChannel#sendMessage","longname":"TextBasedChannel#sendMessage","name":"sendMessage","scope":"instance","kind":"function","description":"Send a message to this channel","memberof":"TextBasedChannel","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"},{"type":{"names":["MessageOptions"]},"optional":true,"defaultvalue":"{}","description":"the options to provide","name":"options"}],"examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":25,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":235},{"id":"TextBasedChannel#sendTTSMessage","longname":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","scope":"instance","kind":"function","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","params":[{"type":{"names":["String"]},"description":"the content to send","name":"content"}],"examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"returns":[[["Promise",".<"],["Message",">"]]],"meta":{"lineno":38,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":236}],"properties":[{"id":"TextBasedChannel#messages","longname":"TextBasedChannel#messages","name":"messages","scope":"instance","kind":"member","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":[[["Map",".<"],["String",", "],["Message",">"]]],"meta":{"lineno":12,"filename":"TextBasedChannel.js","path":"src/structures/interface"},"order":234}],"events":[]}},"typedefs":{"UserResolvable":{"id":"UserResolvable","longname":"UserResolvable","name":"UserResolvable","scope":"global","kind":"typedef","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"names":["User","String","Message","Guild"]},"meta":{"lineno":23,"filename":"ClientDataResolver.js","path":"src/client"},"order":18},"GuildResolvable":{"id":"GuildResolvable","longname":"GuildResolvable","name":"GuildResolvable","scope":"global","kind":"typedef","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"names":["Guild"]},"meta":{"lineno":51,"filename":"ClientDataResolver.js","path":"src/client"},"order":20},"GuildMemberResolvable":{"id":"GuildMemberResolvable","longname":"GuildMemberResolvable","name":"GuildMemberResolvable","scope":"global","kind":"typedef","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"names":["Guild"]},"meta":{"lineno":69,"filename":"ClientDataResolver.js","path":"src/client"},"order":22},"Base64Resolvable":{"id":"Base64Resolvable","longname":"Base64Resolvable","name":"Base64Resolvable","scope":"global","kind":"typedef","description":"Data that resolves to give a Base64 string, typically for image uploading. This can be:\n* A Buffer\n* A Base64 String","type":{"names":["Buffer","String"]},"meta":{"lineno":98,"filename":"ClientDataResolver.js","path":"src/client"},"order":24},"ChannelResolvable":{"id":"ChannelResolvable","longname":"ChannelResolvable","name":"ChannelResolvable","scope":"global","kind":"typedef","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"names":["Channel","String"]},"meta":{"lineno":118,"filename":"ClientDataResolver.js","path":"src/client"},"order":26},"StringResolvable":{"id":"StringResolvable","longname":"StringResolvable","name":"StringResolvable","scope":"global","kind":"typedef","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"names":["String","Array","Object"]},"meta":{"lineno":142,"filename":"ClientDataResolver.js","path":"src/client"},"order":28}}}} \ No newline at end of file +{"meta":{"version":10,"date":1471796798712},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"}}]},{"id":"ClientDataResolver","name":"ClientDataResolver","description":"The DataResolver identifies different objects and tries to resolve a specific piece of information from them, e.g.\nextracting a User from a Message object.","meta":{"line":18,"file":"ClientDataResolver.js","path":"src/client"},"access":"private","methods":[{"id":"ClientDataResolver#resolveString","name":"resolveString","description":"Resolves a StringResolvable to a String","memberof":"ClientDataResolver","meta":{"line":155,"file":"ClientDataResolver.js","path":"src/client"},"returns":{"types":[[["String",""]]]},"params":[{"name":"stringResolvable","description":"the string resolvable to resolve","type":{"types":[[["StringResolvable",""]]]}}]}],"properties":[],"events":[]},{"id":"ClientManager","name":"ClientManager","description":"Manages the State and Background Tasks of the Client","meta":{"line":7,"file":"ClientManager.js","path":"src/client"},"access":"private","methods":[{"id":"ClientManager#setupKeepAlive","name":"setupKeepAlive","description":"Sets up a keep-alive interval to keep the Client's connection valid","memberof":"ClientManager","meta":{"line":46,"file":"ClientManager.js","path":"src/client"},"returns":{"types":[[["null",""]]]},"params":[{"name":"time","description":"the interval in milliseconds at which heartbeat packets should be sent","type":{"types":[[["Number",""]]]}}]}],"properties":[{"id":"ClientManager#heartbeatInterval","name":"heartbeatInterval","description":"The heartbeat interval, null if not yet set","memberof":"ClientManager","type":{"types":[[["Number",""]]]},"meta":{"line":19,"file":"ClientManager.js","path":"src/client"}}],"events":[]},{"id":"RequestHandler","name":"RequestHandler","description":"A base class for different types of rate limiting handlers for the REST API.","meta":{"line":5,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"access":"private","methods":[{"id":"RequestHandler#handle","name":"handle","description":"Attempts to get this RequestHandler to process its current queue","memberof":"RequestHandler","meta":{"line":43,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"returns":{"types":[[["null",""]]]},"params":[]}],"properties":[{"id":"RequestHandler#globalLimit","name":"globalLimit","description":"Whether or not the client is being rate limited on every endpoint.","memberof":"RequestHandler","type":{"types":[[["Boolean",""]]]},"meta":{"line":24,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}}],"events":[]},{"id":"SequentialRequestHandler","name":"SequentialRequestHandler","description":"Handles API Requests sequentially, i.e. we wait until the current request is finished before moving onto\nthe next. This plays a _lot_ nicer in terms of avoiding 429's when there is more than one session of the account,\nbut it can be slower.","meta":{"line":10,"file":"Sequential.js","path":"src/client/rest/RequestHandlers"},"extends":["RequestHandler"],"access":"private","methods":[{"id":"SequentialRequestHandler#handle","name":"handle","description":"Attempts to get this RequestHandler to process its current queue","memberof":"SequentialRequestHandler","inherits":"RequestHandler#handle","inherited":true,"meta":{"line":43,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"returns":{"types":[[["null",""]]]},"params":[]}],"properties":[{"id":"SequentialRequestHandler#globalLimit","name":"globalLimit","description":"Whether or not the client is being rate limited on every endpoint.","memberof":"SequentialRequestHandler","type":{"types":[[["Boolean",""]]]},"meta":{"line":24,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}}],"events":[]},{"id":"WebSocketManager","name":"WebSocketManager","description":"The WebSocket Manager of the Client","meta":{"line":10,"file":"WebSocketManager.js","path":"src/client/websocket"},"access":"private","methods":[{"id":"WebSocketManager#tryReconnect","name":"tryReconnect","description":"Tries to reconnect the client, changing the status to Constants.Status.RECONNECTING.","memberof":"WebSocketManager","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]}],"properties":[{"id":"WebSocketManager#ws","name":"ws","description":"The WebSocket connection to the gateway","memberof":"WebSocketManager","type":{"types":[[["WebSocket",""]]]},"meta":{"line":64,"file":"WebSocketManager.js","path":"src/client/websocket"}}],"events":[]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file diff --git a/docs/gen/index.js b/docs/gen/index.js deleted file mode 100644 index 53881c5c1..000000000 --- a/docs/gen/index.js +++ /dev/null @@ -1,166 +0,0 @@ -let fs; -/* eslint no-console:0 no-return-assign:0 */ -let parse; - -const customDocs = require('../custom/index'); - -const GEN_VERSION = 10; - -try { - fs = require('fs-extra'); - parse = require('jsdoc-parse'); -} catch (e) { - console.log('Error loading fs-extra or jsdoc-parse:'); - console.log(e); - process.exit(); -} - -console.log('Starting...'); - -let json = ''; - -const stream = parse({ - src: ['./src/*.js', './src/*/*.js', './src/**/*.js'], - private: true, -}); - -const cwd = (`${process.cwd()}\\`).replace(/\\/g, '/'); - -const regex = /([\w]+)([^\w]+)/; -const regexG = /([\w]+)([^\w]+)/g; - -function matchReturnName(str) { - const matches = str.match(regexG); - const output = []; - if (matches) { - for (const match of matches) { - const groups = match.match(regex); - output.push([groups[1], groups[2]]); - } - } else { - output.push([str.match(/(\w+)/g), '']); - } - return output; -} - -function cleanPaths() { - for (const item of json) { - if (item.meta && item.meta.path) { - item.meta.path = item.meta.path.replace(/\\/g, '/').replace(cwd, ''); - } - } -} - -function firstPass() { - const cleaned = { - classes: {}, - interfaces: {}, - typedefs: {}, - }; - for (const itemID in json) { - const item = json[itemID]; - if (item.kind === 'class') { - delete json[itemID]; - cleaned.classes[item.longname] = { - meta: item, - functions: [], - properties: [], - events: [], - }; - } else if (item.kind === 'interface') { - delete json[itemID]; - cleaned.interfaces[item.longname] = { - meta: item, - functions: [], - properties: [], - events: [], - }; - } - } - return cleaned; -} - -const seenEvents = {}; - -function clean() { - const cleaned = firstPass(); - for (const item of json) { - if (!item) { - continue; - } - if (item.kind === 'member') { - const obj = cleaned.classes[item.memberof] || cleaned.interfaces[item.memberof]; - const newTypes = []; - for (const name of item.type.names) { - newTypes.push(matchReturnName(name)); - } - item.type = newTypes; - obj.properties.push(item); - } else if (item.kind === 'function' && item.memberof) { - const obj = cleaned.classes[item.memberof] || cleaned.interfaces[item.memberof]; - const newReturns = []; - if (!item.returns) { - item.returns = [{ - type: { - names: ['null'], - }, - }]; - } - for (const name of item.returns[0].type.names) { - newReturns.push(matchReturnName(name)); - } - item.returns = newReturns; - obj.functions.push(item); - } else if (item.kind === 'typedef') { - cleaned.typedefs[item.longname] = item; - } else if (item.kind === 'constructor') { - const obj = cleaned.classes[item.memberof] || cleaned.interfaces[item.memberof]; - obj.constructor = item; - } else if (item.kind === 'event') { - if (seenEvents[item.name]) { - console.log('dupe logs for', item.name); - } - seenEvents[item.name] = true; - const obj = cleaned.classes[item.memberof] || cleaned.interfaces[item.memberof]; - if (item.params) { - for (const param of item.params) { - const newTypes = []; - for (const name of param.type.names) { - newTypes.push(matchReturnName(name)); - } - param.type = newTypes; - } - } - item.params = [ - { - type: item.params, - }, - ]; - obj.events.push(item); - } - } - json = cleaned; -} - -function next() { - json = JSON.parse(json); - cleanPaths(); - console.log('parsed inline code'); - clean(); - json = { - meta: { - version: GEN_VERSION, - }, - custom: customDocs, - json, - }; - fs.writeFile('./docs/docs.json', JSON.stringify(json, null, 0), err => { - if (err) { - throw err; - } - console.log('done'); - }); -} - -stream.on('data', chunk => json += chunk.toString('utf-8')); -stream.on('end', () => next()); diff --git a/docs/generator/config.json b/docs/generator/config.json new file mode 100644 index 000000000..e6c07de1b --- /dev/null +++ b/docs/generator/config.json @@ -0,0 +1,4 @@ +{ + "GEN_VERSION": 10, + "COMPRESS": false +} \ No newline at end of file diff --git a/docs/generator/doc-scanner.js b/docs/generator/doc-scanner.js new file mode 100644 index 000000000..241e0dd3d --- /dev/null +++ b/docs/generator/doc-scanner.js @@ -0,0 +1,25 @@ +/* eslint no-console:0 no-return-assign:0 */ +const parse = require('jsdoc-parse'); + +module.exports = class DocumentationScanner { + constructor(generator) { + this.generator = generator; + } + + scan(directory) { + return new Promise((resolve, reject) => { + const stream = parse({ + src: [`${directory}*.js`, `${directory}**/*.js`], + private: true, + }); + + let json = ''; + stream.on('data', chunk => json += chunk.toString('utf-8')); + stream.on('error', reject); + stream.on('end', () => { + json = JSON.parse(json); + resolve(json); + }); + }); + } +}; diff --git a/docs/generator/documentation.js b/docs/generator/documentation.js new file mode 100644 index 000000000..1a506e217 --- /dev/null +++ b/docs/generator/documentation.js @@ -0,0 +1,111 @@ +const DocumentedClass = require('./types/DocumentedClass'); +const DocumentedInterface = require('./types/DocumentedInterface'); +const DocumentedTypeDef = require('./types/DocumentedTypeDef'); +const DocumentedConstructor = require('./types/DocumentedConstructor'); +const DocumentedMember = require('./types/DocumentedMember'); +const DocumentedFunction = require('./types/DocumentedFunction'); +const DocumentedEvent = require('./types/DocumentedEvent'); +const GEN_VERSION = require('./config.json').GEN_VERSION; + +class Documentation { + constructor(items) { + this.classes = new Map(); + this.interfaces = new Map(); + this.typedefs = new Map(); + this.parse(items); + } + + registerRoots(data) { + for (const item of data) { + switch (item.kind) { + case 'class': + this.classes.set(item.name, new DocumentedClass(this, item)); + break; + case 'interface': + this.interfaces.set(item.name, new DocumentedInterface(this, item)); + break; + case 'typedef': + this.typedefs.set(item.name, new DocumentedTypeDef(this, item)); + break; + default: + break; + } + } + } + + findParent(item) { + if (['constructor', 'member', 'function', 'event'].indexOf(item.kind) > -1) { + if (this.classes.get(item.memberof)) { + return this.classes.get(item.memberof); + } + if (this.interfaces.get(item.memberof)) { + return this.interfaces.get(item.memberof); + } + } + return; + } + + parse(items) { + this.registerRoots( + items.filter( + item => ['class', 'interface', 'typedef'].indexOf(item.kind) > -1 + ) + ); + + const members = items.filter( + item => ['class', 'interface', 'typedef'].indexOf(item.kind) === -1 + ); + + const unknowns = new Map(); + for (const member of members) { + let item; + switch (member.kind) { + case 'constructor': + item = new DocumentedConstructor(this, member); + break; + case 'member': + item = new DocumentedMember(this, member); + break; + case 'function': + item = new DocumentedFunction(this, member); + break; + case 'event': + item = new DocumentedEvent(this, member); + break; + default: + unknowns.set(member.kind, member); + break; + } + if (!item) { + continue; + } + const parent = this.findParent(member); + if (!parent) { + throw new Error(`${member.name} has no accessible parent - ${JSON.stringify(member)}`); + } + parent.add(item); + } + if (unknowns.size > 0) { + Array.from(unknowns.keys()).map( + k => console.log(`Unknown documentation kind ${k} - \n${JSON.stringify(unknowns.get(k))}\n` + )); + } + } + + serialize() { + const meta = { + version: GEN_VERSION, + date: Date.now(), + }; + + const serialized = { + meta, + classes: Array.from(this.classes.values()).map(c => c.serialize()), + interfaces: Array.from(this.interfaces.values()).map(i => i.serialize()), + typedefs: Array.from(this.typedefs.values()).map(t => t.serialize()), + }; + return serialized; + } +} + +module.exports = Documentation; diff --git a/docs/generator/generator.js b/docs/generator/generator.js new file mode 100644 index 000000000..4c925576d --- /dev/null +++ b/docs/generator/generator.js @@ -0,0 +1,26 @@ +/* eslint no-console:0 no-return-assign:0 */ +const GEN_VERSION = require('./config.json').GEN_VERSION; +const compress = require('./config.json').COMPRESS; +const DocumentationScanner = require('./doc-scanner'); +const Documentation = require('./documentation'); +const fs = require('fs-extra'); +const zlib = require('zlib'); + +const docScanner = new DocumentationScanner(this); + +function parseDocs(json) { + console.log(`${json.length} items found`); + const documentation = new Documentation(json); + let output = JSON.stringify(documentation.serialize(), null, 0); + if (compress) { + output = zlib.deflateSync(output).toString('utf8'); + } + fs.writeFileSync('./docs/docs.json', output); +} + +console.log(`using format version ${GEN_VERSION}`); +console.log('scanning for documentation'); + +docScanner.scan('./src/') + .then(parseDocs) + .catch(console.error); diff --git a/docs/generator/types/DocumentedClass.js b/docs/generator/types/DocumentedClass.js new file mode 100644 index 000000000..d20ebeaa1 --- /dev/null +++ b/docs/generator/types/DocumentedClass.js @@ -0,0 +1,83 @@ +const DocumentedItem = require('./DocumentedItem'); +const DocumentedItemMeta = require('./DocumentedItemMeta'); +const DocumentedConstructor = require('./DocumentedConstructor'); +const DocumentedFunction = require('./DocumentedFunction'); +const DocumentedMember = require('./DocumentedMember'); +const DocumentedEvent = require('./DocumentedEvent'); + +/* +{ id: 'VoiceChannel', + longname: 'VoiceChannel', + name: 'VoiceChannel', + scope: 'global', + kind: 'class', + augments: [ 'GuildChannel' ], + description: 'Represents a Server Voice Channel on Discord.', + meta: + { lineno: 7, + filename: 'VoiceChannel.js', + path: 'src/structures' }, + order: 232 } + */ + +class DocumentedClass extends DocumentedItem { + + constructor(docParent, data) { + super(docParent, data); + this.props = new Map(); + this.methods = new Map(); + this.events = new Map(); + } + + add(item) { + if (item instanceof DocumentedConstructor) { + if (this.classConstructor) { + throw new Error(`Doc ${this.directData.name} already has constructor - ${this.directData.classConstructor}`); + } + this.classConstructor = item; + } else if (item instanceof DocumentedFunction) { + if (this.methods.get(item.directData.name)) { + throw new Error(`Doc ${this.directData.name} already has method ${item.name}`); + } + this.methods.set(item.name, item); + } else if (item instanceof DocumentedMember) { + if (this.props.get(item.directData.name)) { + throw new Error(`Doc ${this.directData.name} already has prop ${item.name}`); + } + this.props.set(item.name, item); + } else if (item instanceof DocumentedEvent) { + if (this.props.get(item.directData.name)) { + throw new Error(`Doc ${this.directData.name} already has event ${item.name}`); + } + this.events.set(item.name, item); + } + } + + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData = data; + this.directData.meta = new DocumentedItemMeta(this, data.meta); + } + + serialize() { + super.serialize(); + const { id, name, description, meta, augments, access } = this.directData; + const serialized = { + id, + name, + description, + meta: meta.serialize(), + extends: augments, + access, + }; + if (this.classConstructor) { + serialized.classConstructor = this.classConstructor.serialize(); + } + serialized.methods = Array.from(this.methods.values()).map(m => m.serialize()); + serialized.properties = Array.from(this.props.values()).map(p => p.serialize()); + serialized.events = Array.from(this.events.values()).map(e => e.serialize()); + return serialized; + } +} + +module.exports = DocumentedClass; diff --git a/docs/generator/types/DocumentedConstructor.js b/docs/generator/types/DocumentedConstructor.js new file mode 100644 index 000000000..136e11428 --- /dev/null +++ b/docs/generator/types/DocumentedConstructor.js @@ -0,0 +1,32 @@ +const DocumentedItem = require('./DocumentedItem'); + +/* +{ id: 'Client()', + longname: 'Client', + name: 'Client', + kind: 'constructor', + description: 'Creates an instance of Client.', + memberof: 'Client', + params: + [ { type: [Object], + optional: true, + description: 'options to pass to the client', + name: 'options' } ], + order: 10 } +*/ + +class DocumentedConstructor extends DocumentedItem { + + registerMetaInfo(data) { + this.directData = data; + } + + serialize() { + super.serialize(); + const { id, name, description, memberof, access } = this.directData; + return { id, name, description, memberof, access }; + } + +} + +module.exports = DocumentedConstructor; diff --git a/docs/generator/types/DocumentedEvent.js b/docs/generator/types/DocumentedEvent.js new file mode 100644 index 000000000..17e029a91 --- /dev/null +++ b/docs/generator/types/DocumentedEvent.js @@ -0,0 +1,72 @@ +const DocumentedItem = require('./DocumentedItem'); +const DocumentedItemMeta = require('./DocumentedItemMeta'); + +/* +{ + "id":"Client#event:guildMemberRolesUpdate", + "longname":"Client#event:guildMemberRolesUpdate", + "name":"guildMemberRolesUpdate", + "scope":"instance", + "kind":"event", + "description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role", + "memberof":"Client", + "params":[ + { + "type":{ + "names":[ + "Guild" + ] + }, + "description":"the guild that the update affects", + "name":"guild" + }, + { + "type":{ + "names":[ + "Array." + ] + }, + "description":"the roles before the update", + "name":"oldRoles" + }, + { + "type":{ + "names":[ + "Guild" + ] + }, + "description":"the roles after the update", + "name":"newRoles" + } + ], + "meta":{ + "lineno":91, + "filename":"Guild.js", + "path":"src/structures" + }, + "order":110 +} +*/ + +class DocumentedEvent extends DocumentedItem { + + registerMetaInfo(data) { + this.directData = data; + this.directData.meta = new DocumentedItemMeta(this, data.meta); + } + + serialize() { + super.serialize(); + const { id, name, description, memberof, meta } = this.directData; + return { + id, + name, + description, + memberof, + meta: meta.serialize(), + }; + } + +} + +module.exports = DocumentedEvent; diff --git a/docs/generator/types/DocumentedFunction.js b/docs/generator/types/DocumentedFunction.js new file mode 100644 index 000000000..698fb16b5 --- /dev/null +++ b/docs/generator/types/DocumentedFunction.js @@ -0,0 +1,91 @@ +const DocumentedItem = require('./DocumentedItem'); +const DocumentedItemMeta = require('./DocumentedItemMeta'); +const DocumentedVarType = require('./DocumentedVarType'); +const DocumentedParam = require('./DocumentedParam'); + +/* +{ + "id":"ClientUser#sendTTSMessage", + "longname":"ClientUser#sendTTSMessage", + "name":"sendTTSMessage", + "scope":"instance", + "kind":"function", + "inherits":"User#sendTTSMessage", + "inherited":true, + "implements":[ + "TextBasedChannel#sendTTSMessage" + ], + "description":"Send a text-to-speech message to this channel", + "memberof":"ClientUser", + "params":[ + { + "type":{ + "names":[ + "String" + ] + }, + "description":"the content to send", + "name":"content" + } + ], + "examples":[ + "// send a TTS message..." + ], + "returns":[ + { + "type":{ + "names":[ + "Promise." + ] + } + } + ], + "meta":{ + "lineno":38, + "filename":"TextBasedChannel.js", + "path":src/structures/interface" + }, + "order":293 +} + */ + +class DocumentedFunction extends DocumentedItem { + + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData = data; + this.directData.meta = new DocumentedItemMeta(this, data.meta); + this.directData.returns = new DocumentedVarType(this, data.returns ? data.returns[0].type : { + names: ['null'], + }); + const newParams = []; + for (const param of data.params) { + newParams.push(new DocumentedParam(this, param)); + } + this.directData.params = newParams; + } + + serialize() { + super.serialize(); + const { + id, name, description, memberof, examples, inherits, inherited, meta, returns, params, access, + } = this.directData; + const serialized = { + id, + access, + name, + description, + memberof, + examples, + inherits, + inherited, + meta: meta.serialize(), + returns: returns.serialize(), + params: params.map(p => p.serialize()), + }; + serialized.implements = this.directData.implements; + return serialized; + } +} + +module.exports = DocumentedFunction; diff --git a/docs/generator/types/DocumentedInterface.js b/docs/generator/types/DocumentedInterface.js new file mode 100644 index 000000000..ce2905785 --- /dev/null +++ b/docs/generator/types/DocumentedInterface.js @@ -0,0 +1,32 @@ +const DocumentedClass = require('./DocumentedClass'); + +/* +{ id: 'TextBasedChannel', + longname: 'TextBasedChannel', + name: 'TextBasedChannel', + scope: 'global', + kind: 'interface', + classdesc: 'Interface for classes that have text-channel-like features', + params: [], + meta: + { lineno: 5, + filename: 'TextBasedChannel.js', + path: 'src/structures/interface' }, + order: 175 } + */ + +class DocumentedInterface extends DocumentedClass { + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData = data; + // this.directData.meta = new DocumentedItemMeta(this, data.meta); + } + + serialize() { + const serialized = super.serialize(); + serialized.description = this.directData.classdesc; + return serialized; + } +} + +module.exports = DocumentedInterface; diff --git a/docs/generator/types/DocumentedItem.js b/docs/generator/types/DocumentedItem.js new file mode 100644 index 000000000..562c706d3 --- /dev/null +++ b/docs/generator/types/DocumentedItem.js @@ -0,0 +1,17 @@ +class DocumentedItem { + constructor(parent, info) { + this.parent = parent; + this.directData = {}; + this.registerMetaInfo(info); + } + + registerMetaInfo() { + return; + } + + serialize() { + return; + } +} + +module.exports = DocumentedItem; diff --git a/docs/generator/types/DocumentedItemMeta.js b/docs/generator/types/DocumentedItemMeta.js new file mode 100644 index 000000000..7b44941b6 --- /dev/null +++ b/docs/generator/types/DocumentedItemMeta.js @@ -0,0 +1,29 @@ +const cwd = (`${process.cwd()}\\`).replace(/\\/g, '/'); +const backToForward = /\\/g; + +const DocumentedItem = require('./DocumentedItem'); + +/* + { lineno: 7, + filename: 'VoiceChannel.js', + path: 'src/structures' }, +*/ + +class DocumentedItemMeta extends DocumentedItem { + + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData.line = data.lineno; + this.directData.file = data.filename; + this.directData.path = data.path.replace(backToForward, '/').replace(cwd, ''); + } + + serialize() { + super.serialize(); + const { line, file, path } = this.directData; + return { line, file, path }; + } + +} + +module.exports = DocumentedItemMeta; diff --git a/docs/generator/types/DocumentedMember.js b/docs/generator/types/DocumentedMember.js new file mode 100644 index 000000000..064b8ed30 --- /dev/null +++ b/docs/generator/types/DocumentedMember.js @@ -0,0 +1,47 @@ +const DocumentedItem = require('./DocumentedItem'); +const DocumentedItemMeta = require('./DocumentedItemMeta'); +const DocumentedVarType = require('./DocumentedVarType'); + +/* +{ id: 'Client#rest', + longname: 'Client#rest', + name: 'rest', + scope: 'instance', + kind: 'member', + description: 'The REST manager of the client', + memberof: 'Client', + type: { names: [ 'RESTManager' ] }, + access: 'private', + meta: + { lineno: 32, + filename: 'Client.js', + path: 'src/client' }, + order: 11 } +*/ + +class DocumentedMember extends DocumentedItem { + + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData = data; + this.directData.meta = new DocumentedItemMeta(this, data.meta); + this.directData.type = new DocumentedVarType(this, data.type); + } + + serialize() { + super.serialize(); + const { id, name, description, memberof, type, access, meta } = this.directData; + return { + id, + name, + description, + memberof, + type: type.serialize(), + access, + meta: meta.serialize(), + }; + } + +} + +module.exports = DocumentedMember; diff --git a/docs/generator/types/DocumentedParam.js b/docs/generator/types/DocumentedParam.js new file mode 100644 index 000000000..d7d25b639 --- /dev/null +++ b/docs/generator/types/DocumentedParam.js @@ -0,0 +1,35 @@ +const DocumentedItem = require('./DocumentedItem'); +const DocumentedVarType = require('./DocumentedVarType'); + +/* +{ + "type":{ + "names":[ + "Guild" + ] + }, + "description":"the roles after the update", + "name":"newRoles" + } +*/ + +class DocumentedParam extends DocumentedItem { + + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData = data; + this.directData.type = new DocumentedVarType(this, data.type); + } + + serialize() { + super.serialize(); + const { name, description, type } = this.directData; + return { + name, + description, + type: type.serialize(), + }; + } +} + +module.exports = DocumentedParam; diff --git a/docs/generator/types/DocumentedTypeDef.js b/docs/generator/types/DocumentedTypeDef.js new file mode 100644 index 000000000..a323b2ef3 --- /dev/null +++ b/docs/generator/types/DocumentedTypeDef.js @@ -0,0 +1,44 @@ +const DocumentedItem = require('./DocumentedItem'); +const DocumentedItemMeta = require('./DocumentedItemMeta'); +const DocumentedVarType = require('./DocumentedVarType'); + +/* +{ id: 'StringResolvable', + longname: 'StringResolvable', + name: 'StringResolvable', + scope: 'global', + kind: 'typedef', + description: 'Data that can be resolved to give a String...', + type: { names: [ 'String', 'Array', 'Object' ] }, + meta: + { lineno: 142, + filename: 'ClientDataResolver.js', + path: 'src/client' }, + order: 37 } +*/ + +class DocumentedTypeDef extends DocumentedItem { + + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData = data; + this.directData.meta = new DocumentedItemMeta(this, data.meta); + this.directData.type = new DocumentedVarType(this, data.type); + } + + serialize() { + super.serialize(); + const { id, name, description, type, access, meta } = this.directData; + return { + id, + name, + description, + type: type.serialize(), + access, + meta: meta.serialize(), + }; + } + +} + +module.exports = DocumentedTypeDef; diff --git a/docs/generator/types/DocumentedVarType.js b/docs/generator/types/DocumentedVarType.js new file mode 100644 index 000000000..d814ed4ca --- /dev/null +++ b/docs/generator/types/DocumentedVarType.js @@ -0,0 +1,47 @@ +const DocumentedItem = require('./DocumentedItem'); + +/* +{ + "names":[ + "String" + ] +} +*/ + +const regex = /([\w]+)([^\w]+)/; +const regexG = /([\w]+)([^\w]+)/g; + +function splitVarName(str) { + const matches = str.match(regexG); + const output = []; + if (matches) { + for (const match of matches) { + const groups = match.match(regex); + output.push([groups[1], groups[2]]); + } + } else { + output.push([str.match(/(\w+)/g)[0], '']); + } + return output; +} + +class DocumentedVarType extends DocumentedItem { + + registerMetaInfo(data) { + super.registerMetaInfo(data); + this.directData = data; + } + + serialize() { + super.serialize(); + const names = []; + for (const name of this.directData.names) { + names.push(splitVarName(name)); + } + return { + types: names, + }; + } +} + +module.exports = DocumentedVarType; diff --git a/package.json b/package.json index 1eea6d378..605c781a7 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "./src/index", "scripts": { "test": "eslint src/ && node test/random", - "docs": "node docs/gen/index.js" + "docs": "node docs/generator/generator.js" }, "repository": { "type": "git", From ac7c543dfe4c17f9372a6953e70c6a147a5fa90f Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Sun, 21 Aug 2016 17:47:12 +0100 Subject: [PATCH 2/8] Fix doc gen --- docs/docs.json | Bin 20751 -> 24030 bytes docs/generator/config.json | 2 +- docs/generator/generator.js | 3 +++ docs/generator/types/DocumentedClass.js | 14 +++++++------- src/client/websocket/WebSocketManager.js | 4 ---- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/docs/docs.json b/docs/docs.json index 715a3f68317de5780ed863a5dcd5f3dec5698ce3..25fe4975284f8f5e6856e5420b4198f999617405 100644 GIT binary patch literal 24030 zcmZvE^_!j5+3rln_qgkxnT)%;X58J~eUH2BJwT8mg*HfO(Y8=1v`8s(D)hRLkOT-x zkfbD#^Yzg7JBP{-=N~xty`PnL59ztC`_c8vT93UG-TC*Q{sc|*mXPp=y zoD!K@_db`4j9?+4WN~+YbI5K=9g{IWWMmJ^`NL>Rc|i#tTK;(Hx@iwhU2=Vj<7HHUd5dm;&RL09#5uC>>+~WrM0ffVZc}wqsVJbWgVpHj7$Us1g7(M_k}e!JAdQ z)~f_8IaWOLR&sC>Zi}Xsrh)3 zU^J9*2Ar88L4X~jvkUs@N179gkDXXNZwB851Ta={?P5gR@dSdMtdb_yf?iDKDFQUL zVJ(h`ozLSv4cS$e>3!292Wu$uy76a_XAP9Rl^Y&~^7v@Q^fmj{j=Ndc!Kf_WZj zNmSLtGH~Vo87Gx0Xr?MKAPJ;mE)L5jBi!^Ph|zR1GRBq-B>wxJ`{1ZOJOmfKdsjVY7>U+-UC2?4151&IZ|2>R$=usGIG z42U;qh!$-W!rpcbJP*_onctKSxd{R)PXD30Ow`;?NTv@67Xi)_kA;G%DH2=HyLHj) zo?R*!8=mo(9)k~1y$o$Tmi@xm*$s86*5T%QL%;+95C%s+4bTl-xdlS)pAGWO%g+t) zfX)|Q0<_Kux2@ZKG6J}eF<&cN?@pAZhE}HuJJteVqfW`ojc4y%x4FjS+g<(@;{>pcERTm# z1>!_0nELXOR(?$VcC8a!AV<^!1mIqroE6CHfb-7`{_TZ_{`#jER>a;BappGN1T^QY zWj(}Fgm|k9S=l{;KKK7p!9*P#lb_xOips!seE1*2Sj5gcL!Yj6&NQ7@XgPE zk{_Z@!yyKI@)nrdg?Q@x+2wrml(}u|5GM9K6_$Yi@Oo5Y{GHJK$LamZ*Ae0kOT}aW4`HzP}g`uD%YX zZ236DT#GtKOA)hs>3R0j76@<+Ut*~Nxgx+-PN6OFHGu!5DsCmj3(f~~Ry`@6Z$nT1A@tMSA2zvWrxb_MsXKvc^lVe7_+L;?n=%^OCKzb5xq;3h;#Kd2lw;htIHd zS~zsRcyU6{WX`LP0aRX*%A1W|U>cSO<96p@=|ScylNDabf>hyb6EBO_ai32D7*!rB zP)u+g*O{`fUKO7q2$I*So@*Aj>&h6E2F46NmToQ(cfwW?>^xyS7b4* z2?6%25DW!#0ZeCsErJSoPQXq?AnKza~h)2?sLQwdEj@rH-t*;D(ER1-+9)u&o}bgF`hb}0yqSb;wnv~`$AE?0pw z0f22^t4bw%f?H~mg+md6>mr%?3nw?k=w>M%MG?cNZyRAF3HF#BZq>irkt&N@ptcRe z6eFHWZLRKj%0`l{3M;%-pcGI9h~;IYUJ$B>0nBj3^?@Q(WkS91{4SeMLt?4dnIF5r z3}HbtOJBVti-xT=Zfz{X3S7mkEQtWi%|i z;?ChoNWrcbWEiXC^7E{vbPjIT$6tT`8*srl&%F$#lRpU5dw_j%-wEz7`ttn;%uzct z0t|z4K|9-EsvoYOno>c5&jb=!s)yaOeD(otWlDvaiOd+AnX=U4Mor4QKb7lzDtbkE z|0T$pnb9GhHT{F1f%E<-F4uy9-4L+tHn1(@Jb0}&1Jqe<1UK?X7w!hLX5S2f(m}jn zbGd5@0%&2h0zo?qU>mH#?62r>!-HMV0$$&Wew%b%DPv1mJcU_ zAcOA$xKZ|(;M-?kfTE`BnP*eQtIn!jr6~bvy_GPw+6LPpx;+2&49f>#0{`okx8|6U zeKO~?=z54e5G#+-(val|HP{a980g&}gH^3m=y<(7qoLw>^)cwc)i*^lae|NTXO#`l z<%-#s3EA2K)|3oZ;CRe1G*xM-h)Pckko;)`mAG>p2GbVG7K z)%#iCjX0RhKc!D=W}>6 z*BG#wK1aW-P-|$(4*TGOuYb+{j^INDoK8SACuFt0POPW^NA5fuG%=sIEzX&GPj`kZ zKumC39x>(8^WdBot{_Hdt`SU72$4FH>Z3XMEO$_aczhT5USI;mz<4Y((nrDBwZz-% zR`k_X+Ddu_E4X)!6RMEcRDzl@l3((5qR|<#|0e;ZOI?SI85l40;h+%l|UW2;q%O_!Ofdrc>hJ7}3mXl+t$iUX* z2avB!;+n4t+7m6Ss$q&V>B4Rdx4RloXmL01(j01HjVRNuu|c_%Oc^F zD%fBlXeiM%QCI>1udEB;4+cCVP@Z9#`!Gkv%YAj`^MMJxBfeYQ`ZGU_9C_#E@->(o z;2M%kbD>v&_AKqIm*tY?ViQYGgZIGpDo_8PIP*L4U3^+3kISf6W`?l5*#5jR&&^BE zngI0PAKfb2<$HFa@EiA?mnFiXQXfv;4g_Q~Y~>5i;4Wlas`?phV34iJECqsMLO5H1 z^N)db4zsKQK4D>u*>kH08|GUaIZ^~}tK5$(Xn#OFT{$Ab8QEA)Oo7^ni(xPYKr1_a78DuCq6L_R<`}R>u~pfK5#Ye%*Ltbc zmB2`zU#p7=gEGA=*BloCo+nymenJtOa!Om^I~Y^I<=wj+nHHcuw5ylrb*-NS?`GS1 z7FeQemwwF4T>J2Mf&{E9V7ZPhklQa-eKuds@e#>5Mz({MfdH>UR?k0wz;e-`@(=sN zr+73K9Bp0gwGfU0Yw<>Q?{2U)!xQbb%b?H&IDnQwDi>?EIWU^m8`#)izY@uQWcmb5 zK@Kaf7sOMi^zKeD`b%*;dwk~@s4V~L-4H5CoFRbKM?VaQ$hHy_{Nsmx*)5g>G3Y7W zj@#kh=YN3w&Z^kpsl#CAUxLnv@9b>}rpSHs5&PiLi+3Z2y~aHOB|{>IYamtY`8IM& zB__)X_@Ig%)P74?nN?LMEY5BaUHL(cS+VELXKKz|g+s$Wvj%XRKyc~s|9<@m(NjeH zCucZ44Wp|2V65(dvGzEJ;wMzScCd0a)yTcADv%n@=2Wg0jfXaKgDd6&5$7tE7bQM7`Bs^Ph_>N0@2$Wr2+2(S0Fl#gz z1jN1nTT!wg45BhT*|uPZpmyE|1m|yfjY2N|CKum)mfdK^=um1XQwxtGMnZGatp1Z@m zpZTe_)DqH?Wh@vN*>+44AK!AkKkdXoIutbqWMxAHctX4Cnm`!5ufD}sTMR3P%9|s_ z;o8ZQi- zz4kanDvzow8yF~V`Q%SfZvuDB;4-#X@4acU5O&;t=nh0PXl{FWuLJVqmvT#(dJP3k zT>EGPxcO()FJI7>Sk%D9U!8fboP|C9`AP6C&`?f3%hY+gy}%OFo-xnqpj^252?KaU zH9MfyEamWofI+taeqhP(jlcE~CF{c3(*XBBxT3z?x(iRW_=!J~8)6Rmvi4FiZ#Kqo z2^dgjy$fC|28&rx1i?N77-k>`q@E5fEWOX0L(K=IZwen}*`0p~3}D&>TiNXHAke!{ zaeqJ&pTS(*1Rkkli@5+eAO>2fFopno_a+!%Z>XrTdH5C^P$WoT@6cb>#%WLPIc zUiqQ6#`9S!K8WQc;N}^*v_Y{w8HM$sg53njq<8-0ecbD>FFzE_k4JJ}@=jk(HsgQp zJ~c&n7xU%C9WRjaVI5V)opge(-?{EPxCcd0uW9TrfzN?RHy1a}2gOM<0#`*12rTBY z7~|>4F@xWC%C*n^*vuJbq*^Wp572|9B**cFl9oIc#Rm7q`*Qix(u%rZei)WPfQm{L zrynpe?~;?3-3Kjzf!6T#T~NImTq_~M#GAYX$&ff&Qr*?0Ml)YIC)bVeO^ild4;V){ z5Hkd}P|Bu?2Q{2~6TCZ>RcizR?9-!gt2F;L1Gwrf0fiMl%kNNAs9d`|Y8%Z0b1D|w zl(U#KUj&`S+n0AdR81jR`;4o{z;1QtB(4AR%o7RS)6i;p1cqgiehnu)+eHu2Tzqjh zw-4lNUJe$Z+AG#lrrIKuC8h@8Pa#Y)o0PA-a1zXXmQvO|u*S4D4*Q5D{5S+($re*7 zl!ex^-U?_eN5Ho#ZadSrZvVqa><_nFTX)3^?g3)@&;MLpY!J6L?!iF~2&m@YWo7!J zK_)9O=9%#-WI+i&{Ym3WtY0RKtVnm3mx_;fUUHIlkt!?A7G;u+<|z7x-Nh#-%6(nb zh-3foK}^70OTSzrTy@0U>0ghEV?{(11P?eUrYcV!39x*~a%Rncr18~*d2kmqcB~0Y znQ;gR`b2C%gcj>UA=dpDy!F$W4UF!Y8^4ZG(+)1alDl9q|8@I|&P}FaXpTi^&`&k7nnLaGDv$~7Cx2Fro> z#V1+~L3os#zyT)iDB9h&Vdn7Yz$|Ea_MdmYB_?=pjFYCbcMHAk#O|Hps^|m7YE+lN zR%Jc`wIZK|dSEHC>1iWhA*c}%snQ2)tw&oN*zWCUjI|^w#{JCivB+Qo-3=m}x_q1X zP8*;4MDA`3vyD<2$X2Kw1*#UTD@ ztig(`%0UZ?Zg(&tZM z(VE>PV5#wGEi`qG>E4-3NAB%g7qQDDb>Y^ zSKeA;E>r>VZeKsJ?v`&Kx@&zO+D&kp@b8CfzM82YV6D1Hd{+&0o=6cUtdLEF~||rrBb&H{U};l2Fs;-@P9pgirHp{)c)h30tF1| z-=BV~^TJc&SQ>(4rw)icYe~UWvAA3oK6_%CqYO~N*@2qYay&PHH4ErLMWSk)UuFSk zb?SP4>&ofxiG!zc5Y=ftbfAR$ya@rYOQ*USK0(aoTQ~vM?)4(`mM>jLngn*&JDsQ1b4_1iR7_(Jr%Tx}fvot@x z6D**_H=l3eMgZp5DILtW#D)6>G7G^L7lRhW6duLknOk#|)1x)1So{l|3OsnDrKpg*Li?A+E~ki)bbA)x*BV+Rv$1b z0?t96%2o4-GI9ME^BJl_;Q7w%xO)GI{&GvB*KuE^oM34TrGVvq@mA5ZMT~8UbYeiq zyZDhZk2c5|!=+zCEO2-=CC#?$8fusbcHgH@GcX_B&8F3X1UxU#SMCgEDH#~N<}f1D zQj5W*@VJAHgXnh4Tb^S@j1PeUYUV(j62~}m86o;EggN?5Gq93&?LpBlJS0-%UEH$W zw2JK_12Q$Nt%{=F6Y7RGq6x+{<8rnsy?{6F}YzAqDo~_ZBiCu$4#nk)5QU9V$@hd01r7Gk~DV= z(zCa0Pz8Gd=BOJO!0#dJ{3v+B8qP;gHPoOcbgd>1Ze*oraX|320OKFA#k<)P084$g zpM#7wboDM31EZ>AW(g?$%Y%O$+lQi#2aUH_!ju!t=k1v4zy;nSn%H-Y06&=AATTlu zmZpmYSDiO={$;h4TLQ(OI|dpVQJd5pMpH!%S{ln1s1E=OVeW1M#}80()ZLjH$z5nr zlPZFB3Y33m(T+!L7!4_Mfn@D=l&{$Bb5k`QU_i@O9yregaI7!^-b>u*TzW1zPz0jt zzs&9dO3wWZJhqGp^mgTNDA6&`fVu^mQ5^FS6ZN9oHUvX4|EVpv%iDqR0M(z+izDWF zpO0!}xqyezknP!F=Q|mn?8cCWau6NG6!Y+pJ6_RzDul3Eri<-h(WZhGZ9PJ#^3kbw zgOvz#9Wxlf+7wtd3z9b{_SY)FiP!)4G^+z#cRN;zU}S z{LX`d`A&dC0N4>BJouw0p_HgPaVRYAhB?-`6_D9d&lXz)oqg4Zvw@?;{@65+1Dt-| z0ld%#Or6tC7Sb5vGDp@6Q1pLqedAS86QUpoL8>bqb%E!ekflVrtU;`=X?JnbS1l^| z5-47UVzXq3r4tUS>Pt5+%&6WmB{R;eAfQYHcpS?R_~0QhW)R@xNJ)j!r++kBF3t?6 zRjYr$_?#HR`ST^uX#QPYNHrvbROx!cHJ{;G+jQk^Xlmoo@Vn8oY&pQ{AiS)zpRcv8 z;JDO{W_VP|5_kZpj|HciPFsMYYV)Wo!IaB$v6@30i)AH{HP87L>jxIYHe*30aoa{v z3dp0f#SuaeVj4BfL2GL1VetUNx%MiT@h4oTGyCDP6jC#+L#D6awgDU{vuv=3tD_(u z<*SomM`6qTXy9XwnP9x9la-fYAHZY_s_NHUpndsU&BHtcI?Vy4?x-Ppvpb7b!&0;D zXck*U&>hUD3a*@V;W-1d`xpBlXIaSu7w_E9k2MVE{N;C?D|}h?!i2{#B(TYWX$|7! zivfA4BTaep6(N1xV~fgvr5;AZ7FdQKQvz6LuWvBc0LOqJLep3eHDbBP)IvGNLKbj} zS*fbcsITmW$-rrtV%WRm&OAH;X*B<<4=5{YFLno`O!!=ZS6S#h6uyNC`1+-+I8L7- z#-IH$(Y~&7aN%B<{wyfLl{X;AhvQj5skJ$pzem%!pGz+>z7Fs3W~;8_)QeKVf$rf7 zXVH?q)F`ic=K+reeKfpmfSLU1RvSxtW9SE3SJx*F^EkDRt?M}-uRkOU7k?YWe6a3S zDV~^A`yFOb=Ms3tHV{xtJ+BGu^Hc9Vk~i#JuFg3X;|=Ga6W9s%aXTmynq$>+Bp3q|UfK4d9Hpvm02tbF-az&pc$= zd$Z@DdMhhIz@O_iEKHmby%55u`^LX)tFu(7EPLwgk^`gEFCFqZ>x*Ooyf?|Y*!+9J z;#sTHR(K7+v#Z@;21cm2J2aDfHtv8esuN~1^z1Yhh^@0P!_dGk2F!nMq&YdduD(TH zv=e#mB;NxkJqSMxD5;o7LJ}1!nSe34zPaXri zdh+7y5JNMmro}T46b7)e1TkJEYyHhWJR?vBI^M95la>g@rCOXCS5Y(n#y3w~=aAQ% z%b8#w2Nnt{Xqq#%w(Itxe()C9E<0ZkGpnhZGSCF|i~BTNl(IZd5w>?eAr^7Itlc6P%yXBp$Z}#%{ovR2xut&@Ta1EXC5_; z7Q(yb#?%9hs$tHK+hJe;Hy1FqI>S+P?h!B#K1A=wFeib0sdOFGTwr=wISC-Y<-83h zw=Zm$%j(Bdb094G=3%CP&md?kokLy+-ty~5Y3)u|4s$bkCR) z^>YVIQwG?fE!Z}Q-H}M6_2Y-Zdw2xfWp)X_6hL7q*a^n+@=u32&K&6gj3Xi!PpC5J zIrrng-S@|gKDZeGfQ1!y9LykgTRr6Hk{I414or}$9ulGILFFmgvIw4N6m^zUr4q!w zwc1T^D17-ASpGjAzio_`KsTD#W)o1EKT*b`0j(m`t}P|Y#NGI}qHOb7(6P!WD+m^9 z0EqdWKJl*yZc!yLtR4b)NFEsA0%Fl7bBRZ%4)S7wTs_rk6{faf&vKgsb&VUrff`<7 zAIQQKFfdt~H8|%1ou$AkWI3_SlD;!Ethv)Meu87iI4vVSeK4UG(gAc7YqpG@fIVK# zZ37?PyQz0n7cYtne64#-9n^H@R@jUYs<>+oC^nx?ULeplS|{`cwxu zh)P}&`OPCwhfT8;1p^MbiMk%>y?V{J#%11NYAM)f1=X|JR?YuS%s{V!RsG3J{0_08 zitAVoKz`9ezG&dtTg9TMxer6R@po#)*MI#!QG~P57?Z|+FdJ?o?dqeZ8NTz|ho9(V zw?%rYiobg6C-(;i!IKHf-J1`DV3t+h*m|yR?>q*f=1DwXA5Z^L)WFE+3SjTIwa=hH4>>lz2F{bRodxO=p5d?0-ooRTfI|5>(9i*`n$K(( zm*q^15lNew7TBcj{O)?0aB_6AUo_zhr7twWhiE{~+%F zUP8#m;%4{{r|AVyhGJYW6KQ-8=4V@iY*1b-M{x3GZ|*&hIp z!=RLl3I65FV5Om&Eefm6{1?TI4&oRoI!rz^%}%cc)M6V8d#P9=IpXP4<$u_rQ{J_*!<4&JIkkD_VufEc3qp=!buTHs&=9E*N4Mul^X!8N_aE4&+Tht%#er zhZQTs``s5KAkN(>tL*u?OvYpR#N|80r}1=X7oP!}H}JT{VcLpnQP^JRe#X+d#z{Q! zow)`_bORV8!(#y~ww772p;VK2z~e+)D)G{@XasCuz|FmYFFpI%w%Fj@D{oe%Mr|An zI2?|55KZF@u^L;@d_by*+!N%Q&4yA@_82>Rb%7;`14)4wU&$_(YdljRE#G%l{}JBy z+)EY6i3i-dD7uLo6=~sE#WM>mNPkIz;FlsJU9R8c;ANDRjmx>jGO3NY(aVy16ySP0$BCn{s zKAw}IOuP#TBRpu`YSYe=BNUdS*TL$w`)$|+>^p$R_WbmRJ7Nj{?9oXmJj6|4qMRy+ z`JfU|h%EbU*jI_B@wVfl=0l9DEkkWf17q{<^0lnA>N1r(PR*nE$Ky}KjIjk{5kD2y9&4B-+jsW$QY*-QwuT0d3k^&- zVBi#TQN1RvA&3J}sjbphhhkK7zj$3$vUbfTE0>`NXFxxG&ir?mp$%`86*qEC;0M90 z1pHP3-1fl~GXOM$oEFpybVdkhtKJ7c|BK$mM##zlj#V4b+zc3ie@Ft(b`|d26-243AMQnzs$>jp8P>mS5Y3sPj@-5>&JV4yAz%sM@#KDT-Uyc4w z)ZMh}9T=)1(43*jvWs_rpb9t9l#+!-HJEpyu7CKbL;7JWG$3jZ%yJBI@=Kx0j-gJE z68BMV|LHw2=RjlrVDJBgWq%YoFmC*J3{dCha$8IJ%&WgFNV;}PyVCONI5jt`rxWsK z^z*o)E6DsGKQtyp!r(pyj7NJZ^YNc(o3HQjWre5_6AjMb{0;+u zK3Tx|6=^fFq-IW;ezm9f=CjDf!e`i}zyd2-y(#r@==vXEszEImfai<0z64naV)Tz< zdlgnDz3MdVmTzA>sa>Py6>Li>t7)3DcbMv5tX)}N!T_mmt6QFpAG2TX7zEK04#wvv za;#2*HbFI6Bj-=9KmnM_HHe-%oX!r94YB$-rfHEz(m_noxb8Xk3>QYv;p1n)1KD>+p+cg$!nzC|!8~qkNahZNGsyhc ywd4w(a=_Wj3qpOQQ#fihrKwBih>ut!}mA6WZXOKy+{)-%HFUiqB+K!-(z0Hd9o-az}}0T175)*CioS5 znG|uBkC~c$CeF{#|18c#oQa}rI)7q0|96$-d~ntqs|h2F>TUl}kBsHo>?a%MNWmP? zD1ZfGHFaqsh@hv#-Xuv4s(^_>i>RCd`y!8b6x3c#>A~(O_c{VYe!@9tDmW^9X?x)!_5oXQ$r_1TzvT4D}8E2Y1i5Rh06IN7l z%!^`Dr9<$w$kI#f##K_zVvr3d(n3;XznDOIPl#8D+?>eita?a+_r$kJ#eHU3d zWC=!|iFp;z*aa_3o?{xT3a@aMH%Xc8BcqVyT3$6SC zncbRSD`szzJWEL)$sHZY5!*jt)g@5*JW5i@p9M7X3ffdJpn9+XG5qiH*C@{Bav7;$ z^#nqqs1{Iq9_PH=-Fw(VMa~|wdIpgC&{C*97>ji^3d>ZvfMnnF%Ik$>-TU{wcX>8X z3J!utKVpIRy^}Hr=kWXI-iHq#pb?8GkLF4tw4ITdz0FTaTrtqqfm4XTVnarvi6JB? zV>Y3m=+go!6(cEGLV~6y3?ZmBwd~`(D$0+LhcmIrv&&=*k-%Dnxko{Ru*COvcvG9h z8dea+y3@yN$TE>$!>Vzt$dXBe9lMGOwizlPZn0ySf^9C7w&CvAH~>M-S*xYZ)w&Zl zU_z{fQh|G!;KPOp2=SEA7TU}K@|^otZVfK_f_AXBQ=nl@C3F_U08Tl3z>*OkNoSQ~RR&?q z`8>M>1p3{^90Kmuh)0<*Udx_HJ*XI*!MB8I{qoGXA;QaOE+*K9^EbD0={d zE{HOjK%&?bhvmM^A^L5yH`F2o_LWbmlXYU zdSV-3UlZ7v0If!Tv&&Gu3ltEkiK-#GfLwrSb!$i_?8Oy|GI-OpKYG*%NPAzG5FfV8 z4N;wT81jZ4GS~wnmr}B~YLFI%nnukaOz1SI4p?Pc+xE;>c3Ih$h2OBY?Y%Qj$ArmL5{c4lEdAasj0#4aFElzX5A* z*y$Rp{l^=#A}ofYN>eP{DTHN$+#@7-4Q=p7^CV3XWq_bD)UJfpP7uG&c$AkH2q)q8 z<4?q&VwP2~;fMkYmDvQu^G!t#twsrUcBzxCcdc3Lm1a2r=#2|?xqC+@xEa-K+K>@% z$QcWSwAZ`@(v*$0Jg(WJmE`!2clTh!ZFKyvQORSZbBMHmg-)fmPPW=z!k-};M`|H6 zPZ?wwheM=Dbu>8xxeK^kTA^q{lH;S3QwsLmzQR~b7mE&U-GR|6cif?Hw8P#yD(p_{ zD=aM$kXYllM?OM~`2unY^_*gV%NYVL7Zi0N#FH5kWleFFOMeV@S6*1*PLzUT+phhG z%~rc3H|57hdfcf#E)M-^nq5TcZPzawiju1O>xmjB?FrC>Nwr#2j zAPmw(nMlvu6ZnjE%!XOooqs}30057P37oo5*qV%LH zM#o1l-oANr^y2i@n_oO<3^dT?uBk(%RdL)D9Xk{7sHow zm`b4IhAcZ7X&SxixdNzkK#f5?Tm3UqeS_^Y!A96&G1z9PjO!B(YK)^Yo(&)hIM?7* zMc@8`Mo>kb=Q$2;;A&kn@zBa?^eX;2kjt5{tiSUs*P6}Ph*s&kGs@L-`ZBrJ{FVQ^ zyd`T`i39;2d-bxmf-9IDknxkcwjLDlJ*#@L24A`)S{`Rm&CU{PyUnG{l50|6Q$SY1 zI)c3Vz)*v9_tHYSS!0EqTS1uwspP{G{RSAyEn<9ndZG)DhNf1#OVj82`8X!q+nL~M?7saZAI|+(A4)&!LjE^`o~%| zmh9$^Eb&aDn3MNjQ%hf~EeL68b8@4J#u#@~NkVlWc^qOm#;jB{(v*ab3+H6NDI4&K z^cmJ|FB;kCPwCLT@f-S=i!YfC>VRoQk&Cde=wwtUS_m|Ji5%`Mya>K&A^UMv%bxek@HFx8i<*}hrn)>Gwg;8gk0~FD4EQO;2o^M+*XIo9I z64&Z8%78M+Np!?<0uxls46b&Qi!Tl~fE-;dQpl>A?6+*1d4@~&w{?P#Q4S*GIF$#u zg#XqTHub{5noBqT;o>IGzGWIiQZcYWx&G0maH#YQ_Xm zmR+@3@5mVUp6)d{m;%2n&**S=-aT})@>>LsGBIC9J7CAsI@jt zbh*uyyghSRVlTZy{?_z>Hbmns{>yCB1`2Y%`N5u%*7fsKn~Qhn3T>#^n}B-#KQdK` zg}SZ-By7cM8kgvm8bj8jzWKAH7Gu&>Yta?T(+U)=seZoDpzr2@Aj_oynckOXrPk_g zb)sd#hp#Oyb#2(UBon)2l`=Y$Olzyx(fPU}g|t#9g}w`I^l4*F-}N1j0<~0iIvlA< z{I#l^23JWO_o)Y2K`*4=l`E6b>cLB~3k1D-TAu<@V~O-H7q_E2R;|kr(*Dewnuf)B z4YjSTDngZkXb1`}cPnrs!eFo^4`#8qxU)>bou1;ZfF&C=MQzJVmgW{ zq{R7(5|hjGUF$}uCUgbY*NlY?*Vc}PHF;pPyH|BM93mfsSL#Cd)gq1LCd!F(cU^lN z=t44`t0NeWRjHSb#Oa1HEP1KIzvleJuw*65zG^%*VWWn!beB3b_Z^P^6M35d776GT z&Y5w;wQ+eJz3yH(I*t3#8Xm(9Tm?|x7mDPiUAi)&%naQ z0q$uEwrE7w-6dKaEnaq0Z~&peRDz?&EqK&|pK5#01o{TlHFEG9Y(0PW=Hu(5*UyiR zPf(U%H#lE&P70JSaDXb1#TLD}x@A1YZM_xK&dyL^CVZT!?PI##15*zqGFR+N*uJ-J zWVK(DIIMLyNLp~JpX(Zi87dE)aUT%8UuhJrCn5avB28lH<=vHVlSyi(bz4nJfqjL^ zS{+(#feK*Y(cSGzh_n5$CTrGYSuHM2*hfK{jjAIT_`^FEdJb4WJs86BK*SK2W%NQLj#4~HvW6?m zr18QLEiDJDRg|cZ*1Dp5otGL-NMWJfwq9?ma#5AVA^VjMFjb&9#VeaUO4U0zG6py( z9-LbPzPpK4AcHVcKc8D0&Xxsdi~S9!pEWG?=*>FQus6hJ_==;AJ?o*I4Pu2Pgl$^0 z%l@7C&Vq^fvJki8sT^L0(+(a3Lys=60qq!(UD{>mD)L6kJ=mWM6 zc?j5rXL&BK_2@@}?;3aL5K-5)++5+YSB2G*xs>-E#zW_~TD|lympP8PkYSdIJlgib z6ozQ%Qj`Lr2hF*MQjn&*6?A;70oe~(P1;n8Wjpp*mO9pHOR}8d-1q^|2 z{9IMPgUbc-Bt)AC6A*c=OH^J*2+o1Z(h$Lz0DF-YreKp8!3Jyltgk&tu<`yDCD@;- zD4dI%cNHbr{Qf$_1RFz0M8G`UbDV$>y}6TSJwT`U%f8cQ>`I`=wJq|wAYE~jQI!4! z3&L~U=aL`JC;|F`4zwPm$tUxD3@qXq$L28FUv-JGaqrjxpnG}Ahjb6oh>t?sRD3&~ zazC+gFOdmF)S&{WzkU6=s#9APUaQ4bj%RonvXCbd5gwW87ZdepS;|%q157UB-3am* z4;vLMf)4-tB>H@y%}iJ8c1`x-uePSzdASJqNQQ6BCzgewfXTT(W2GogyURfOo`5nY zcwC^q3xsfUN>9Th^%Wicp#}9kPgWB7;hFd=duDfA4X<9RADS(wGg^SDo~E~liVHaO z!KGq?C39jn$gYs(*9C+r-NvG$h=7^b@gWl6A-*AF$At9TY>6Hq!2?qG+Piu8s&2O0 zA6aN^k-CiPlhnctbR`G=Gz)3y{{o1B!4NH>-zAmqJTi>DE%;KnB3-Kz@ zvpK62kN~Ij*J?CpWTedof8wdUDIe1X0s0sX!##6)st;>!_MnijkCes76Siggsc?A4XN(7Ebi_bm%E8Dez^S)`}M6L diff --git a/docs/generator/config.json b/docs/generator/config.json index e6c07de1b..cab50ffd4 100644 --- a/docs/generator/config.json +++ b/docs/generator/config.json @@ -1,4 +1,4 @@ { "GEN_VERSION": 10, - "COMPRESS": false + "COMPRESS": true } \ No newline at end of file diff --git a/docs/generator/generator.js b/docs/generator/generator.js index 4c925576d..0c478522c 100644 --- a/docs/generator/generator.js +++ b/docs/generator/generator.js @@ -11,10 +11,13 @@ const docScanner = new DocumentationScanner(this); function parseDocs(json) { console.log(`${json.length} items found`); const documentation = new Documentation(json); + console.log('serializing'); let output = JSON.stringify(documentation.serialize(), null, 0); if (compress) { + console.log('compressing'); output = zlib.deflateSync(output).toString('utf8'); } + console.log('writing to docs.json'); fs.writeFileSync('./docs/docs.json', output); } diff --git a/docs/generator/types/DocumentedClass.js b/docs/generator/types/DocumentedClass.js index d20ebeaa1..323afafba 100644 --- a/docs/generator/types/DocumentedClass.js +++ b/docs/generator/types/DocumentedClass.js @@ -37,19 +37,19 @@ class DocumentedClass extends DocumentedItem { this.classConstructor = item; } else if (item instanceof DocumentedFunction) { if (this.methods.get(item.directData.name)) { - throw new Error(`Doc ${this.directData.name} already has method ${item.name}`); + throw new Error(`Doc ${this.directData.name} already has method ${item.directData.name}`); } - this.methods.set(item.name, item); + this.methods.set(item.directData.name, item); } else if (item instanceof DocumentedMember) { if (this.props.get(item.directData.name)) { - throw new Error(`Doc ${this.directData.name} already has prop ${item.name}`); + throw new Error(`Doc ${this.directData.name} already has prop ${item.directData.name}`); } - this.props.set(item.name, item); + this.props.set(item.directData.name, item); } else if (item instanceof DocumentedEvent) { - if (this.props.get(item.directData.name)) { - throw new Error(`Doc ${this.directData.name} already has event ${item.name}`); + if (this.events.get(item.directData.name)) { + throw new Error(`Doc ${this.directData.name} already has event ${item.directData.name}`); } - this.events.set(item.name, item); + this.events.set(item.directData.name, item); } } diff --git a/src/client/websocket/WebSocketManager.js b/src/client/websocket/WebSocketManager.js index 39aedae19..0e077cf55 100644 --- a/src/client/websocket/WebSocketManager.js +++ b/src/client/websocket/WebSocketManager.js @@ -52,10 +52,6 @@ class WebSocketManager { * @returns {null} */ connect(gateway) { - /** - * The status of the Client's connection, a type of Constants.Status - * @type {Number} - */ this.status = Constants.Status.CONNECTING; /** * The WebSocket connection to the gateway From 73b61b6b4e37b68325d30e29ee70bbca5e71e1de Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Sun, 21 Aug 2016 18:05:50 +0100 Subject: [PATCH 3/8] uncompress docs --- docs/docs.json | Bin 24030 -> 96486 bytes docs/generator/config.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs.json b/docs/docs.json index 25fe4975284f8f5e6856e5420b4198f999617405..361d73ae62208cb0435edbe1781369a9ff5f4f9f 100644 GIT binary patch literal 96486 zcmeHw3v(Q|vF=})kf|c&OHn5EvJ~4DS&|doSh7l_bLy1o3WvKxa;@E2o_&bs(ba#y zUpE>+1B02J8LmVpRw}l+00uxm&}eiw8t*qI#UkH${C?wIF`JL3<;LT^FLySE`J%vI z_a5#&eDrAV{@q7+?|#_X7>x7zyqIr1{`vjJXt?osjWVC0z5hKd=7ZVj zV!<75Je?KjZ=U5@SzKn%M)SdRHq6Y&N9FPH@vrlvaxg9D3s?C~HY@&TIhqyQM;k-) z!7f^D-1>`cIpDFgZ*-r#rq69^g>Er13*C5B5P|WA2%kd8II-ic;ff|>i#W}al2ZQOd zTx{XX>DvNde0`bE%5U-A)pWTvE3!%cc2u5$d?(YzPBuczqjItwoM$J+Vo}WSS+<-P zraqJ2vKf#{b?14B8r08h)$URG-E?7p&9n3TU6GxS&Zs%QDzfotGFpIL%Au)4mzX^b zGoMb1>=fLz1QeA+=2)YYO({E8Vo=P|11C69ZV-Y3@Wv6@_7zvl5*Beq(WU!KnNB=Z)91>0~r70PybD z7~toPgT)M(!|!i5e);7WtcZ(zmQT!r5IMs$`*C(i?23lr8aM>|8#GLbHPM6^Wtg4P zPt*y6^1>J`vJo+w`Ctc(YN5^kHCfIV{{lZ8l^3(=yU`FVfw5@j5d?0+Jl_vH@2xnr zeI=)8E8}_XWYcnd1*ukG#B6lxW|v*&^Q_xce)#~3;S-Q~F{%pgO)MfMz2#RGn{S>U z96|_``59IfR*n}ifNWC4LM(|S>f@#90v`!w&BBKGyO@pM(UueQ*WLZL>_uo-;&~H0 zSnkIYz6lGffKq)7sM%8518Uko3x;nEZtMLi23M$qX$q*mpbDncSyJ|c&?C1kbocJ{ zCFUjV(gGO&U4`ktij#xs;BB$UWMX}xa~*XD@P2Dy7?V#n<(UUll~jQx?#kYnjohus zeq^MsY)=@yEiLaq=u69dKw6<9s4u7j`h*)_m!zhbd3S<7=q-L|`&BU7pCN=#AZso{ zK7|rChq4LDZ$D`%Uti`IAYZ(N?qs~B{)E|})^4bwQv9H|&^cR<#?VyV(saK&fa$(j z2b_PS3DpAn@NQq89YBdKi?IS#m2?1BeYFm7pPFga1KgXktTuVV+Mgk)q-fIU(XS3i*}t5HO4xER0cO)^$_J!JN06*R8FF^=^(oQt3UPs?J*>7o6>Yo^(w z-ZZnSvWHHUQ~|V=HvwaN@5u ziEeP@&g26k^OE}-X1B9q_iQ(#9=ZAq)L%?5Mg#d(w@gD;y}RedsS!kGt~EB5J9eM{ z5Gy|hUfu|PD)Vw=UFi>7R7Y{f61q)H^pT7E`~g+S_!(@S+a2fvkKYV7!^2G&WHux zj-Vs+K{mAkg#?bF)DyW5tZ$~{!k7dj8V40C;WQ+kp)&#uMhvWzmXN7qCDYFjd|kK< zCnVr<6&>LkGHbPj>)ykVFA1*e^CtCTmNw~DB8M3JVNFNKL>jeQad-WB!%=Jv;wBQV z43y~>khX-UQLwgz&TktG-L)Wtz?(yoIWUA^aq&v%zXMp?LONVie5(~Cyp<}C~w7q0*(&z>5sqqFqaHfz&` znMw^9cP@*QIh&U5T;yb7n%}`!!!aH3n;~>EKZMW~cY(0eK2U|Qc^BvoA+zImdHG}* z?+LDOC3K>wKzPW3V6MCau*e}Tu5cx+JU3dF!nAkB#cA!?Kh!z*I%(ED`PL}1^QY&_@@=HiL{%$69Z(;% zcNmxrOV0`RSurR^?+RKTrd0cRV|&K_{ZMh!(^wyEWk>fQ`+}8#Ds5n3RP9!PDSFCo zziwG86LZ`tEE^Yh0Z`bsCxB)q>!X^nJ`E}gU8Q^_h@`!UuEsVW(RoHQEL75gP&kA6 zIiF#RgBAKByBOzJ#*2MM0Um8Q`GMDYUbETEPJDd`VQFMm$dejtLA7=za?B!iCIe@O zAp2#Wjq}-AVHSBSG(7a`(#JvrJkg-d0g($+61EQuR|3r(VJM!NPYt-Di?ssvzTbln z{gl>6ZVS?s92^mtT-FxK=>=j)c!u49eBfPs9|g#F)6t*+EfclO@8m?ko}9ga5YE!0viR|7Qfl`d9!P&hW}p-~Oz}1Ka71 zb>6LL{)$X~%wa7H$mz|oq}N$L4ws`dx2ztx~lC^mII& zfF$0*YV6z6fE+?cwjKH~1WWjZBq#R0IBYF!k2XAHBl}vk^D4j>PG&LQZD}|)g?Mfd zPEl-7!d8shD4eVj^_2h(-MTaCEdaH+Ka==^5JEzJ0<>oAM;~-YzY%w7BDlJ6qA@8< zvm`-GRbR5G?Q#t(f>Gr_>OmYP8&m=W0u!w!>}#VlI#w5j0t1PO^-)J5AKzKK6sf|D z=Lg}Tc_!)MuCW}y%jd;|dlgo2#kE{uTEq-MrP+gf*=Pbc0(v$0QsxW2$hclh!#%n` z5QGHl=AGAM98*vgh(i~_CT`;pT%!1iKs4h`fTcb{+YwNU{gbsOmS1VQ#5h8$_JUGO z)c7V8mA*WjtXiScBqoj&_g$HLch^cC4@d2?92gV3hXcq6fhGz`E9hoK3cD|xU&Mon z^(kWq9k-{9a7)``+-k21)5=QA>?E2iN=ACy8Mi zb)khBIOx`rB91`UaWAo|>?1S-E!h``R59f^_<(`x!|X7hzlBlD zM64V90^rc%94l`!Sc9Nyud+&Cn{v=QoVvplrXe6E>q0o6nscH7)PO-;M_}s?E3D`7 z7J|I*jqIkk)i9@Z)p9u=1Cm;9OUDh;yc2PQ=qRzuLzbqaRk&dBRfw$9Wod$jNw6j3(1#~8e zsFa8JIDo?vkzbHpZ}IKzoIb`G5Y~Zr`Iy*;Ju!T0bRgusE>Uis(xBq@* z-Wst*Is}$j%fSZ2?PN3_<8l!I8bWq2zzic?TRShH_njbK2nrxObhG*SbU7ZvT!LsY zzR;N9#8*o?nE)4ck}Wv(yQLppksR3H;lvLyaf2_A0uwVA1{WiWX+jB@RwFz*BKfMs zv`w#e+OhQ8^X9vD!pq zA5yIXepg9I7pgd3k-|3pN_~UNs<=z_cM})jVXu^jfIl&sDc`H*_*-w*Ay9bh@;4&M zC}SfJT(mCV&B9g2szt_Y7U3*vcD6e+0B|R43UgLF3r+ah=EZV;?vWtBLeO8M31kx4 z<3-1SX!$W;xj}UXQ3iwx6!Z(ZPdE9R*W)t3&b2wFp^!2^{M^KpQx&;kuZqrPtcPxaG?$uzr zbIPk>PoZ-AeCMb@3=m-Z`FL7PIOuuB>SuZQbZZ$qEpr%Q+=BBAS4NZH}{k z=GtZDZl$1T!# zAOi&5EHgTT^nr2JUQ{a|J$>)L9&=Q~;Qkw`b_ zq!+j!k2E(X8oH~bONfLO>VS&T^pJLwhE9$29Ykw-0dvhW30fGa{i0GHBJL1kkD9oE z2gEQS>(FI^twRz?VgH4PiFOcJd`V1>rvq5FaP#j1JJZZo?`BW3i|HH$gZ-;yTMj&d zIqpHYZzze5`-n${Dv-l60j=!R4`()Mr_k4d46aDfqS+p?@2zLP+jW!TCQdybnvgHj zNVCjj{fRX;=Y09{zY8&rkF3;2PY^A3qzz>2E+ouI;K-UJ{5L^ z5vPP11cnk4VM~}{5VJ~tFCVu|IE&P-m`D{qee@|;|0-O)DlT7`=v@`Z&Ik)@(pV$! zferqJS%l08IDU;m14z$CA^r{gJSi`47T zmW9}>EJTl+NCJ{6c0m0Oflzpf;Wf?{Fu_7jI?S=eG&@sQPTW&!{mmm#BDt|%Gzxub z0}_!O(OlUlgaI>r!O`A-Kt~aWKwpR`LV!cbrPZ7=X?y+c$Jz}w(QH{blYs9jw<%d1 zv*`d{JeBp=p-hPkSidVbNjmOOdnzQ`4RL*{)F@pI!eVe<4BoyteG^_Cib^Yp!xmJs zv(`q2h_m4M&GRSE{`;6D!n}YbR)>_C#ef@16r=zFf-4rBRu&gD!8--#ATBc70}HXv zy#7g*t_G|^D!#Gzmb?UsN<*wxSxSl09dl2ITq(4G=$6`&J<~W4;0MxU?NVgla=!cK z`O_a?y?Xxi@WrdYbw=MKZ&&#gOo;=Zk!oSq-FWCtvz>T6y5A87ftjZqH)OQjYH(28 z^U6h=kVj?&e3|qaDz|DpSPLD%*$3lqH_bY$9D(EF5Ftp4gqtS_D^JQ<%W7bQ?79@!VqtjWYH zhSi`mcM-f7O2SioY@kq=XJd+8k8jvTuFdRoUs6SgS!~b);6HaLVR^G|bTo6wJ%2Z0 zt?2L;8Bv~mK@}O+M3WDP*t?C-ncX&SN=ji`H-4JgMa9;-$+TCk>Q_*w^xA%{M2Dz8 z($#^1kCT#B-Me>fJAjQ{0uUAcr)P!YxV#4zi~0&jDWJ}c`O zW+}WUV(tpFJc#bPV)H_(;Z2i+#81)v4rgeRjTj%+zCmWR=0mu@ z%pbd^Zu{0zneAc&Ew^uFc#T5B=BW@yh{5?bSOK?n3VONX)?cUv{xGMF>Pr!KeaJ;S z%%o3emGBA=pA83d=e61>K>4PN`eih;r1}NjtQql%opOb)<>g=-T)Bm9;o^vW5q11` z$TOraEXxt1v@*2?c7~x@R_*&RyjC#OtW@5G=xU^22?lpk7DA@hE9recm!BaYxq{{K zA^AM?7pN(_aaXKg6kn9| zNGf-!$xa)MLOvjN)}W$6Lac;KvT~LGC*Y7+@HssngdRjhsFHBd7i8rCPH9$z+dMnk zm>1(ydRggcgCbfz8`|fNO3E!U=1;KPY+k8tbMeMsv*7^BVt8wZ-k9PTNa77Z38v%6 zjVPEh(zt_#pWrP1u)2Pg@;i(}NqA zO?K+F%%mFh=O<)zLq@ZJn_N-IO9!$w;((4XYBxr7rHnp)6{0*LLriBCVw)*!pU!tF z82Nkn)DEu7!S>ef9rMBNMR_LFgbXXUSz^Y!713WNOVsbOGd=8~nyhzcG83<*y{k@8 zzI6r#-k%mzw~NXCq)I{#KvX3h$J3G`#Y_BycMs@ILwiSm$LwCXYCNTMM+gdp+M}AA zQxgq}ooYf?7I3g5+o}Zo(Vk1S5@FC`H^R0!f1Lfj7>}pMJNETo@xb1_`wt#|_2}C_ zfxEO4qna7z$m+_R_ChbBN@U zkZktMnrF{m+Ot!(4YvthmneS2m7@7A7vxDqFvGa`PKL-nf2BNHa?T(JjKAUCM70>d zYQ`(@tK2cY@mo2{K6@z;0EZP7(fec+(xIs5`c)$LJ4EV4PM<(dM`@*>G~) zOTx~G2N4lKg8*3aSvj402WP|`j>MSZ&J$MIbhcyNG&bOtl7oU^bn2jsGq~t=RH82^ zPUJnGU}@1)h8RhD&v@w3;wn42!a(%hG0kdsG|ayF<{KV+A3u(9Ohux&IqQfvS&Qw1 zjQifn(uK?pODl-1f^B*exrH~GAWzCwCX~k-+9ZT4%?vfXM(Y&*a_GJLPUqK!A-hnl z4uq(6^AX#xZM)>(@4m13RosE{eu_shT0=Pq> zK%C?msWX0R4hu~1OeopOd?Z{kz_wB6*Qh+4JQ#=Ac>&7ZUQBNzA!30X5EIB1q_-k) zuEpJ$knJnva6i+oOum2{PNugWM)y-$&Fd%qr&nZ3INogg&3rOJdPiWe=(~7zmv9 zX9(mW#0A%wLzxE=?AHOHP)xC5m0zltgrmx#;O5uBqLnnf1pg-Ou?&loCaR3)X*(qi&7BdBm%b#2$SobFzecrXcjl9?YN92LnYhij4!*>^Q> zg9^>MOFI=x(2F=O(ng5meuqF2aZHt!2t=UAN99rZMfSxP$MC4&=KAp$Umy=P)zF#9 zl-UNSr->G(P@0VJ)KJ*NlkfkrPNAcW)V**eZ$k*Cd`je78l+BIY{(N6JJ~UX zc-lzes|<(GatjH%f)^;7PI(C)Y2HB8?V#0Qr`?nK#4h0Lq7VnlISI?h2uEYQRW4en zoF=^0<8sOvl1mRd!a&{Qa$_~_6G8e18AyCzp`X%qx2Y^{0+uQXp<0U#4!9U0KY6*R zHN+j2uocMxGHs7@v*)FuF{Tm)xJD~5mOib;{FJbWxdDRXjN8k?V`qp-Ij6Kbn7Cm8 z?C<#09crMTkI|5OH*}1448we>&Nl&T2IWca>~o5CW7je(#>81)Ospi_PiRWB_4da!=*hyYjO1p@bu7q!4*=ZNkxdIMH$Rr%= ziR$E+H9VQ@&yY&NafzE`+noOG0GX?c*)0-L63uD&R;&Cfa|eIgi0wqkCV%wFk3l>t zjzF}s<3I$10h8+>TBlqEbVdh(N)Q5~CAn#10KyqPabqG7b~a2%cNoghqL;1g|76?` z{<{U=9tSf->tEd`<4LWcQ11g7cfR>{G*B0Yl>k@5jY|HT(vx|ho@DCFY0}rA3 zcCv&I`xL4xFh^lHWLL(EkFYyml1jrP5?ZmD6qUrw3=WVOiDYFEm;iiL|ytaoZv!IKoN!oea0!89^i&_~k1*XoRz`yiU(8 zdf{x;qW*QL#gsLtIYw&gFg}6Ax!c+c;HZQtuARk*HW*|)CB~m`jDAElX zjr^JYjCnhl#`YGCc2<;FBIB){Y>U27F+l?pIaIm-VP-qzx!N{=elLH8+apO$cULWO z^+O%b`V&%bhuav$M7anSfw%w1W&BRAFT@=PF1E=$?18DeaF~Bndn8rZ6FOm1Fi;~X zLlvJkM_CvwR8##^MWTN^8j5&ZNT6e)*D+lPIp)`fkK2vx4M~jhO~VuPd@FDza|+6u zc$Hsw)w?b3ymLaSa(anP1OgKOXDOR!C*!<)%kRIo+mg*Bgqvv~tHt@*DccjzBvQnV zpYp;okIq7aqc+_b^xj9&*WMUpuVTTNQv7tZCzAac(I>|aWP+^C>6j!tH|?qtnU9bR zkVJ>YJr^pppH;-e55=juJ;&bx>u23izLpJ9%LHEM%EF4(n!&YH&NjH4X@vT@~$Wx+tFUu+O?@~`cd>Z z18-Z=(3SKuFGYM)(rL@Rr~Cqjv4163$3?z4$1@T0+2GDRNS~253tpf6X6m&JAg~Gz z46CDYf(71K0@p76e{%4!$?Ew7F5HI~vs1M-jA5dNO-E3((34f!4JI+c&LX1Pr(&4O z+_v|+GEKFA60uf#=vqciH(pX%H*b=cDp1t2m2MeQu!+U~nP8w=ZbRsxKY6l{!?G$C zL2(U#p^ZIQUZ1g4XNsfzG`8gk+m)eIznYWs)3*Y4Hx^Q1q&LYze)_e%qX2JGMg$8j z?4*V(4)ONJbg4pnunxX^!)mUVOmaC`RCM zw;8UvxXb20fB8#$!QrWIX2@bgjzzm%v`Zcr;`468L)|kr;NFbR%OKP;hk-dhbtE)i z2H_=pfZOdd2Z-_4&jmwdxS|S^1Tw-j%YK-iO?$D(oJUqXQYS1-!~WvJeBVi6sEoxo z$rNVhwOnDUGu+#vdy6g3Lk+S6CZP*X1s^6&X6U=5>a(_Heh);f?zDDI)?~aNCex%c zgIa)>*k%&E-5lhlE`+TnSu!Re2>~j5=Cf5n5@ZoBuKWIKbZ1s+5oh{SoI8{U*`ag9>2k~wFD8&>G{*^|JyfB&lw`6F z=~O9=Is@f)F?$HHDo03O5}CM!e{Oe(Gj@8&9ygkRL_7S9H!dntGMy4{L2yUe_CH^| zrhA=Nw_0x{&A{$G^4D=YL+gx}0zB?!O!%3Cb@w|<(h!m|I+8P?FxF+YegFQK7T)%2X@xl4-@674f1Qp> zc<&ULsw9Mz#0R{DMFxe;Yt5BLM+dm5tOikcohbR8fQ-;t_XLwg;|RAnvQnqn*J!MIam}Tz895m4r0JdxH6F zh8OCfVH<9>P1{2fz0c~N8B8lL``0-(6qD(%Bc<87->aZ94L=@C*I03Z5mQ()C<|dD z#*7V{@@SKoHo=Yjv;`I&WX;h=PA?Gh>)JRUolNuD@MxnwCRWJPP9B3;7j<3=eVGlg z%h{mjJrjSIjf3x;ljf4wA~^=ko&$vwYjZMvR~rzVIO(lemiMkfXtEIvpO+K?t==z< zN<(7X&4e3KQbE?r3}8qBN6E&nJE&s?iR2zQE0amVHqMMjiZ}g zkx}CGIWFGF<>M9ceHaF}kU4RnMU@F53sabAU^d;&4ogj&Ej5HuXGf*2LSoHHFNHRf z&FN%8D+y+^>BVTUlU+>bP|Qj3p^l;cV0B*3MhnEc5&|HO@u|HfBHisGBWh``W$;V4 z^dQ%qGtp(owuxN#ke}wl2R}tRoT9n8{j?xLral z_a3g1gVLdP9#i(rQ{^S5QHqlsq;z$T=yJwpI6-ZiUqUUlP9%U1uSIqTOri?w7{$u` zkHIXq?|@b*yi>p{rdOXT!t7&~{6E~FCi2r-Rq;Aqr> zaYB8#fpHFL?+>`fmV}e>vW2w;HAc`rA#2R+ zWB%dNPRz6awF{>;M@ujL#A?AqmxN}4A-k}3(=1_#^gKV_kI3)ChTxaKpid-|Xx-12>W8vP_)DFs zTn78G?Nb2hC7{BsL}@`$_`ZzcQ$z`g&Go1XtC=fNMzs{YpiOHP!}QAAp?vKHfT>d# zviiK%_#cw|O7rn1E0#_hlwaYxJH*~W71npuUQ8#n)^Ib4E%b57LmMUy4TP5EtT1yz z#cWLp$Y|3_f@bqo7-KyiUTHpqB!G?ANqE?dZ>#nP*6!+9EdsA9se)`PE!47FOmqyq zF?e03GpNmURj=}D?rRi2X}U6e4ovw~1(7N&c-P|BW)j|yE*$qKVVsUl=olAQA@!DR z&eA67ax5){w9Lx%bkHTtE|kcvGksU!p@#yKrmsKx{^(3bimlxlJg5z^@`O22iU){INP|Gy?%;p)n8Za}F^Y&**8&Wa329h12etO>nh}ccZVb~EoMhw15YnPG3 zrp2b1gpSmI51jm}!scCh44MJe(28w}d5KFjURmo1=}%1|9BU#YhQI;qS& zl3YA5#-}l;uA~*9)WdCtwj=MZAZKg|>QBz`Y0SK?q&PZB*!WqV2ebA zh7NbEl!pM5@HJtM$Sp_Ty2sJn>4ObICNpN2wHofE@e%WWWCgkw*kU87fUV2xz#d45 zfwhf&T(BQRM!>#ctDt$2$Eu_XDu>Z)aU2KDcjW1&$oU6rqAZ)){C;D9hQN9Iow3Tf z+nf2t1uRVbN;bpI3W33PM_40s-J7PHa}T3<&%Wd(Vd_DbUm@f*n=FfAvgl&L!h%cb zY$tVgl7w2gLL$f6#QMTVqSV7Dzgod(h44oMaqr9S*01Eg%2HJ%kcTxY4Po}e*h(e6 zW+9nI2$IB2x$eUFpVQGm*!^9+w)QcLt3bj$vCufw#jk8NwSLL&|LAgLOa^EBW`xrOa=^gbFv6xr8 znUf-TAaP>O*CzTOx_P-64RBo!vgE?$5#XD+IwH}=o7#_&Fdg|DDNWJfyclroCPjVH z`P=uxcU!Y#`DRxFb>$}q>h8#mFWQYMH9OyED^5>G1A5kwZsU)T_Z`|lY|a@5m|o5^ zniik!5vp-YBf=R=H#CN$(^LG7Qx+{CYX(5FWx6jhM=0=Okq^%KA$5cxPw6y9v8D8E zxSw+51bgXh5#b4BPhD$}HY+HbHZ)h{urn$1d9hWGPOxKh_VjL_q&x~kjcE782Opx=ar9)xgO7o%+KU0 zl1?FBdn$FS%(xd1Rh$(b{Pww$<(o~)bqeYUU&ybJ@mxwxYiMIV=j(Gtw^2V0(+i00m`Eu1wB)WBtPuImpdxlJKU;rSngvM!7Eil$Ipu`_%Mv3s}Ib zEMSty6yuo!KfOr9Jr|LkHTh*M!-xjsdBzunY(w(Ot2=A}^a9MrAV6@}aZo~_Jatz# z(u$71de(+MPP?<9u?5cqW`BlYA!7w0d1Cn01yj%tBniMNZwz>sucRP79JS`I>b~oM z09Jd@J`KKCaC?DoOwt~H_d7%Y)74zjPDc*N;2pqfHd?Dk%6h?NUXAi_x!+Z|OqC59 z5*l{^q{(QjUXJethF|g`tbIWh5Viglw|0Oe6brGHN8R4-1q)q7#(VG+dKpom(M2IV z9P_K7aBHpuI8BBPbvL&cFtlYA!^0{_)rt_XgeWnekOVQewHZl1Q38}blAIjnWty%D z2OZVhis*z=tw_l~LRjsA1aVe$yC)_m`NwY`PH!Jv6vg1Y15g!(I@H_MMcrPsrPBk9 zr_bRgxkBumhp}3bhF1eB-$1YaE7DGLhny#8N*Y*Fi%RT)D*%3Q%{`FMNgho5GX(BQ zHp5A3I?2iX`SWl*z61ZoEWn;mS^M@AQ}CV z!~h4uoEVMei!Kw_9K%w5Zu%pbRSn%iDFpivY6VYUPEwF* zIH}N;W4@SAM{YzyhuobSF-?2jGg_n%DW1hs9XF!KX&tFAyWe8bkoN_-ncerjS1>i@ zYXI9}rE4(VOLX!mE1B!@Fs5O1cC#uGo|C^@PdQSuyE@qmuqzwO`IE7geqGlG@{D zVDt_$PKZqpJ*q@1G^rIRNgKN>hDz!Q;I+3>(g$r#l;+ML0n6ldanv$sgi|^_f$^!i zV3bO>-xEvW-7m7CQQa0j`z0pFDu$o)$&VX$MzBg;O*8zY2zF*fvh@R7;mRRBm*8hd zfW7QX$Uw`)j!(14@tXRH?fg_lPaC`fQc*3-)fa^0`YYko(A@}^kyow~bjvC_e+2YcUX<`7eEt?*2{A^b18STH~cVy=Wr(D z-F6(F~ZP$8@^C#9!8?pe;WE-!a6-@*u64`<2n#XLHyX@xAyX)hPZ;s?V?+VFd ztWOQFPAH}qdSqKlQ2ur2yfDOk@nvJ87-rC#+^O&VqPKI>&#F}=I#b+sWJqp*b)))y ze^vA5sBWiTA$$Y66MOf{mF^XGWj=v?56i2oo~Pk1>hk;2RMeU9=`IxQeS__vxBl_s z=|BGU^7+f}p1(Pu=h44=^2+^GFWA&DhrChKeVc)lp)4kV647>;CDLFm%O1?7ReaI@oNfzairwL6DNU`pyfoXY;g zHUi~hh9D^xf-vuyIh&`(!}Kh~rn|1i_N`PhmA!}F-P)V#&h9H$p&X*+h~x#bH5j^h zAsefetg*V7x?A#?%=M_y`qq1ZsoldBL$-=6sb6 zK<^X$Lt!{{EITR@$FwFk`|Vb z>yD4iiOdIn6~7^TdcYw+;YhKT2bRJnE<6Z zbYicAj0$1tU|cmfSNWZ-={ZY0nH--9O41o#~=m>#5 zqzDA|X9xj>L*UrPLB#OAxho&SJtzPx5j{+36*Pw;7njVuAhC)kCFn_(v+0b2p_vPf z8;^XsZDm6wxGFg4O+}@$3mQ~OhzXJqwo)r=7Ai) zDX0@dSXc$FunBdQUV+@L98J)cP%8lHO(%m_b-URYgn-m)Pw*QvZD8HFB3+k~a#LVF zUy#LpjkXZ3U_})bu$pFRKMIB2h$|4261EHrLzn}v%7J;6i`rXvsJa_b^^AITN)53> zt0LS{*B)s+_dJ^LqDQ2+Cr5g(Lk zSK;{DK73w`R!0QI+Uruk?-wKLI1e6@S0?6R70dmR9+`+Z>UC#dqIo>Tos6v~dwtwx zyVhE}dkf=6o|tIhFonNWT=qwNnIhu0!;kkcg&HZPUB@Df(~<`q#&i3}7tz<`5+LAWu2jFl=j1;~tx;qKp=5T#z|s=*a07W{m^d8Zvwy z;PAk-=bdFVP>&S1&O@Un+C7%P@l`U_a~cKBrsO#LpcqUW4VP)C!YzpR0Zb?)INAQW z#v1+u?S|6?fd%T`qgV;*3Lllfu%OS+-9fdA6u=WXs7k5;+e!x=N0V%(#08)hoE+8lnRC^doEY@c7#W@FiLlr+cAvBDOt8m)!|_&j#Lxxa74d5hSsX&Ii5H00eg zPo%Qlj za_x);#Y+crixjH>an3nj-ZqyL48$kD7K8XH7OH_@h#X6JI4pcx?CZbo?ccq3|G~qr z9)0_#FoG>q%a-Wx!=LDRG2=E<7S9JhV;POQ0}XLRJjk;@|6ijUJuj0yf#a*TJ)qdDT?ykGSa=#g@*|!1?(&V zFs;)aFecs`?z?4;nBO}g|xq!*hx$Y)ldL$EqM zH;<8Q0y!Rfw74Q)_;OC)9n*L=IUN0Mo^W245PK%u+htBsn!XRpGzVuLMCf8v#1Hcj zb}Hmj*Vm}N7h6}{?~bos=pM};V~1jm&_opq0<=kN<}!0}EIO5uia)OZS_Y2f%V)>+ z&d(dw15cIee<;Vb<3{+0J#u7QCzc7y!<8U06$_jUZ!e~|=bYTdo?dBrXx)d`u)DR{ z$fBQJ)&E|u>Kc;>v(^&Qj=9MlqEt!9PKP2`skv67lAM!}x3QiQ>b}Z6L=$V=GD2D1 zDOQ&HUeknqh+D@A2U|QQBda+s4zd3v)C>?oPg#GESl-ghUFTdMhjrU?{FoV z5G}B|-yu-MQvS?JkU(E|ZPm$KVCu|OD(hQE2u?UHluY0J2fp@OM-i;vldS9GIX} z{=gmQ{F{dc(BS0eUJ2BLG>UgRdbbZd)!kC0#CM|w#iDz{24x{=2L-ZG6ID;lM|N8i zdr-)rdLYzP)OT~UP4$$^6Cl#tQTa}#i^l~wJJs!bU*Vd(zc2l6P)R0&iMlyLar^W8 zcY|FS=>rRXE+J}mx=pJdyV20CpibHhQ8`}g9)T}w@~SHI0tniK)FHx9CJbMnSTUiY zSq0GO;e7;}FuXg?ha*0vUOkk zk&>NbZ^Nf@>bKp|ksY_+rbuu%z$Q+q(z7`~hn5}7i1v6cKg|i9GujTPXpWvSJI>&K zn!~6?XWeNeV>I}{Y@GwoA!3F5?ms^?Pb2K#I5tm%(Li@^51)Sy&bufm<=f9c>xXQO z@iIT*3q7%oNF(`UM(62qK+MFJV`8$bpduj@gtojw0U}$F^7RaF#Le=tO1lHm`c&+( z-+W6xZgc?lj^&_yBjV|-dW=q1!cuq5M5-q|&yRsQ~9Pk)V<#UK$fmFY^ScMA{L}}Ty z`ZFBkxt7~P^0r{L@bFrvimQ+@VKr3}vf53@=r!~0=ODc$+?N|4b~e%n!jK(yHr&Cl zHW`J+H=^{&8xaKQ*@BQu4slGB#wOAQstWgH?Gw!>qlC;v%pX=oO-vq(^Orn1G_uk> zwAt->Lyd;1@m%eU+WL!4fA*Ed;tQ%+kUC?<02bbny}=$kF5{_!vEU7(?+4No+Y~q}I0MJ{d z_;&Us_#-djX@?~f1Ho&)W@PwGbk{@%)4^HI;3+Mhd?3{2h$a6yqV>b$dK|i*^M9$4EbmcW&>tjz?_} zb$1**r0+p+;(^cx$UbiTR6K8hSh0+KP6F~D982X?<(Lzg?}CUZkyIZqQYxN8Ei-mdS4^x{&rUe31zQ~^FYE|&!nfW1TL7G$5 zF_}>(@-muvY7#zo>dUC4+tW+9NUWNAMy6FtnV6smO${~h3hlsYq;*pI?MWgHxO>wc zA^Eg>rVr94h@OyQaG8jLGl?rVJ~#=;eWy@gt>}Pz{0Q6Ea`!q2R@#u4{}JJJh+#_OQNO&O3c>?6hjVYL_J|u&@=XU z_nz$kqY1q>xV#uo^C7BJ>-D=OJr{2fBz?JslUQP=xnZDqkyRIwdK$V9&g6WQLRzY- z4r`nf8R=M!$l+@kBFpRnEIZ_|5=zJ{a;)TQNqGs)9)_&k+Hn|9rNlAPfBEqL0r!R;MgRZ+ literal 24030 zcmZvE^_!j5+3rln_qgkxnT)%;X58J~eUH2BJwT8mg*HfO(Y8=1v`8s(D)hRLkOT-x zkfbD#^Yzg7JBP{-=N~xty`PnL59ztC`_c8vT93UG-TC*Q{sc|*mXPp=y zoD!K@_db`4j9?+4WN~+YbI5K=9g{IWWMmJ^`NL>Rc|i#tTK;(Hx@iwhU2=Vj<7HHUd5dm;&RL09#5uC>>+~WrM0ffVZc}wqsVJbWgVpHj7$Us1g7(M_k}e!JAdQ z)~f_8IaWOLR&sC>Zi}Xsrh)3 zU^J9*2Ar88L4X~jvkUs@N179gkDXXNZwB851Ta={?P5gR@dSdMtdb_yf?iDKDFQUL zVJ(h`ozLSv4cS$e>3!292Wu$uy76a_XAP9Rl^Y&~^7v@Q^fmj{j=Ndc!Kf_WZj zNmSLtGH~Vo87Gx0Xr?MKAPJ;mE)L5jBi!^Ph|zR1GRBq-B>wxJ`{1ZOJOmfKdsjVY7>U+-UC2?4151&IZ|2>R$=usGIG z42U;qh!$-W!rpcbJP*_onctKSxd{R)PXD30Ow`;?NTv@67Xi)_kA;G%DH2=HyLHj) zo?R*!8=mo(9)k~1y$o$Tmi@xm*$s86*5T%QL%;+95C%s+4bTl-xdlS)pAGWO%g+t) zfX)|Q0<_Kux2@ZKG6J}eF<&cN?@pAZhE}HuJJteVqfW`ojc4y%x4FjS+g<(@;{>pcERTm# z1>!_0nELXOR(?$VcC8a!AV<^!1mIqroE6CHfb-7`{_TZ_{`#jER>a;BappGN1T^QY zWj(}Fgm|k9S=l{;KKK7p!9*P#lb_xOips!seE1*2Sj5gcL!Yj6&NQ7@XgPE zk{_Z@!yyKI@)nrdg?Q@x+2wrml(}u|5GM9K6_$Yi@Oo5Y{GHJK$LamZ*Ae0kOT}aW4`HzP}g`uD%YX zZ236DT#GtKOA)hs>3R0j76@<+Ut*~Nxgx+-PN6OFHGu!5DsCmj3(f~~Ry`@6Z$nT1A@tMSA2zvWrxb_MsXKvc^lVe7_+L;?n=%^OCKzb5xq;3h;#Kd2lw;htIHd zS~zsRcyU6{WX`LP0aRX*%A1W|U>cSO<96p@=|ScylNDabf>hyb6EBO_ai32D7*!rB zP)u+g*O{`fUKO7q2$I*So@*Aj>&h6E2F46NmToQ(cfwW?>^xyS7b4* z2?6%25DW!#0ZeCsErJSoPQXq?AnKza~h)2?sLQwdEj@rH-t*;D(ER1-+9)u&o}bgF`hb}0yqSb;wnv~`$AE?0pw z0f22^t4bw%f?H~mg+md6>mr%?3nw?k=w>M%MG?cNZyRAF3HF#BZq>irkt&N@ptcRe z6eFHWZLRKj%0`l{3M;%-pcGI9h~;IYUJ$B>0nBj3^?@Q(WkS91{4SeMLt?4dnIF5r z3}HbtOJBVti-xT=Zfz{X3S7mkEQtWi%|i z;?ChoNWrcbWEiXC^7E{vbPjIT$6tT`8*srl&%F$#lRpU5dw_j%-wEz7`ttn;%uzct z0t|z4K|9-EsvoYOno>c5&jb=!s)yaOeD(otWlDvaiOd+AnX=U4Mor4QKb7lzDtbkE z|0T$pnb9GhHT{F1f%E<-F4uy9-4L+tHn1(@Jb0}&1Jqe<1UK?X7w!hLX5S2f(m}jn zbGd5@0%&2h0zo?qU>mH#?62r>!-HMV0$$&Wew%b%DPv1mJcU_ zAcOA$xKZ|(;M-?kfTE`BnP*eQtIn!jr6~bvy_GPw+6LPpx;+2&49f>#0{`okx8|6U zeKO~?=z54e5G#+-(val|HP{a980g&}gH^3m=y<(7qoLw>^)cwc)i*^lae|NTXO#`l z<%-#s3EA2K)|3oZ;CRe1G*xM-h)Pckko;)`mAG>p2GbVG7K z)%#iCjX0RhKc!D=W}>6 z*BG#wK1aW-P-|$(4*TGOuYb+{j^INDoK8SACuFt0POPW^NA5fuG%=sIEzX&GPj`kZ zKumC39x>(8^WdBot{_Hdt`SU72$4FH>Z3XMEO$_aczhT5USI;mz<4Y((nrDBwZz-% zR`k_X+Ddu_E4X)!6RMEcRDzl@l3((5qR|<#|0e;ZOI?SI85l40;h+%l|UW2;q%O_!Ofdrc>hJ7}3mXl+t$iUX* z2avB!;+n4t+7m6Ss$q&V>B4Rdx4RloXmL01(j01HjVRNuu|c_%Oc^F zD%fBlXeiM%QCI>1udEB;4+cCVP@Z9#`!Gkv%YAj`^MMJxBfeYQ`ZGU_9C_#E@->(o z;2M%kbD>v&_AKqIm*tY?ViQYGgZIGpDo_8PIP*L4U3^+3kISf6W`?l5*#5jR&&^BE zngI0PAKfb2<$HFa@EiA?mnFiXQXfv;4g_Q~Y~>5i;4Wlas`?phV34iJECqsMLO5H1 z^N)db4zsKQK4D>u*>kH08|GUaIZ^~}tK5$(Xn#OFT{$Ab8QEA)Oo7^ni(xPYKr1_a78DuCq6L_R<`}R>u~pfK5#Ye%*Ltbc zmB2`zU#p7=gEGA=*BloCo+nymenJtOa!Om^I~Y^I<=wj+nHHcuw5ylrb*-NS?`GS1 z7FeQemwwF4T>J2Mf&{E9V7ZPhklQa-eKuds@e#>5Mz({MfdH>UR?k0wz;e-`@(=sN zr+73K9Bp0gwGfU0Yw<>Q?{2U)!xQbb%b?H&IDnQwDi>?EIWU^m8`#)izY@uQWcmb5 zK@Kaf7sOMi^zKeD`b%*;dwk~@s4V~L-4H5CoFRbKM?VaQ$hHy_{Nsmx*)5g>G3Y7W zj@#kh=YN3w&Z^kpsl#CAUxLnv@9b>}rpSHs5&PiLi+3Z2y~aHOB|{>IYamtY`8IM& zB__)X_@Ig%)P74?nN?LMEY5BaUHL(cS+VELXKKz|g+s$Wvj%XRKyc~s|9<@m(NjeH zCucZ44Wp|2V65(dvGzEJ;wMzScCd0a)yTcADv%n@=2Wg0jfXaKgDd6&5$7tE7bQM7`Bs^Ph_>N0@2$Wr2+2(S0Fl#gz z1jN1nTT!wg45BhT*|uPZpmyE|1m|yfjY2N|CKum)mfdK^=um1XQwxtGMnZGatp1Z@m zpZTe_)DqH?Wh@vN*>+44AK!AkKkdXoIutbqWMxAHctX4Cnm`!5ufD}sTMR3P%9|s_ z;o8ZQi- zz4kanDvzow8yF~V`Q%SfZvuDB;4-#X@4acU5O&;t=nh0PXl{FWuLJVqmvT#(dJP3k zT>EGPxcO()FJI7>Sk%D9U!8fboP|C9`AP6C&`?f3%hY+gy}%OFo-xnqpj^252?KaU zH9MfyEamWofI+taeqhP(jlcE~CF{c3(*XBBxT3z?x(iRW_=!J~8)6Rmvi4FiZ#Kqo z2^dgjy$fC|28&rx1i?N77-k>`q@E5fEWOX0L(K=IZwen}*`0p~3}D&>TiNXHAke!{ zaeqJ&pTS(*1Rkkli@5+eAO>2fFopno_a+!%Z>XrTdH5C^P$WoT@6cb>#%WLPIc zUiqQ6#`9S!K8WQc;N}^*v_Y{w8HM$sg53njq<8-0ecbD>FFzE_k4JJ}@=jk(HsgQp zJ~c&n7xU%C9WRjaVI5V)opge(-?{EPxCcd0uW9TrfzN?RHy1a}2gOM<0#`*12rTBY z7~|>4F@xWC%C*n^*vuJbq*^Wp572|9B**cFl9oIc#Rm7q`*Qix(u%rZei)WPfQm{L zrynpe?~;?3-3Kjzf!6T#T~NImTq_~M#GAYX$&ff&Qr*?0Ml)YIC)bVeO^ild4;V){ z5Hkd}P|Bu?2Q{2~6TCZ>RcizR?9-!gt2F;L1Gwrf0fiMl%kNNAs9d`|Y8%Z0b1D|w zl(U#KUj&`S+n0AdR81jR`;4o{z;1QtB(4AR%o7RS)6i;p1cqgiehnu)+eHu2Tzqjh zw-4lNUJe$Z+AG#lrrIKuC8h@8Pa#Y)o0PA-a1zXXmQvO|u*S4D4*Q5D{5S+($re*7 zl!ex^-U?_eN5Ho#ZadSrZvVqa><_nFTX)3^?g3)@&;MLpY!J6L?!iF~2&m@YWo7!J zK_)9O=9%#-WI+i&{Ym3WtY0RKtVnm3mx_;fUUHIlkt!?A7G;u+<|z7x-Nh#-%6(nb zh-3foK}^70OTSzrTy@0U>0ghEV?{(11P?eUrYcV!39x*~a%Rncr18~*d2kmqcB~0Y znQ;gR`b2C%gcj>UA=dpDy!F$W4UF!Y8^4ZG(+)1alDl9q|8@I|&P}FaXpTi^&`&k7nnLaGDv$~7Cx2Fro> z#V1+~L3os#zyT)iDB9h&Vdn7Yz$|Ea_MdmYB_?=pjFYCbcMHAk#O|Hps^|m7YE+lN zR%Jc`wIZK|dSEHC>1iWhA*c}%snQ2)tw&oN*zWCUjI|^w#{JCivB+Qo-3=m}x_q1X zP8*;4MDA`3vyD<2$X2Kw1*#UTD@ ztig(`%0UZ?Zg(&tZM z(VE>PV5#wGEi`qG>E4-3NAB%g7qQDDb>Y^ zSKeA;E>r>VZeKsJ?v`&Kx@&zO+D&kp@b8CfzM82YV6D1Hd{+&0o=6cUtdLEF~||rrBb&H{U};l2Fs;-@P9pgirHp{)c)h30tF1| z-=BV~^TJc&SQ>(4rw)icYe~UWvAA3oK6_%CqYO~N*@2qYay&PHH4ErLMWSk)UuFSk zb?SP4>&ofxiG!zc5Y=ftbfAR$ya@rYOQ*USK0(aoTQ~vM?)4(`mM>jLngn*&JDsQ1b4_1iR7_(Jr%Tx}fvot@x z6D**_H=l3eMgZp5DILtW#D)6>G7G^L7lRhW6duLknOk#|)1x)1So{l|3OsnDrKpg*Li?A+E~ki)bbA)x*BV+Rv$1b z0?t96%2o4-GI9ME^BJl_;Q7w%xO)GI{&GvB*KuE^oM34TrGVvq@mA5ZMT~8UbYeiq zyZDhZk2c5|!=+zCEO2-=CC#?$8fusbcHgH@GcX_B&8F3X1UxU#SMCgEDH#~N<}f1D zQj5W*@VJAHgXnh4Tb^S@j1PeUYUV(j62~}m86o;EggN?5Gq93&?LpBlJS0-%UEH$W zw2JK_12Q$Nt%{=F6Y7RGq6x+{<8rnsy?{6F}YzAqDo~_ZBiCu$4#nk)5QU9V$@hd01r7Gk~DV= z(zCa0Pz8Gd=BOJO!0#dJ{3v+B8qP;gHPoOcbgd>1Ze*oraX|320OKFA#k<)P084$g zpM#7wboDM31EZ>AW(g?$%Y%O$+lQi#2aUH_!ju!t=k1v4zy;nSn%H-Y06&=AATTlu zmZpmYSDiO={$;h4TLQ(OI|dpVQJd5pMpH!%S{ln1s1E=OVeW1M#}80()ZLjH$z5nr zlPZFB3Y33m(T+!L7!4_Mfn@D=l&{$Bb5k`QU_i@O9yregaI7!^-b>u*TzW1zPz0jt zzs&9dO3wWZJhqGp^mgTNDA6&`fVu^mQ5^FS6ZN9oHUvX4|EVpv%iDqR0M(z+izDWF zpO0!}xqyezknP!F=Q|mn?8cCWau6NG6!Y+pJ6_RzDul3Eri<-h(WZhGZ9PJ#^3kbw zgOvz#9Wxlf+7wtd3z9b{_SY)FiP!)4G^+z#cRN;zU}S z{LX`d`A&dC0N4>BJouw0p_HgPaVRYAhB?-`6_D9d&lXz)oqg4Zvw@?;{@65+1Dt-| z0ld%#Or6tC7Sb5vGDp@6Q1pLqedAS86QUpoL8>bqb%E!ekflVrtU;`=X?JnbS1l^| z5-47UVzXq3r4tUS>Pt5+%&6WmB{R;eAfQYHcpS?R_~0QhW)R@xNJ)j!r++kBF3t?6 zRjYr$_?#HR`ST^uX#QPYNHrvbROx!cHJ{;G+jQk^Xlmoo@Vn8oY&pQ{AiS)zpRcv8 z;JDO{W_VP|5_kZpj|HciPFsMYYV)Wo!IaB$v6@30i)AH{HP87L>jxIYHe*30aoa{v z3dp0f#SuaeVj4BfL2GL1VetUNx%MiT@h4oTGyCDP6jC#+L#D6awgDU{vuv=3tD_(u z<*SomM`6qTXy9XwnP9x9la-fYAHZY_s_NHUpndsU&BHtcI?Vy4?x-Ppvpb7b!&0;D zXck*U&>hUD3a*@V;W-1d`xpBlXIaSu7w_E9k2MVE{N;C?D|}h?!i2{#B(TYWX$|7! zivfA4BTaep6(N1xV~fgvr5;AZ7FdQKQvz6LuWvBc0LOqJLep3eHDbBP)IvGNLKbj} zS*fbcsITmW$-rrtV%WRm&OAH;X*B<<4=5{YFLno`O!!=ZS6S#h6uyNC`1+-+I8L7- z#-IH$(Y~&7aN%B<{wyfLl{X;AhvQj5skJ$pzem%!pGz+>z7Fs3W~;8_)QeKVf$rf7 zXVH?q)F`ic=K+reeKfpmfSLU1RvSxtW9SE3SJx*F^EkDRt?M}-uRkOU7k?YWe6a3S zDV~^A`yFOb=Ms3tHV{xtJ+BGu^Hc9Vk~i#JuFg3X;|=Ga6W9s%aXTmynq$>+Bp3q|UfK4d9Hpvm02tbF-az&pc$= zd$Z@DdMhhIz@O_iEKHmby%55u`^LX)tFu(7EPLwgk^`gEFCFqZ>x*Ooyf?|Y*!+9J z;#sTHR(K7+v#Z@;21cm2J2aDfHtv8esuN~1^z1Yhh^@0P!_dGk2F!nMq&YdduD(TH zv=e#mB;NxkJqSMxD5;o7LJ}1!nSe34zPaXri zdh+7y5JNMmro}T46b7)e1TkJEYyHhWJR?vBI^M95la>g@rCOXCS5Y(n#y3w~=aAQ% z%b8#w2Nnt{Xqq#%w(Itxe()C9E<0ZkGpnhZGSCF|i~BTNl(IZd5w>?eAr^7Itlc6P%yXBp$Z}#%{ovR2xut&@Ta1EXC5_; z7Q(yb#?%9hs$tHK+hJe;Hy1FqI>S+P?h!B#K1A=wFeib0sdOFGTwr=wISC-Y<-83h zw=Zm$%j(Bdb094G=3%CP&md?kokLy+-ty~5Y3)u|4s$bkCR) z^>YVIQwG?fE!Z}Q-H}M6_2Y-Zdw2xfWp)X_6hL7q*a^n+@=u32&K&6gj3Xi!PpC5J zIrrng-S@|gKDZeGfQ1!y9LykgTRr6Hk{I414or}$9ulGILFFmgvIw4N6m^zUr4q!w zwc1T^D17-ASpGjAzio_`KsTD#W)o1EKT*b`0j(m`t}P|Y#NGI}qHOb7(6P!WD+m^9 z0EqdWKJl*yZc!yLtR4b)NFEsA0%Fl7bBRZ%4)S7wTs_rk6{faf&vKgsb&VUrff`<7 zAIQQKFfdt~H8|%1ou$AkWI3_SlD;!Ethv)Meu87iI4vVSeK4UG(gAc7YqpG@fIVK# zZ37?PyQz0n7cYtne64#-9n^H@R@jUYs<>+oC^nx?ULeplS|{`cwxu zh)P}&`OPCwhfT8;1p^MbiMk%>y?V{J#%11NYAM)f1=X|JR?YuS%s{V!RsG3J{0_08 zitAVoKz`9ezG&dtTg9TMxer6R@po#)*MI#!QG~P57?Z|+FdJ?o?dqeZ8NTz|ho9(V zw?%rYiobg6C-(;i!IKHf-J1`DV3t+h*m|yR?>q*f=1DwXA5Z^L)WFE+3SjTIwa=hH4>>lz2F{bRodxO=p5d?0-ooRTfI|5>(9i*`n$K(( zm*q^15lNew7TBcj{O)?0aB_6AUo_zhr7twWhiE{~+%F zUP8#m;%4{{r|AVyhGJYW6KQ-8=4V@iY*1b-M{x3GZ|*&hIp z!=RLl3I65FV5Om&Eefm6{1?TI4&oRoI!rz^%}%cc)M6V8d#P9=IpXP4<$u_rQ{J_*!<4&JIkkD_VufEc3qp=!buTHs&=9E*N4Mul^X!8N_aE4&+Tht%#er zhZQTs``s5KAkN(>tL*u?OvYpR#N|80r}1=X7oP!}H}JT{VcLpnQP^JRe#X+d#z{Q! zow)`_bORV8!(#y~ww772p;VK2z~e+)D)G{@XasCuz|FmYFFpI%w%Fj@D{oe%Mr|An zI2?|55KZF@u^L;@d_by*+!N%Q&4yA@_82>Rb%7;`14)4wU&$_(YdljRE#G%l{}JBy z+)EY6i3i-dD7uLo6=~sE#WM>mNPkIz;FlsJU9R8c;ANDRjmx>jGO3NY(aVy16ySP0$BCn{s zKAw}IOuP#TBRpu`YSYe=BNUdS*TL$w`)$|+>^p$R_WbmRJ7Nj{?9oXmJj6|4qMRy+ z`JfU|h%EbU*jI_B@wVfl=0l9DEkkWf17q{<^0lnA>N1r(PR*nE$Ky}KjIjk{5kD2y9&4B-+jsW$QY*-QwuT0d3k^&- zVBi#TQN1RvA&3J}sjbphhhkK7zj$3$vUbfTE0>`NXFxxG&ir?mp$%`86*qEC;0M90 z1pHP3-1fl~GXOM$oEFpybVdkhtKJ7c|BK$mM##zlj#V4b+zc3ie@Ft(b`|d26-243AMQnzs$>jp8P>mS5Y3sPj@-5>&JV4yAz%sM@#KDT-Uyc4w z)ZMh}9T=)1(43*jvWs_rpb9t9l#+!-HJEpyu7CKbL;7JWG$3jZ%yJBI@=Kx0j-gJE z68BMV|LHw2=RjlrVDJBgWq%YoFmC*J3{dCha$8IJ%&WgFNV;}PyVCONI5jt`rxWsK z^z*o)E6DsGKQtyp!r(pyj7NJZ^YNc(o3HQjWre5_6AjMb{0;+u zK3Tx|6=^fFq-IW;ezm9f=CjDf!e`i}zyd2-y(#r@==vXEszEImfai<0z64naV)Tz< zdlgnDz3MdVmTzA>sa>Py6>Li>t7)3DcbMv5tX)}N!T_mmt6QFpAG2TX7zEK04#wvv za;#2*HbFI6Bj-=9KmnM_HHe-%oX!r94YB$-rfHEz(m_noxb8Xk3>QYv;p1n)1KD>+p+cg$!nzC|!8~qkNahZNGsyhc ywd4w(a=_Wj3qpOQQ# Date: Sun, 21 Aug 2016 19:53:01 +0100 Subject: [PATCH 4/8] remove private from docs --- docs/docs.json | 2 +- docs/generator/doc-scanner.js | 1 - docs/generator/documentation.js | 3 ++- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs.json b/docs/docs.json index 361d73ae6..bf94e24b8 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1 +1 @@ -{"meta":{"version":10,"date":1471799153933},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#rest","name":"rest","description":"The REST manager of the client","memberof":"Client","type":{"types":[[["RESTManager",""]]]},"access":"private","meta":{"line":32,"file":"Client.js","path":"src/client"}},{"id":"Client#dataManager","name":"dataManager","description":"The data manager of the Client","memberof":"Client","type":{"types":[[["ClientDataManager",""]]]},"access":"private","meta":{"line":38,"file":"Client.js","path":"src/client"}},{"id":"Client#manager","name":"manager","description":"The manager of the Client","memberof":"Client","type":{"types":[[["ClientManager",""]]]},"access":"private","meta":{"line":44,"file":"Client.js","path":"src/client"}},{"id":"Client#ws","name":"ws","description":"The WebSocket Manager of the Client","memberof":"Client","type":{"types":[[["WebSocketManager",""]]]},"access":"private","meta":{"line":50,"file":"Client.js","path":"src/client"}},{"id":"Client#resolver","name":"resolver","description":"The Data Resolver of the Client","memberof":"Client","type":{"types":[[["ClientDataResolver",""]]]},"access":"private","meta":{"line":56,"file":"Client.js","path":"src/client"}},{"id":"Client#actions","name":"actions","description":"The Action Manager of the Client","memberof":"Client","type":{"types":[[["ActionsManager",""]]]},"access":"private","meta":{"line":62,"file":"Client.js","path":"src/client"}},{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"}},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"}},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"}},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"}}]},{"id":"ClientDataResolver","name":"ClientDataResolver","description":"The DataResolver identifies different objects and tries to resolve a specific piece of information from them, e.g.\nextracting a User from a Message object.","meta":{"line":18,"file":"ClientDataResolver.js","path":"src/client"},"access":"private","methods":[{"id":"ClientDataResolver#resolveUser","name":"resolveUser","description":"Resolves a UserResolvable to a User object","memberof":"ClientDataResolver","meta":{"line":37,"file":"ClientDataResolver.js","path":"src/client"},"returns":{"types":[[["User",""]]]},"params":[{"name":"user","description":"the UserResolvable to identify","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"ClientDataResolver#resolveGuild","name":"resolveGuild","description":"Resolves a GuildResolvable to a Guild object","memberof":"ClientDataResolver","meta":{"line":62,"file":"ClientDataResolver.js","path":"src/client"},"returns":{"types":[[["Guild",""]]]},"params":[{"name":"guild","description":"the GuildResolvable to identify","type":{"types":[[["GuildResolvable",""]]]}}]},{"id":"ClientDataResolver#resolveGuildMember","name":"resolveGuildMember","description":"Resolves a GuildMemberResolvable to a GuildMember object","memberof":"ClientDataResolver","meta":{"line":81,"file":"ClientDataResolver.js","path":"src/client"},"returns":{"types":[[["GuildMember",""]]]},"params":[{"name":"guild","description":"the guild that the member is part of","type":{"types":[[["GuildResolvable",""]]]}},{"name":"user","description":"the user that is part of the guild","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"ClientDataResolver#resolveBase64","name":"resolveBase64","description":"Resolves a Base64Resolvable to a Base 64 image","memberof":"ClientDataResolver","meta":{"line":110,"file":"ClientDataResolver.js","path":"src/client"},"returns":{"types":[[["String",""]]]},"params":[{"name":"dataResolvable","description":"the base 64 resolvable you want to resolve","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientDataResolver#resolveChannel","name":"resolveChannel","description":"Resolves a ChannelResolvable to a Channel object","memberof":"ClientDataResolver","meta":{"line":130,"file":"ClientDataResolver.js","path":"src/client"},"returns":{"types":[[["Channel",""]]]},"params":[{"name":"channelResolvable","description":"the channel resolvable to resolve","type":{"types":[[["ChannelResolvable",""]]]}}]},{"id":"ClientDataResolver#resolveString","name":"resolveString","description":"Resolves a StringResolvable to a String","memberof":"ClientDataResolver","meta":{"line":155,"file":"ClientDataResolver.js","path":"src/client"},"returns":{"types":[[["String",""]]]},"params":[{"name":"stringResolvable","description":"the string resolvable to resolve","type":{"types":[[["StringResolvable",""]]]}}]}],"properties":[],"events":[]},{"id":"ClientManager","name":"ClientManager","description":"Manages the State and Background Tasks of the Client","meta":{"line":7,"file":"ClientManager.js","path":"src/client"},"access":"private","methods":[{"id":"ClientManager#connectToWebSocket","name":"connectToWebSocket","description":"Connects the Client to the WebSocket","memberof":"ClientManager","meta":{"line":29,"file":"ClientManager.js","path":"src/client"},"returns":{"types":[[["null",""]]]},"params":[{"name":"token","description":"the authorization token","type":{"types":[[["String",""]]]}},{"name":"resolve","description":"function to run when connection is successful","type":{"types":[[["function",""]]]}},{"name":"reject","description":"function to run when connection fails","type":{"types":[[["function",""]]]}}]},{"id":"ClientManager#setupKeepAlive","name":"setupKeepAlive","description":"Sets up a keep-alive interval to keep the Client's connection valid","memberof":"ClientManager","meta":{"line":46,"file":"ClientManager.js","path":"src/client"},"returns":{"types":[[["null",""]]]},"params":[{"name":"time","description":"the interval in milliseconds at which heartbeat packets should be sent","type":{"types":[[["Number",""]]]}}]}],"properties":[{"id":"ClientManager#client","name":"client","description":"The Client that instantiated this Manager","memberof":"ClientManager","type":{"types":[[["Client",""]]]},"meta":{"line":14,"file":"ClientManager.js","path":"src/client"}},{"id":"ClientManager#heartbeatInterval","name":"heartbeatInterval","description":"The heartbeat interval, null if not yet set","memberof":"ClientManager","type":{"types":[[["Number",""]]]},"meta":{"line":19,"file":"ClientManager.js","path":"src/client"}}],"events":[]},{"id":"RequestHandler","name":"RequestHandler","description":"A base class for different types of rate limiting handlers for the REST API.","meta":{"line":5,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"access":"private","methods":[{"id":"RequestHandler#push","name":"push","description":"Push a new API request into this bucket","memberof":"RequestHandler","meta":{"line":36,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"returns":{"types":[[["null",""]]]},"params":[{"name":"request","description":"the new request to push into the queue","type":{"types":[[["APIRequest",""]]]}}]},{"id":"RequestHandler#handle","name":"handle","description":"Attempts to get this RequestHandler to process its current queue","memberof":"RequestHandler","meta":{"line":43,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"returns":{"types":[[["null",""]]]},"params":[]}],"properties":[{"id":"RequestHandler#restManager","name":"restManager","description":"The RESTManager that instantiated this RequestHandler","memberof":"RequestHandler","type":{"types":[[["RESTManager",""]]]},"meta":{"line":11,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}},{"id":"RequestHandler#queue","name":"queue","description":"A list of requests that have yet to be processed.","memberof":"RequestHandler","type":{"types":[[["Array",".<"],["APIRequest",">"]]]},"meta":{"line":17,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}},{"id":"RequestHandler#globalLimit","name":"globalLimit","description":"Whether or not the client is being rate limited on every endpoint.","memberof":"RequestHandler","type":{"types":[[["Boolean",""]]]},"meta":{"line":24,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}}],"events":[]},{"id":"SequentialRequestHandler","name":"SequentialRequestHandler","description":"Handles API Requests sequentially, i.e. we wait until the current request is finished before moving onto\nthe next. This plays a _lot_ nicer in terms of avoiding 429's when there is more than one session of the account,\nbut it can be slower.","meta":{"line":10,"file":"Sequential.js","path":"src/client/rest/RequestHandlers"},"extends":["RequestHandler"],"access":"private","methods":[{"id":"SequentialRequestHandler#execute","name":"execute","description":"Performs a request then resolves a promise to indicate its readiness for a new request","memberof":"SequentialRequestHandler","meta":{"line":39,"file":"Sequential.js","path":"src/client/rest/RequestHandlers"},"returns":{"types":[[["Promise",".<"],["Object",", "],["Error",">"]]]},"params":[{"name":"item","description":"the item to execute","type":{"types":[[["APIRequest",""]]]}}]},{"id":"SequentialRequestHandler#push","name":"push","description":"Push a new API request into this bucket","memberof":"SequentialRequestHandler","inherits":"RequestHandler#push","inherited":true,"meta":{"line":36,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"returns":{"types":[[["null",""]]]},"params":[{"name":"request","description":"the new request to push into the queue","type":{"types":[[["APIRequest",""]]]}}]},{"id":"SequentialRequestHandler#handle","name":"handle","description":"Attempts to get this RequestHandler to process its current queue","memberof":"SequentialRequestHandler","inherits":"RequestHandler#handle","inherited":true,"meta":{"line":43,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"},"returns":{"types":[[["null",""]]]},"params":[]}],"properties":[{"id":"SequentialRequestHandler#waiting","name":"waiting","description":"Whether this rate limiter is waiting for a response from a request","memberof":"SequentialRequestHandler","type":{"types":[[["Boolean",""]]]},"meta":{"line":19,"file":"Sequential.js","path":"src/client/rest/RequestHandlers"}},{"id":"SequentialRequestHandler#timeDifference","name":"timeDifference","description":"The time difference between Discord's Dates and the local computer's Dates. A positive number means the local\ncomputer's time is ahead of Discord's.","memberof":"SequentialRequestHandler","type":{"types":[[["Number",""]]]},"meta":{"line":26,"file":"Sequential.js","path":"src/client/rest/RequestHandlers"}},{"id":"SequentialRequestHandler#restManager","name":"restManager","description":"The RESTManager that instantiated this RequestHandler","memberof":"SequentialRequestHandler","type":{"types":[[["RESTManager",""]]]},"meta":{"line":11,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}},{"id":"SequentialRequestHandler#queue","name":"queue","description":"A list of requests that have yet to be processed.","memberof":"SequentialRequestHandler","type":{"types":[[["Array",".<"],["APIRequest",">"]]]},"meta":{"line":17,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}},{"id":"SequentialRequestHandler#globalLimit","name":"globalLimit","description":"Whether or not the client is being rate limited on every endpoint.","memberof":"SequentialRequestHandler","type":{"types":[[["Boolean",""]]]},"meta":{"line":24,"file":"RequestHandler.js","path":"src/client/rest/RequestHandlers"}}],"events":[]},{"id":"WebSocketManager","name":"WebSocketManager","description":"The WebSocket Manager of the Client","meta":{"line":10,"file":"WebSocketManager.js","path":"src/client/websocket"},"access":"private","methods":[{"id":"WebSocketManager#connect","name":"connect","description":"Connects the client to a given gateway","memberof":"WebSocketManager","meta":{"line":54,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[{"name":"gateway","description":"the gateway to connect to","type":{"types":[[["String",""]]]}}]},{"id":"WebSocketManager#send","name":"send","description":"Sends a packet to the gateway","memberof":"WebSocketManager","meta":{"line":72,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[{"name":"packet","description":"An object that can be JSON stringified","type":{"types":[[["Object",""]]]}}]},{"id":"WebSocketManager#eventOpen","name":"eventOpen","description":"Run whenever the gateway connections opens up","memberof":"WebSocketManager","meta":{"line":82,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]},{"id":"WebSocketManager#_sendResume","name":"_sendResume","description":"Sends a gatway resume packet, in cases of unexpected disconnections.","memberof":"WebSocketManager","meta":{"line":94,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]},{"id":"WebSocketManager#_sendNewIdentify","name":"_sendNewIdentify","description":"Sends a new identification packet, in cases of new connections or failed reconnections.","memberof":"WebSocketManager","meta":{"line":111,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]},{"id":"WebSocketManager#eventClose","name":"eventClose","description":"Run whenever the connection to the gateway is closed, it will try to reconnect the client.","memberof":"WebSocketManager","meta":{"line":126,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]},{"id":"WebSocketManager#eventMessage","name":"eventMessage","description":"Run whenever a message is received from the WebSocket. Returns `true` if the message\nwas handled properly.","memberof":"WebSocketManager","meta":{"line":138,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"data","description":"the received websocket data","type":{"types":[[["Object",""]]]}}]},{"id":"WebSocketManager#eventError","name":"eventError","description":"Run whenever an error occurs with the WebSocket connection. Tries to reconnect","memberof":"WebSocketManager","meta":{"line":162,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]},{"id":"WebSocketManager#checkIfReady","name":"checkIfReady","description":"Runs on new packets before `READY` to see if the Client is ready yet, if it is prepares\nthe `READY` event.","memberof":"WebSocketManager","meta":{"line":172,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]},{"id":"WebSocketManager#tryReconnect","name":"tryReconnect","description":"Tries to reconnect the client, changing the status to Constants.Status.RECONNECTING.","memberof":"WebSocketManager","meta":{"line":196,"file":"WebSocketManager.js","path":"src/client/websocket"},"returns":{"types":[[["null",""]]]},"params":[]}],"properties":[{"id":"WebSocketManager#client","name":"client","description":"The Client that instantiated this WebSocketManager","memberof":"WebSocketManager","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"WebSocketManager#packetManager","name":"packetManager","description":"A WebSocket Packet manager, it handles all the messages","memberof":"WebSocketManager","type":{"types":[[["PacketManager",""]]]},"meta":{"line":23,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"WebSocketManager#status","name":"status","description":"The status of the WebSocketManager, a type of Constants.Status. It defaults to IDLE.","memberof":"WebSocketManager","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"WebSocketManager#sessionID","name":"sessionID","description":"The session ID of the connection, null if not yet available.","memberof":"WebSocketManager","type":{"types":[[["String",""]]]},"meta":{"line":34,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"WebSocketManager#sequence","name":"sequence","description":"The packet count of the client, null if not yet available.","memberof":"WebSocketManager","type":{"types":[[["Number",""]]]},"meta":{"line":40,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"WebSocketManager#gateway","name":"gateway","description":"The gateway address for this WebSocket connection, null if not yet available.","memberof":"WebSocketManager","type":{"types":[[["String",""]]]},"meta":{"line":46,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"WebSocketManager#ws","name":"ws","description":"The WebSocket connection to the gateway","memberof":"WebSocketManager","type":{"types":[[["WebSocket",""]]]},"meta":{"line":60,"file":"WebSocketManager.js","path":"src/client/websocket"}}],"events":[]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#setup","access":"private","name":"setup","description":"Sets up the Guild","memberof":"Guild","meta":{"line":188,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["null",""]]]},"params":[{"name":"data","type":{"types":[[["any",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file +{"meta":{"version":10,"date":1471805584857},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"}},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"}},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"}},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"}}]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file diff --git a/docs/generator/doc-scanner.js b/docs/generator/doc-scanner.js index 241e0dd3d..54fdaf51f 100644 --- a/docs/generator/doc-scanner.js +++ b/docs/generator/doc-scanner.js @@ -10,7 +10,6 @@ module.exports = class DocumentationScanner { return new Promise((resolve, reject) => { const stream = parse({ src: [`${directory}*.js`, `${directory}**/*.js`], - private: true, }); let json = ''; diff --git a/docs/generator/documentation.js b/docs/generator/documentation.js index 1a506e217..9eb34b827 100644 --- a/docs/generator/documentation.js +++ b/docs/generator/documentation.js @@ -81,7 +81,8 @@ class Documentation { } const parent = this.findParent(member); if (!parent) { - throw new Error(`${member.name} has no accessible parent - ${JSON.stringify(member)}`); + console.log(new Error(`${member.name || member.directData.name} has no accessible parent`)); + continue; } parent.add(item); } From d66ac3fc3936c199472b1d07cb15f21d24947b21 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Mon, 22 Aug 2016 10:53:48 +0100 Subject: [PATCH 5/8] Add param optional to docs --- docs/docs.json | 2 +- docs/generator/types/DocumentedParam.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/docs.json b/docs/docs.json index bf94e24b8..4fdc3e6ad 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1 +1 @@ -{"meta":{"version":10,"date":1471805584857},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"}},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"}},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"}},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"}}]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file +{"meta":{"version":10,"date":1471859632935},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","optional":true,"type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"}},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"}},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"}},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"}}]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","optional":true,"type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file diff --git a/docs/generator/types/DocumentedParam.js b/docs/generator/types/DocumentedParam.js index d7d25b639..bb94d7e37 100644 --- a/docs/generator/types/DocumentedParam.js +++ b/docs/generator/types/DocumentedParam.js @@ -23,10 +23,11 @@ class DocumentedParam extends DocumentedItem { serialize() { super.serialize(); - const { name, description, type } = this.directData; + const { name, description, type, optional } = this.directData; return { name, description, + optional, type: type.serialize(), }; } From f255094760294e7fc8ffca89b8e5d25691a412b2 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Mon, 22 Aug 2016 14:53:19 +0100 Subject: [PATCH 6/8] add params to events --- docs/generator/types/DocumentedEvent.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/generator/types/DocumentedEvent.js b/docs/generator/types/DocumentedEvent.js index 17e029a91..f92b36d2b 100644 --- a/docs/generator/types/DocumentedEvent.js +++ b/docs/generator/types/DocumentedEvent.js @@ -1,5 +1,6 @@ const DocumentedItem = require('./DocumentedItem'); const DocumentedItemMeta = require('./DocumentedItemMeta'); +const DocumentedParam = require('./DocumentedParam'); /* { @@ -53,17 +54,22 @@ class DocumentedEvent extends DocumentedItem { registerMetaInfo(data) { this.directData = data; this.directData.meta = new DocumentedItemMeta(this, data.meta); + const newParams = []; + for (const param of data.params) { + newParams.push(new DocumentedParam(this, param)); + } } serialize() { super.serialize(); - const { id, name, description, memberof, meta } = this.directData; + const { id, name, description, memberof, meta, params } = this.directData; return { id, name, description, memberof, meta: meta.serialize(), + params: params.map(p => p.serialize()), }; } From 196fdfc31b396f82e41b285c66bfc62714e1814e Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Mon, 22 Aug 2016 14:54:59 +0100 Subject: [PATCH 7/8] fix event docs --- docs/docs.json | 2 +- docs/generator/types/DocumentedEvent.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/docs.json b/docs/docs.json index 4fdc3e6ad..e1b894bc5 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1 +1 @@ -{"meta":{"version":10,"date":1471859632935},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","optional":true,"type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"}},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"}},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"}},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"}},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"}},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"}},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"}},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"}}]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","optional":true,"type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file +{"meta":{"version":10,"date":1471874103869},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","optional":true,"type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"},"params":[{"name":"oldChannel","description":"the channel before the update","type":{"types":[[["Channel",""]]]}},{"name":"newChannel","description":"the channel after the update","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that has become unavailable.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the member has left.","type":{"types":[[["Guild",""]]]}},{"name":"member","description":"the member that has left the guild.","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was created in.","type":{"types":[[["Guild",""]]]}},{"name":"role","description":"the role that was created.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was deleted in.","type":{"types":[[["Guild",""]]]}},{"name":"role","description":"the role that was deleted.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was updated in.","type":{"types":[[["Guild",""]]]}},{"name":"oldRole","description":"the role before the update.","type":{"types":[[["Role",""]]]}},{"name":"newRole","description":"the role after the update.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"},"params":[{"name":"oldGuild","description":"the guild before the update.","type":{"types":[[["Guild",""]]]}},{"name":"newGuild","description":"the guild after the update.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"},"params":[{"name":"oldMessage","description":"the message before the update.","type":{"types":[[["Message",""]]]}},{"name":"newMessage","description":"the message after the update.","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"},"params":[{"name":"oldClientUser","description":"the client user before the update.","type":{"types":[[["ClientUser",""]]]}},{"name":"newClientUser","description":"the client user after the update.","type":{"types":[[["ClientUser",""]]]}}]},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"},"params":[{"name":"guild","description":"the created guild.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"The channel that was created","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"The channel that was deleted","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the ban occurred in","type":{"types":[[["Guild",""]]]}},{"name":"user","description":"The user that was banned","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the unban occurred in","type":{"types":[[["Guild",""]]]}},{"name":"user","description":"The user that was unbanned","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that was deleted","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the chunks relate to","type":{"types":[[["Guild",""]]]}},{"name":"members","description":"The members in the chunk","type":{"types":[[["Array",".<"],["GuildMember",">"]]]}}]},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"message","description":"The created message","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"message","description":"The deleted message","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"oldUser","description":"the user before the presence update","type":{"types":[[["User",""]]]}},{"name":"newUser","description":"the user after the presence update","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the member became available in","type":{"types":[[["Guild",""]]]}},{"name":"member","description":"the member that became available","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"the channel the user started typing in","type":{"types":[[["Channel",""]]]}},{"name":"user","description":"the user that started typing","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"the channel the user stopped typing in","type":{"types":[[["Channel",""]]]}},{"name":"user","description":"the user that stopped typing","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"oldMember","description":"the member before the voice state update","type":{"types":[[["GuildMember",""]]]}},{"name":"newMember","description":"the member before the voice state update","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"},"params":[]},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"},"params":[]},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"},"params":[{"name":"guild","description":"the guild that the update affects","type":{"types":[[["Guild",""]]]}},{"name":"oldRoles","description":"the roles before the update","type":{"types":[[["Array",".<"],["Role",">"]]]}},{"name":"newRoles","description":"the roles after the update","type":{"types":[[["Guild",""]]]}}]}]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","optional":true,"type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file diff --git a/docs/generator/types/DocumentedEvent.js b/docs/generator/types/DocumentedEvent.js index f92b36d2b..0641b23b8 100644 --- a/docs/generator/types/DocumentedEvent.js +++ b/docs/generator/types/DocumentedEvent.js @@ -55,9 +55,11 @@ class DocumentedEvent extends DocumentedItem { this.directData = data; this.directData.meta = new DocumentedItemMeta(this, data.meta); const newParams = []; + data.params = data.params || []; for (const param of data.params) { newParams.push(new DocumentedParam(this, param)); } + this.directData.params = newParams; } serialize() { From cbb74e11d1ed7e3c8ff6e7855dda6a8c8ff0224e Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Mon, 22 Aug 2016 14:57:09 +0100 Subject: [PATCH 8/8] version bump gen version --- docs/docs.json | 2 +- docs/generator/config.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs.json b/docs/docs.json index e1b894bc5..de1c21739 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1 +1 @@ -{"meta":{"version":10,"date":1471874103869},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","optional":true,"type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"},"params":[{"name":"oldChannel","description":"the channel before the update","type":{"types":[[["Channel",""]]]}},{"name":"newChannel","description":"the channel after the update","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that has become unavailable.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the member has left.","type":{"types":[[["Guild",""]]]}},{"name":"member","description":"the member that has left the guild.","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was created in.","type":{"types":[[["Guild",""]]]}},{"name":"role","description":"the role that was created.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was deleted in.","type":{"types":[[["Guild",""]]]}},{"name":"role","description":"the role that was deleted.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was updated in.","type":{"types":[[["Guild",""]]]}},{"name":"oldRole","description":"the role before the update.","type":{"types":[[["Role",""]]]}},{"name":"newRole","description":"the role after the update.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"},"params":[{"name":"oldGuild","description":"the guild before the update.","type":{"types":[[["Guild",""]]]}},{"name":"newGuild","description":"the guild after the update.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"},"params":[{"name":"oldMessage","description":"the message before the update.","type":{"types":[[["Message",""]]]}},{"name":"newMessage","description":"the message after the update.","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"},"params":[{"name":"oldClientUser","description":"the client user before the update.","type":{"types":[[["ClientUser",""]]]}},{"name":"newClientUser","description":"the client user after the update.","type":{"types":[[["ClientUser",""]]]}}]},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"},"params":[{"name":"guild","description":"the created guild.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"The channel that was created","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"The channel that was deleted","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the ban occurred in","type":{"types":[[["Guild",""]]]}},{"name":"user","description":"The user that was banned","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the unban occurred in","type":{"types":[[["Guild",""]]]}},{"name":"user","description":"The user that was unbanned","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that was deleted","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the chunks relate to","type":{"types":[[["Guild",""]]]}},{"name":"members","description":"The members in the chunk","type":{"types":[[["Array",".<"],["GuildMember",">"]]]}}]},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"message","description":"The created message","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"message","description":"The deleted message","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"oldUser","description":"the user before the presence update","type":{"types":[[["User",""]]]}},{"name":"newUser","description":"the user after the presence update","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the member became available in","type":{"types":[[["Guild",""]]]}},{"name":"member","description":"the member that became available","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"the channel the user started typing in","type":{"types":[[["Channel",""]]]}},{"name":"user","description":"the user that started typing","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"the channel the user stopped typing in","type":{"types":[[["Channel",""]]]}},{"name":"user","description":"the user that stopped typing","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"oldMember","description":"the member before the voice state update","type":{"types":[[["GuildMember",""]]]}},{"name":"newMember","description":"the member before the voice state update","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"},"params":[]},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"},"params":[]},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"},"params":[{"name":"guild","description":"the guild that the update affects","type":{"types":[[["Guild",""]]]}},{"name":"oldRoles","description":"the roles before the update","type":{"types":[[["Array",".<"],["Role",">"]]]}},{"name":"newRoles","description":"the roles after the update","type":{"types":[[["Guild",""]]]}}]}]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","optional":true,"type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file +{"meta":{"version":11,"date":1471874233212},"classes":[{"id":"Client","name":"Client","description":"Creates a new Discord Client\n```js\nconst Discord = require(\"discord.js\");\nconst client = new Discord.Client();\n```","meta":{"line":18,"file":"Client.js","path":"src/client"},"classConstructor":{"id":"Client()","name":"Client","description":"Creates an instance of Client.","memberof":"Client"},"methods":[{"id":"Client#login","name":"login","description":"Logs the client in. If successful, resolves with the account's token. If you're making a bot, it's\nmuch better to use a bot account rather than a user account.\nBot accounts have higher rate limits and have access to some features user accounts don't have. User bots\nthat are making a lot of API requests can even be banned.","memberof":"Client","examples":["// log the client in using a token\nconst token = 'my token';\nclient.login(token);","// log the client in using email and password\nconst email = 'user@email.com';\nconst password = 'supersecret123';\nclient.login(email, password);"],"meta":{"line":120,"file":"Client.js","path":"src/client"},"returns":{"types":[[["Promise",".<"],["String",">"]]]},"params":[{"name":"emailOrToken","description":"The email or token used for the account. If it is an email, a password _must_ be\nprovided.","type":{"types":[[["String",""]]]}},{"name":"password","description":"The password for the account, only needed if an email was provided.","optional":true,"type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Client#users","name":"users","description":"A map of the Client's stored users","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["User",">"]]]},"meta":{"line":68,"file":"Client.js","path":"src/client"}},{"id":"Client#guilds","name":"guilds","description":"A map of the Client's stored guilds","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Guild",">"]]]},"meta":{"line":73,"file":"Client.js","path":"src/client"}},{"id":"Client#channels","name":"channels","description":"A map of the Client's stored channels","memberof":"Client","type":{"types":[[["Map",".<"],["String",", "],["Channel",">"]]]},"meta":{"line":78,"file":"Client.js","path":"src/client"}},{"id":"Client#token","name":"token","description":"The authorization token for the logged in user/bot.","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":83,"file":"Client.js","path":"src/client"}},{"id":"Client#user","name":"user","description":"The ClientUser representing the logged in Client","memberof":"Client","type":{"types":[[["ClientUser",""]]]},"meta":{"line":88,"file":"Client.js","path":"src/client"}},{"id":"Client#email","name":"email","description":"The email, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":93,"file":"Client.js","path":"src/client"}},{"id":"Client#password","name":"password","description":"The password, if there is one, for the logged in Client","memberof":"Client","type":{"types":[[["String",""]]]},"meta":{"line":98,"file":"Client.js","path":"src/client"}}],"events":[{"id":"Client#event:channelUpdate","name":"channelUpdate","description":"Emitted whenever a channel is updated - e.g. name change, topic change.","memberof":"Client","meta":{"line":31,"file":"ChannelUpdate.js","path":"src/client/actions"},"params":[{"name":"oldChannel","description":"the channel before the update","type":{"types":[[["Channel",""]]]}},{"name":"newChannel","description":"the channel after the update","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:guildUnavailable","name":"guildUnavailable","description":"Emitted whenever a guild becomes unavailable, likely due to a server outage.","memberof":"Client","meta":{"line":49,"file":"GuildDelete.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that has become unavailable.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:guildMemberRemove","name":"guildMemberRemove","description":"Emitted whenever a member leaves a guild, or is kicked.","memberof":"Client","meta":{"line":49,"file":"GuildMemberRemove.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the member has left.","type":{"types":[[["Guild",""]]]}},{"name":"member","description":"the member that has left the guild.","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:guildRoleCreate","name":"guildRoleCreate","description":"Emitted whenever a guild role is created.","memberof":"Client","meta":{"line":32,"file":"GuildRoleCreate.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was created in.","type":{"types":[[["Guild",""]]]}},{"name":"role","description":"the role that was created.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildRoleDelete","name":"guildRoleDelete","description":"Emitted whenever a guild role is deleted.","memberof":"Client","meta":{"line":47,"file":"GuildRoleDelete.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was deleted in.","type":{"types":[[["Guild",""]]]}},{"name":"role","description":"the role that was deleted.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildRoleUpdated","name":"guildRoleUpdated","description":"Emitted whenever a guild role is updated.","memberof":"Client","meta":{"line":36,"file":"GuildRoleUpdate.js","path":"src/client/actions"},"params":[{"name":"guild","description":"the guild that the role was updated in.","type":{"types":[[["Guild",""]]]}},{"name":"oldRole","description":"the role before the update.","type":{"types":[[["Role",""]]]}},{"name":"newRole","description":"the role after the update.","type":{"types":[[["Role",""]]]}}]},{"id":"Client#event:guildUpdate","name":"guildUpdate","description":"Emitted whenever a guild is updated - e.g. name change.","memberof":"Client","meta":{"line":38,"file":"GuildUpdate.js","path":"src/client/actions"},"params":[{"name":"oldGuild","description":"the guild before the update.","type":{"types":[[["Guild",""]]]}},{"name":"newGuild","description":"the guild after the update.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:messageUpdate","name":"messageUpdate","description":"Emitted whenever a message is updated - e.g. embed or content change.","memberof":"Client","meta":{"line":36,"file":"MessageUpdate.js","path":"src/client/actions"},"params":[{"name":"oldMessage","description":"the message before the update.","type":{"types":[[["Message",""]]]}},{"name":"newMessage","description":"the message after the update.","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:userUpdate","name":"userUpdate","description":"Emitted whenever a detail of the logged in User changes - e.g. username.","memberof":"Client","meta":{"line":36,"file":"UserUpdate.js","path":"src/client/actions"},"params":[{"name":"oldClientUser","description":"the client user before the update.","type":{"types":[[["ClientUser",""]]]}},{"name":"newClientUser","description":"the client user after the update.","type":{"types":[[["ClientUser",""]]]}}]},{"id":"Client#event:guildCreate","name":"guildCreate","description":"Emitted whenever the client joins a Guild.","memberof":"Client","meta":{"line":24,"file":"ClientDataManager.js","path":"src/client"},"params":[{"name":"guild","description":"the created guild.","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:channelCreate","name":"channelCreate","description":"Emitted whenever a Channel is created.","memberof":"Client","meta":{"line":20,"file":"ChannelCreate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"The channel that was created","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:channelDelete","name":"channelDelete","description":"Emitted whenever a Channel is deleted.","memberof":"Client","meta":{"line":20,"file":"ChannelDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"The channel that was deleted","type":{"types":[[["Channel",""]]]}}]},{"id":"Client#event:guildBanAdd","name":"guildBanAdd","description":"Emitted whenever a member is banned from a guild.","memberof":"Client","meta":{"line":22,"file":"GuildBanAdd.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the ban occurred in","type":{"types":[[["Guild",""]]]}},{"name":"user","description":"The user that was banned","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildBanRemove","name":"guildBanRemove","description":"Emitted whenever a member is unbanned from a guild.","memberof":"Client","meta":{"line":23,"file":"GuildBanRemove.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the unban occurred in","type":{"types":[[["Guild",""]]]}},{"name":"user","description":"The user that was unbanned","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildDelete","name":"guildDelete","description":"Emitted whenever a Guild is deleted/left.","memberof":"Client","meta":{"line":19,"file":"GuildDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that was deleted","type":{"types":[[["Guild",""]]]}}]},{"id":"Client#event:guildMembersChunk","name":"guildMembersChunk","description":"Emitted whenever a chunk of Guild members is received","memberof":"Client","meta":{"line":25,"file":"GuildMembersChunk.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the chunks relate to","type":{"types":[[["Guild",""]]]}},{"name":"members","description":"The members in the chunk","type":{"types":[[["Array",".<"],["GuildMember",">"]]]}}]},{"id":"Client#event:message","name":"message","description":"Emitted whenever a message is created","memberof":"Client","meta":{"line":19,"file":"MessageCreate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"message","description":"The created message","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:messageDelete","name":"messageDelete","description":"Emitted whenever a message is deleted","memberof":"Client","meta":{"line":19,"file":"MessageDelete.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"message","description":"The deleted message","type":{"types":[[["Message",""]]]}}]},{"id":"Client#event:presenceUpdate","name":"presenceUpdate","description":"Emitted whenever a user changes one of their details or starts/stop playing a game","memberof":"Client","meta":{"line":66,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"oldUser","description":"the user before the presence update","type":{"types":[[["User",""]]]}},{"name":"newUser","description":"the user after the presence update","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:guildMemberAvailable","name":"guildMemberAvailable","description":"Emitted whenever a member becomes available in a large Guild","memberof":"Client","meta":{"line":74,"file":"PresenceUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"guild","description":"The guild that the member became available in","type":{"types":[[["Guild",""]]]}},{"name":"member","description":"the member that became available","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:typingStart","name":"typingStart","description":"Emitted whenever a user starts typing in a channel","memberof":"Client","meta":{"line":52,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"the channel the user started typing in","type":{"types":[[["Channel",""]]]}},{"name":"user","description":"the user that started typing","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:typingStop","name":"typingStop","description":"Emitted whenever a user stops typing in a channel","memberof":"Client","meta":{"line":60,"file":"TypingStart.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"channel","description":"the channel the user stopped typing in","type":{"types":[[["Channel",""]]]}},{"name":"user","description":"the user that stopped typing","type":{"types":[[["User",""]]]}}]},{"id":"Client#event:voiceStateUpdate","name":"voiceStateUpdate","description":"Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.","memberof":"Client","meta":{"line":34,"file":"VoiceStateUpdate.js","path":"src/client/websocket/packets/handlers"},"params":[{"name":"oldMember","description":"the member before the voice state update","type":{"types":[[["GuildMember",""]]]}},{"name":"newMember","description":"the member before the voice state update","type":{"types":[[["GuildMember",""]]]}}]},{"id":"Client#event:ready","name":"ready","description":"Emitted when the Client becomes ready to start working","memberof":"Client","meta":{"line":181,"file":"WebSocketManager.js","path":"src/client/websocket"},"params":[]},{"id":"Client#event:reconnecting","name":"reconnecting","description":"Emitted when the Client tries to reconnect after being disconnected","memberof":"Client","meta":{"line":200,"file":"WebSocketManager.js","path":"src/client/websocket"},"params":[]},{"id":"Client#event:guildMemberRolesUpdate","name":"guildMemberRolesUpdate","description":"Emitted whenever a Guild Member's Roles change - i.e. new role or removed role","memberof":"Client","meta":{"line":91,"file":"Guild.js","path":"src/structures"},"params":[{"name":"guild","description":"the guild that the update affects","type":{"types":[[["Guild",""]]]}},{"name":"oldRoles","description":"the roles before the update","type":{"types":[[["Array",".<"],["Role",">"]]]}},{"name":"newRoles","description":"the roles after the update","type":{"types":[[["Guild",""]]]}}]}]},{"id":"Channel","name":"Channel","description":"Represents any Channel on Discord","meta":{"line":4,"file":"Channel.js","path":"src/structures"},"methods":[{"id":"Channel#delete","name":"delete","description":"Deletes the channel","memberof":"Channel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"Channel#client","name":"client","description":"The client that instantiated the Channel","memberof":"Channel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"Channel#id","name":"id","description":"The unique ID of the channel","memberof":"Channel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"ClientUser","name":"ClientUser","description":"Represents the logged in client's Discord User","meta":{"line":7,"file":"ClientUser.js","path":"src/structures"},"extends":["User"],"methods":[{"id":"ClientUser#setUsername","name":"setUsername","description":"Set the username of the logged in Client.\nChanging usernames in Discord is heavily rate limited, with only 2 requests\nevery hour. Use this sparingly!","memberof":"ClientUser","examples":["// set username\nclient.user.setUsername('discordjs')\n .then(user => console.log(`My new username is ${user.username}`))\n .catch(console.log);"],"meta":{"line":34,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"username","description":"the new username","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setEmail","name":"setEmail","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\nemail here.","memberof":"ClientUser","examples":["// set email\nclient.user.setEmail('bob@gmail.com')\n .then(user => console.log(`My new email is ${user.email}`))\n .catch(console.log);"],"meta":{"line":49,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"email","description":"the new email","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setPassword","name":"setPassword","description":"If this user is a \"self bot\" or logged in using a normal user's details (which should be avoided), you can set the\npassword here.","memberof":"ClientUser","examples":["// set password\nclient.user.setPassword('password')\n .then(user => console.log('New password set!'))\n .catch(console.log);"],"meta":{"line":64,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"password","description":"the new password","type":{"types":[[["String",""]]]}}]},{"id":"ClientUser#setAvatar","name":"setAvatar","description":"Set the avatar of the logged in Client.","memberof":"ClientUser","examples":["// set avatar\nclient.user.setAvatar(fs.readFileSync('./avatar.png'))\n .then(user => console.log(`New avatar set!`))\n .catch(console.log);"],"meta":{"line":77,"file":"ClientUser.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["ClientUser",">"]]]},"params":[{"name":"avatar","description":"the new avatar","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"ClientUser#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"ClientUser","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"inherits":"User#toString","inherited":true,"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"ClientUser#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"ClientUser","inherits":"User#deleteDM","inherited":true,"meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"ClientUser#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"ClientUser","inherits":"User#equals","inherited":true,"meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"ClientUser#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"ClientUser","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendMessage","inherited":true,"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"ClientUser#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"ClientUser","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"inherits":"User#sendTTSMessage","inherited":true,"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"ClientUser#verified","name":"verified","description":"Whether or not this account has been verified","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":14,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#email","name":"email","description":"The email of this account","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":19,"file":"ClientUser.js","path":"src/structures"}},{"id":"ClientUser#username","name":"username","description":"The username of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#id","name":"id","description":"The ID of the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"ClientUser","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"ClientUser#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"ClientUser","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"DMChannel","name":"DMChannel","description":"Represents a Direct Message Channel between two users.","meta":{"line":10,"file":"DMChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"DMChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the recipient's mention instead of the\nDM channel object.","memberof":"DMChannel","meta":{"line":36,"file":"DMChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"DMChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"DMChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"DMChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"DMChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"DMChannel#delete","name":"delete","description":"Deletes the channel","memberof":"DMChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"DMChannel#recipient","name":"recipient","description":"The recipient on the other end of the DM","memberof":"DMChannel","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last sent message, if available","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":28,"file":"DMChannel.js","path":"src/structures"}},{"id":"DMChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"DMChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"DMChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"DMChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"DMChannel#id","name":"id","description":"The unique ID of the channel","memberof":"DMChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"Guild","name":"Guild","description":"Represents a Guild (or a Server) on Discord.","meta":{"line":24,"file":"Guild.js","path":"src/structures"},"methods":[{"id":"Guild#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Guild's name instead of the Guild object.","memberof":"Guild","examples":["// logs: Hello from My Guild!\nconsole.log(`Hello from ${guild}!`);","// logs: Hello from My Guild!\nconsole.log(`Hello from ' + guild + '!');"],"meta":{"line":117,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"Guild#kick","name":"kick","description":"Tries to kick a member from the guild.","memberof":"Guild","examples":["// kicks a member from a guild:\nguild.kick(message.author)\n .then(member => console.log(`Kicked ${member}`))\n .catch(error => console.log(error));"],"meta":{"line":131,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",", "],["Error",">"]]]},"params":[{"name":"member","description":"the member to kick","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#member","name":"member","description":"Returns the GuildMember form of a User object, if the User is present in the guild.","memberof":"Guild","examples":["// get the guild member of a user\nconst member = guild.member(message.author);"],"meta":{"line":143,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["GuildMember",""]],[["null",""]]]},"params":[{"name":"user","description":"the user that you want to obtain the GuildMember of.","type":{"types":[[["UserResolvable",""]]]}}]},{"id":"Guild#equals","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.","memberof":"Guild","meta":{"line":154,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"guild","description":"the guild to compare","type":{"types":[[["Guild",""]]]}}]},{"id":"Guild#createChannel","name":"createChannel","description":"Creates a new Channel in the Guild.","memberof":"Guild","examples":["// create a new text channel\nguild.createChannel('new general', 'text')\n .then(channel => console.log(`Created new channel ${channel}`))\n .catch(console.log);"],"meta":{"line":328,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<("],["TextChannel","|"],["VoiceChannel","), "],["Error",">"]]]},"params":[{"name":"name","description":"the name of the new channel.","type":{"types":[[["String",""]]]}},{"name":"type","description":"the type of the new channel, either `text` or `voice`.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#createRole","name":"createRole","description":"Creates a new role in the guild, as of now this is just a blank role.","memberof":"Guild","examples":["// create a new role\nguild.createRole()\n .then(role => console.log(`Created role ${role}`))\n .catch(console.log);"],"meta":{"line":341,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Guild#leave","name":"leave","description":"Causes the Client to leave the guild.","memberof":"Guild","examples":["// leave a guild\nguild.leave()\n .then(g => console.log(`Left the guild ${g}`))\n .catch(console.log);"],"meta":{"line":354,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#delete","name":"delete","description":"Causes the Client to delete the guild.","memberof":"Guild","examples":["// delete a guild\nguild.delete()\n .then(g => console.log(`Deleted the guild ${g}`))\n .catch(console.log);"],"meta":{"line":367,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[]},{"id":"Guild#edit","name":"edit","description":"Updates the Guild with new information - e.g. a new name.","memberof":"Guild","examples":["// set the guild name and region\nguild.edit({\n name: 'Discord Guild',\n region: 'london',\n})\n.then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`))\n.catch(console.log);"],"meta":{"line":384,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"data","description":"the data to update the guild with.","type":{"types":[[["GuildEditData",""]]]}}]},{"id":"Guild#setName","name":"setName","description":"Edit the name of the Guild.","memberof":"Guild","examples":["// edit the guild name\nguild.setName('Discord Guild')\n .then(updated => console.log(`Updated guild name to ${guild.name}`))\n .catch(console.log);"],"meta":{"line":398,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the Guild.","type":{"types":[[["String",""]]]}}]},{"id":"Guild#setRegion","name":"setRegion","description":"Edit the region of the Guild.","memberof":"Guild","examples":["// edit the guild region\nguild.setRegion('london')\n .then(updated => console.log(`Updated guild region to ${guild.region}`))\n .catch(console.log);"],"meta":{"line":412,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"region","description":"the new region of the guild.","type":{"types":[[["Region",""]]]}}]},{"id":"Guild#setVerificationLevel","name":"setVerificationLevel","description":"Edit the verification level of the Guild.","memberof":"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.log);"],"meta":{"line":426,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"verificationLevel","description":"the new verification level of the guild.","type":{"types":[[["VerificationLevel",""]]]}}]},{"id":"Guild#setAFKChannel","name":"setAFKChannel","description":"Edit the AFK channel of the Guild.","memberof":"Guild","examples":["// edit the guild AFK channel\nguild.setAFKChannel(channel)\n .then(updated => console.log(`Updated guild AFK channel to ${guild.afkChannel}`))\n .catch(console.log);"],"meta":{"line":440,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkChannel","description":"the new AFK channel.","type":{"types":[[["GuildChannelResolvable",""]]]}}]},{"id":"Guild#setAFKTimeout","name":"setAFKTimeout","description":"Edit the AFK timeout of the Guild.","memberof":"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.log);"],"meta":{"line":454,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"afkTimeout","description":"the time in seconds that a user must be idle to be considered AFK.","type":{"types":[[["Number",""]]]}}]},{"id":"Guild#setIcon","name":"setIcon","description":"Set a new Guild Icon.","memberof":"Guild","examples":["// edit the guild icon\nguild.setIcon(fs.readFileSync('./icon.png'))\n .then(updated => console.log('Updated the guild icon'))\n .catch(console.log);"],"meta":{"line":468,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"icon","description":"the new icon of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]},{"id":"Guild#setOwner","name":"setOwner","description":"Sets a new owner of the Guild.","memberof":"Guild","examples":["// edit the guild owner\nguild.setOwner(guilds.members[0])\n .then(updated => console.log(`Updated the guild owner to ${updated.owner.username}`))\n .catch(console.log);"],"meta":{"line":482,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"owner","description":"the new owner of the Guild.","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"Guild#setSplash","name":"setSplash","description":"Set a new Guild Splash Logo.","memberof":"Guild","examples":["// edit the guild splash\nguild.setIcon(fs.readFileSync('./splash.png'))\n .then(updated => console.log('Updated the guild splash'))\n .catch(console.log);"],"meta":{"line":496,"file":"Guild.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Guild",", "],["Error",">"]]]},"params":[{"name":"splash","description":"the new splash screen of the guild.","type":{"types":[[["Base64Resolvable",""]]]}}]}],"properties":[{"id":"Guild#client","name":"client","description":"The Client that created the instance of the the Guild.","memberof":"Guild","type":{"types":[[["Client",""]]]},"meta":{"line":30,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#members","name":"members","description":"A Map of members that are in this Guild. The key is the member's ID, the value is the member.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":36,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#channels","name":"channels","description":"A Map of channels that are in this Guild. The key is the channel's ID, the value is the channel.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["GuildChannel",">"]]]},"meta":{"line":42,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#roles","name":"roles","description":"A Map of roles that are in this Guild. The key is the role's ID, the value is the role.","memberof":"Guild","type":{"types":[[["Map",".<"],["String",", "],["Role",">"]]]},"meta":{"line":48,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#available","name":"available","description":"Whether the Guild is available to access. If it is not available, it indicates a server outage.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":59,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#id","name":"id","description":"The Unique ID of the Guild, useful for comparisons.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":64,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#splash","name":"splash","description":"The hash of the guild splash image, or null if no splash (VIP only)","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":195,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#region","name":"region","description":"The region the guild is located in","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":200,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#name","name":"name","description":"The name of the guild","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":205,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#memberCount","name":"memberCount","description":"The amount of initial members in the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":210,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#large","name":"large","description":"Whether the guild is \"large\" (has more than 250 members)","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":215,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#joinDate","name":"joinDate","description":"The date at which the logged-in client joined the guild.","memberof":"Guild","type":{"types":[[["Date",""]]]},"meta":{"line":220,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#icon","name":"icon","description":"The hash of the guild icon, or null if there is no icon.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":225,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#features","name":"features","description":"An array of guild features.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":230,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#emojis","name":"emojis","description":"An array of guild emojis.","memberof":"Guild","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":235,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkTimeout","name":"afkTimeout","description":"The time in seconds before a user is counted as \"away from keyboard\".","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":240,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#afkChannelID","name":"afkChannelID","description":"The ID of the voice channel where AFK members are moved.","memberof":"Guild","type":{"types":[[["String",""]]]},"meta":{"line":245,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedEnabled","name":"embedEnabled","description":"Whether embedded images are enabled on this guild.","memberof":"Guild","type":{"types":[[["Boolean",""]]]},"meta":{"line":250,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#verificationLevel","name":"verificationLevel","description":"The verification level of the guild.","memberof":"Guild","type":{"types":[[["Number",""]]]},"meta":{"line":255,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#owner","name":"owner","description":"The owner of the guild","memberof":"Guild","type":{"types":[[["User",""]]]},"meta":{"line":269,"file":"Guild.js","path":"src/structures"}},{"id":"Guild#embedChannel","name":"embedChannel","description":"The embed channel of the Guild.","memberof":"Guild","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":282,"file":"Guild.js","path":"src/structures"}}],"events":[]},{"id":"GuildChannel","name":"GuildChannel","description":"Represents a Guild Channel (i.e. Text Channels and Voice Channels)","meta":{"line":25,"file":"GuildChannel.js","path":"src/structures"},"extends":["Channel"],"methods":[{"id":"GuildChannel#equals","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.","memberof":"GuildChannel","meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"GuildChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"GuildChannel","meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"GuildChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"GuildChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"GuildChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"GuildChannel","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.log);"],"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"GuildChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"GuildChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"GuildChannel#delete","name":"delete","description":"Deletes the channel","memberof":"GuildChannel","examples":["// delete the channel\nchannel.delete()\n .then() // success\n .catch(console.log); // log error"],"inherits":"Channel#delete","inherited":true,"meta":{"line":39,"file":"Channel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Channel",">"]]]},"params":[]}],"properties":[{"id":"GuildChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"GuildChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"GuildChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}},{"id":"GuildChannel#client","name":"client","description":"The client that instantiated the Channel","memberof":"GuildChannel","type":{"types":[[["Client",""]]]},"meta":{"line":10,"file":"Channel.js","path":"src/structures"}},{"id":"GuildChannel#id","name":"id","description":"The unique ID of the channel","memberof":"GuildChannel","type":{"types":[[["String",""]]]},"meta":{"line":27,"file":"Channel.js","path":"src/structures"}}],"events":[]},{"id":"GuildMember","name":"GuildMember","description":"Represents a Member of a Guild on Discord","meta":{"line":7,"file":"GuildMember.js","path":"src/structures"},"methods":[{"id":"GuildMember#deleteDM","name":"deleteDM","description":"Deletes any DM's with this Guild Member","memberof":"GuildMember","meta":{"line":133,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"GuildMember#kick","name":"kick","description":"Kick this member from the Guild","memberof":"GuildMember","meta":{"line":141,"file":"GuildMember.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildMember",">"]]]},"params":[]},{"id":"GuildMember#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"GuildMember","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"GuildMember#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"GuildMember","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"GuildMember#client","name":"client","description":"The client that instantiated this GuildMember","memberof":"GuildMember","type":{"types":[[["Client",""]]]},"meta":{"line":13,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#guild","name":"guild","description":"The guild that this member is part of","memberof":"GuildMember","type":{"types":[[["Guild",""]]]},"meta":{"line":18,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#user","name":"user","description":"The user that this guild member instance Represents","memberof":"GuildMember","type":{"types":[[["User",""]]]},"meta":{"line":23,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverDeaf","name":"serverDeaf","description":"Whether this member is deafened server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":36,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#serverMute","name":"serverMute","description":"Whether this member is muted server-wide","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":41,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfMute","name":"selfMute","description":"Whether this member is self-muted","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":46,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#selfDeaf","name":"selfDeaf","description":"Whether this member is self-deafened","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":51,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceSessionID","name":"voiceSessionID","description":"The voice session ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannelID","name":"voiceChannelID","description":"The voice channel ID of this member, if any","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":61,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#joinDate","name":"joinDate","description":"The date this member joined the guild","memberof":"GuildMember","type":{"types":[[["Date",""]]]},"meta":{"line":66,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#roles","name":"roles","description":"A list of roles that are applied to this GuildMember","memberof":"GuildMember","type":{"types":[[["Array",".<"],["Role",">"]]]},"meta":{"line":75,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#mute","name":"mute","description":"Whether this member is muted in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":98,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#deaf","name":"deaf","description":"Whether this member is deafened in any way","memberof":"GuildMember","type":{"types":[[["Boolean",""]]]},"meta":{"line":107,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#voiceChannel","name":"voiceChannel","description":"The voice channel this member is in, if any","memberof":"GuildMember","type":{"types":[[["VoiceChannel",""]]]},"meta":{"line":116,"file":"GuildMember.js","path":"src/structures"}},{"id":"GuildMember#id","name":"id","description":"The ID of this User","memberof":"GuildMember","type":{"types":[[["String",""]]]},"meta":{"line":125,"file":"GuildMember.js","path":"src/structures"}}],"events":[]},{"id":"Message","name":"Message","description":"Represents a Message on Discord","meta":{"line":4,"file":"Message.js","path":"src/structures"},"methods":[{"id":"Message#equals","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.","memberof":"Message","meta":{"line":150,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"message","description":"The message to compare it to","type":{"types":[[["Message",""]]]}},{"name":"rawData","description":"Raw data passed through the WebSocket about this message","type":{"types":[[["Object",""]]]}}]},{"id":"Message#delete","name":"delete","description":"Deletes the message","memberof":"Message","examples":["// delete a message\nmessage.delete()\n .then(msg => console.log(`Deleted message from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":184,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[]},{"id":"Message#edit","name":"edit","description":"Edit the content of a message","memberof":"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 from ${msg.author}`))\n .catch(console.log);"],"meta":{"line":198,"file":"Message.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Message",", "],["Error",">"]]]},"params":[{"name":"content","description":"the new content of a message","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"Message#channel","name":"channel","description":"The channel that the message was sent in","memberof":"Message","type":{"types":[[["Channel",""]]]},"meta":{"line":10,"file":"Message.js","path":"src/structures"}},{"id":"Message#guild","name":"guild","description":"If the message was sent in a guild, this will be the guild the message was sent in","memberof":"Message","type":{"types":[[["Guild",""]]]},"meta":{"line":17,"file":"Message.js","path":"src/structures"}},{"id":"Message#client","name":"client","description":"The client that instantiated the Message","memberof":"Message","type":{"types":[[["Client",""]]]},"meta":{"line":24,"file":"Message.js","path":"src/structures"}},{"id":"Message#author","name":"author","description":"The author of the message","memberof":"Message","type":{"types":[[["User",""]]]},"meta":{"line":35,"file":"Message.js","path":"src/structures"}},{"id":"Message#content","name":"content","description":"The content of the message","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Message.js","path":"src/structures"}},{"id":"Message#timestamp","name":"timestamp","description":"When the message was sent","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":45,"file":"Message.js","path":"src/structures"}},{"id":"Message#editedTimestamp","name":"editedTimestamp","description":"If the message was edited, the timestamp at which it was last edited","memberof":"Message","type":{"types":[[["Date",""]]]},"meta":{"line":50,"file":"Message.js","path":"src/structures"}},{"id":"Message#tts","name":"tts","description":"Whether or not the message was Text-To-Speech","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentionEveryone","name":"mentionEveryone","description":"Whether the message mentioned @everyone or not","memberof":"Message","type":{"types":[[["Boolean",""]]]},"meta":{"line":60,"file":"Message.js","path":"src/structures"}},{"id":"Message#nonce","name":"nonce","description":"A random number used for checking message delivery","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":65,"file":"Message.js","path":"src/structures"}},{"id":"Message#embeds","name":"embeds","description":"A list of embeds in the message - e.g. YouTube Player","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":70,"file":"Message.js","path":"src/structures"}},{"id":"Message#attachments","name":"attachments","description":"A list of attachments in the message - e.g. Pictures","memberof":"Message","type":{"types":[[["Array",".<"],["Object",">"]]]},"meta":{"line":75,"file":"Message.js","path":"src/structures"}},{"id":"Message#mentions","name":"mentions","description":"A list of users mentioned in the message","memberof":"Message","type":{"types":[[["Array",".<"],["User",">"]]]},"meta":{"line":80,"file":"Message.js","path":"src/structures"}},{"id":"Message#id","name":"id","description":"The ID of the message (unique in the channel it was sent)","memberof":"Message","type":{"types":[[["String",""]]]},"meta":{"line":85,"file":"Message.js","path":"src/structures"}}],"events":[]},{"id":"PermissionOverwrites","name":"PermissionOverwrites","description":"Represents a permission overwrite for a Role or Member in a Guild Channel.","meta":{"line":4,"file":"PermissionOverwrites.js","path":"src/structures"},"methods":[],"properties":[{"id":"PermissionOverwrites#channel","name":"channel","description":"The GuildChannel this overwrite is for","memberof":"PermissionOverwrites","type":{"types":[[["GuildChannel",""]]]},"meta":{"line":10,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#type","name":"type","description":"The type of this overwrite","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":21,"file":"PermissionOverwrites.js","path":"src/structures"}},{"id":"PermissionOverwrites#id","name":"id","description":"The ID of this overwrite, either a User ID or a Role ID","memberof":"PermissionOverwrites","type":{"types":[[["String",""]]]},"meta":{"line":26,"file":"PermissionOverwrites.js","path":"src/structures"}}],"events":[]},{"id":"Role","name":"Role","description":"Represents a Role on Discord","meta":{"line":6,"file":"Role.js","path":"src/structures"},"methods":[{"id":"Role#delete","name":"delete","description":"Deletes the role","memberof":"Role","examples":["// delete a role\nrole.delete()\n .then(r => console.log(`Deleted role ${r}`))\n .catch(console.log);"],"meta":{"line":82,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[]},{"id":"Role#edit","name":"edit","description":"Edits the role","memberof":"Role","examples":["// edit a role\nrole.edit({name: 'new role'})\n .then(r => console.log(`Edited role ${r}`))\n .catch(console.log);"],"meta":{"line":96,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"data","description":"the new data for the role","type":{"types":[[["RoleData",""]]]}}]},{"id":"Role#setName","name":"setName","description":"Set a new name for the role","memberof":"Role","examples":["// set the name of the role\nrole.setName('new role')\n .then(r => console.log(`Edited name of role ${r}`))\n .catch(console.log);"],"meta":{"line":110,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"name","description":"the new name of the role","type":{"types":[[["String",""]]]}}]},{"id":"Role#setColor","name":"setColor","description":"Set a new color for the role","memberof":"Role","examples":["// set the color of a role\nrole.setColor(parseInt('FF0000', 16))\n .then(r => console.log(`Set color of role ${r}`))\n .catch(console.log);"],"meta":{"line":124,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"color","description":"the new color for the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setHoist","name":"setHoist","description":"Set whether or not the role should be hoisted","memberof":"Role","examples":["// set the hoist of the role\nrole.setHoist(true)\n .then(r => console.log(`Role hoisted: ${r.hoist}`))\n .catch(console.log);"],"meta":{"line":138,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"hoist","description":"whether or not to hoist the role","type":{"types":[[["Boolean",""]]]}}]},{"id":"Role#setPosition","name":"setPosition","description":"Set the position of the role","memberof":"Role","examples":["// set the position of the role\nrole.setPosition(1)\n .then(r => console.log(`Role position: ${r.position}`))\n .catch(console.log);"],"meta":{"line":152,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"position","description":"the position of the role","type":{"types":[[["Number",""]]]}}]},{"id":"Role#setPermissions","name":"setPermissions","description":"Set the permissions of the role","memberof":"Role","examples":["// set the permissions of the role\nrole.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS'])\n .then(r => console.log(`Role updated ${r}`))\n .catch(console.log);"],"meta":{"line":166,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["Role",", "],["Error",">"]]]},"params":[{"name":"permissions","description":"the permissions of the role","type":{"types":[[["Array",".<"],["String",">"]]]}}]},{"id":"Role#serialize","name":"serialize","description":"Get an object mapping permission names to whether or not the role enables that permission","memberof":"Role","examples":["// print the serialized role\nconsole.log(role.serialize());"],"meta":{"line":177,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Object",".<"],["String",", "],["Boolean",">"]]]},"params":[]},{"id":"Role#hasPermission","name":"hasPermission","description":"Whether or not the role includes the given permission","memberof":"Role","examples":["// see if a role can ban a member\nif (role.hasPermission('BAN_MEMBERS')) {\n console.log('This role can ban members');\n} else {\n console.log('This role can\\'t ban members');\n}"],"meta":{"line":199,"file":"Role.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"permission","description":"the name of the permission to test","type":{"types":[[["String",""]]]}},{"name":"explicit","description":"whether or not the inclusion of the permission is explicit","optional":true,"type":{"types":[[["Boolean",""]]]}}]}],"properties":[{"id":"Role#guild","name":"guild","description":"The guild that the role belongs to","memberof":"Role","type":{"types":[[["Guild",""]]]},"meta":{"line":12,"file":"Role.js","path":"src/structures"}},{"id":"Role#client","name":"client","description":"The client that instantiated the role","memberof":"Role","type":{"types":[[["Client",""]]]},"meta":{"line":17,"file":"Role.js","path":"src/structures"}},{"id":"Role#id","name":"id","description":"The ID of the role (unique to the guild it is part of)","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":40,"file":"Role.js","path":"src/structures"}},{"id":"Role#name","name":"name","description":"The name of the role","memberof":"Role","type":{"types":[[["String",""]]]},"meta":{"line":45,"file":"Role.js","path":"src/structures"}},{"id":"Role#color","name":"color","description":"The base 10 color of the role","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":50,"file":"Role.js","path":"src/structures"}},{"id":"Role#hoist","name":"hoist","description":"If true, users that are part of this role will appear in a separate category in the users list","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":55,"file":"Role.js","path":"src/structures"}},{"id":"Role#position","name":"position","description":"The position of the role in the role manager","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":60,"file":"Role.js","path":"src/structures"}},{"id":"Role#permissions","name":"permissions","description":"The evaluated permissions number","memberof":"Role","type":{"types":[[["Number",""]]]},"meta":{"line":65,"file":"Role.js","path":"src/structures"}},{"id":"Role#managed","name":"managed","description":"Whether or not the role is managed by an external service","memberof":"Role","type":{"types":[[["Boolean",""]]]},"meta":{"line":70,"file":"Role.js","path":"src/structures"}}],"events":[]},{"id":"TextChannel","name":"TextChannel","description":"Represents a Server Text Channel on Discord.","meta":{"line":9,"file":"TextChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"TextChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"TextChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]},{"id":"TextChannel#equals","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.","memberof":"TextChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"TextChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"TextChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"TextChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"TextChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"TextChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"TextChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"TextChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"TextChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"TextChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}},{"id":"TextChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"TextChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"TextChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"TextChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"TextChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]},{"id":"User","name":"User","description":"Represents a User on Discord.","meta":{"line":7,"file":"User.js","path":"src/structures"},"methods":[{"id":"User#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the User's mention instead of the User object.","memberof":"User","examples":["// logs: Hello from <@123456789>!\nconsole.log(`Hello from ${user}!`);"],"meta":{"line":64,"file":"User.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]},{"id":"User#deleteDM","name":"deleteDM","description":"Deletes a DM Channel (if one exists) between the Client and the User. Resolves with the Channel if successful.","memberof":"User","meta":{"line":72,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["DMChannel",">"]]]},"params":[]},{"id":"User#equals","name":"equals","description":"Checks if the user is equal to another. It compares username, ID, discriminator, status and the game being played.\nIt is recommended to compare equality by using `user.id === user2.id` unless you want to compare all properties.","memberof":"User","meta":{"line":82,"file":"User.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"user","description":"the user to compare","type":{"types":[[["User",""]]]}}]},{"id":"User#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"User","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}],"implements":["TextBasedChannel#sendMessage"]},{"id":"User#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"User","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}],"implements":["TextBasedChannel#sendTTSMessage"]}],"properties":[{"id":"User#username","name":"username","description":"The username of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":20,"file":"User.js","path":"src/structures"}},{"id":"User#id","name":"id","description":"The ID of the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":25,"file":"User.js","path":"src/structures"}},{"id":"User#discriminator","name":"discriminator","description":"A discriminator based on username for the User","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":30,"file":"User.js","path":"src/structures"}},{"id":"User#avatar","name":"avatar","description":"The ID of the user's avatar","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":35,"file":"User.js","path":"src/structures"}},{"id":"User#bot","name":"bot","description":"Whether or not the User is a Bot.","memberof":"User","type":{"types":[[["Boolean",""]]]},"meta":{"line":40,"file":"User.js","path":"src/structures"}},{"id":"User#status","name":"status","description":"The status of the user:\n\n* **`online`** - user is online\n* **`offline`** - user is offline\n* **`idle`** - user is AFK","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":49,"file":"User.js","path":"src/structures"}},{"id":"User#game","name":"game","description":"The game that the user is playing, `null` if they aren't playing a game.","memberof":"User","type":{"types":[[["String",""]]]},"meta":{"line":54,"file":"User.js","path":"src/structures"}}],"events":[]},{"id":"VoiceChannel","name":"VoiceChannel","description":"Represents a Server Voice Channel on Discord.","meta":{"line":7,"file":"VoiceChannel.js","path":"src/structures"},"extends":["GuildChannel"],"methods":[{"id":"VoiceChannel#setBitrate","name":"setBitrate","description":"Sets the bitrate of the channel","memberof":"VoiceChannel","examples":["// set the bitrate of a voice channel\nvoiceChannel.setBitrate(48000)\n .then(vc => console.log(`Set bitrate to ${vc.bitrate} for ${vc.name}`))\n .catch(console.log);"],"meta":{"line":41,"file":"VoiceChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["VoiceChannel",">"]]]},"params":[{"name":"bitrate","description":"the new bitrate","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#equals","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.","memberof":"VoiceChannel","inherits":"GuildChannel#equals","inherited":true,"meta":{"line":76,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Boolean",""]]]},"params":[{"name":"channel","description":"the channel to compare this channel to","type":{"types":[[["GuildChannel",""]]]}}]},{"id":"VoiceChannel#permissionsFor","name":"permissionsFor","description":"Gets the overall set of permissions for a user in this channel, taking into account roles and permission\noverwrites.","memberof":"VoiceChannel","inherits":"GuildChannel#permissionsFor","inherited":true,"meta":{"line":108,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["EvaluatedPermissions",""]]]},"params":[{"name":"member","description":"the user that you want to obtain the overall permissions for","type":{"types":[[["GuildMemberResolvable",""]]]}}]},{"id":"VoiceChannel#setName","name":"setName","description":"Set a new name for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setName","inherited":true,"meta":{"line":178,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"name","description":"the new name for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#setPosition","name":"setPosition","description":"Set a new position for the Guild Channel","memberof":"VoiceChannel","examples":["// set a new channel position\nchannel.setPosition(2)\n .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))\n .catch(console.log);"],"inherits":"GuildChannel#setPosition","inherited":true,"meta":{"line":192,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"position","description":"the new position for the guild channel","type":{"types":[[["Number",""]]]}}]},{"id":"VoiceChannel#setTopic","name":"setTopic","description":"Set a new topic for the Guild Channel","memberof":"VoiceChannel","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.log);"],"inherits":"GuildChannel#setTopic","inherited":true,"meta":{"line":206,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["Promise",".<"],["GuildChannel",">"]]]},"params":[{"name":"topic","description":"the new topic for the guild channel","type":{"types":[[["String",""]]]}}]},{"id":"VoiceChannel#toString","name":"toString","description":"When concatenated with a String, this automatically concatenates the Channel's name instead of the Channel object.","memberof":"VoiceChannel","examples":["// Outputs: Hello from general\nconsole.log(`Hello from ${channel}`);","// Outputs: Hello from general\nconsole.log('Hello from ' + ${channel});"],"inherits":"GuildChannel#toString","inherited":true,"meta":{"line":220,"file":"GuildChannel.js","path":"src/structures"},"returns":{"types":[[["String",""]]]},"params":[]}],"properties":[{"id":"VoiceChannel#members","name":"members","description":"The members in this Voice Channel.","memberof":"VoiceChannel","type":{"types":[[["Map",".<"],["String",", "],["GuildMember",">"]]]},"meta":{"line":14,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#bitrate","name":"bitrate","description":"The bitrate of this voice channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":23,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#userLimit","name":"userLimit","description":"The maximum amount of users allowed in this channel - 0 means unlimited.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":28,"file":"VoiceChannel.js","path":"src/structures"}},{"id":"VoiceChannel#type","name":"type","description":"The type of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":36,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#topic","name":"topic","description":"The topic of the Guild Channel, if there is one.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":41,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#position","name":"position","description":"The position of the channel in the list.","memberof":"VoiceChannel","type":{"types":[[["Number",""]]]},"meta":{"line":46,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#name","name":"name","description":"The name of the Guild Channel","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":51,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#lastMessageID","name":"lastMessageID","description":"The ID of the last message in the channel, if one was sent.","memberof":"VoiceChannel","type":{"types":[[["String",""]]]},"meta":{"line":56,"file":"GuildChannel.js","path":"src/structures"}},{"id":"VoiceChannel#permissionOverwrites","name":"permissionOverwrites","description":"A list of permission overwrites in this channel for roles and users.","memberof":"VoiceChannel","type":{"types":[[["Array",".<"],["PermissionOverwrites",">"]]]},"meta":{"line":62,"file":"GuildChannel.js","path":"src/structures"}}],"events":[]}],"interfaces":[{"id":"TextBasedChannel","name":"TextBasedChannel","description":"Interface for classes that have text-channel-like features","meta":{"line":5,"file":"TextBasedChannel.js","path":"src/structures/interface"},"methods":[{"id":"TextBasedChannel#sendMessage","name":"sendMessage","description":"Send a message to this channel","memberof":"TextBasedChannel","examples":["// send a message\nchannel.sendMessage('hello!')\n .then(message => console.log(`Sent message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":25,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}},{"name":"options","description":"the options to provide","optional":true,"type":{"types":[[["MessageOptions",""]]]}}]},{"id":"TextBasedChannel#sendTTSMessage","name":"sendTTSMessage","description":"Send a text-to-speech message to this channel","memberof":"TextBasedChannel","examples":["// send a TTS message\nchannel.sendTTSMessage('hello!')\n .then(message => console.log(`Sent tts message: ${message.content}`))\n .catch(console.log);"],"meta":{"line":38,"file":"TextBasedChannel.js","path":"src/structures/interface"},"returns":{"types":[[["Promise",".<"],["Message",">"]]]},"params":[{"name":"content","description":"the content to send","type":{"types":[[["String",""]]]}}]}],"properties":[{"id":"TextBasedChannel#messages","name":"messages","description":"A Map containing the messages sent to this channel.","memberof":"TextBasedChannel","type":{"types":[[["Map",".<"],["String",", "],["Message",">"]]]},"meta":{"line":12,"file":"TextBasedChannel.js","path":"src/structures/interface"}}],"events":[]}],"typedefs":[{"id":"UserResolvable","name":"UserResolvable","description":"Data that resolves to give a User object. This can be:\n* A User object\n* A User ID\n* A Message (resolves to the message author)\n* A Guild (owner of the guild)","type":{"types":[[["User",""]],[["String",""]],[["Message",""]],[["Guild",""]]]},"meta":{"line":23,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildResolvable","name":"GuildResolvable","description":"Data that resolves to give a Guild object. This can be:\n* A Guild object","type":{"types":[[["Guild",""]]]},"meta":{"line":51,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"GuildMemberResolvable","name":"GuildMemberResolvable","description":"Data that resolves to give a GuildMember object. This can be:\n* A GuildMember object\n* A User object","type":{"types":[[["Guild",""]]]},"meta":{"line":69,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"Base64Resolvable","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":{"types":[[["Buffer",""]],[["String",""]]]},"meta":{"line":98,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"ChannelResolvable","name":"ChannelResolvable","description":"Data that can be resolved to give a Channel. This can be:\n* An instance of a Channel\n* An ID of a Channel","type":{"types":[[["Channel",""]],[["String",""]]]},"meta":{"line":118,"file":"ClientDataResolver.js","path":"src/client"}},{"id":"StringResolvable","name":"StringResolvable","description":"Data that can be resolved to give a String. This can be:\n* A String\n* An Array (joined with a new line delimiter to give a string)\n* Any object","type":{"types":[[["String",""]],[["Array",""]],[["Object",""]]]},"meta":{"line":142,"file":"ClientDataResolver.js","path":"src/client"}}]} \ No newline at end of file diff --git a/docs/generator/config.json b/docs/generator/config.json index e6c07de1b..818441893 100644 --- a/docs/generator/config.json +++ b/docs/generator/config.json @@ -1,4 +1,4 @@ { - "GEN_VERSION": 10, + "GEN_VERSION": 11, "COMPRESS": false } \ No newline at end of file