Дать роль при повышении уровня 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}}
Подскажите как исправить?