Files
xiao/types/code.js
T
Dragon Fire 1d8fe9fd3c Fix
2020-09-29 14:10:39 -04:00

34 lines
758 B
JavaScript

const { ArgumentType } = require('discord.js-commando');
const codeblock = /```(?:(\S+)\n)?\s*([^]+?)\s*```/i;
module.exports = class CodeArgumentType extends ArgumentType {
constructor(client) {
super(client, 'code');
}
validate(value) {
if (!value) return false;
return true;
}
async parse(value, msg) {
if (!value) return null;
if (/^[0-9]+$/.test(value)) {
try {
const message = await msg.channel.messages.fetch(value);
value = message.content;
} catch (err) {
return { code: value, lang: null };
}
}
if (codeblock.test(value)) {
const parsed = codeblock.exec(value);
return {
code: parsed[2],
lang: parsed[1] ? parsed[1].toLowerCase() : null
};
}
return { code: value, lang: null };
}
};