消息之间的延迟(重写之前)

时间:2019-03-10 21:26:06

标签: python discord.py

所以,我想知道,是否可以在不使用@ 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()

老实说,其中一些来自我处理过的其他命令(文件创建,团队等),但是我还无法添加延迟

1 个答案:

答案 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))