Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
359 views
in Technique[技术] by (71.8m points)

javascript - How to make my discord.js-bot log the edit of a message?

I'm trying to make my bot log when and what has been edited in a message.

This is the code of the listener:

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);
 });
question from:https://stackoverflow.com/questions/65851972/how-to-make-my-discord-js-bot-log-the-edit-of-a-message

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The error message says that message is undefined. The problem is that the messageUpdate event doesnt give the last message as a parameter (https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-messageUpdate) To fix this you could replace the message in message.author.username with newMessage.

I also found another problem with your code, when you add the fields to the embed, you should use newMessage.content as the value, instaid of just newMessage


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...