gpt4 book ai didi

python - 为命令添加冷却时间[Discord.py]

转载 作者:太空宇宙 更新时间:2023-11-03 20:10:41 24 4
gpt4 key购买 nike

我最近开始学习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)

最佳答案

您需要在命令上方使用这一行:@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 定义限制是针对每个用户的。

关于python - 为命令添加冷却时间[Discord.py],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58736488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com