fix(APIMessage): only pass allowedMentions if content is defined (#4269)

This commit is contained in:
Sugden
2020-05-21 12:17:00 +01:00
committed by GitHub
parent 153a030c1f
commit 15b53509da

View File

@@ -88,14 +88,16 @@ class APIMessage {
content = Util.resolveString(this.options.content); content = Util.resolveString(this.options.content);
} }
if (typeof content !== 'string') return content;
const disableMentions = const disableMentions =
typeof this.options.disableMentions === 'undefined' typeof this.options.disableMentions === 'undefined'
? this.target.client.options.disableMentions ? this.target.client.options.disableMentions
: this.options.disableMentions; : this.options.disableMentions;
if (disableMentions === 'all') { if (disableMentions === 'all') {
content = Util.removeMentions(content || ''); content = Util.removeMentions(content);
} else if (disableMentions === 'everyone') { } else if (disableMentions === 'everyone') {
content = (content || '').replace(/@([^<>@ ]*)/gmsu, (match, target) => { content = content.replace(/@([^<>@ ]*)/gmsu, (match, target) => {
if (target.match(/^[&!]?\d+$/)) { if (target.match(/^[&!]?\d+$/)) {
return `@${target}`; return `@${target}`;
} else { } else {
@@ -120,17 +122,17 @@ class APIMessage {
if (content || mentionPart) { if (content || mentionPart) {
if (isCode) { if (isCode) {
const codeName = typeof this.options.code === 'string' ? this.options.code : ''; const codeName = typeof this.options.code === 'string' ? this.options.code : '';
content = `${mentionPart}\`\`\`${codeName}\n${Util.cleanCodeBlockContent(content || '')}\n\`\`\``; content = `${mentionPart}\`\`\`${codeName}\n${Util.cleanCodeBlockContent(content)}\n\`\`\``;
if (isSplit) { if (isSplit) {
splitOptions.prepend = `${splitOptions.prepend || ''}\`\`\`${codeName}\n`; splitOptions.prepend = `${splitOptions.prepend || ''}\`\`\`${codeName}\n`;
splitOptions.append = `\n\`\`\`${splitOptions.append || ''}`; splitOptions.append = `\n\`\`\`${splitOptions.append || ''}`;
} }
} else if (mentionPart) { } else if (mentionPart) {
content = `${mentionPart}${content || ''}`; content = `${mentionPart}${content}`;
} }
if (isSplit) { if (isSplit) {
content = Util.splitMessage(content || '', splitOptions); content = Util.splitMessage(content, splitOptions);
} }
} }
@@ -189,7 +191,7 @@ class APIMessage {
embeds, embeds,
username, username,
avatar_url: avatarURL, avatar_url: avatarURL,
allowed_mentions: allowedMentions, allowed_mentions: typeof content === 'string' ? allowedMentions : undefined,
flags, flags,
}; };
return this; return this;