const { EmbedBuilder } = require('discord.js') const { VM } = require('vm2') const axios = require('axios') const util = require('util') const querystring = require('querystring') const { stylize } = require('../util/colors/minecraft') module.exports = { name: 'eval', alias: [], description: 'Safe eval 100% secure!!!', trusted: 0, usage: [ 'run ', 'reset', 'server (eval server) ' ], execute (bot, username, sender, prefix, args, config, hash, ownerhash, selector) { if (args[0] === 'run') { try { bot.tellraw(selector, { text: `${util.inspect(bot.vm.run(args.slice(1).join(' ')), { stylize })}`.substring(0, 32000) }) } catch (err) { bot.tellraw(selector, { text: `${util.inspect(err).replaceAll('runner', 'chayapak1')}`, color: 'red' }) } } if (args[0] === 'reset') { bot.vm = new VM(bot.vmoptions) } if (args[0] === 'server') { axios .post(config.eval.serverUrl, querystring.stringify({ html: false, showErrorMsg: false, colors: 'minecraft', code: args[1] })).then((res) => { bot.tellraw(selector, { text: `${res.data}` }) }).catch((err) => { bot.tellraw(selector, { text: `${err}`, color: 'red' }) }) } }, discordExecute (bot, username, sender, prefix, args, channeldc, message, config) { if (args[0] === 'run') { const Embed = new EmbedBuilder() .setColor(config.discord.embedsColors.normal) .setTitle('Output') .setDescription(`\`\`\`${util.inspect(bot.vm.run(args.slice(1).join(' '))).substring(0, 1950)}\`\`\``) channeldc.send({ embeds: [Embed] }) } else if (args[0] === 'reset') { bot.vm = new VM(bot.vmoptions) } else if (args[0] === 'server') { axios .post(config.eval.serverUrl, querystring.stringify({ html: false, showErrorMsg: false, code: args[1] })).then((res) => { const Embed = new EmbedBuilder() .setColor(config.discord.embedsColors.normal) .setTitle('Output') .setDescription(`\`\`\`${res.data}\`\`\``) channeldc.send({ embeds: [Embed] }) }).catch((err) => { throw err }) } else { throw new SyntaxError('Invalid argument') } } }