如何制作一个像这样输出的 discord.js eval 命令

问题描述

所以我正在研究我的机器人等等,我注意到服务器中的其他人有一个机器人,当你使用 eval 命令时,将输入和输出放在一个嵌入中,输出看起来像这是一个 setActivity 评估的东西。如果可能,我将如何将其实现到我的代码中,或者我会为此做些什么?

ClientPresence {
  userID: null,guild: null,status: 'online',activities: [Array],clientStatus: null
}

这是我当前的代码 -

const discord = require('discord.js');
const { prefix } = require('./../../config.json');

module.exports = {
    name: 'eval',description: 'eval a bit of code',async execute (client,message,args) {
        if (message.author.id !== "559200051629654026") return;
        if (message.content.startsWith(prefix + "eval")) {
            var result = message.content.split(" ").slice(1).join(" ")
            let evaled = eval(result);
            const evalEmbed = new discord.MessageEmbed()
                .setColor('RANDOM')
                .addFields(
                    { name: '**Input:**',value: `\`\`\`js\n${args}\`\`\``,inline: false },{ name: '**Output:**',value: `\`\`\`js\n${evaled}\`\`\``,inline: false }
                )
            message.channel.send(evalEmbed)
        }
    },};

我有它所以它输出一个嵌入,但它总是说[object,Promise]

解决方法

您可能已经猜到了,[object,Promise] 表示这里有一个承诺。唯一的解决方案是 await 这个 Promise。我想你可以让你的函数 asyncawait eval(result)