From 2aa2f73c74582652f3304da861c6d496255dd499 Mon Sep 17 00:00:00 2001 From: iCrawl Date: Thu, 17 Aug 2017 20:04:01 +0200 Subject: [PATCH] Docs cleanup --- docs/examples/greeting.js | 6 +- src/client/ClientDataResolver.js | 6 +- src/client/voice/VoiceBroadcast.js | 24 +- src/client/voice/VoiceConnection.js | 28 +-- .../voice/dispatcher/StreamDispatcher.js | 10 +- src/client/voice/opus/BaseOpusEngine.js | 8 +- src/client/voice/player/AudioPlayer.js | 2 +- src/client/voice/receiver/VoiceReceiver.js | 7 +- src/client/websocket/WebSocketConnection.js | 8 +- src/client/websocket/WebSocketManager.js | 6 +- src/errors/DJSError.js | 6 +- src/sharding/Shard.js | 8 +- src/sharding/ShardClientUtil.js | 8 +- src/sharding/ShardingManager.js | 8 +- src/structures/Attachment.js | 2 +- src/structures/Channel.js | 4 +- src/structures/ClientApplication.js | 8 +- src/structures/ClientUser.js | 26 +-- src/structures/Emoji.js | 6 +- src/structures/GroupDMChannel.js | 2 +- src/structures/Guild.js | 64 +++--- src/structures/GuildAuditLogs.js | 2 +- src/structures/GuildChannel.js | 26 +-- src/structures/GuildMember.js | 2 +- src/structures/Message.js | 28 +-- src/structures/MessageCollector.js | 9 +- src/structures/MessageEmbed.js | 44 ++-- src/structures/MessageMentions.js | 4 +- src/structures/Presence.js | 2 +- src/structures/ReactionCollector.js | 6 +- src/structures/Role.js | 34 +-- src/structures/TextChannel.js | 6 +- src/structures/User.js | 5 +- src/structures/UserProfile.js | 2 +- src/structures/VoiceChannel.js | 12 +- src/structures/Webhook.js | 4 +- src/structures/interfaces/TextBasedChannel.js | 16 +- src/util/Constants.js | 208 +++++++++--------- src/util/Permissions.js | 62 +++--- src/util/Util.js | 6 +- 40 files changed, 366 insertions(+), 359 deletions(-) diff --git a/docs/examples/greeting.js b/docs/examples/greeting.js index e9c92e076..55bf2d00d 100644 --- a/docs/examples/greeting.js +++ b/docs/examples/greeting.js @@ -19,11 +19,7 @@ client.on('ready', () => { // Create an event listener for new guild members client.on('guildMemberAdd', member => { - // Send the message to the guilds default channel (usually #general), mentioning the member - member.guild.defaultChannel.send(`Welcome to the server, ${member}!`); - - // If you want to send the message to a designated channel on a server instead - // you can do the following: + // Send the message to a designated channel on a server: const channel = member.guild.channels.find('name', 'member-log'); // Do nothing if the channel wasn't found on this server if (!channel) return; diff --git a/src/client/ClientDataResolver.js b/src/client/ClientDataResolver.js index ba7df252a..1cc447708 100644 --- a/src/client/ClientDataResolver.js +++ b/src/client/ClientDataResolver.js @@ -29,7 +29,7 @@ class ClientDataResolver { /** * Data that resolves to give a User object. This can be: * * A User object - * * A user ID + * * A Snowflake * * A Message object (resolves to the message author) * * A Guild object (owner of the guild) * * A GuildMember object @@ -66,7 +66,7 @@ class ClientDataResolver { /** * Data that resolves to give a Guild object. This can be: * * A Guild object - * * A Guild ID + * * A Snowflake * @typedef {Guild|Snowflake} GuildResolvable */ @@ -128,7 +128,7 @@ class ClientDataResolver { * * A Channel object * * A Message object (the channel the message was sent in) * * A Guild object (the #general channel) - * * A channel ID + * * A Snowflake * @typedef {Channel|Guild|Message|Snowflake} ChannelResolvable */ diff --git a/src/client/voice/VoiceBroadcast.js b/src/client/voice/VoiceBroadcast.js index beb57fd06..837dc3925 100644 --- a/src/client/voice/VoiceBroadcast.js +++ b/src/client/voice/VoiceBroadcast.js @@ -18,7 +18,7 @@ const ffmpegArguments = [ * ```js * const broadcast = client.createVoiceBroadcast(); * broadcast.playFile('./music.mp3'); - * // play "music.mp3" in all voice connections that the client is in + * // Play "music.mp3" in all voice connections that the client is in * for (const connection of client.voiceConnections.values()) { * connection.playBroadcast(broadcast); * } @@ -141,12 +141,12 @@ class VoiceBroadcast extends VolumeInterface { * const broadcast = client.createVoiceBroadcast(); * * voiceChannel.join() - * .then(connection => { - * const stream = ytdl('https://www.youtube.com/watch?v=XAWgeLF9EVQ', { filter : 'audioonly' }); - * broadcast.playStream(stream); - * const dispatcher = connection.playBroadcast(broadcast); - * }) - * .catch(console.error); + * .then(connection => { + * const stream = ytdl('https://www.youtube.com/watch?v=XAWgeLF9EVQ', { filter : 'audioonly' }); + * broadcast.playStream(stream); + * const dispatcher = connection.playBroadcast(broadcast); + * }) + * .catch(console.error); */ playStream(stream, options = {}) { this.setVolume(options.volume || 1); @@ -163,11 +163,11 @@ class VoiceBroadcast extends VolumeInterface { * const broadcast = client.createVoiceBroadcast(); * * voiceChannel.join() - * .then(connection => { - * broadcast.playFile('C:/Users/Discord/Desktop/music.mp3'); - * const dispatcher = connection.playBroadcast(broadcast); - * }) - * .catch(console.error); + * .then(connection => { + * broadcast.playFile('C:/Users/Discord/Desktop/music.mp3'); + * const dispatcher = connection.playBroadcast(broadcast); + * }) + * .catch(console.error); */ playFile(file, options = {}) { this.setVolume(options.volume || 1); diff --git a/src/client/voice/VoiceConnection.js b/src/client/voice/VoiceConnection.js index 18c5ee084..16bf14004 100644 --- a/src/client/voice/VoiceConnection.js +++ b/src/client/voice/VoiceConnection.js @@ -12,9 +12,10 @@ const { Error } = require('../../errors'); * Represents a connection to a guild's voice server. * ```js * // Obtained using: - * voiceChannel.join().then(connection => { + * voiceChannel.join() + * .then(connection => { * - * }); + * }); * ``` * @extends {EventEmitter} */ @@ -311,7 +312,7 @@ class VoiceConnection extends EventEmitter { } /** - * Internally disconnects (doesn't send disconnect packet.) + * Internally disconnects (doesn't send disconnect packet). * @private */ _disconnect() { @@ -454,10 +455,10 @@ class VoiceConnection extends EventEmitter { * @example * // Play files natively * voiceChannel.join() - * .then(connection => { - * const dispatcher = connection.playFile('C:/Users/Discord/Desktop/music.mp3'); - * }) - * .catch(console.error); + * .then(connection => { + * const dispatcher = connection.playFile('C:/Users/Discord/Desktop/music.mp3'); + * }) + * .catch(console.error); */ playFile(file, options) { return this.player.playUnknownStream(`file:${file}`, options); @@ -483,11 +484,11 @@ class VoiceConnection extends EventEmitter { * const ytdl = require('ytdl-core'); * const streamOptions = { seek: 0, volume: 1 }; * voiceChannel.join() - * .then(connection => { - * const stream = ytdl('https://www.youtube.com/watch?v=XAWgeLF9EVQ', { filter : 'audioonly' }); - * const dispatcher = connection.playStream(stream, streamOptions); - * }) - * .catch(console.error); + * .then(connection => { + * const stream = ytdl('https://www.youtube.com/watch?v=XAWgeLF9EVQ', { filter : 'audioonly' }); + * const dispatcher = connection.playStream(stream, streamOptions); + * }) + * .catch(console.error); */ playStream(stream, options) { return this.player.playUnknownStream(stream, options); @@ -531,7 +532,8 @@ class VoiceConnection extends EventEmitter { } /** - * Creates a VoiceReceiver so you can start listening to voice data. It's recommended to only create one of these. + * Creates a VoiceReceiver so you can start listening to voice data. + * It's recommended to only create one of these. * @returns {VoiceReceiver} */ createReceiver() { diff --git a/src/client/voice/dispatcher/StreamDispatcher.js b/src/client/voice/dispatcher/StreamDispatcher.js index 24df9d069..beef7b9f4 100644 --- a/src/client/voice/dispatcher/StreamDispatcher.js +++ b/src/client/voice/dispatcher/StreamDispatcher.js @@ -89,12 +89,12 @@ class StreamDispatcher extends VolumeInterface { } /** - * Stops sending voice packets to the voice connection (stream may still progress however) + * Stops sending voice packets to the voice connection (stream may still progress however). */ pause() { this.setPaused(true); } /** - * Resumes sending voice packets to the voice connection (may be further on in the stream than when paused) + * Resumes sending voice packets to the voice connection (may be further on in the stream than when paused). */ resume() { this.setPaused(false); } @@ -122,7 +122,7 @@ class StreamDispatcher extends VolumeInterface { /** * Set the bitrate of the current Opus encoder. - * @param {number} bitrate New bitrate, in kbps. + * @param {number} bitrate New bitrate, in kbps * If set to 'auto', the voice channel's bitrate will be used */ setBitrate(bitrate) { @@ -140,7 +140,7 @@ class StreamDispatcher extends VolumeInterface { /** * Emitted whenever the dispatcher has debug information. * @event StreamDispatcher#debug - * @param {string} info the debug info + * @param {string} info The debug info */ this.setSpeaking(true); while (repeats--) { @@ -294,7 +294,7 @@ class StreamDispatcher extends VolumeInterface { this.emit(type, reason); /** * Emitted once the dispatcher ends. - * @param {string} [reason] the reason the dispatcher ended + * @param {string} [reason] The reason the dispatcher ended * @event StreamDispatcher#end */ if (type !== 'end') this.emit('end', `destroyed due to ${type} - ${reason}`); diff --git a/src/client/voice/opus/BaseOpusEngine.js b/src/client/voice/opus/BaseOpusEngine.js index 40c6204fd..a51044905 100644 --- a/src/client/voice/opus/BaseOpusEngine.js +++ b/src/client/voice/opus/BaseOpusEngine.js @@ -4,10 +4,10 @@ */ class BaseOpus { /** - * @param {Object} [options] The options to apply to the Opus engine. - * @param {number} [options.bitrate=48] The desired bitrate (kbps). - * @param {boolean} [options.fec=false] Whether to enable forward error correction. - * @param {number} [options.plp=0] The expected packet loss percentage. + * @param {Object} [options] The options to apply to the Opus engine + * @param {number} [options.bitrate=48] The desired bitrate (kbps) + * @param {boolean} [options.fec=false] Whether to enable forward error correction + * @param {number} [options.plp=0] The expected packet loss percentage */ constructor({ bitrate = 48, fec = false, plp = 0 } = {}) { this.ctl = { diff --git a/src/client/voice/player/AudioPlayer.js b/src/client/voice/player/AudioPlayer.js index ca0f759ff..4abcc7d8b 100644 --- a/src/client/voice/player/AudioPlayer.js +++ b/src/client/voice/player/AudioPlayer.js @@ -83,7 +83,7 @@ class AudioPlayer extends EventEmitter { /** * Set the bitrate of the current Opus encoder. - * @param {number} value New bitrate, in kbps. + * @param {number} value New bitrate, in kbps * If set to 'auto', the voice channel's bitrate will be used */ setBitrate(value) { diff --git a/src/client/voice/receiver/VoiceReceiver.js b/src/client/voice/receiver/VoiceReceiver.js index 6f2f5722b..025a94054 100644 --- a/src/client/voice/receiver/VoiceReceiver.js +++ b/src/client/voice/receiver/VoiceReceiver.js @@ -11,9 +11,10 @@ nonce.fill(0); * Receives voice data from a voice connection. * ```js * // Obtained using: - * voiceChannel.join().then(connection => { - * const receiver = connection.createReceiver(); - * }); + * voiceChannel.join() + * .then(connection => { + * const receiver = connection.createReceiver(); + * }); * ``` * @extends {EventEmitter} */ diff --git a/src/client/websocket/WebSocketConnection.js b/src/client/websocket/WebSocketConnection.js index ab6e354c6..6f977f395 100644 --- a/src/client/websocket/WebSocketConnection.js +++ b/src/client/websocket/WebSocketConnection.js @@ -29,12 +29,12 @@ const WebSocket = (function findWebSocket() { class WebSocketConnection extends EventEmitter { /** * @param {WebSocketManager} manager The WebSocket manager - * @param {string} gateway WebSocket gateway to connect to + * @param {string} gateway The WebSocket gateway to connect to */ constructor(manager, gateway) { super(); /** - * WebSocket Manager of this connection + * The WebSocket Manager of this connection * @type {WebSocketManager} */ this.manager = manager; @@ -233,7 +233,7 @@ class WebSocketConnection extends EventEmitter { /** * Creates a connection to a gateway. - * @param {string} gateway Gateway to connect to + * @param {string} gateway The gateway to connect to * @param {number} [after=0] How long to wait before connecting * @param {boolean} [force=false] Whether or not to force a new connection even if one already exists * @returns {boolean} @@ -358,7 +358,7 @@ class WebSocketConnection extends EventEmitter { /** * Called whenever an error occurs with the WebSocket. - * @param {Error} error Error that occurred + * @param {Error} error The error that occurred */ onError(error) { if (error && error.message === 'uWs client connection error') { diff --git a/src/client/websocket/WebSocketManager.js b/src/client/websocket/WebSocketManager.js index 8f120b975..fe0924a27 100644 --- a/src/client/websocket/WebSocketManager.js +++ b/src/client/websocket/WebSocketManager.js @@ -3,7 +3,7 @@ const Constants = require('../../util/Constants'); const WebSocketConnection = require('./WebSocketConnection'); /** - * WebSocket Manager of the client + * WebSocket Manager of the client. * @private */ class WebSocketManager extends EventEmitter { @@ -23,7 +23,7 @@ class WebSocketManager extends EventEmitter { } /** - * Sends a heartbeat on the available connection + * Sends a heartbeat on the available connection. * @returns {void} */ heartbeat() { @@ -67,7 +67,7 @@ class WebSocketManager extends EventEmitter { /** * Connects the client to a gateway. - * @param {string} gateway Gateway to connect to + * @param {string} gateway The gateway to connect to * @returns {boolean} */ connect(gateway) { diff --git a/src/errors/DJSError.js b/src/errors/DJSError.js index b922b711d..55b549902 100644 --- a/src/errors/DJSError.js +++ b/src/errors/DJSError.js @@ -6,7 +6,7 @@ const assert = require('assert'); const util = require('util'); /** - * Extend an error of some sort into a DiscordjsError + * Extend an error of some sort into a DiscordjsError. * @param {Error} Base Base error to extend * @returns {DiscordjsError} */ @@ -29,7 +29,7 @@ function makeDiscordjsError(Base) { } /** - * Format the message for an error + * Format the message for an error. * @param {string} key Error key * @param {Array<*>} args Arguments to pass for util format or as function args * @returns {string} Formatted string @@ -49,7 +49,7 @@ function message(key, args) { } /** - * Register an error code and message + * Register an error code and message. * @param {string} sym Unique name for the error * @param {*} val Value of the error */ diff --git a/src/sharding/Shard.js b/src/sharding/Shard.js index f0cc51098..e67bece78 100644 --- a/src/sharding/Shard.js +++ b/src/sharding/Shard.js @@ -70,9 +70,11 @@ class Shard { * @param {string} prop Name of the client property to get, using periods for nesting * @returns {Promise<*>} * @example - * shard.fetchClientValue('guilds.size').then(count => { - * console.log(`${count} guilds in shard ${shard.id}`); - * }).catch(console.error); + * shard.fetchClientValue('guilds.size') + * .then(count => { + * console.log(`${count} guilds in shard ${shard.id}`); + * }) + * .catch(console.error); */ fetchClientValue(prop) { if (this._fetches.has(prop)) return this._fetches.get(prop); diff --git a/src/sharding/ShardClientUtil.js b/src/sharding/ShardClientUtil.js index 549353df2..b6453625c 100644 --- a/src/sharding/ShardClientUtil.js +++ b/src/sharding/ShardClientUtil.js @@ -50,9 +50,11 @@ class ShardClientUtil { * @param {string} prop Name of the client property to get, using periods for nesting * @returns {Promise} * @example - * client.shard.fetchClientValues('guilds.size').then(results => { - * console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`); - * }).catch(console.error); + * client.shard.fetchClientValues('guilds.size') + * .then(results => { + * console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`); + * }) + * .catch(console.error); */ fetchClientValues(prop) { return new Promise((resolve, reject) => { diff --git a/src/sharding/ShardingManager.js b/src/sharding/ShardingManager.js index 8c16096e7..5c9632890 100644 --- a/src/sharding/ShardingManager.js +++ b/src/sharding/ShardingManager.js @@ -181,9 +181,11 @@ class ShardingManager extends EventEmitter { * @param {string} prop Name of the client property to get, using periods for nesting * @returns {Promise} * @example - * manager.fetchClientValues('guilds.size').then(results => { - * console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`); - * }).catch(console.error); + * manager.fetchClientValues('guilds.size') + * .then(results => { + * console.log(`${results.reduce((prev, val) => prev + val, 0)} total guilds`); + * }) + * .catch(console.error); */ fetchClientValues(prop) { if (this.shards.size === 0) return Promise.reject(new Error('SHARDING_NO_SHARDS')); diff --git a/src/structures/Attachment.js b/src/structures/Attachment.js index 94357683a..fd4fa8f80 100644 --- a/src/structures/Attachment.js +++ b/src/structures/Attachment.js @@ -1,5 +1,5 @@ /** - * Represents an attachment in a message + * Represents an attachment in a message. */ class Attachment { constructor(file, name) { diff --git a/src/structures/Channel.js b/src/structures/Channel.js index d82545abc..acf94e298 100644 --- a/src/structures/Channel.js +++ b/src/structures/Channel.js @@ -61,8 +61,8 @@ class Channel { * @example * // Delete the channel * channel.delete() - * .then() // Success - * .catch(console.error); // Log error + * .then() // Success + * .catch(console.error); // Log error */ delete() { return this.client.api.channels(this.id).delete().then(() => this); diff --git a/src/structures/ClientApplication.js b/src/structures/ClientApplication.js index adf0356b8..df0d310e8 100644 --- a/src/structures/ClientApplication.js +++ b/src/structures/ClientApplication.js @@ -124,7 +124,7 @@ class ClientApplication { } /** - * A link to the application's icon + * A link to the application's icon. * @param {Object} [options={}] Options for the icon url * @param {string} [options.format='webp'] One of `webp`, `png`, `jpg` * @param {number} [options.size=128] One of `128`, '256', `512`, `1024`, `2048` @@ -136,7 +136,7 @@ class ClientApplication { } /** - * A link to this application's cover image + * A link to this application's cover image. * @param {Object} [options={}] Options for the cover image url * @param {string} [options.format='webp'] One of `webp`, `png`, `jpg` * @param {number} [options.size=128] One of `128`, '256', `512`, `1024`, `2048` @@ -150,7 +150,7 @@ class ClientApplication { } /** - * Get rich presence assets + * Get rich presence assets. * @returns {Promise} */ fetchAssets() { @@ -163,7 +163,7 @@ class ClientApplication { } /** - * Create a rich presence asset + * Create a rich presence asset. * @param {string} name Name of the asset * @param {Base64Resolvable} data Data of the asset * @param {string} type Type of the asset. `big`, or `small` diff --git a/src/structures/ClientUser.js b/src/structures/ClientUser.js index 6363d23a9..79d448f84 100644 --- a/src/structures/ClientUser.js +++ b/src/structures/ClientUser.js @@ -83,7 +83,7 @@ class ClientUser extends User { /** * All of the user's guild settings * @type {Collection} - * This is only filled when using a user account + * This is only filled when using a user account. */ this.guildSettings = new Collection(); if (data.user_guild_settings) { @@ -119,8 +119,8 @@ class ClientUser extends User { * @example * // Set username * client.user.setUsername('discordjs') - * .then(user => console.log(`My new username is ${user.username}`)) - * .catch(console.error); + * .then(user => console.log(`My new username is ${user.username}`)) + * .catch(console.error); */ setUsername(username, password) { return this.edit({ username }, password); @@ -135,8 +135,8 @@ class ClientUser extends User { * @example * // Set email * client.user.setEmail('bob@gmail.com', 'some amazing password 123') - * .then(user => console.log(`My new email is ${user.email}`)) - * .catch(console.error); + * .then(user => console.log(`My new email is ${user.email}`)) + * .catch(console.error); */ setEmail(email, password) { return this.edit({ email }, password); @@ -154,8 +154,8 @@ class ClientUser extends User { * @example * // Set password * client.user.setPassword('some new amazing password 456', 'some amazing password 123') - * .then(user => console.log('New password set!')) - * .catch(console.error); + * .then(user => console.log('New password set!')) + * .catch(console.error); */ setPassword(newPassword, options) { return this.edit({ new_password: newPassword }, { password: options.oldPassword, mfaCode: options.mfaCode }); @@ -168,8 +168,8 @@ class ClientUser extends User { * @example * // Set avatar * client.user.setAvatar('./avatar.png') - * .then(user => console.log(`New avatar set!`)) - * .catch(console.error); + * .then(user => console.log(`New avatar set!`)) + * .catch(console.error); */ setAvatar(avatar) { if (typeof avatar === 'string' && avatar.startsWith('data:')) { @@ -253,10 +253,10 @@ class ClientUser extends User { /** * A user's status. Must be one of: - * - `online` - * - `idle` - * - `invisible` - * - `dnd` (do not disturb) + * * `online` + * * `idle` + * * `invisible` + * * `dnd` (do not disturb) * @typedef {string} PresenceStatus */ diff --git a/src/structures/Emoji.js b/src/structures/Emoji.js index 1920d6fdc..a37c0162a 100644 --- a/src/structures/Emoji.js +++ b/src/structures/Emoji.js @@ -115,10 +115,10 @@ class Emoji { * @param {string} [reason] Reason for editing this emoji * @returns {Promise} * @example - * // Edit a emoji + * // Edit an emoji * emoji.edit({name: 'newemoji'}) - * .then(e => console.log(`Edited emoji ${e}`)) - * .catch(console.error); + * .then(e => console.log(`Edited emoji ${e}`)) + * .catch(console.error); */ edit(data, reason) { return this.client.api.guilds(this.guild.id).emojis(this.id) diff --git a/src/structures/GroupDMChannel.js b/src/structures/GroupDMChannel.js index bd2f3a7ea..78e22f731 100644 --- a/src/structures/GroupDMChannel.js +++ b/src/structures/GroupDMChannel.js @@ -106,7 +106,7 @@ class GroupDMChannel extends Channel { } /** - * Gets the URL to this Group DM's icon + * Gets the URL to this Group DM's icon. * @param {Object} [options={}] Options for the icon url * @param {string} [options.format='webp'] One of `webp`, `png`, `jpg` * @param {number} [options.size=128] One of `128`, '256', `512`, `1024`, `2048` diff --git a/src/structures/Guild.js b/src/structures/Guild.js index 19b1d4c33..f3e2e6257 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -220,7 +220,8 @@ class Guild { if (!this.emojis) { /** - * A collection of emojis that are in this guild. The key is the emoji's ID, the value is the emoji. + * A collection of emojis that are in this guild + * The key is the emoji's ID, the value is the emoji * @type {Collection} */ this.emojis = new Collection(); @@ -261,7 +262,7 @@ class Guild { } /** - * Gets the URL to this guild's icon + * The URL to this guild's icon. * @param {Object} [options={}] Options for the icon url * @param {string} [options.format='webp'] One of `webp`, `png`, `jpg` * @param {number} [options.size=128] One of `128`, '256', `512`, `1024`, `2048` @@ -273,7 +274,7 @@ class Guild { } /** - * Gets the acronym that shows up in place of a guild icon + * The acronym that shows up in place of a guild icon. * @type {string} * @readonly */ @@ -282,7 +283,7 @@ class Guild { } /** - * The URL to this guild's splash + * The URL to this guild's splash. * @param {Object} [options={}] Options for the splash url * @param {string} [options.format='webp'] One of `webp`, `png`, `jpg` * @param {number} [options.size=128] One of `128`, '256', `512`, `1024`, `2048` @@ -443,7 +444,8 @@ class Guild { } /** - * Fetch a collection of invites to this guild. Resolves with a collection mapping invites by their codes. + * Fetch a collection of invites to this guild. + * Resolves with a collection mapping invites by their codes. * @returns {Promise>} */ fetchInvites() { @@ -566,7 +568,7 @@ class Guild { fetchMembers({ query = '', limit = 0 } = {}) { return new Promise((resolve, reject) => { if (this.memberCount === this.members.size) { - resolve((query || limit) ? new Collection() : this.members); + resolve(query || limit ? new Collection() : this.members); return; } this.client.ws.send({ @@ -585,7 +587,7 @@ class Guild { } if (this.memberCount === this.members.size || ((query || limit) && members.size < 1000)) { this.client.removeListener(Constants.Events.GUILD_MEMBERS_CHUNK, handler); - resolve((query || limit) ? fetchedMembers : this.members); + resolve(query || limit ? fetchedMembers : this.members); } }; this.client.on(Constants.Events.GUILD_MEMBERS_CHUNK, handler); @@ -636,11 +638,11 @@ class Guild { * @example * // Set the guild name and region * guild.edit({ - * name: 'Discord Guild', - * region: 'london', + * name: 'Discord Guild', + * region: 'london', * }) - * .then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`)) - * .catch(console.error); + * .then(updated => console.log(`New guild name ${updated.name} in region ${updated.region}`)) + * .catch(console.error); */ edit(data, reason) { const _data = {}; @@ -841,8 +843,8 @@ class Guild { * @example * // Ban a user by ID (or with a user/guild member object) * guild.ban('some user ID') - * .then(user => console.log(`Banned ${user.username || user.id || user} from ${guild.name}`)) - * .catch(console.error); + * .then(user => console.log(`Banned ${user.username || user.id || user} from ${guild.name}`)) + * .catch(console.error); */ ban(user, options = { days: 0 }) { if (options.days) options['delete-message-days'] = options.days; @@ -868,8 +870,8 @@ class Guild { * @example * // Unban a user by ID (or with a user/guild member object) * guild.unban('some user ID') - * .then(user => console.log(`Unbanned ${user.username} from ${guild.name}`)) - * .catch(console.error); + * .then(user => console.log(`Unbanned ${user.username} from ${guild.name}`)) + * .catch(console.error); */ unban(user, reason) { const id = this.client.resolver.resolveUserID(user); @@ -929,8 +931,8 @@ class Guild { * @example * // Create a new text channel * guild.createChannel('new-general', 'text') - * .then(channel => console.log(`Created new channel ${channel}`)) - * .catch(console.error); + * .then(channel => console.log(`Created new channel ${channel}`)) + * .catch(console.error); */ createChannel(name, type, { overwrites, reason } = {}) { if (overwrites instanceof Collection || overwrites instanceof Array) { @@ -981,8 +983,8 @@ class Guild { * @returns {Promise} * @example * guild.updateChannels([{ channel: channelID, position: newChannelIndex }]) - * .then(guild => console.log(`Updated channel positions for ${guild.id}`)) - * .catch(console.error); + * .then(guild => console.log(`Updated channel positions for ${guild.id}`)) + * .catch(console.error); */ setChannelPositions(channelPositions) { const data = new Array(channelPositions.length); @@ -1013,8 +1015,8 @@ class Guild { * @example * // Create a new role * guild.createRole() - * .then(role => console.log(`Created role ${role}`)) - * .catch(console.error); + * .then(role => console.log(`Created role ${role}`)) + * .catch(console.error); * @example * // Create a new role with data and a reason * guild.createRole({ @@ -1024,8 +1026,8 @@ class Guild { * }, * reason: 'we needed a role for Super Cool People', * }) - * .then(role => console.log(`Created role ${role}`)) - * .catch(console.error) + * .then(role => console.log(`Created role ${role}`)) + * .catch(console.error) */ createRole({ data = {}, reason } = {}) { if (data.color) data.color = Util.resolveColor(data.color); @@ -1050,13 +1052,13 @@ class Guild { * @example * // Create a new emoji from a url * guild.createEmoji('https://i.imgur.com/w3duR07.png', 'rip') - * .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`)) - * .catch(console.error); + * .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`)) + * .catch(console.error); * @example * // Create a new emoji from a file on your computer * guild.createEmoji('./memes/banana.png', 'banana') - * .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`)) - * .catch(console.error); + * .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`)) + * .catch(console.error); */ createEmoji(attachment, name, { roles, reason } = {}) { if (typeof attachment === 'string' && attachment.startsWith('data:')) { @@ -1102,8 +1104,8 @@ class Guild { * @example * // Leave a guild * guild.leave() - * .then(g => console.log(`Left the guild ${g}`)) - * .catch(console.error); + * .then(g => console.log(`Left the guild ${g}`)) + * .catch(console.error); */ leave() { if (this.ownerID === this.client.user.id) return Promise.reject(new Error('GUILD_OWNED')); @@ -1117,8 +1119,8 @@ class Guild { * @example * // Delete a guild * guild.delete() - * .then(g => console.log(`Deleted the guild ${g}`)) - * .catch(console.error); + * .then(g => console.log(`Deleted the guild ${g}`)) + * .catch(console.error); */ delete() { return this.client.api.guilds(this.id).delete() diff --git a/src/structures/GuildAuditLogs.js b/src/structures/GuildAuditLogs.js index 64ec9a611..616b3abf2 100644 --- a/src/structures/GuildAuditLogs.js +++ b/src/structures/GuildAuditLogs.js @@ -184,7 +184,7 @@ class GuildAuditLogsEntry { this.executor = guild.client.users.get(data.user_id); /** - * An entry in the audit log representing a specific change + * An entry in the audit log representing a specific change. * @typedef {object} AuditLogChange * @property {string} key The property that was changed, e.g. `nick` for nickname changes * @property {*} [old] The old value of the change, e.g. for nicknames, the old nickname diff --git a/src/structures/GuildChannel.js b/src/structures/GuildChannel.js index eb3817c52..5e2c4628e 100644 --- a/src/structures/GuildChannel.js +++ b/src/structures/GuildChannel.js @@ -146,10 +146,10 @@ class GuildChannel extends Channel { * @example * // Overwrite permissions for a message author * message.channel.overwritePermissions(message.author, { - * SEND_MESSAGES: false + * SEND_MESSAGES: false * }) - * .then(() => console.log('Done!')) - * .catch(console.error); + * .then(() => console.log('Done!')) + * .catch(console.error); */ overwritePermissions(userOrRole, options, reason) { const payload = { @@ -228,8 +228,8 @@ class GuildChannel extends Channel { * @example * // Edit a channel * channel.edit({name: 'new-channel'}) - * .then(c => console.log(`Edited channel ${c}`)) - * .catch(console.error); + * .then(c => console.log(`Edited channel ${c}`)) + * .catch(console.error); */ edit(data, reason) { return this.client.api.channels(this.id).patch({ @@ -252,8 +252,8 @@ class GuildChannel extends Channel { * @example * // Set a new channel name * channel.setName('not_general') - * .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`)) - * .catch(console.error); + * .then(newChannel => console.log(`Channel's new name is ${newChannel.name}`)) + * .catch(console.error); */ setName(name, reason) { return this.edit({ name }, reason); @@ -267,8 +267,8 @@ class GuildChannel extends Channel { * @example * // Set a new channel position * channel.setPosition(2) - * .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`)) - * .catch(console.error); + * .then(newChannel => console.log(`Channel's new position is ${newChannel.position}`)) + * .catch(console.error); */ setPosition(position, relative) { return this.guild.setChannelPosition(this, position, relative).then(() => this); @@ -282,8 +282,8 @@ class GuildChannel extends Channel { * @example * // Set a new channel topic * channel.setTopic('needs more rate limiting') - * .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`)) - * .catch(console.error); + * .then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`)) + * .catch(console.error); */ setTopic(topic, reason) { return this.edit({ topic }, reason); @@ -366,8 +366,8 @@ class GuildChannel extends Channel { * @example * // Delete the channel * channel.delete('making room for new channels') - * .then() // Success - * .catch(console.error); // Log error + * .then() // Success + * .catch(console.error); // Log error */ delete(reason) { return this.client.api.channels(this.id).delete({ reason }).then(() => this); diff --git a/src/structures/GuildMember.js b/src/structures/GuildMember.js index b91930e51..e4920402f 100644 --- a/src/structures/GuildMember.js +++ b/src/structures/GuildMember.js @@ -503,7 +503,7 @@ class GuildMember { } /** - * Ban this guild member + * Ban this guild member. * @param {Object|number|string} [options] Ban options. If a number, the number of days to delete messages for, if a * string, the ban reason. Supplying an object allows you to do both. * @param {number} [options.days=0] Number of days of messages to delete diff --git a/src/structures/Message.js b/src/structures/Message.js index ccfe5e098..eb734e819 100644 --- a/src/structures/Message.js +++ b/src/structures/Message.js @@ -59,8 +59,8 @@ class Message { this.author = this.client.dataManager.newUser(data.author); /** - * Represents the author of the message as a guild member. Only available if the message comes from a guild - * where the author is still a member. + * Represents the author of the message as a guild member + * Only available if the message comes from a guild where the author is still a member * @type {?GuildMember} */ this.member = this.guild ? this.guild.member(this.author) || null : null; @@ -226,8 +226,8 @@ class Message { } /** - * The message contents with all mentions replaced by the equivalent text. If mentions cannot be resolved to a name, - * the relevant mention in the message content will not be converted + * The message contents with all mentions replaced by the equivalent text. + * If mentions cannot be resolved to a name, the relevant mention in the message content will not be converted. * @type {string} * @readonly */ @@ -271,8 +271,8 @@ class Message { * @example * // Create a reaction collector * const collector = message.createReactionCollector( - * (reaction, user) => reaction.emoji.name === '👌' && user.id === 'someID', - * { time: 15000 } + * (reaction, user) => reaction.emoji.name === '👌' && user.id === 'someID', + * { time: 15000 } * ); * collector.on('collect', r => console.log(`Collected ${r.emoji.name}`)); * collector.on('end', collected => console.log(`Collected ${collected.size} items`)); @@ -288,8 +288,8 @@ class Message { */ /** - * Similar to createCollector but in promise form. Resolves with a collection of reactions that pass the specified - * filter. + * Similar to createCollector but in promise form. + * Resolves with a collection of reactions that pass the specified filter. * @param {CollectorFilter} filter The filter function to use * @param {AwaitReactionsOptions} [options={}] Optional options to pass to the internal collector * @returns {Promise>} @@ -362,8 +362,8 @@ class Message { * @example * // Update the content of a message * message.edit('This is my new content!') - * .then(msg => console.log(`Updated the content of a message from ${msg.author}`)) - * .catch(console.error); + * .then(msg => console.log(`Updated the content of a message from ${msg.author}`)) + * .catch(console.error); */ edit(content, options) { if (!options && typeof content === 'object' && !(content instanceof Array)) { @@ -448,8 +448,8 @@ class Message { * @example * // Delete a message * message.delete() - * .then(msg => console.log(`Deleted message from ${msg.author}`)) - * .catch(console.error); + * .then(msg => console.log(`Deleted message from ${msg.author}`)) + * .catch(console.error); */ delete({ timeout = 0, reason } = {}) { if (timeout <= 0) { @@ -477,8 +477,8 @@ class Message { * @example * // Reply to a message * message.reply('Hey, I\'m a reply!') - * .then(msg => console.log(`Sent a reply to ${msg.author}`)) - * .catch(console.error); + * .then(msg => console.log(`Sent a reply to ${msg.author}`)) + * .catch(console.error); */ reply(content, options) { if (!options && typeof content === 'object' && !(content instanceof Array)) { diff --git a/src/structures/MessageCollector.js b/src/structures/MessageCollector.js index 8a049f2db..b78b66103 100644 --- a/src/structures/MessageCollector.js +++ b/src/structures/MessageCollector.js @@ -21,7 +21,8 @@ class MessageCollector extends Collector { super(channel.client, filter, options); /** - * @type {TextBasedChannel} channel The channel + * The channel + * @type {TextBasedChannel} */ this.channel = channel; @@ -49,7 +50,7 @@ class MessageCollector extends Collector { /** * Handle a message for possible collection. * @param {Message} message The message that could be collected - * @returns {?{key: Snowflake, value: Message}} Message data to collect + * @returns {?{key: Snowflake, value: Message}} * @private */ collect(message) { @@ -64,7 +65,7 @@ class MessageCollector extends Collector { /** * Handle a message for possible disposal. * @param {Message} message The message that could be disposed - * @returns {?string} The message ID. + * @returns {?string} */ dispose(message) { return message.channel.id === this.channel.id ? message.id : null; @@ -72,7 +73,7 @@ class MessageCollector extends Collector { /** * Check after un/collection to see if the collector is done. - * @returns {?string} Reason to end the collector, if any + * @returns {?string} * @private */ endReason() { diff --git a/src/structures/MessageEmbed.js b/src/structures/MessageEmbed.js index 5f93548b7..6febf9491 100644 --- a/src/structures/MessageEmbed.js +++ b/src/structures/MessageEmbed.js @@ -57,7 +57,7 @@ class MessageEmbed { this.fields = data.fields || []; /** - * The thumbnail of this embed, if there is one + * The thumbnail of this embed (if there is one) * @type {?Object} * @property {string} url URL for this thumbnail * @property {string} proxyURL ProxyURL for this thumbnail @@ -87,7 +87,7 @@ class MessageEmbed { } : null; /** - * The video of this embed, if there is one + * The video of this embed (if there is one) * @type {?Object} * @property {string} url URL of this video * @property {number} height Height of this video @@ -96,7 +96,7 @@ class MessageEmbed { this.video = data.video; /** - * The author of this embed, if there is one + * The author of this embed (if there is one) * @type {?Object} * @property {string} name The name of this author * @property {string} url URL of this author @@ -111,7 +111,7 @@ class MessageEmbed { } : null; /** - * The provider of this embed, if there is one + * The provider of this embed (if there is one) * @type {?Object} * @property {string} name The name of this provider * @property {string} url URL of this provider @@ -132,14 +132,12 @@ class MessageEmbed { } : null; /** - * The files of this embed - * @type {?Object} - * @property {Array} files Files to attach - */ + * The files of this embed + * @type {?Object} + * @property {Array} files Files to attach + */ if (data.files) { - for (let file of data.files) { - if (file instanceof Attachment) file = file.file; - } + for (let file of data.files) if (file instanceof Attachment) file = file.file; } else { data.files = null; } } @@ -166,7 +164,7 @@ class MessageEmbed { * @param {StringResolvable} name The name of the field * @param {StringResolvable} value The value of the field * @param {boolean} [inline=false] Set the field to display inline - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ addField(name, value, inline = false) { if (this.fields.length >= 25) throw new RangeError('EMBED_FIELD_COUNT'); @@ -181,7 +179,7 @@ class MessageEmbed { /** * Convenience function for `.addField('\u200B', '\u200B', inline)`. * @param {boolean} [inline=false] Set the field to display inline - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ addBlankField(inline = false) { return this.addField('\u200B', '\u200B', inline); @@ -191,7 +189,7 @@ class MessageEmbed { * Sets the file to upload alongside the embed. This file can be accessed via `attachment://fileName.extension` when * setting an embed image or author/footer icons. Only one file may be attached. * @param {Array} files Files to attach - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ attachFiles(files) { if (this.files) this.files = this.files.concat(files); @@ -207,7 +205,7 @@ class MessageEmbed { * @param {StringResolvable} name The name of the author * @param {string} [iconURL] The icon URL of the author * @param {string} [url] The URL of the author - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setAuthor(name, iconURL, url) { this.author = { name: Util.resolveString(name), iconURL, url }; @@ -217,7 +215,7 @@ class MessageEmbed { /** * Sets the color of this embed. * @param {ColorResolvable} color The color of the embed - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setColor(color) { this.color = Util.resolveColor(color); @@ -227,7 +225,7 @@ class MessageEmbed { /** * Sets the description of this embed. * @param {StringResolvable} description The description - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setDescription(description) { description = Util.resolveString(description); @@ -240,7 +238,7 @@ class MessageEmbed { * Sets the footer of this embed. * @param {StringResolvable} text The text of the footer * @param {string} [iconURL] The icon URL of the footer - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setFooter(text, iconURL) { text = Util.resolveString(text); @@ -252,7 +250,7 @@ class MessageEmbed { /** * Set the image of this embed. * @param {string} url The URL of the image - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setImage(url) { this.image = { url }; @@ -262,7 +260,7 @@ class MessageEmbed { /** * Set the thumbnail of this embed. * @param {string} url The URL of the thumbnail - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setThumbnail(url) { this.thumbnail = { url }; @@ -272,7 +270,7 @@ class MessageEmbed { /** * Sets the timestamp of this embed. * @param {Date} [timestamp=current date] The timestamp - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setTimestamp(timestamp = new Date()) { this.timestamp = timestamp.getTime(); @@ -282,7 +280,7 @@ class MessageEmbed { /** * Sets the title of this embed. * @param {StringResolvable} title The title - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setTitle(title) { title = Util.resolveString(title); @@ -294,7 +292,7 @@ class MessageEmbed { /** * Sets the URL of this embed. * @param {string} url The URL - * @returns {MessageEmbed} This embed + * @returns {MessageEmbed} */ setURL(url) { this.url = url; diff --git a/src/structures/MessageMentions.js b/src/structures/MessageMentions.js index b54787706..4d9c20f3e 100644 --- a/src/structures/MessageMentions.js +++ b/src/structures/MessageMentions.js @@ -118,8 +118,8 @@ class MessageMentions { } /** - * Check if a user is mentioned. Takes into account user mentions, role - * mentions, and @everyone/@here mentions. + * Check if a user is mentioned. + * Takes into account user mentions, role mentions, and @everyone/@here mentions. * @param {UserResolvable|GuildMember|Role|GuildChannel} data User/GuildMember/Role/Channel to check * @param {boolean} [strict=true] If role mentions and everyone/here mentions should be included * @returns {boolean} diff --git a/src/structures/Presence.js b/src/structures/Presence.js index 0284260fd..a2dd00a73 100644 --- a/src/structures/Presence.js +++ b/src/structures/Presence.js @@ -67,7 +67,7 @@ class Game { } /** - * Whether this game is equal to another game + * Whether this game is equal to another game. * @param {Game} game The game to compare with * @returns {boolean} */ diff --git a/src/structures/ReactionCollector.js b/src/structures/ReactionCollector.js index ba4eef4de..2e3f8be92 100644 --- a/src/structures/ReactionCollector.js +++ b/src/structures/ReactionCollector.js @@ -65,7 +65,7 @@ class ReactionCollector extends Collector { /** * Handle an incoming reaction for possible collection. * @param {MessageReaction} reaction The reaction to possibly collect - * @returns {?{key: Snowflake, value: MessageReaction}} Reaction data to collect + * @returns {?{key: Snowflake, value: MessageReaction}} * @private */ collect(reaction) { @@ -79,7 +79,7 @@ class ReactionCollector extends Collector { /** * Handle a reaction deletion for possible disposal. * @param {MessageReaction} reaction The reaction to possibly dispose - * @returns {?Snowflake|string} The reaction key + * @returns {?Snowflake|string} */ dispose(reaction) { return reaction.message.id === this.message.id && !reaction.count ? ReactionCollector.key(reaction) : null; @@ -105,7 +105,7 @@ class ReactionCollector extends Collector { /** * Get the collector key for a reaction. * @param {MessageReaction} reaction The message reaction to get the key for - * @returns {Snowflake|string} The emoji ID (if custom) or the emoji name (if native; will be unicode) + * @returns {Snowflake|string} */ static key(reaction) { return reaction.emoji.id || reaction.emoji.name; diff --git a/src/structures/Role.js b/src/structures/Role.js index 797bb7121..2db019931 100644 --- a/src/structures/Role.js +++ b/src/structures/Role.js @@ -135,7 +135,7 @@ class Role { } /** - * Get an object mapping permission names to whether or not the role enables that permission + * Get an object mapping permission names to whether or not the role enables that permission. * @returns {Object} * @example * // Print the serialized role permissions @@ -198,8 +198,8 @@ class Role { * @example * // Edit a role * role.edit({name: 'new role'}) - * .then(r => console.log(`Edited role ${r}`)) - * .catch(console.error); + * .then(r => console.log(`Edited role ${r}`)) + * .catch(console.error); */ edit(data, reason) { if (data.permissions) data.permissions = Permissions.resolve(data.permissions); @@ -226,8 +226,8 @@ class Role { * @example * // Set the name of the role * role.setName('new role') - * .then(r => console.log(`Edited name of role ${r}`)) - * .catch(console.error); + * .then(r => console.log(`Edited name of role ${r}`)) + * .catch(console.error); */ setName(name, reason) { return this.edit({ name }, reason); @@ -241,8 +241,8 @@ class Role { * @example * // Set the color of a role * role.setColor('#FF0000') - * .then(r => console.log(`Set color of role ${r}`)) - * .catch(console.error); + * .then(r => console.log(`Set color of role ${r}`)) + * .catch(console.error); */ setColor(color, reason) { return this.edit({ color }, reason); @@ -256,8 +256,8 @@ class Role { * @example * // Set the hoist of the role * role.setHoist(true) - * .then(r => console.log(`Role hoisted: ${r.hoist}`)) - * .catch(console.error); + * .then(r => console.log(`Role hoisted: ${r.hoist}`)) + * .catch(console.error); */ setHoist(hoist, reason) { return this.edit({ hoist }, reason); @@ -271,8 +271,8 @@ class Role { * @example * // Set the position of the role * role.setPosition(1) - * .then(r => console.log(`Role position: ${r.position}`)) - * .catch(console.error); + * .then(r => console.log(`Role position: ${r.position}`)) + * .catch(console.error); */ setPosition(position, relative) { return this.guild.setRolePosition(this, position, relative).then(() => this); @@ -286,8 +286,8 @@ class Role { * @example * // Set the permissions of the role * role.setPermissions(['KICK_MEMBERS', 'BAN_MEMBERS']) - * .then(r => console.log(`Role updated ${r}`)) - * .catch(console.error); + * .then(r => console.log(`Role updated ${r}`)) + * .catch(console.error); */ setPermissions(permissions, reason) { return this.edit({ permissions }, reason); @@ -301,8 +301,8 @@ class Role { * @example * // Make the role mentionable * role.setMentionable(true) - * .then(r => console.log(`Role updated ${r}`)) - * .catch(console.error); + * .then(r => console.log(`Role updated ${r}`)) + * .catch(console.error); */ setMentionable(mentionable, reason) { return this.edit({ mentionable }, reason); @@ -315,8 +315,8 @@ class Role { * @example * // Delete a role * role.delete() - * .then(r => console.log(`Deleted role ${r}`)) - * .catch(console.error); + * .then(r => console.log(`Deleted role ${r}`)) + * .catch(console.error); */ delete(reason) { return this.client.api.guilds[this.guild.id].roles[this.id].delete({ reason }) diff --git a/src/structures/TextChannel.js b/src/structures/TextChannel.js index 7a817d089..d0dc1fd3a 100644 --- a/src/structures/TextChannel.js +++ b/src/structures/TextChannel.js @@ -54,9 +54,9 @@ class TextChannel extends GuildChannel { * @param {string} [reason] Reason for creating this webhook * @returns {Promise} webhook The created webhook * @example - * channel.createWebhook('Snek', 'http://snek.s3.amazonaws.com/topSnek.png') - * .then(webhook => console.log(`Created webhook ${webhook}`)) - * .catch(console.error) + * channel.createWebhook('Snek', 'https://i.imgur.com/mI8XcpG.jpg') + * .then(webhook => console.log(`Created webhook ${webhook}`)) + * .catch(console.error) */ createWebhook(name, avatar, reason) { if (typeof avatar === 'string' && avatar.startsWith('data:')) { diff --git a/src/structures/User.js b/src/structures/User.js index 0a32799c5..13ed16a21 100644 --- a/src/structures/User.js +++ b/src/structures/User.js @@ -105,7 +105,7 @@ class User { } /** - * A link to the user's avatar + * A link to the user's avatar. * @param {Object} [options={}] Options for the avatar url * @param {string} [options.format='webp'] One of `webp`, `png`, `jpg`, `gif`. If no format is provided, * it will be `gif` for animated avatars or otherwise `webp` @@ -127,7 +127,8 @@ class User { } /** - * A link to the user's avatar if they have one. Otherwise a link to their default avatar will be returned + * A link to the user's avatar if they have one. + * Otherwise a link to their default avatar will be returned. * @param {Object} [options={}] Options for the avatar url * @param {string} [options.format='webp'] One of `webp`, `png`, `jpg`, `gif`. If no format is provided, * it will be `gif` for animated avatars or otherwise `webp` diff --git a/src/structures/UserProfile.js b/src/structures/UserProfile.js index f2c9cea03..76ebb8f47 100644 --- a/src/structures/UserProfile.js +++ b/src/structures/UserProfile.js @@ -14,7 +14,7 @@ class UserProfile { this.user = user; /** - * The client that created the instance of the UserProfile. + * The client that created the instance of the UserProfile * @name UserProfile#client * @type {Client} * @readonly diff --git a/src/structures/VoiceChannel.js b/src/structures/VoiceChannel.js index 2a67c9379..5234b600e 100644 --- a/src/structures/VoiceChannel.js +++ b/src/structures/VoiceChannel.js @@ -82,8 +82,8 @@ class VoiceChannel extends GuildChannel { * @example * // Set the bitrate of a voice channel * voiceChannel.setBitrate(48) - * .then(vc => console.log(`Set bitrate to ${vc.bitrate}kbps for ${vc.name}`)) - * .catch(console.error); + * .then(vc => console.log(`Set bitrate to ${vc.bitrate}kbps for ${vc.name}`)) + * .catch(console.error); */ setBitrate(bitrate, reason) { bitrate *= 1000; @@ -98,8 +98,8 @@ class VoiceChannel extends GuildChannel { * @example * // Set the user limit of a voice channel * voiceChannel.setUserLimit(42) - * .then(vc => console.log(`Set user limit to ${vc.userLimit} for ${vc.name}`)) - * .catch(console.error); + * .then(vc => console.log(`Set user limit to ${vc.userLimit} for ${vc.name}`)) + * .catch(console.error); */ setUserLimit(userLimit, reason) { return this.edit({ userLimit }, reason); @@ -111,8 +111,8 @@ class VoiceChannel extends GuildChannel { * @example * // Join a voice channel * voiceChannel.join() - * .then(connection => console.log('Connected!')) - * .catch(console.error); + * .then(connection => console.log('Connected!')) + * .catch(console.error); */ join() { if (this.client.browser) return Promise.reject(new Error('VOICE_NO_BROWSER')); diff --git a/src/structures/Webhook.js b/src/structures/Webhook.js index a42c3396b..281e98868 100644 --- a/src/structures/Webhook.js +++ b/src/structures/Webhook.js @@ -99,8 +99,8 @@ class Webhook { * @example * // Send a message * webhook.send('hello!') - * .then(message => console.log(`Sent message: ${message.content}`)) - * .catch(console.error); + * .then(message => console.log(`Sent message: ${message.content}`)) + * .catch(console.error); */ send(content, options) { // eslint-disable-line complexity if (!options && typeof content === 'object' && !(content instanceof Array)) { diff --git a/src/structures/interfaces/TextBasedChannel.js b/src/structures/interfaces/TextBasedChannel.js index a50609d2c..df17aac6c 100644 --- a/src/structures/interfaces/TextBasedChannel.js +++ b/src/structures/interfaces/TextBasedChannel.js @@ -71,8 +71,8 @@ class TextBasedChannel { * @example * // Send a message * channel.send('hello!') - * .then(message => console.log(`Sent message: ${message.content}`)) - * .catch(console.error); + * .then(message => console.log(`Sent message: ${message.content}`)) + * .catch(console.error); */ send(content, options) { // eslint-disable-line complexity if (!options && typeof content === 'object' && !(content instanceof Array)) { @@ -182,8 +182,8 @@ class TextBasedChannel { * @example * // Get messages * channel.fetchMessages({limit: 10}) - * .then(messages => console.log(`Received ${messages.size} messages`)) - * .catch(console.error); + * .then(messages => console.log(`Received ${messages.size} messages`)) + * .catch(console.error); */ fetchMessages(options = {}) { const Message = require('../Message'); @@ -308,8 +308,8 @@ class TextBasedChannel { * @example * // Create a message collector * const collector = channel.createMessageCollector( - * m => m.content.includes('discord'), - * { time: 15000 } + * m => m.content.includes('discord'), + * { time: 15000 } * ); * collector.on('collect', m => console.log(`Collected ${m.content}`)); * collector.on('end', collected => console.log(`Collected ${collected.size} items`)); @@ -335,8 +335,8 @@ class TextBasedChannel { * const filter = m => m.content.startsWith('!vote'); * // Errors: ['time'] treats ending because of the time limit as an error * channel.awaitMessages(filter, { max: 4, time: 60000, errors: ['time'] }) - * .then(collected => console.log(collected.size)) - * .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`)); + * .then(collected => console.log(collected.size)) + * .catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`)); */ awaitMessages(filter, options = {}) { return new Promise((resolve, reject) => { diff --git a/src/util/Constants.js b/src/util/Constants.js index 5651614c7..3e3ad6755 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -129,12 +129,12 @@ exports.Endpoints = { /** * The current status of the client. Here are the available statuses: - * - READY - * - CONNECTING - * - RECONNECTING - * - IDLE - * - NEARLY - * - DISCONNECTED + * * READY + * * CONNECTING + * * RECONNECTING + * * IDLE + * * NEARLY + * * DISCONNECTED * @typedef {number} Status */ exports.Status = { @@ -148,11 +148,11 @@ exports.Status = { /** * The current status of a voice connection. Here are the available statuses: - * - CONNECTED - * - CONNECTING - * - AUTHENTICATING - * - RECONNECTING - * - DISCONNECTED + * * CONNECTED + * * CONNECTING + * * AUTHENTICATING + * * RECONNECTING + * * DISCONNECTED * @typedef {number} VoiceStatus */ exports.VoiceStatus = { @@ -243,41 +243,41 @@ exports.Events = { /** * The type of a websocket message event, e.g. `MESSAGE_CREATE`. Here are the available events: - * - READY - * - RESUMED - * - GUILD_SYNC - * - GUILD_CREATE - * - GUILD_DELETE - * - GUILD_UPDATE - * - GUILD_MEMBER_ADD - * - GUILD_MEMBER_REMOVE - * - GUILD_MEMBER_UPDATE - * - GUILD_MEMBERS_CHUNK - * - GUILD_ROLE_CREATE - * - GUILD_ROLE_DELETE - * - GUILD_ROLE_UPDATE - * - GUILD_BAN_ADD - * - GUILD_BAN_REMOVE - * - CHANNEL_CREATE - * - CHANNEL_DELETE - * - CHANNEL_UPDATE - * - CHANNEL_PINS_UPDATE - * - MESSAGE_CREATE - * - MESSAGE_DELETE - * - MESSAGE_UPDATE - * - MESSAGE_DELETE_BULK - * - MESSAGE_REACTION_ADD - * - MESSAGE_REACTION_REMOVE - * - MESSAGE_REACTION_REMOVE_ALL - * - USER_UPDATE - * - USER_NOTE_UPDATE - * - USER_SETTINGS_UPDATE - * - PRESENCE_UPDATE - * - VOICE_STATE_UPDATE - * - TYPING_START - * - VOICE_SERVER_UPDATE - * - RELATIONSHIP_ADD - * - RELATIONSHIP_REMOVE + * * READY + * * RESUMED + * * GUILD_SYNC + * * GUILD_CREATE + * * GUILD_DELETE + * * GUILD_UPDATE + * * GUILD_MEMBER_ADD + * * GUILD_MEMBER_REMOVE + * * GUILD_MEMBER_UPDATE + * * GUILD_MEMBERS_CHUNK + * * GUILD_ROLE_CREATE + * * GUILD_ROLE_DELETE + * * GUILD_ROLE_UPDATE + * * GUILD_BAN_ADD + * * GUILD_BAN_REMOVE + * * CHANNEL_CREATE + * * CHANNEL_DELETE + * * CHANNEL_UPDATE + * * CHANNEL_PINS_UPDATE + * * MESSAGE_CREATE + * * MESSAGE_DELETE + * * MESSAGE_UPDATE + * * MESSAGE_DELETE_BULK + * * MESSAGE_REACTION_ADD + * * MESSAGE_REACTION_REMOVE + * * MESSAGE_REACTION_REMOVE_ALL + * * USER_UPDATE + * * USER_NOTE_UPDATE + * * USER_SETTINGS_UPDATE + * * PRESENCE_UPDATE + * * VOICE_STATE_UPDATE + * * TYPING_START + * * VOICE_SERVER_UPDATE + * * RELATIONSHIP_ADD + * * RELATIONSHIP_REMOVE * @typedef {string} WSEventType */ exports.WSEvents = { @@ -322,14 +322,14 @@ exports.WSEvents = { /** * The type of a message, e.g. `DEFAULT`. Here are the available types: - * - DEFAULT - * - RECIPIENT_ADD - * - RECIPIENT_REMOVE - * - CALL - * - CHANNEL_NAME_CHANGE - * - CHANNEL_ICON_CHANGE - * - PINS_ADD - * - GUILD_MEMBER_JOIN + * * DEFAULT + * * RECIPIENT_ADD + * * RECIPIENT_REMOVE + * * CALL + * * CHANNEL_NAME_CHANGE + * * CHANNEL_ICON_CHANGE + * * PINS_ADD + * * GUILD_MEMBER_JOIN * @typedef {string} MessageType */ exports.MessageTypes = [ @@ -345,10 +345,10 @@ exports.MessageTypes = [ /** * The type of a game of a users presence, e.g. `PLAYING`. Here are the available types: - * - PLAYING - * - STREAMING - * - LISTENING - * - WATCHING + * * PLAYING + * * STREAMING + * * LISTENING + * * WATCHING * @typedef {string} GameType */ exports.GameTypes = [ @@ -560,9 +560,9 @@ exports.UserChannelOverrideMap = { /** * All flags users can have: - * - STAFF - * - PARTNER - * - HYPESQUAD + * * STAFF + * * PARTNER + * * HYPESQUAD * @typedef {string} UserFlags */ exports.UserFlags = { @@ -606,49 +606,49 @@ exports.Colors = { /** * An error encountered while performing an API request. Here are the potential errors: - * - UNKNOWN_ACCOUNT - * - UNKNOWN_APPLICATION - * - UNKNOWN_CHANNEL - * - UNKNOWN_GUILD - * - UNKNOWN_INTEGRATION - * - UNKNOWN_INVITE - * - UNKNOWN_MEMBER - * - UNKNOWN_MESSAGE - * - UNKNOWN_OVERWRITE - * - UNKNOWN_PROVIDER - * - UNKNOWN_ROLE - * - UNKNOWN_TOKEN - * - UNKNOWN_USER - * - UNKNOWN_EMOJI - * - BOT_PROHIBITED_ENDPOINT - * - BOT_ONLY_ENDPOINT - * - MAXIMUM_GUILDS - * - MAXIMUM_FRIENDS - * - MAXIMUM_PINS - * - MAXIMUM_ROLES - * - MAXIMUM_REACTIONS - * - UNAUTHORIZED - * - MISSING_ACCESS - * - INVALID_ACCOUNT_TYPE - * - CANNOT_EXECUTE_ON_DM - * - EMBED_DISABLED - * - CANNOT_EDIT_MESSAGE_BY_OTHER - * - CANNOT_SEND_EMPTY_MESSAGE - * - CANNOT_MESSAGE_USER - * - CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL - * - CHANNEL_VERIFICATION_LEVEL_TOO_HIGH - * - OAUTH2_APPLICATION_BOT_ABSENT - * - MAXIMUM_OAUTH2_APPLICATIONS - * - INVALID_OAUTH_STATE - * - MISSING_PERMISSIONS - * - INVALID_AUTHENTICATION_TOKEN - * - NOTE_TOO_LONG - * - INVALID_BULK_DELETE_QUANTITY - * - CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL - * - CANNOT_EXECUTE_ON_SYSTEM_MESSAGE - * - BULK_DELETE_MESSAGE_TOO_OLD - * - INVITE_ACCEPTED_TO_GUILD_NOT_CONTANING_BOT - * - REACTION_BLOCKED + * * UNKNOWN_ACCOUNT + * * UNKNOWN_APPLICATION + * * UNKNOWN_CHANNEL + * * UNKNOWN_GUILD + * * UNKNOWN_INTEGRATION + * * UNKNOWN_INVITE + * * UNKNOWN_MEMBER + * * UNKNOWN_MESSAGE + * * UNKNOWN_OVERWRITE + * * UNKNOWN_PROVIDER + * * UNKNOWN_ROLE + * * UNKNOWN_TOKEN + * * UNKNOWN_USER + * * UNKNOWN_EMOJI + * * BOT_PROHIBITED_ENDPOINT + * * BOT_ONLY_ENDPOINT + * * MAXIMUM_GUILDS + * * MAXIMUM_FRIENDS + * * MAXIMUM_PINS + * * MAXIMUM_ROLES + * * MAXIMUM_REACTIONS + * * UNAUTHORIZED + * * MISSING_ACCESS + * * INVALID_ACCOUNT_TYPE + * * CANNOT_EXECUTE_ON_DM + * * EMBED_DISABLED + * * CANNOT_EDIT_MESSAGE_BY_OTHER + * * CANNOT_SEND_EMPTY_MESSAGE + * * CANNOT_MESSAGE_USER + * * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL + * * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH + * * OAUTH2_APPLICATION_BOT_ABSENT + * * MAXIMUM_OAUTH2_APPLICATIONS + * * INVALID_OAUTH_STATE + * * MISSING_PERMISSIONS + * * INVALID_AUTHENTICATION_TOKEN + * * NOTE_TOO_LONG + * * INVALID_BULK_DELETE_QUANTITY + * * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL + * * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE + * * BULK_DELETE_MESSAGE_TOO_OLD + * * INVITE_ACCEPTED_TO_GUILD_NOT_CONTANING_BOT + * * REACTION_BLOCKED * @typedef {string} APIError */ exports.APIErrors = { diff --git a/src/util/Permissions.js b/src/util/Permissions.js index 679e3c6e1..d4678ff1c 100644 --- a/src/util/Permissions.js +++ b/src/util/Permissions.js @@ -69,7 +69,7 @@ class Permissions { } /** - * Gets an object mapping permission name (like `READ_MESSAGES`) to a {@link boolean} indicating whether the + * Gets an object mapping permission name (like `VIEW_CHANNEL`) to a {@link boolean} indicating whether the * permission is available. * @param {boolean} [checkAdmin=true] Whether to allow the administrator permission to override * @returns {Object} @@ -82,8 +82,8 @@ class Permissions { /** * Data that can be resolved to give a permission number. This can be: - * - A string (see {@link Permissions.FLAGS}) - * - A permission number + * * A string (see {@link Permissions.FLAGS}) + * * A permission number * @typedef {string|number} PermissionResolvable */ @@ -102,34 +102,34 @@ class Permissions { /** * Numeric permission flags. All available properties: - * - `ADMINISTRATOR` (implicitly has *all* permissions, and bypasses all channel overwrites) - * - `CREATE_INSTANT_INVITE` (create invitations to the guild) - * - `KICK_MEMBERS` - * - `BAN_MEMBERS` - * - `MANAGE_CHANNELS` (edit and reorder channels) - * - `MANAGE_GUILD` (edit the guild information, region, etc.) - * - `ADD_REACTIONS` (add new reactions to messages) - * - `VIEW_AUDIT_LOG` - * - `VIEW_CHANNELS` - * - `SEND_MESSAGES` - * - `SEND_TTS_MESSAGES` - * - `MANAGE_MESSAGES` (delete messages and reactions) - * - `EMBED_LINKS` (links posted will have a preview embedded) - * - `ATTACH_FILES` - * - `READ_MESSAGE_HISTORY` (view messages that were posted prior to opening Discord) - * - `MENTION_EVERYONE` - * - `USE_EXTERNAL_EMOJIS` (use emojis from different guilds) - * - `CONNECT` (connect to a voice channel) - * - `SPEAK` (speak in a voice channel) - * - `MUTE_MEMBERS` (mute members across all voice channels) - * - `DEAFEN_MEMBERS` (deafen members across all voice channels) - * - `MOVE_MEMBERS` (move members between voice channels) - * - `USE_VAD` (use voice activity detection) - * - `CHANGE_NICKNAME` - * - `MANAGE_NICKNAMES` (change other members' nicknames) - * - `MANAGE_ROLES` - * - `MANAGE_WEBHOOKS` - * - `MANAGE_EMOJIS` + * * `ADMINISTRATOR` (implicitly has *all* permissions, and bypasses all channel overwrites) + * * `CREATE_INSTANT_INVITE` (create invitations to the guild) + * * `KICK_MEMBERS` + * * `BAN_MEMBERS` + * * `MANAGE_CHANNELS` (edit and reorder channels) + * * `MANAGE_GUILD` (edit the guild information, region, etc.) + * * `ADD_REACTIONS` (add new reactions to messages) + * * `VIEW_AUDIT_LOG` + * * `VIEW_CHANNEL` + * * `SEND_MESSAGES` + * * `SEND_TTS_MESSAGES` + * * `MANAGE_MESSAGES` (delete messages and reactions) + * * `EMBED_LINKS` (links posted will have a preview embedded) + * * `ATTACH_FILES` + * * `READ_MESSAGE_HISTORY` (view messages that were posted prior to opening Discord) + * * `MENTION_EVERYONE` + * * `USE_EXTERNAL_EMOJIS` (use emojis from different guilds) + * * `CONNECT` (connect to a voice channel) + * * `SPEAK` (speak in a voice channel) + * * `MUTE_MEMBERS` (mute members across all voice channels) + * * `DEAFEN_MEMBERS` (deafen members across all voice channels) + * * `MOVE_MEMBERS` (move members between voice channels) + * * `USE_VAD` (use voice activity detection) + * * `CHANGE_NICKNAME` + * * `MANAGE_NICKNAMES` (change other members' nicknames) + * * `MANAGE_ROLES` + * * `MANAGE_WEBHOOKS` + * * `MANAGE_EMOJIS` * @type {Object} * @see {@link https://discordapp.com/developers/docs/topics/permissions} */ diff --git a/src/util/Util.js b/src/util/Util.js index 2023050d0..1a710eea8 100644 --- a/src/util/Util.js +++ b/src/util/Util.js @@ -70,9 +70,9 @@ class Util { /** * Parses emoji info out of a string. The string must be one of: - * - A UTF-8 emoji (no ID) - * - A URL-encoded UTF-8 emoji (no ID) - * - A Discord custom emoji (`<:name:id>`) + * * A UTF-8 emoji (no ID) + * * A URL-encoded UTF-8 emoji (no ID) + * * A Discord custom emoji (`<:name:id>`) * @param {string} text Emoji string to parse * @returns {Object} Object with `name` and `id` properties * @private