当前位置: 首页 > 知识库问答 >
问题:

不和谐py-删除多个服务器上具有相同内容的消息(原始删除)

凤财
2023-03-14

我正在写一个全球聊天discord机器人(像这样)

全局聊天是一个bot,它与使用bot并设置频道的所有其他服务器共享来自特定频道的频道消息。如果用户在此通道中写入消息,bot将以完全相同的消息布局将其发布到所有其他服务器上。

像这样的全球聊天需要良好的调节功能,比如快速轻松地删除消息。

现在我的问题来了:我想使用on_raw_message_delete事件,如果全局bot的主持人在没有命令的情况下删除频道消息,但使用Discord函数本身,就会发生该事件。

当用户删除一条本身不一致的消息时,如何在所有其他服务器上删除完全相同的消息?我认为我必须将消息保存在数据库中,并且必须使用相似性检查,但我没有计划如何做到这一点。我真的需要帮助,我尽力了几天,但都不知道。我想为它编写代码函数。

共有1个答案

殷宾白
2023-03-14

我会创建一个字典,并让键是用户制作的消息,值是您的机器人将发送到其他服务器的消息列表。

这样,当用户删除一条消息时,您可以在您的on_raw_message_delete方法中捕获事件,获取已删除消息的id,并在判决书中获取该消息的值。

完成的代码可能如下所示:

messages = {}

async def on_message(self, message):
    self.messages[message.id] = [await chan.send(message.content) for chan in linked_channels]

async def on_raw_message_delete(self, payload):
    for msg in self.messages[payload.message_id]:
        await msg.delete()
    
 类似资料:
  • 我使用Python3.6idle编写了一个bot,我想添加一个命令,但我不知道如何添加它。你们中的一些人能帮我举一些例子或建议吗?我会很高兴的,谢谢。

  • 我尝试了一个清除命令,它删除用户想要的不和谐频道中的消息量。然而,没有成功。 我希望机器人删除指定的消息量。然而,它没有回应。我已经使用了这种如果语句的方法来执行其他命令,比如检查你的ping,所以它很可能是删除消息的东西。

  • 我试图删除所有消息从一个渠道使用不和谐的机器人,但唯一的命令删除消息,我发现是 它一次只删除一条消息,我想清除所有可以使用的命令?

  • 我有一些不和谐的问题。js删除函数。我使用这段代码在从频道中删除图像时从用户的余额中删除1点,这是第一次一切正常,但当我尝试删除我发送的另一个图像时,机器人将从我的余额中删除1点,而不是从我的余额中删除1点,因为从机器人启动开始,总共删除了多少图像。示例:我删除一个图像,机器人将从我的余额中删除1个点,然后如果我删除我上传的另一个图像,而不是删除1个点,它将从我的余额中删除2个点,因为它将计算删除

  • 我正在尝试让我的JDA discord bot删除文本频道中的所有消息,目前我使用的代码效率极低,偶尔有效,有时无效。代码: 我知道一个事实,我正在调用函数,我知道一个事实,正在传递的文本通道是正确的。请帮我同样的忙。

  • 问题内容: 我创建了一个本地docker注册表,然后从docker hub提取了一些docker镜像,然后将其推送到本地注册表。现在,我要删除本地图像。但是这里的问题是图像相同,我无法删除它们。我搜索了解决方案,但找不到解决方案。 如您所见,两个图片都相同。如何删除它们? 编辑 我的泊坞窗版本: 输出: 来自守护程序的错误响应:冲突,无法删除图像810001cb03af,因为它已在多个存储库中标记