Discord.js 错误:MessageEmbed字段值不能为空
因此,我有一段代码,设计用于在消息更新时向日志通道发送嵌入消息,其中包含新旧消息。但是,每当我测试代码时,都会成功发送嵌入,但会出现错误Discord.js 错误:MessageEmbed字段值不能为空,discord.js,Discord.js,因此,我有一段代码,设计用于在消息更新时向日志通道发送嵌入消息,其中包含新旧消息。但是,每当我测试代码时,都会成功发送嵌入,但会出现错误RangeError[embed\u FIELD\u VALUE]:MessageEmbed FIELD VALUE可能不是空的,并且bot崩溃。我找不到发生此错误的原因,因为所有字段都返回我指定的值 我注意到唯一奇怪的是,当我将代码添加到bot时,所有嵌入都开始遇到相同的错误,但当我注释掉代码时,嵌入恢复正常 有人知道为什么会发生这种错误吗?如果是,我将如何修
RangeError[embed\u FIELD\u VALUE]:MessageEmbed FIELD VALUE可能不是空的,并且bot崩溃。我找不到发生此错误的原因,因为所有字段都返回我指定的值
我注意到唯一奇怪的是,当我将代码添加到bot时,所有嵌入都开始遇到相同的错误,但当我注释掉代码时,嵌入恢复正常
有人知道为什么会发生这种错误吗?如果是,我将如何修复它
这是代码:
var channel = newMessage.guild.channels.cache.find(ch => ch.name === 'bot-log');
var log = new MessageEmbed()
.setAuthor(oldMessage.author.tag, oldMessage.author.displayAvatarURL())
.setDescription(`:pencil: **[Message](${newMessage.url}) by ${newMessage.author} was edited in <#${oldMessage.channel.id}>**`)
.setColor(0x686afd)
.addFields(
{ name: `Old message`, value: oldMessage.content},
{ name: `New message`, value: newMessage.content},
)
.setTimestamp()
.setFooter(`Message ID: ${newMessage.id}`);
return channel.send(log);
});
var channel=newMessage.guild.channels.cache.find(ch=>ch.name=='bot log');
var log=newmessageembed()
.setAuthor(oldMessage.author.tag,oldMessage.author.displayAvatarURL())
.setDescription(`:pencil:*[Message](${newMessage.url})由${newMessage.author}编辑,在**`)
.setColor(0x686afd)
addFields先生(
{名称:`Old message`,值:oldMessage.content},
{名称:`newMessage`,值:newMessage.content},
)
.setTimestamp()文件
.setFooter(`Message ID:${newMessage.ID}`);
返回通道发送(日志);
});
之所以出现这种情况,是因为消息内容可以为空,就像用户附加一些没有文本的文件一样。您可以检查newMessage.content.length和oldMessage.content.length,并将其更改为您想要的内容
比如:
newMessage.content=newMessage.content.length>0?newMessage.content:“空消息”
oldMessage.content=oldMessage.content.length>0?oldMessage.content:“空邮件”
我认为这个代码是正确的:v
var channel = message.channel;
var log = new MessageEmbed()
.setAuthor(message.author.tag, message.author.displayAvatarURL())
.setDescription(`:pencil: **[Message](${message.url}) by ${message.author.tag} was edited in <#${message.channel.id}>**`)
.setColor(0x686afd)
.addFields(
{ name: `Old message`, value: message.content},
{ name: `New message`, value: message.content},
)
.setTimestamp()
.setFooter(`Message ID: ${message.id}`);
return channel.send(log);
var channel=message.channel;
var log=newmessageembed()
.setAuthor(message.author.tag,message.author.displayAvatarURL())
.setDescription(`:pencil:*[Message](${Message.url})由${Message.author.tag}编辑,在**`)
.setColor(0x686afd)
addFields先生(
{名称:`Old message`,值:message.content},
{名称:`newmessage`,值:message.content},
)
.setTimestamp()文件
.setFooter(`Message ID:${Message.ID}`);
返回通道发送(日志);
如有必要,我可以提供完整的错误信息