diff --git a/src/structures/RichEmbed.js b/src/structures/RichEmbed.js index 8f4c2f647..b1cb0b7f0 100644 --- a/src/structures/RichEmbed.js +++ b/src/structures/RichEmbed.js @@ -235,6 +235,21 @@ class RichEmbed { return this; } + /** + * The accumulated length for the embed title, description, fields, author and footer text + * @type {number} + * @readonly + */ + get length() { + return ( + (this.title ? this.title.length : 0) + + (this.description ? this.description.length : 0) + + (this.fields.length >= 1 ? this.fields.reduce((prev, curr) => + prev + curr.name.length + curr.value.length, 0) : 0) + + (this.footer ? this.footer.text.length : 0) + + (this.author ? this.author.name.length : 0)); + } + /** * Transforms the embed object to be processed. * @returns {Object} The raw data of this embed diff --git a/typings/index.d.ts b/typings/index.d.ts index d1adde4b4..c4676847f 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -1015,6 +1015,7 @@ declare module 'discord.js' { public files?: Array; public footer?: { text?: string; icon_url?: string; }; public image?: { url: string; proxy_url?: string; height?: number; width?: number; }; + public readonly length: number; public thumbnail?: { url: string; height?: number; width?: number; }; public timestamp?: Date; public title?: string;