【问题标题】:Add cooldown to command[Discord.py]为命令添加冷却时间[Discord.py]
【发布时间】:2019-11-07 03:06:47
【问题描述】:

我最近开始学习python,不知道如何为命令设置冷却时间。我需要用户每12小时获得一次金币。如果时间还没有过去,我需要显示剩余时间。

import datetime
import json

def save_data(users):
    with open('files/users_info.json', 'w') as f:
        json.dump(users, f)

async def add_money(users, user, money):
    users[str(user.id)]['money'] += money

@commands.command(name='daily')
    async def daily(self, ctx):
        with open('files/users_info.json', 'r') as f:
            users = json.load(f)
        # timer...
        #
        # if time >= 43200 (seconds)
        #     await add_money(users, ctx.author, 1000)
        #     await ctx.send('Gave 1000 coins')
        # else:
        #     hours...
        #     min...
        #     sec...
        #     await ctx.send(f'Left {hours}, {min}, {sec}')

        save_data(users)

【问题讨论】:

标签: python discord.py


【解决方案1】:

您需要在命令上方使用这一行: @commands.cooldown(1, 43200, commands.BucketType.user).

所以你得到:

@commands.cooldown(1, 43200, commands.BucketType.user)
@commands.command(name='daily')
    async def daily(self, ctx):
        with open('files/users_info.json', 'r') as f:
            users = json.load(f)

其中 1 是您可以在每个时间间隔调用命令的次数,43200 (60*60*12) 是以秒为单位的时间间隔,commands.buckettype.user 定义每个用户的限制。

【讨论】:

    猜你喜欢
    • 2021-04-21
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 2021-05-13
    • 2021-03-30
    相关资源
    最近更新 更多