mirror of
https://github.com/discordeno/discordeno.git
synced 2026-05-30 15:30:07 +00:00
51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
const Discord = require("discordeno.js");
|
|
|
|
const BaseCommand = require("../../../Structures/BaseCommand.js");
|
|
class evalcommand extends BaseCommand {
|
|
static name = "eval";
|
|
static description = "danger !!!";
|
|
static category = "Developer";
|
|
static slash = { name: "eval", category: "dev" };
|
|
constructor(data) {
|
|
super(data);
|
|
}
|
|
async execute() {
|
|
if (!this.client.config.owners.includes(String(this.user.id))) return;
|
|
if (!(this.args.length > 0)) return this.reply({ content: "**You must provide something to eval!**" });
|
|
|
|
let inputOfEval = this.args.join(" ");
|
|
let outputOfEval;
|
|
let typeOfEval;
|
|
|
|
try {
|
|
if (this.args.includes("await")) {
|
|
outputOfEval = await eval("(async () => {" + inputOfEval + "})()");
|
|
} else {
|
|
outputOfEval = await eval(inputOfEval);
|
|
}
|
|
} catch (e) {
|
|
outputOfEval = e.message;
|
|
typeOfEval = e.name;
|
|
}
|
|
|
|
var seen = [];
|
|
outputOfEval = typeof outputOfEval === "object"
|
|
? JSON.stringify(outputOfEval, (_, value) => {
|
|
if (value == `Bot ${this.client.config.token}`) return `BOT_TOKEN`;
|
|
if (typeof value === "bigint") value = value.toString();
|
|
if (typeof value === "object" && value !== null) {
|
|
if (seen.indexOf(value) !== -1) return;
|
|
else seen.push(value);
|
|
}
|
|
return value;
|
|
}, 1)
|
|
: outputOfEval;
|
|
|
|
const embed = new Discord.Embed()
|
|
.addField({ name: "Input", value: "```js\n" + inputOfEval + "```" })
|
|
.addField({ name: "Output", value: "```json\n" + `${outputOfEval}`.slice(0, 1000) + "```" });
|
|
this.reply({ embeds: [embed] });
|
|
}
|
|
}
|
|
module.exports = evalcommand;
|