嵌入问题:“ RichEmbed字段值不能为空。”

时间:2018-12-19 02:26:08

标签: javascript node.js discord.js

A!我在输出嵌入时遇到问题。令我感到困惑的唯一问题是,我没有一个没有任何字段的字段,它会不断处理并以Discord和THEN错误的形式发送出去。

检测到编辑内容时,它执行相同的操作,此代码在我的bot.on("message", async message => {})中。也许这就是问题所在,但我不知道为什么以及在其他地方放置它的地方。

//-- Logging Deleted Messages --\\
bot.on("messageDelete", (messageDelete) => {
  let deletionEmbed = new Discord.RichEmbed()
    .setDescription(" Deleted Message ")
    .setColor("#e56b00")
    .addField("User:", `${message.author}`)
    .addField("Message:", `${messageDelete}`);

  let logchannel = message.guild.channels.find(`name`, "server-log");
  if (!logchannel) return message.channel.send("Couldn't find a logging channel!");

  logchannel.send(deletionEmbed);
});

这是错误消息:

if (!/\S/.test(value)) throw new RangeError('RichEmbed field values may not be empty.');

RangeError: RichEmbed field values may not be empty.

1 个答案:

答案 0 :(得分:1)

最重要的问题首先是:您的messageDelete事件中有message事件处理程序。这将为您的bot收到的每条消息创建一个新的事件侦听器:它可能由于内存问题而崩溃,或者因为疯狂而发送垃圾邮件。

您需要在message事件之外使用此功能:

bot.on("messageDelete", (oldMessage, newMessage) => {...});

在该处理程序中,使用以下命令:

.addField("User:", `${newMessage.author.tag}`)
.addField("Message:", `${oldMessage.content}`);