Выдача роли по команде

Писал команду для того, что бы юзер, который ее прописал получил роль, но почему то роль она не добавляет, но при этом Embed выходит в чат :).

Код:

@client.command()
async def news(ctx):
    role = discord.utils.get( ctx.guild.roles,id=738095317181923349 )
    await discord.Member.add_roles(role)
    await ctx.send(embed = discord.Embed(description = f'**Вы взяли себе роль {role.mention}**', color=discord.Color.purple()))

В консоль никакой ошибки не выходит


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

Автор решения: onlikerop

Попробуйте использовать функцию discord.guild.get_role(738095317181923349)

→ Ссылка
Автор решения: Fixator10

discord.Member - класс, а не объект.

Для добавления роли участнику, Вам нужен его объект. В вашем случае, вы можете его достать из объекта контекста который передаётся в функцию команды первым аргументом (ctx).

@client.command()
async def news(ctx):
    role = ctx.guild.get_role(
        738095317181923349
    )  # для получения объектов по ID лучше использовать get_-функции, они лучше воспринимаются при чтении кода
    await ctx.author.add_roles(role)
    await ctx.send(
        embed=discord.Embed(
            description=f"**Вы взяли себе роль {role.mention}**",
            color=discord.Color.purple(),
        )
    )
→ Ссылка