@shadowzxc
я

Как сделать команду которая будет создавать и выдавать роль?

Как сделать команду которая будет создавать роль с названием которое будет написано в аргументе, цвет который также будет написан в 2 аргументе и выдавать ее тому кто выполнил эту команду? Вот код в котором пытался что-то сделать:
@bot.command()
async def createclan(ctx, arg, user: discord.User = None):
    await ctx.message.delete()
    with open("c:/Python/TOXBOT/database.json", "r", encoding = "utf-8") as read_file:
        data = json.load(read_file)
    if user is None:
        user = ctx.author
    clanleader = discord.utils.get(ctx.guild.roles, id = 772142471118716970)
    for role_author in ctx.author.roles:
        if role_author == clanleader:
            embed = discord.Embed(description = "У вас уже имеется клан!")
            embed.set_footer(text = f'Выполнил(а) {str(user)}', icon_url = user.avatar_url)
            await ctx.send(embed = embed, delete_after = 20)
            break
    else:
        if data[str(ctx.author.id)]["Баланс"] >= 10000:
            data[str(ctx.author.id)]["Баланс"] -= 10000
            author = ctx.message.author
            guild = ctx.guild
            await guild.create_role(user, name = f"{arg}", colour = discord.Colour(0xffffff))
            data[str(ctx.author.id)]["Клан"] = arg
            await ctx.author.add_roles(clanleader)
            embed = discord.Embed(description = f'Вы успешно создали клан под названием **{arg}**!')
            embed.set_footer(text = f'Выполнил(а) {str(user)}', icon_url = user.avatar_url)
            await ctx.send(embed = embed, delete_after = 20)
        else:
            embed = discord.Embed(description = f'У вас недостаточно :coin:!')
            embed.set_footer(text = f'Выполнил(а) {str(user)}', icon_url = user.avatar_url)
            await ctx.send(embed = embed, delete_after = 20)
    with open("c:/Python/TOXBOT/database.json", "w", encoding = "utf-8") as write:
        json.dump(data, write)
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 1
@UberPool
Python/JS coder
Пример создания и выдачи роли автору сообщения:
role = discord.utils.get(ctx.guild.roles, name="role to add name", color=<colour>)
user = ctx.message.author
await user.add_roles(role)


Подробнее в документации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы