NextCord ошибка определения ботом id пользователя

Рейтинг: 0Ответов: 0Опубликовано: 27.02.2023

Перешёл с рабочего проекта Discord.py на NextCord, всё работает кроме этого. По задумке бот должен выполнять функционал системы рангов, что он вполне себе делает и при помощи команды /level отображать текущий уровень пользователя. Данный участок кода, работающий ранее на discord.py, на новой библиотеке не желает считывать id пользователя, что отправил команду, и выдаёт ошибку.

@bot.slash_command(description="View your level")
async def level(ctx, member: nextcord.Member = None):
    if not member:
        user = ctx.author
        with open('users.json', 'r') as f:
            users = json.load(f)
        lvl = users[str(ctx.guild.id)][str(user.id)]['level']
        embed = nextcord.Embed(title=f"You are at level {int(lvl)}", color=nextcord.Color.blue())
        embed.set_author(name=ctx.author, icon_url=ctx.author.avatar_url)
        await ctx.send(embed=embed)
        # await ctx.send(f'You are at level {lvl}!')
    else:
        id = member.id
        with open('users.json', 'r') as f:
            users = json.load(f)
        lvl = users[str(id)]['level']
        embed = nextcord.Embed(title=f"{member.mention} is at level {lvl}", color=nextcord.Color.blue())
        embed.set_author(name=member, icon_url=member.avatar_url)
        await ctx.send(embed=embed)

Ошибка следующего типа:

Ignoring exception in command <nextcord.application_command.SlashApplicationCommand object at 0x0000027C9BBED180>:
Traceback (most recent call last):
  File "C:\Development\Python\DiscordBot\venv\lib\site-packages\nextcord\application_command.py", line 906, in invoke_callback_with_hooks
    await self(interaction, *args, **kwargs)
  File "C:\Development\Python\DiscordBot\main.py", line 104, in level
    user = ctx.author
AttributeError: 'Interaction' object has no attribute 'author'

The above exception was the direct cause of the following exception:

nextcord.errors.ApplicationInvokeError: Command raised an exception: AttributeError: 'Interaction' object has no attribute 'author'

Просидев много времени в поиске решения проблемы перепробовал многое. В официальной документации считывание id производится как раз строкой user = ctx.author (при добавлении после author.id ошибка не меняется).

Я придерживаюсь стороны, чтобы сначала облазить весь интернет, после уже писать на форумы с вопросами. Надеюсь что найдётся знающий человек и хотя бы наведёт на вероятно пропущенную тему в интернете. Заранее спасибо за содействие.

Ответы

Ответов пока нет.