diff --git a/src/structures/RichEmbed.js b/src/structures/RichEmbed.js index bc2e95cb9..04a27ca4a 100644 --- a/src/structures/RichEmbed.js +++ b/src/structures/RichEmbed.js @@ -65,6 +65,12 @@ class RichEmbed { * @type {Object} */ this.footer = data.footer; + + /** + * File to upload alongside this Embed + * @type {string} + */ + this.file = data.file; } /** @@ -191,6 +197,18 @@ class RichEmbed { this.footer = { text, icon_url: icon }; return this; } + + /** + * 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 {FileOptions|string} file Local path or URL to the file to attach, or valid FileOptions for a file to attach + * @returns {RichEmbed} This embed + */ + attachFile(file) { + if (this.file) throw new RangeError('You may not upload more than one file at once.'); + this.file = file; + return this; + } } module.exports = RichEmbed; diff --git a/src/structures/interface/TextBasedChannel.js b/src/structures/interface/TextBasedChannel.js index e8d6689f9..6d66e81c8 100644 --- a/src/structures/interface/TextBasedChannel.js +++ b/src/structures/interface/TextBasedChannel.js @@ -78,6 +78,8 @@ class TextBasedChannel { options = {}; } + if (options.embed && options.embed.file) options.file = options.embed.file; + if (options.file) { if (typeof options.file === 'string') options.file = { attachment: options.file }; if (!options.file.name) {