@Telmor

Как создать роль с цветом и названием в discord.py?

Я хочу, чтобы человек за плату создавал свою роль, у которой будет имя и цвет которые он хочет.
Мой код:

@commands.command(
        aliases=['создатьроль']
    )
    async def createrole(self,ctx, name: str, color):
        abalance = self.collection.find_one({"_id": ctx.author.id})["balance"]
        if abalance >= 4000:
            guild = ctx.guild
            role = await guild.create_role(name=name, colour=discord.Colour(color))
            #role = discord.utils.get(ctx.guild.roles, name="role to add name")
            user = ctx.message.author
            await user.add_roles(role)
            emb=discord.Embed(
                title='Создание Личной Роли',
                description=f'{ctx.author.mention}, вы успешно **создали** роль {role.mention} за 4000 осколков.'
            )
            emb.set_thumbnail(url=ctx.author.avatar_url)
            await ctx.send(embed=emb)
        else:
            emb=discord.Embed(
                title='Создание Личной Роли',
                description=f'{ctx.author.mention}, у вас нет 4000 осколков.'
            )
  • Вопрос задан
  • 736 просмотров
Решения вопроса 1
discord.Color принимает в качестве аргумента в конструкторе целое число (int). Вы передаете строку (т.к. если тип аргумента не указан, discord.py передает саму строку аргумента).

Либо передавайте число:
async def cmd(ctx, arg: int):

Либо используйте конвертер цвета:
async def cmd(ctx, arg: discord.Color):
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы