所以,我想知道,是否可以在不使用@ bot.command的情况下在某个命令之间添加延迟?
这一直是个问题,由于最近我添加了一个Currency命令,用户可以将其发送为垃圾邮件。因此,我希望每个用户的命令之间有4-8分钟的延迟,但我在这里找不到它。
这是我的代码:
if message.content.startswith('=work'):
f=open("bal_" + user.name + ".txt", 'r+')
bal = f.read()
balance = f.read()
print(str(bal))
workvalue = (randint(12, 100))
s = bal
i = int(s)
total = i+workvalue
f.seek(0)
f.truncate()
f.write(str(total))
print('earned: ' + str(workvalue))
print('Balance: ' + str(balance))
print('Total: ' + str(total))
embed = discord.Embed(title="You worked for: $" + str(workvalue), description='', color=0xdb7991)
await client.send_message(message.channel, embed=embed)
f.close()
老实说,其中一些来自我处理过的其他命令(文件创建,团队等),但是我还无法添加延迟还
答案 0 :(得分:0)
不确定这是否是您要查找的内容,但是如果他们执行命令已经过了8分钟,它将允许他们再次执行此操作。
work_timer = {}
if message.content.startswith('=work'):
try:
work_time = work_timer[message.author.id]
work_timer[message.author.id] = time.time()
if work_timer[message.author.id] - work_time <= 480:
await client.send_message(message.channel, "You're only allowed to work every 8 minutes")
return
else:
await client.send_message(message.channel, "{} works".format(message.author.mention))
except KeyError:
work_timer[message.author.id] = time.time()
await client.send_message(message.channel, "{} works".format(message.author.mention))