client.on('messageUpdate'....)无法正常工作?

时间:2019-12-05 08:01:42

标签: discord.js

我正在尝试在用户编辑邮件时记录日志。 它不是真的工作。...

这是我的代码:

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)
}

And here is what it results in:

2 个答案:

答案 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的其他调用