如何检测消息是不是被编辑?

Posted

技术标签:

【中文标题】如何检测消息是不是被编辑?【英文标题】:How to detect if a message is edited?如何检测消息是否被编辑? 【发布时间】:2018-09-17 19:44:33 【问题描述】:

我打算让我的机器人只允许在聊天中发送“ew”。我已经解决了大多数解决方法,但是,有一个我无法独立解决。当有人在聊天中发布“ew”然后将消息编辑为其他内容时,它会保持原样而不会被删除。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

client.on('messageUpdate') 应该在每次编辑消息(在缓存中)时触发。我很确定如果在机器人离线时发送消息,您将不会收到该事件。但是你可以在机器人启动时获取消息。

client.on('messageUpdate', (oldMessage, newMessage) => 
   if(newMessage.content != "ew")
       //dosomething
   

【讨论】:

问题是我不确定如何删除该消息。我怎么能这样做? newMessage.delete() ? 正如我所说,它只适用于缓存消息。因此,请尝试打开机器人,发送消息然后对其进行编辑。 @BrandonB 确保您的机器人具有“管理消息”权限。 @André 有没有办法让这个工作与部分一起工作,所以即使在重新启动后,它也能工作?

以上是关于如何检测消息是不是被编辑?的主要内容,如果未能解决你的问题,请参考以下文章

清除反应编辑的嵌入消息

如何获取 Bot 消息 ID 并编辑消息 - Discord JDA Java

网站漏洞修复之vim文本编辑BUG分析与修复方案

win32 c++ 在没有子类化的编辑控件中检测“输入”?

如何检测某个标签是不是被悬停

RESTful API:如何判断 GET 检索到的对象是不是可以被当前用户编辑(例如,PUT-able)?