From db5259cdf15bea3b77d6178e567783a7f828b1d1 Mon Sep 17 00:00:00 2001 From: Zack Campbell Date: Tue, 21 Feb 2017 13:29:37 -0600 Subject: [PATCH] Add RichEmbed#attachFile (#1202) * Add RichEmbed#attachFile Mostly for attaching local images that can be accessed within the embed image/author icon/footer icon via `attachment//filename.png` and the like. * Update docstring to reflect valid param types * Update TextBasedChannel.js * Update RichEmbed.js * Update RichEmbed.js --- src/structures/RichEmbed.js | 18 ++++++++++++++++++ src/structures/interface/TextBasedChannel.js | 2 ++ 2 files changed, 20 insertions(+) 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) {