首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eval Slash命令

Eval Slash命令
EN

Stack Overflow用户
提问于 2022-01-14 07:09:14
回答 1查看 564关注 0票数 -5

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

如果我的代码搞砸了,

很抱歉。在discord.js上还是新的。

这是我的密码

代码语言:javascript
复制
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] })

        }
  }};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-14 15:13:50

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

代码语言:javascript
复制
    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}\``
            });
        }

    }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70707114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档