Как передать аргумент COLOR из функции конвертированный в 0x?
нужен способ решения задачи.
На вход мы получаем команду со следующими аргументами:
async def create_family(inter, familyname, colour, leader: disnake.Member):
В colour поступает HTML код цвета, который нужно конвертировать с помощью 0x. Пример: на вход получаем AEEEEEE, на выходе должно получится 0xAEEEEE, пытался сделать так:
familyrole = await guild.create_role(name=familyname, colour=f'0x{colour}')
Не вышло. Попробовал по другому:
sep = 0x
colourforsep = colour
sep.join(colourforsep)
Не получилось, выдает ошибку в строке familyrole = await guild.create_role(name=familyname, colour=f'0x{colour}')
disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'str' object has no attribute 'value'
Помогите решить!!!
Пробовал решение пользователя из комментариев:
class Families:
def str_to_hex(myStr):
base16INT = int(myStr, 16)
hex_value = hex(base16INT)
return hex_value
@bot.slash_command()
async def create_family(inter, familyname, colour, leader: disnake.Member):
for role in inter.author.roles:
if role.id in high_perms:
guild = inter.guild
familyid = uuid.uuid4()
availableColor = str_to_hex(colour)
familyrole = await guild.create_role(name=familyname, colour=disnake.Colour(availableColor))
Ответы (1 шт):
Если я правильно понял, то туда надо передать hex. Написал небольшую функция перевода строки в hex. Попробуйте так
def str_to_hex(myStr):
base16INT = int(myStr, 16)
hex_value = hex(base16INT)
return int(hex_value,0)
async def create_family(inter, familyname, colour, leader: disnake.Member):
.......
availableColour = str_to_hex(colour)
familyrole = await guild.create_role(name=familyname, colour=discord.Colour(availableColour))