diff --git a/bot.js b/bot.js index c2595b8..5afd98c 100644 --- a/bot.js +++ b/bot.js @@ -11,5 +11,7 @@ async function init() { ['commands', 'aliases'].forEach(x => client[x] = new Discord.Collection()); ['command', 'event'].forEach(x => require(`./handle/${x}`)(client)); + + client.developers = ["330547934951112705", "673477059904929802"]; } init(); \ No newline at end of file diff --git a/commands/eval.js b/commands/eval.js new file mode 100644 index 0000000..2c62738 --- /dev/null +++ b/commands/eval.js @@ -0,0 +1,39 @@ +const Discord = require('discord.js'); +const util = require('util'); +const moment = require('moment'); +const chalk = require('chalk'); + +module.exports = { + name: 'eval', + aliases: ['ev', ':'], + help: "Evaluates raw JavaScript code. *This is a __developer-only__ command.* Usage: `{{p}}eval `", + execute(message, msg, args, cmd, prefix, mention, client) { + try { + if (!client.developers.includes(message.author.id)) return; + + let kieran = client.users.cache.get('673477059904929802').tag + + if (!args.length) return message.channel.send(`Syntax: \`${prefix}eval \``); + const result = new Promise((resolve) => resolve(eval(args.join(' ')))); + return result.then((output) => { + if (typeof output !== 'string') { + output = require('util').inspect(output, { depth: 0 }); + } + output = output.replace(client.config.token, 'Client Token') + .replace(client.config.database.password, 'Database Password') + .replace(client.config.database.cluster, 'Database Cluster') + + return message.channel.send(new Discord.MessageEmbed() + .setTitle('Client Evaluation') + .setDescription(`\`\`\`js\n${output}\n\`\`\``) + .setColor('c375f0') + .setFooter(`Natsuki`, client.user.avatarURL()) + .setTimestamp()) + }); + } catch (error) { + //let date = new Date; date = date.toString().slice(date.toString().search(":") - 2, date.toString().search(":") + 6); + //console.error(`\n${chalk.red('[ERROR]')} >> ${chalk.yellow(`At [${date}] | Occurred while trying to run n?eval`)}`, error); + return message.channel.send(`Error: \`${error}\`.`); + }; + }, +}; \ No newline at end of file diff --git a/commands/help.js b/commands/help.js index 5028f10..5cda9db 100644 --- a/commands/help.js +++ b/commands/help.js @@ -6,7 +6,7 @@ module.exports = { help: 'you silly! What did you expect me to respond with?', execute(message, msg, args, cmd, prefix, mention, client) { if (!args.length) { - + // !!! this is where the base help command goes, like n?help without specifying a command. } else { var command; if (client.commands.has(args[0])) {command = client.commands.get(args[0]);} diff --git a/commands/info.js b/commands/info.js index bb36903..c76710a 100644 --- a/commands/info.js +++ b/commands/info.js @@ -9,7 +9,7 @@ module.exports = { let botData = await require('../models/bot').findOne({finder: 'lel'}); return message.channel.send(new Discord.MessageEmbed() - .setAuthor("About Me!", client.users.cache.get(["330547934951112705", "673477059904929802"][Math.floor(Math.random() * 2)]).avatarURL()) + .setAuthor("About Me!", client.users.cache.get(client.developers[Math.floor(Math.random() * client.developers.length)]).avatarURL()) .setThumbnail(client.user.avatarURL({size: 1024})) .setDescription(`I am created by WubzyGD#8766 and Slushie#1234 - a pair conveniently known as NatsukiDev - in JavaScript/Discord.js!\n\nI'm a powerful all-purpose bot with everything you could want or need, and I have my own set of unique skills that you won't find anywhere else ^^`) .addField("Presence", `I'm currently in **${client.guilds.cache.size}** servers, and I'm watching over approximately **${client.users.cache.size}** people!`)