首页 > 解决方案 > 产生冷却的问题

问题描述

我创建了一些命令,但由于我不想有更多的垃圾邮件/洪水,我试着冷静下来。但是我经常出错,而且我不明白如何专门为参与者进行冷却,而不是为整个服务器。请帮助!

标签: pythondiscord.py

解决方案


我认为您可以通过将 member.id 的关联和成员最后一次发送命令的关联存储在元组列表中来实现这一点。

您必须定义:

  • 变量“冷却时间”(例如:cooldown = 30000以毫秒为单位)
  • member.id/最后一条消息的列表(例如:`list= [('member1id','1592382596'),('member2id','1592382598')]

然后每次@discord_client.event async def on_message(message):触发该方法时,您检查它是否是命令,并在检查list. 您检索当前成员的最后一条消息 time 并检查它是否没有超过cooldown.

要获取当前时间,您可以使用:

import calendar;
import time;
current_time = calendar.timegm(time.gmtime())

要检查是否已超过冷却时间:

current_time - time_from_list > cooldown

如果为真,则用户能够执行该命令,以便您执行关联的方法。然后你应该更新列表。


推荐阅读