如何使用 discord.py 创建颜色角色

时间:2021-02-01 09:39:12

标签: discord discord.py discord.py-rewrite

我正在尝试创建一个命令,通过在消息中输入它的颜色来创建一个角色,但是我一直收到这个错误

<块引用>

discord.ext.commands.errors.CommandInvokeError:命令引发异常:TypeError:role() 缺少 1 个必需的仅关键字参数:'color'


    @commands.command(aliases=['make_role'])
    @commands.has_permissions(manage_roles=True)
    async def role(self, ctx, *, name,color):
        guild=ctx.guild
        await guild.create_role(name=name, color=colors)
        await ctx.send(f'Role `{name}` has been created, color is {colors}')

2 个答案:

答案 0 :(得分:0)

函数参数中的星号 * 导致了您遇到的问题。 星号告诉函数应该将以下参数视为放入单个参数中的一定数量的变量。因此,它假定您使用 !role Gordon Freeman Blue 键入的所有内容都被视为 name 参数。所以当你 print(name) 时,它会输出 Gordon Freeman Blue

一个简单的解决方法是移动参数位置,因为颜色通常只是一个词。

async def role(self, ctx, color, *, name):

顺便说一句,这一行会导致错误,因为您在 s 上添加了额外的 color=colors

await guild.create_role(name=name, color=colors)

答案 1 :(得分:0)

一些事情:

  1. 您没有名称为颜色的变量。
  2. 颜色是一个类 “colour (Union[Colour, int]) – 角色的颜色。默认为 Colour.default()。这也是颜色的别名。” 例如,你可以看到这个 discord.Colour(0xa45141) 创建颜色