我想在 discord.js 中创建一个 eval 命令

时间:2021-06-18 00:52:12

标签: discord discord.js

我正在尝试使用它来创建一个 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 错误。我该如何修复这个错误?

0 个答案:

没有答案