javascript - 如何让我的 discord.js-bot 记录消息的编辑?
问题描述
我正在尝试让我的机器人记录消息中编辑的时间和内容。
这是监听器的代码:
client.on('messageUpdate', (oldMessage, newMessage,message) => {
client.on('messageUpdate', (oldMessage, newMessage,message) => {
const MessageLog = client.channels.cache.find(channel => channel.id ==='802262886624919572');
var embed = new Discord.MessageEmbed()
.setAuthor(message.author.username).catch(console.error)
.setTimestamp(new Date())
.setColor('#392B47')
.addFields(
{name: 'original:',value: oldMessage},
{name: 'edit:', value: newMessage} );
MessageLog.send(embed);
});
到目前为止,他在获取 message.author.username 时遇到了问题,我尝试使用 oldmessage 和 newmessage 来定义消息,但也存在同样的问题。
控制台日志:TypeError:无法读取未定义的属性“作者”
解决方案
错误消息说message
未定义。问题是该messageUpdate
事件没有将最后一条消息作为参数提供(https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-messageUpdate)要解决此问题,您可以替换message.author.username
使用 newMessage发送消息。
我还发现您的代码存在另一个问题,当您将字段添加到嵌入时,您应该使用newMessage.content
作为值,而不是只是newMessage
推荐阅读
- azure-data-factory - 映射数据流可以使用参数化 Parquet 数据集吗?
- python - 我可以在哪里托管我的 whatsapp 硒自动化?
- ios - Swift Dispatch Main 同步使 UIView 动画混乱
- mongodb - MongoTemplate.getCollectionNames 和 MongoTemplate,collectionExists 方法在连接到 Azure Cosmos DB 时抛出 StringIndexOutOfBoundsException
- python - Python:dict的键/值对子集确定要调用的函数
- javascript - 提供角度的功能
- python - ValueError:条件预期的布尔数组,而不是对象
- python-3.x - Python 正则表达式在 2 个边缘案例上失败
- postgresql - PostgresSQL嵌套jsonb更新复杂键/值对的值
- java - 使用 if 语句从一副牌中抽出特定的牌