Дать роль при повышении уровня discord.py

@Bot.event
async def on_message(message):
    with open('lvl.json', 'r') as f:
        users = json.load(f)

    async def update_data(users, user):
        if not user in users:
            users[user] = {}
            users[user]['exp'] = 0
            users[user]['lvl'] = 1

    async def add_exp(users, user, exp):
        users[user]['exp'] += exp

    async def add_lvl(users, user):
        exp = users[user]['exp']
        lvl = users[user]['lvl']
        if exp > lvl:
            await message.channel.send(f'{message.author.mention} повысил свой уровень!')
            users[user]['exp'] = 0
            users[user]['lvl'] = lvl + 1

    async def new_role(users, user):
        role = discord.utils.get(user.guild.roles, id=692360141466763346)
        lvl = users[user]["lvl"]
        if lvl > 2:
            await user.add_roles(role)
            await message.channel.send(f'OK')

    await new_role(users, str(message.author.id))

    await update_data(users, str(message.author.id))
    await add_exp(users, str(message.author.id), 0.1)
    await add_lvl(users, str(message.author.id))
    with open('lvl.json', 'w') as f:
        json.dump(users, f)
    await Bot.process_commands(message)

При попытке дать роль пользователю когда его уровень выше 2 выдает такую ошибку:

role = discord.utils.get(user.guild.roles, id=692360141466763346)
AttributeError: 'str' object has no attribute 'guild' 

Уровни,id,exp записанные в json вот так:

{"488043015894466560": {"exp": 0, "lvl": 4}, "736672829633855578": {"exp": 1.6000000000000003, "lvl": 2}}

Подскажите как исправить?


Ответы (0 шт):