Fixed splitting messages with codeblocks (#2720)

This commit is contained in:
NbOpposite
2018-08-10 15:44:32 +02:00
committed by Crawl
parent 0f63c50c06
commit ea4375bf90

View File

@@ -36,25 +36,29 @@ module.exports = async function createMessage(channel, options) {
} }
} }
if (options.split && typeof options.split !== 'object') options.split = {};
let mentionPart = '';
if (reply && !(channel instanceof User || channel instanceof GuildMember) && channel.type !== 'dm') { if (reply && !(channel instanceof User || channel instanceof GuildMember) && channel.type !== 'dm') {
const id = channel.client.users.resolveID(reply); const id = channel.client.users.resolveID(reply);
const mention = `<@${reply instanceof GuildMember && reply.nickname ? '!' : ''}${id}>`; mentionPart = `<@${reply instanceof GuildMember && reply.nickname ? '!' : ''}${id}>, `;
if (options.split) options.split.prepend = `${mention}, ${options.split.prepend || ''}`; if (options.split) options.split.prepend = `${mentionPart}${options.split.prepend || ''}`;
content = `${mention}${typeof options.content !== 'undefined' ? `, ${options.content}` : ''}`;
} }
if (content) { if (content || mentionPart) {
options.content = Util.resolveString(content); options.content = Util.resolveString(content || '');
if (options.split && typeof options.split !== 'object') options.split = {};
// Wrap everything in a code block // Wrap everything in a code block
if (typeof options.code !== 'undefined' && (typeof options.code !== 'boolean' || options.code === true)) { if (typeof options.code !== 'undefined' && (typeof options.code !== 'boolean' || options.code === true)) {
options.content = Util.escapeMarkdown(options.content, true); options.content = Util.escapeMarkdown(options.content, true);
options.content = options.content = `${mentionPart}\`\`\`${typeof options.code !== 'boolean' ?
`\`\`\`${typeof options.code !== 'boolean' ? options.code || '' : ''}\n${options.content}\n\`\`\``; options.code || '' : ''}\n${options.content}\n\`\`\``;
if (options.split) { if (options.split) {
options.split.prepend = `\`\`\`${typeof options.code !== 'boolean' ? options.code || '' : ''}\n`; options.split.prepend =
options.split.append = '\n```'; `${options.split.prepend || ''}\`\`\`${typeof options.code !== 'boolean' ? options.code || '' : ''}\n`;
options.split.append = `\n\`\`\`${options.split.append || ''}`;
} }
} else if (mentionPart) {
options.content = mentionPart + (options.content || '');
} }
// Add zero-width spaces to @everyone/@here // Add zero-width spaces to @everyone/@here