(discord.py)使Bot每x秒仅对on_message()反应一次

时间:2020-07-11 06:31:47

标签: python discord.py


我想让Discord机器人能够告诉用户起床时要入睡,我正在这样做:

@client.event
async def on_message(message):
    now = datetime.datetime.now()
    now_hour = now.hour                                      #Gets current time in hours.
    if message.author != client.user and now_hour<6:        #Runs if the message is not sent by the bot or if the time is between 00:00 and 06:00
        await message.channel.send('Are you still awake? You ought to go to bed immediately!')
    await client.process_commands(message)                   #If not included, on_message() will override commands

但是目前它答复该时间段内的每条消息,这很烦人。我知道命令有冷却时间,但是我无法为事件找到类似的东西。
所以我的问题是:事件是否有相应的冷却时间,或者是其他明智的方式?

预先感谢,对于我应该犯的菜鸟错误表示歉意。

1 个答案:

答案 0 :(得分:0)

是的,聪明的方法是使用数据库存储用户信息和他们发送的最新消息。然后,您可以计算出保存到当前时间的时间,如果超过了保存的时间,请告诉他们进入睡眠状态。