【问题标题】:How do I prevent a user from sending more than one message in a channel?如何防止用户在频道中发送多条消息?
【发布时间】:2020-06-07 14:58:48
【问题描述】:
User 1: Hello!
User 1: How are you?
User 2: I'm good.
User 2: hbu
User 3: hey guys!
User 1: i'm doing fine

我正在尝试从用户 1 和用户 2 中删除第二条消息,这样任何用户都只能发送一条消息。有人告诉我使用channel.history,但我想不出一种方法来比较这些消息的作者,以确保它们不是同一个人。

这就是我想要的:我想防止重复发布:

User 1: Hello! How are you?
User 2: I'm good, hbu.
User 3: hey guys!
User 1: i'm doing fine

我只是不知道如何使用channel.history 来做到这一点。

【问题讨论】:

    标签: python python-3.x discord.py


    【解决方案1】:

    您可以使用 on_message() 事件并将频道历史记录的限制设置为 2:

    @bot.event
    async def on_message(message):
        recent_author = (await message.channel.history(limit=2).flatten())[1].author
        if message.author == recent_author:
            await message.delete()
    

    history() 协程首先获取最新消息,除非另有说明,因此您可以将限制设置为 2 以获取用户刚刚发送的消息之前的最新消息。


    参考资料:

    【讨论】:

      猜你喜欢
      • 2019-02-12
      • 2019-06-06
      • 1970-01-01
      • 2023-03-26
      • 2020-01-30
      • 2019-04-27
      • 2020-09-28
      • 2021-12-03
      • 2019-03-27
      相关资源
      最近更新 更多