记录使用命令的次数偏差用户ID [Discord.py]

时间:2018-05-27 04:02:54

标签: python discord discord.py

我正在尝试记录在特定用户上使用命令的次数,然后将其写入要在每次触发命令时添加的文件。

这是我试图为

执行此操作的命令
@client.command(pass_context=True)
async def boop(ctx):
    mentions = ctx.message.mentions
    for user in mentions:
        await client.say("{} has been Boop'ed!".format(user))

我正在尝试将一个数字和userid一起写入json文件。

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是维护一个字典,将用户映射到他们被提到的次数。然后,您只需使用json.dump将其发送到文件即可。您应该注意,这不能很好地扩展。如果您发现自己经常更新此文件,则应考虑切换到异步数据库(特别是因为文件写入是阻塞操作)。

import json
from collections import Counter

boop_dict = Counter()

@client.command(pass_context=True)
async def boop(ctx, *users: discord.User):
    for user in users:
        await client.say("{} has been Boop'ed!".format(user))
        boop_dict[user.id] += 1
    with open('boop_file.json', 'w+') as f:
        json.dump(boop_dict, f)