我正在尝试在用户编辑邮件时记录日志。 它不是真的工作。...
这是我的代码:
client.on('messageUpdate', (oldMessage, newMessage) => {
logMessageEdit(oldMessage, newMessage);
});
function logMessageEdit(oldMessage, newMessage) {
if (!newMessage.guild.channels.find('name', "logs")) return;
logChannel = newMessage.guild.channels.find('name', "logs");
let logEmbed = new Discord.RichEmbed()
.setAuthor(newMessage.author.tag, newMessage.author.avatarURL)
.setDescription(`? | Meddelande redigerat i ${oldMessage.channel}.`)
.addField("Innan", "test" + oldMessage.content)
.addField("Efter", "test" + newMessage.content)
.setTimestamp()
.setFooter(newMessage.id)
.setColor(greenColor);
logChannel.send(logEmbed)
}
答案 0 :(得分:0)
每当有人发送嵌入消息或编辑消息时,都会触发 messageUpdate 事件。因此,您的漫游器正在读取自己的消息,因此会多次触发该事件。
您可以通过忽略漫游器消息来防止这种情况。
if (newMessage.author.id === client.user.id) return
答案 1 :(得分:0)
对client.on('messageUpdate')
方法不太熟悉,但是机器人正在记录自己的消息发送,而不仅仅是您的消息。尝试更新您的client.on('messageUpdate')
方法
client.on('messageUpdate', (oldMessage, newMessage) => {
if(newMessage.author.id === client.user.id) return;
logMessageEdit(oldMessage, newMessage);
});
如果这不起作用,请检查诸如client.on('message')
事件中的logMessageEdit的其他调用