python - 产生冷却的问题
问题描述
我创建了一些命令,但由于我不想有更多的垃圾邮件/洪水,我试着冷静下来。但是我经常出错,而且我不明白如何专门为参与者进行冷却,而不是为整个服务器。请帮助!
解决方案
我认为您可以通过将 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
如果为真,则用户能够执行该命令,以便您执行关联的方法。然后你应该更新列表。
推荐阅读
- android - android google map v2 绘制 1k 圆圈性能问题
- arrays - 加起来就是一个数字的组合 - Julia lang
- jquery - jQuery 附加由 AJAX 数据问题制成的表
- r - 根据 dplyr 中旧变量的水平创建新的因子变量
- r - R:在堆栈栏上显示字符或类别
- java - 使用 Spring 处理许多类似的数据库表时的最佳实践
- python - 使用 Selenium 登录 TradingView.com
- javascript - line-height 小于 font-size 时的边框
- unity3d - 如何修复统一 3D raycast 子弹不准确性
- c++ - 如何指示容器中的多态函子完成其工作并返回结果?