gpt4 book ai didi

javascript - Discord.js RichEmbed 字段值 "empty"甚至认为它们不是。消息更新

转载 作者:行者123 更新时间:2023-11-30 19:10:06 26 4
gpt4 key购买 nike

所以基本上我一直在为消息编辑制作日志。该函数的目的是在有人编辑消息时写入 modlog channel 。我还希望机器人在更新前后写消息。

代码如下:

bot.on('messageUpdate', (oldMessage, newMessage) => {
var msgup = new Discord.RichEmbed()
.setTitle(`**MESSAGE EDIT**`)
.addField(`Old Message:` , `${oldMessage.content}`)
.addField(`New Message:` , `${newMessage.content}`)
.addField(`In channel:` , oldMessage.channel)
.addField(`By` , oldMessage.author)
.setTimestamp()
newMessage.channel.send(msgup).catch(console.error);

});

控制台错误:

C:\Users\grofg\desktop\discordbot\node_modules\discord.js\src\structures\RichEmbed.js:166
if (!/\S/.test(value)) throw new RangeError('RichEmbed field values may not be empty.');
^

RangeError: RichEmbed field values may not be empty.
at RichEmbed.addField (C:\Users\grofg\desktop\discordbot\node_modules\discord.js\src\structures\RichEmbed.js:166:34)
at Client.bot.on (C:\Users\grofg\desktop\discordbot\index.js:455:6)
at Client.emit (events.js:198:13)
at MessageUpdateAction.handle (C:\Users\grofg\desktop\discordbot\node_modules\discord.js\src\client\actions\MessageUpdate.js:13:16)
at MessageUpdateHandler.handle (C:\Users\grofg\desktop\discordbot\node_modules\discord.js\src\client\websocket\packets\handlers\MessageUpdate.js:7:34)
at WebSocketPacketManager.handle (C:\Users\grofg\desktop\discordbot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
at WebSocketConnection.onPacket (C:\Users\grofg\desktop\discordbot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (C:\Users\grofg\desktop\discordbot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
at WebSocket.onMessage (C:\Users\grofg\desktop\discordbot\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:198:13)

机器人的作用:

-Bot 完全按照计划执行功能。我嵌入了所有组件(标题、4xFields 和时间戳)。在所有字段中,所有内容都正确写入(旧消息、新消息、 channel 和作者)但是会发生什么?

-即使机器人执行了该功能,它也会因错误而停止。机器人崩溃了,它说 Field 是空的,尽管它写了所有东西而且肯定不是空的。

我尝试了什么?

首先,我尝试从 oldMessage.contentnewMessage.content 中删除内容。无论如何,它做同样的事情。

其次,我试着让它像 .addField('Old Message:' , oldMessage) 而没有 '${}'。我也试过用 .content 做同样的事情。它仍然做同样的事情,它完成了工作,但会出错并崩溃。

由于控制台错误:

在 Client.bot.on (C:\Users\grofg\desktop\discordbot\index.js:455:6)我认为这是嵌入的问题,因为第 455 行与 .addField('Old Message:' , '${oldMessage.content}')

完全一致

感谢您通读整个问题,对于解决此问题的任何帮助或提示,我将不胜感激。

真诚的, -卢克

最佳答案

bot.on('messageUpdate', (oldMessage, newMessage) => {

if (oldMessage.author.bot) return;
if (oldMessage.content === newMessage.content) return;
if(!oldMessage.partial) {

var msgup = new Discord.RichEmbed()
.setTitle(`**MESSAGE EDIT**`)
.addField(`Old Message:` , `${oldMessage.content.slice(0, 950)}\n\u200B`)
.addField(`New Message:` , `${newMessage.content.slice(0, 950)}\n\u200B`)
.addField(`In channel:` , oldMessage.channel.name)
.addField(`By` , oldMessage.author.tag)
.setTimestamp()
newMessage.channel.send(msgup).catch(console.error);
};
});

我相信是 oldMessage 导致的。这是我所做的,所以它不能为空。 (同时将 .name 添加到您的 message.channel 以便正确显示名称,与 oldMessage.author 相同,我添加了 。标记)希望这对您有所帮助。

关于javascript - Discord.js RichEmbed 字段值 "empty"甚至认为它们不是。消息更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58583449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com