Как выдать любую роль по команде Discord.py

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

Мне нужно, чтобы мой бот выдавал любую указанную роль по команде. Вот мой код:

@commands.has_guild_permissions(administrator=True)
async def give_role(ctx, discord: Member, role: discord.Role):
    await ctx.message.delete()
    guild = bot.get_guild(id)
    role = guild.get_role(id)
    await Member.add_roles(role)

Ответы

▲ 0

Попробуйте переделать команду следующим образом:

from discord import Member, Role

from discord.ext import commands


class Example(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.command(name='give')
    @commands.has_guild_permissions(administrator=True)
    async def give_role(self, ctx: commands.Context, member: Member, role: Role):
        await member.add_roles(role)

В указанном вами коде в методе give_role отсутствует аргумент Member, также не обязательно получать объект с ролью, если её уже указали при вводе команды.