52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
// Copyright 2020 Emily J. / mudkipscience and contributors. Subject to the AGPLv3 license.
|
|
|
|
/* eslint-disable no-eval */
|
|
|
|
exports.conf = {
|
|
enabled: true,
|
|
guildOnly: false,
|
|
aliases: [],
|
|
permLevel: 'Developer',
|
|
requiredPerms: []
|
|
}
|
|
|
|
exports.help = {
|
|
name: 'eval',
|
|
category: 'Developer',
|
|
description: 'Evaluates arbitrary javascript.',
|
|
usage: 'eval [code]',
|
|
parameters: '`[code] - Javascript code you want to execute.'
|
|
}
|
|
|
|
exports.run = async (client, message, args, level, data) => {
|
|
const hastebin = require('hastebin-gen')
|
|
const code = args.join(' ')
|
|
try {
|
|
const evaled = eval(code)
|
|
const clean = await client.clean(client, evaled)
|
|
|
|
if (clean.length > 2000) {
|
|
hastebin(clean, { extension: 'txt' }).then(haste => {
|
|
return message.channel.send('`OUTPUT`\n' + haste)
|
|
}).catch(error => {
|
|
client.logger.error(error)
|
|
})
|
|
|
|
return
|
|
}
|
|
message.channel.send(`\`OUTPUT\` \`\`\`js\n${await clean}\n\`\`\``)
|
|
} catch (err) {
|
|
const errclean = await client.clean(client, err)
|
|
if (errclean.length > 2000) {
|
|
hastebin(errclean, { extension: 'txt' }).then(haste => {
|
|
return message.channel.send('`ERROR`\n' + haste)
|
|
}).catch(error => {
|
|
client.logger.error(error)
|
|
})
|
|
|
|
return
|
|
}
|
|
message.author.send(`\`ERROR\` \`\`\`xl\n${await errclean}\n\`\`\``)
|
|
message.react('⚠️')
|
|
}
|
|
}
|