Merge pull request #16 from lazuee/patch-1

Update MessagePayload.js
This commit is contained in:
March 7th 2022-04-01 22:25:19 +07:00 committed by GitHub
commit fbce711a95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -194,26 +194,46 @@ class MessagePayload {
this.options.embeds = [this.options.embeds]; this.options.embeds = [this.options.embeds];
} }
const webembeds = this.options.embeds.filter( let webembeds = this.options.embeds.filter(e => (e instanceof WebEmbed) && Boolean(e.hidden) === true);
(e) => !(e instanceof MessageEmbed), let webembeds_ = this.options.embeds.filter(e => (e instanceof WebEmbed) && Boolean(e.hidden) === false);
); this.options.embeds = this.options.embeds.filter(e => !(e instanceof WebEmbed));
this.options.embeds = this.options.embeds.filter(e => e instanceof MessageEmbed); let hidden = false;
if (webembeds.length > 0) {
content += "\n";
while (webembeds_.length) {
const embed = webembeds_.shift();
const data = await embed.toMessage();
content +=`\n${data}`
await new Promise(resolve => setTimeout(resolve, 1000))
}
}
if (webembeds.length > 0) { if (webembeds.length > 0) {
// add hidden embed link // add hidden embed link
content += `\n${WebEmbed.hiddenEmbed} \n`; content += `\n${WebEmbed.hiddenEmbed} \n`;
if (webembeds.length > 1) { hidden = true;
console.warn('Multiple webembeds are not supported, only the first one will be sent');
} while (webembeds.length) {
const embed = webembeds[0]; const embed = webembeds.shift();
const data = await embed.toMessage(); const data = await embed.toMessage();
content += `\n${data}`; content +=`\n${data}`
await new Promise(resolve => setTimeout(resolve, 1000))
} }
}
// Check content // Check content
if (content.length > 2000) { if (content.length > 2000) {
console.warn(`[WARN] Content is longer than 2000 characters.`); console.warn(`[WARN] Content length is ${content.length} characters. This exceeds Discord's 2000 character limit.`);
} }
if (content.length > 4000) { // Max length if user has nitro boost if (hidden && content.length > 2000) { // Max length if user has nitro boost
content = content.replace(`\n${WebEmbed.hiddenEmbed} \n`, ""); // Remove hidden character
console.warn(`[WARN] Removing hidden character to make content fit. Your content length now is ${content.length} characters long.`);
}
if (content.length > 4000) { // Recheck the content length
throw new RangeError('MESSAGE_EMBED_LINK_LENGTH'); throw new RangeError('MESSAGE_EMBED_LINK_LENGTH');
} }
} }