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];
}
const webembeds = this.options.embeds.filter(
(e) => !(e instanceof MessageEmbed),
);
this.options.embeds = this.options.embeds.filter(e => e instanceof MessageEmbed);
let webembeds = this.options.embeds.filter(e => (e instanceof WebEmbed) && Boolean(e.hidden) === true);
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));
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) {
// add hidden embed link
content += `\n${WebEmbed.hiddenEmbed} \n`;
if (webembeds.length > 1) {
console.warn('Multiple webembeds are not supported, only the first one will be sent');
}
const embed = webembeds[0];
hidden = true;
while (webembeds.length) {
const embed = webembeds.shift();
const data = await embed.toMessage();
content += `\n${data}`;
content +=`\n${data}`
await new Promise(resolve => setTimeout(resolve, 1000))
}
}
// Check content
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');
}
}