Discord js 中的 messageDelete 问题
Problems with messageDelete in Discord js
我尝试在 Discord 服务器上制作我的机器人。想要制作一个功能,它将复制文本频道中所有已删除的消息,但是,messageDelete
只听到机器人启动后正在写入的已删除消息。当我删除使早期机器人启动的消息时,它不起作用。
{
client.on ("messageDelete", messageDelete =>{
let channel = client.channels.find(channel => channel.name === 'log-deleted-message')
console.log(`Deleted :${messageDelete.content}`)
channel.send(`${messageDelete.author.username} write : ${messageDelete.content}`
})
}
messageDelete
是在机器人打开时删除消息时调用的事件。如果一条消息在 bot 打开之前被删除,则无法恢复它,这就是它被称为已删除的原因。实现您想要的目标的唯一方法是让机器人永久开启。如果您想了解更多信息,请阅读 docs。
以上答案现已过时。
使用 Discord.js V12,您现在可以在 messageDelete 事件上缓存消息,您需要启用 Partials。启用后,您可以像这样预先获取消息:
if(message.partial){
let msg = await message.fetch()
console.log(msg.content)
}
然后将记录之前未缓存的消息的内容。
我尝试在 Discord 服务器上制作我的机器人。想要制作一个功能,它将复制文本频道中所有已删除的消息,但是,messageDelete
只听到机器人启动后正在写入的已删除消息。当我删除使早期机器人启动的消息时,它不起作用。
{
client.on ("messageDelete", messageDelete =>{
let channel = client.channels.find(channel => channel.name === 'log-deleted-message')
console.log(`Deleted :${messageDelete.content}`)
channel.send(`${messageDelete.author.username} write : ${messageDelete.content}`
})
}
messageDelete
是在机器人打开时删除消息时调用的事件。如果一条消息在 bot 打开之前被删除,则无法恢复它,这就是它被称为已删除的原因。实现您想要的目标的唯一方法是让机器人永久开启。如果您想了解更多信息,请阅读 docs。
以上答案现已过时。 使用 Discord.js V12,您现在可以在 messageDelete 事件上缓存消息,您需要启用 Partials。启用后,您可以像这样预先获取消息:
if(message.partial){
let msg = await message.fetch()
console.log(msg.content)
}
然后将记录之前未缓存的消息的内容。