node.js - Discord.js - 机器人重复相同的消息编辑/删除日志重复
问题描述
我正在尝试为我的不和谐机器人创建一个消息记录器,用于记录编辑和删除的消息。但是,日志工作一次,然后停止工作。发生的情况是在它记录一条消息之后,第二次它会记录 2 条相同的消息,然后是 3 条,并最终用相同的消息向日志发送垃圾邮件。
这是我的代码:
client.on("messageUpdate", message => {
var messages = [1]
if(messages.includes(message.id)){return;}
channel = message.guild.channels.cache.get('channelID')
const channel9 = client.channels.cache.find(channel => channel.id === '816339882233561129');
const ediembed = new Discord.MessageEmbed()
.setColor(1752220)
.setTitle(":pencil: Message Edited")
.addFields (
{name: "__Channel:__", value: `<\#${message.channel.id}>`},
{name: "__Message Author:__", value: `${message.author.tag} - <\@${message.author.id}>`},
{name: "__Original Message:__", value: message.content}
)
.setTimestamp()
.setThumbnail(message.author.avatarURL())
.setFooter("DM reloaded#1269 with any inquiries regarding bot API")
channel9.send(ediembed)
}
)
解决方案
我以前也遇到过同样的问题。当它发送消息时,它会更新并重新读取消息并再次发送响应,我建议保留它已跟踪的消息 id 数组并检查消息 id 是否已经在数组中,然后返回如下:
var messages = []
if(messages.includes(message.id)){return;}
如果这不起作用,我很抱歉,但我不知道该怎么办
推荐阅读
- php - 比较两个关联数组值并替换它们
- python - 如何根据索引位置标准化 Pandas 数据框中的值?
- haskell - 如何在 ghci 中加载包含空格的模块
- excel - 为什么在表格中将文本转换为数字要慢得多?
- sql - 如何从 R 中的 SQL 导出数据
- javascript - 打字。如何让内容不下移?
- hive - 如何在 Cloudera 中建立 Grafana 和 Hive 连接
- react-native - 无法读取未定义的属性“getTrackDrawable”
- javascript - 节点:getaddrinfo ENOTFOUND (localhost:5000) 在不同的 localhost:8888 上运行
- optaplanner - 使用 optaplanner 解决 VRPMT 问题的最佳实践是什么?