Бот Discord.py не может отправить сообщение, если участник не находится в файле JSON - PullRequest
1 голос
/ 17 января 2020
@bot.command()
async def coincount(ctx,*, member: discord.Member = None):
    member = ctx.author if not member else member
    member_id = str(member.id)
    with open('users.json', 'r') as f:
        users = json.load(f)

        coins = users[member_id]['coins']
        if member_id in users:
            if coins > 1:
                await ctx.send(f'{member.mention} has {coins} coins.')
            if coins == 1:
                await ctx.send(f'{member.mention} has {coins} coin.')
        else:
            await ctx.send(f'{member.mention} has no coins.')

Нет трассировки. Бот отправляет соответствующее сообщение, если участник находится в файле, но ничего не делает, если его нет.

1 Ответ

3 голосов
/ 17 января 2020

Если идентификатор участника отсутствует в вашем файле JSON, то coins = users[member_id]['coins'] вызовет KeyError.
Вы должны переместить его в оператор if.

Возможно, он не поднимается трассировка из-за обработки ошибок в вашем on_command_error.

...