【问题标题】:Discord Bot can't delete messages from dmsDiscord Bot 无法从 dms 删除消息
【发布时间】:2022-01-17 02:40:23
【问题描述】:

在测试机器人之前,我忘记在我的代码中添加机器人检查,我的不和谐 dm 频道看起来很糟糕。我试图让机器人进入并删除消息,但我找不到适用于此的命令。 message.delete() 只适用于最后发送的消息,channel.purge 似乎只适用于在服务器中发送的消息,而不是 dms。 我已经查看了 discord API 参考资料,但要么我错过了一些东西,要么就是找不到我需要的命令。我已经为 dm 和常规频道留下了链接,但我真的想清除我无意中造成的混乱:

discord dm channeldiscord regular channel

【问题讨论】:

    标签: python discord.py


    【解决方案1】:

    您可能只是删除了最后一条消息,因为 message 变量是刚刚传递给机器人的变量。相反,您需要将所有消息存储在一个数组 messages 中,您可以从中运行如下内容:

    for message in messages: await message.delete()
    

    【讨论】:

    • message.delete是协程,需要等待
    • 自故障以来我已经多次重启机器人,所以消息不再存储在那里
    • 在这种情况下,您必须通过访问消息历史记录来查找机器人发送的每条消息,然后如图所示循环遍历它
    【解决方案2】:

    我通过手动获取每条消息的 id 并将其放入数组中并在循环中使用 await message.delete() 来删除所有消息来解决此问题

    【讨论】:

      猜你喜欢
      • 2021-09-14
      • 2021-01-28
      • 2020-12-03
      • 2017-10-25
      • 2020-08-25
      • 2018-07-24
      • 2021-03-02
      • 2022-11-17
      • 2021-10-18
      相关资源
      最近更新 更多