如何制作警告命令和警告列表 discord.py

How to make a warn command and a warnings list discord.py

我正在 discord.py 重写并希望制作一个名为 ~warn <user> <reason> 的命令来警告用户,并 ~warns <user> 显示用户拥有的警告数量。我一直在寻找这方面的教程,但几乎所有教程都在 discord.js 中,而在 discord.py 中的都是异步的。有人可以帮我编码吗?

你可以用JSON Module,我来发命令,

async def update_data(users, user):
    if not f'{user.id}' in users:
        users[f'{user.id}'] = {}
        users[f'{user.id}']['warns'] = 0

async def add_warns(users, user, warns):
    users[f'{user.id}']['warns'] += 1

@client.command()
async def remove_warn(ctx, user: discord.Member, amount: int=None):
    with open('warns.json', 'r') as f:
        users = json.load(f)

    amount = amount or 1

    await update_data(users, user)
    await add_warns(users, user, -amount)

    if users[f'{user.id}']['warns'] <= 0:
        with open('warns.json', 'w') as f:
            del users[f'{user.id}']['warns']
            del users[f'{user.id}']
            f.write(json.dumps(users, indent=4))
        return

    else:

        with open('warns.json', 'w') as f:
            json.dump(users, f, sort_keys=True, ensure_ascii=False, indent=4)

        await ctx.send(f'Removed {amount} warn for {user}')
        return

@client.command()
async def warns(ctx, user: discord.Member=None):
    user = user or ctx.author
    try:
        with open('warns.json', 'r') as f:
            users = json.load(f)

        warns = users[f'{user.id}']['warns']

        await ctx.send(f'{user} has {warns} warnings')
    except:
        await ctx.send(f'{user} dont have any warnings.')