我想让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
但是目前它答复该时间段内的每条消息,这很烦人。我知道命令有冷却时间,但是我无法为事件找到类似的东西。
所以我的问题是:事件是否有相应的冷却时间,或者是其他明智的方式?
预先感谢,对于我应该犯的菜鸟错误表示歉意。
答案 0 :(得分:0)
是的,聪明的方法是使用数据库存储用户信息和他们发送的最新消息。然后,您可以计算出保存到当前时间的时间,如果超过了保存的时间,请告诉他们进入睡眠状态。