繁体   English   中英

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

[英]How to create color role with discord.py

我正在尝试创建一个命令,通过在消息中键入它来创建一个具有其颜色的角色,但是我不断收到此错误

discord.ext.commands.errors.CommandInvokeError:命令引发异常:TypeError:角色()缺少1个必需的仅关键字参数:“颜色”


    @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}')

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

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

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

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

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

几件事:

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

我同意@KELO 的回答,但错误是当我们使用#添加颜色时它永远不会起作用,因为 discord.py 将它作为通道。 所以你应该从 DMS 获得所需的 arguments

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM