const { SlashCommandBuilder,CommandInteraction,codeBlock,EmbedBuilder } = require("discord.js") const { inspect } = require('util') module.exports = { data: new SlashCommandBuilder() .setName('eval') .setDescription("Evaluate discord.js code") .addStringOption(option => option.setName("code") .setDescription("code to evaluate") .setRequired( true)) .addBooleanOption(option => option .setName("ephemeral") .setDescription("True or False") .setRequired(false) ), async execute(interaction, user, command) { const code = interaction.options.getString("code") const ephemeral = interaction.options.getBoolean("ephemeral") const errEmbed = new EmbedBuilder() .setDescription(`You can't use this`) .setColor(0xc72c3b); if(interaction.user !== "805119221091926027") { return interaction.reply({ embeds: [errEmbed], ephemeral: true }); } else { try { let evaled = await eval(code) const output = typeof evaled === "string" ? evaled: inspect(evaled, { depth:0 }) if(output.length > 2000 - 10) return interaction.reply({ content: "The output is too long !", ephemeral: true }) if(ephemeral) { interaction.reply({ content: codeBlock("js", output.replace(client.token, "[TOKEN]")), ephemeral: true }) } else { interaction.reply({ content: codeBlock("js", output.replace(client.token, "[TOKEN]")) }) } } catch (err) { if(ephemeral) { interaction.reply({ content: codeBlock("yaml", err), ephemeral: true }) } else { interaction.reply({ content: codeBlock("yaml", err) }) } } } } }