【问题标题】:Discord.py Roles editingDiscord.py 角色编辑
【发布时间】:2021-04-15 08:30:30
【问题描述】:

我得到了这个角色编辑命令来改变颜色和名字

我的代码:

@client.command()
async def editrole(ctx, role: discord.Role, colour: discord.Colour, name):
    await role.edit(colour = colour, name = name)
    embed = discord.Embed(
        description = (f'The changes for role {role} have been applied.'),
        colour = discord.Colour.orange()
    ) 
    await ctx.send(embed=embed)

但是我只希望两者中的一个生效,例如,如果我说“editrole ” 它会改变颜色并保留名称。

反之亦然(仅更改名称并保留颜色)。那可能吗?我总是必须输入两个参数才能使事情发生

我听说过 typing.Optional[] 但默认设置会将它们重置为例如名称为“新角色”。

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    您可以执行以下操作来保持 name 可选。但我认为您不能保留colour 可选。如果您希望colour 是可选的,您可以将其保留为最后一个参数并将其默认为None,但name 将不是可选的。

    @client.command()
    async def editrole(ctx, role: discord.Role, colour: discord.Colour, *, name = None):
        await role.edit(colour = colour)
        if name != None:
            await role.edit(name = name)
    
        embed = discord.Embed(
            description = (f'The changes for role {role} have been applied.'),
            colour = colour
        ) 
        await ctx.send(embed=embed)
    

    因此,您可以只提供colour 或同时提供colourname

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-22
      • 2021-09-30
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      相关资源
      最近更新 更多