首页 > 解决方案 > 我想在 discord.js 中创建一个 eval 命令

问题描述

我正在尝试使用它来创建一个 eval 命令:

const testcode = "hello";


    if (command === "run" || command === "eval") {
      if (message.author.id !== "744752301033521233" && message.author.id !== "716343156513439845")
      return message.channel.send({embed: {
        title: "✍️RUN",
        description: "❌You're not bot owner"
      }});
    try {
      const code = args.join(" ");
      let evaled = eval(code);

      if (typeof evaled !== "string") {
        //console.log(evaled);
        evaled = await require("util").inspect(evaled);
        //console.log(evaled);
      message.channel.send(`\`\`\`xl\n${evaled}\`\`\``);
      } else {
        message.channel.send(`\`\`\`xl\n${evaled}\`\`\``);
      }
    } catch (err) {
      message.channel.send({
        embed: {
          title: "✍️RUN",
          description: "Error:\n```xl\n" + err + "```",
          color: 961818,
          timestamp: new Date(),
          footer: {
            icon_url: client.user.avatarURL
          }
        }
      });
    } 
    }

这段代码对我来说是正确的。(例如,!run testcode.length将返回 5)但是,如果返回超过 4096 个字符,此代码将返回错误。所以我使用了拆分选项:

const testcode = "hello";


    if (command === "run" || command === "eval") {
      if (message.author.id !== "744752301033521233" && message.author.id !== "716343156513439845")
      return message.channel.send({embed: {
        title: "✍️RUN",
        description: "❌You're not bot owner"
      }});
    try {
      const code = args.join(" ");
      let evaled = eval(code);

      if (typeof evaled !== "string") {
        //console.log(evaled);
        evaled = await require("util").inspect(evaled);
        //console.log(evaled);
      message.channel.send(`\`\`\`xl\n${evaled}\`\`\``, { split: true });
      } else {
        message.channel.send(`\`\`\`xl\n${evaled}\`\`\``, { split: true });
      }
    } catch (err) {
      message.channel.send({
        embed: {
          title: "✍️RUN",
          description: "Error:\n```xl\n" + err + "```",
          color: 961818,
          timestamp: new Date(),
          footer: {
            icon_url: client.user.avatarURL
          }
        }
      });
    } 
    }

但是,当我!run testcode.length使用此代码运行时cannot send an empty message,控制台上出现错误。我该如何修复这个错误?

标签: discorddiscord.js

解决方案


推荐阅读