首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >消息之间的延迟(重写之前)

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

Stack Overflow用户
提问于 2019-03-10 21:26:05
回答 1查看 70关注 0票数 0

因此,我想知道,是否可以在某个命令之间添加延迟,而不使用@bot.command?

这一直是一个问题,由于我最近添加了一个货币命令,用户可以垃圾邮件。因此,我希望在每个用户的命令之间延迟4-8分钟,但是我还没有在这里找到它。

这是我的密码:

代码语言:javascript
复制
  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()

老实说,其中一些是来自我所做过的其他命令(文件创建、团队等等)。但我还没能延迟

EN

回答 1

Stack Overflow用户

发布于 2019-03-11 03:07:28

不确定这是否是您要查找的内容,但如果在执行命令后8分钟已经过去,它将允许他们再次执行该命令。

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55092569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档