如何使用十六进制颜色代码参数更改角色颜色?

时间:2021-04-25 18:42:59

标签: python python-3.x discord.py

我正在尝试使用带有十六进制颜色代码参数的命令来更改角色的颜色(角色的名称是用户的名称)。我尝试了以下代码,但机器人什么也没做。它具有管理员权限和 discord.Intents.all()

@client.command(name="color")
async def role_color(ctx, arg):
    name = ctx.author.name
    guild_id = ctx.guild.id
    guild = discord.utils.find(lambda g: g.id == guild_id, client.guilds)
    role = discord.utils.get(guild.roles, name=name)
    await role.edit(color=f"0x{arg}")

1 个答案:

答案 0 :(得分:0)

Role.edit 中所述,您必须传入 discord.Colour 的实例或 int 值。这意味着您必须转换 arg。幸运的是,您希望 arg 是十六进制代码,因此我们可以立即将其转换为 int(无需添加“0x”)。

await role.edit(color=int(arg, 16))