Изменение цвета роли пользователя для выбора шестнадцатеричного значения в discord.py - PullRequest
1 голос
/ 25 февраля 2020
async def vanity(ctx, rolename=None, hexcolour=None):
    savepath = "--"
    userFile = os.path.join(savepath, str(ctx.author.id) + ".txt")
    server = client.get_guild(--)
    if os.path.exists(userFile):
        await ctx.send("No")
    if rolename == None:
        await ctx.send("Please include a name")
    elif hexcolour == None:
        await ctx.send("Please include a hexadecimal colour value")
    elif os.path.exists(userFile):
        vanityFile = open(userFile, "a+")
        vanityFile = vanityFile.read()
        await ctx.send(vanityFile)
        vanityrole = server.get_role(int(vanityFile))
        vanityrole = vanityrole.edit(name = str(rolename), colour = int("0x" + hexcolour, 16))
    else:
        vanityFile = open(userFile, "a+")
        vanityrole = await server.create_role(name = str(rolename), colour = int("0x" + hexcolour, 16))
        vanityFile = vanityFile.write(str(vanityrole.id))
        await client.add_roles(ctx.author, vanityrole)

Это мой код (с некоторыми вещами, пропущенными по соображениям конфиденциальности), когда я запускаю его, я получаю сообщение об ошибке

 vanityrole = await server.create_role(name = str(rolename), colour = int("0x" + hexcolour, 16))
  File "/home/--/.local/lib/python3.7/site-packages/discord/guild.py", line 1589, in create_role
    fields['color'] = colour.value
AttributeError: 'int' object has no attribute 'value'

Мой код предназначен для того, чтобы кто-то мог редактировать / создавать свою роль тщеславия сервер. В данный момент я борюсь с тем, как получить цвет, который пользователь вводит в команду, и установить для него роль с помощью шестнадцатеричного цвета.

...