评估斜杠命令

Eval Slash Command

我正在尝试使用斜线命令创建 eval 命令,但此命令一直显示错误。我相信我在其中使用了一个 v12 代码。

sorry if my code are mess up. Still new in discord.js.

这是我的代码



const Discord = module.require("discord.js");

module.exports = {
  name: "eval",
  description: "Execute a JavaScript Code (owmer only)",
  options: [
      {
          name: "code",
          description: "The question you want to ask the magic 8ball",
          type: 'STRING',
      }
  ],
  run: async (client, interaction, args) => {
            function clean(text) {
            if (typeof text === "string")
                return text
                    .replace(/`/g, "`" + String.fromCharCode(8203))
                    .replace(/@/g, "@" + String.fromCharCode(8203));
            else return text;
        }
        let owner = '833843608905842700'

        if (!owner.includes(interaction.author.id)) return;

        try {
            const code = args.join(" ");
            let evaled = eval(code);

            if (typeof evaled !== "string") evaled = require("util").inspect(evaled);

            message.react("✅");
            var emb = new MessageEmbed()
                .setTitle('Result')
                .setDescription(`\`\`\`js` + '\n' + clean(evaled) + `\n` + `\`\`\``)
                .setFooter(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
                .setColor(0xd26a0e)
            message.channel.send(emb);
        } catch (err) {
            message.react("⚠");
            var emb = new MessageEmbed()
                .setTitle('Result')
                .setDescription(`\`\`\`js` + '\n' + clean(err) + `\n` + `\`\`\``)
                .setFooter(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
                .setColor(0xd26a0e)
            await interaction.reply({ embeds: [emb] })

        }
  }};
  

您好,这是 discord.js v13 斜杠命令的 eval 命令代码。

    const {
    MessageEmbed
    } = require("discord.js");
    const {
    inspect
    } = require("util");

    module.exports = {
        name: "eval",
        description: "owner's only",
        options: [{
            name: "code",
            description: "type a code to execute",
            type: 3,
            required: true
    }],
    run: async (client, interaction, args) => {
        const nembed = new MessageEmbed()
            .setTitle("EVAL").setColor("RANDOM")
            .setDescription("❌ You dont have perms to use this command. Only Owner's can use this command")
            .setThumbnail(interaction.member.user.displayAvatarURL())
            .setFooter(interaction.member.user.tag)

        if (!client.config.owner.includes(interaction.member.user.id)) return interaction.followUp({
            embeds: [nembed]
        });

        let toEval = interaction.options.getString("code")


        try {
            const embed = new MessageEmbed()
                .setTitle("EVAL").setColor("RANDOM")
                .setDescription("❌ Error: `Cannot evaluate nothing`")
                .setThumbnail(interaction.member.user.displayAvatarURL())
                .setFooter(interaction.member.user.tag)
            let evaluated = inspect(eval(toEval, {
                depth: 0
            }))
            if (!toEval) return interaction.followUp({
                embeds: [embed]
            });
            const embed1 = new MessageEmbed()
                .setTitle("EVAL").setColor("RANDOM")
                .setDescription("❌ Error: `Request is too long.`")
                .setThumbnail(interaction.member.user.displayAvatarURL())
                .setFooter(interaction.member.user.tag)

            if (evaluated.length > 1950) return interaction.followUp({
                embeds: [embed1]
            });
            let hrDiff = process.hrtime(process.hrtime());
            const embed2 = new MessageEmbed()
                .setTitle("EVAL").setColor("RANDOM")
                .setDescription(`Executed in ${hrDiff[0] > 0 ? `${hrDiff[0]}s` : ''}${hrDiff[1] / 1000000}ms.*\`\`\`javascript\n${evaluated}\n\`\`\``)
                .setThumbnail(interaction.member.user.displayAvatarURL())
                .setFooter(interaction.member.user.tag)
            interaction.followUp({
                embeds: [embed2]
            })
        } catch (e) {
            interaction.followUp({
                content: `An error occurred : \`${e.message}\``
            });
        }

    }
}