#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
Я получил эту команду редактирования роли, чтобы изменить цвет и имя
Мой код:
@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 <шестнадцатеричный код / цвет>»
это изменит цвет и сохранит имя.
И наоборот (только измените имя и сохраните цвет). Возможно ли это? Мне всегда приходится вводить оба аргумента, чтобы что-то происходило
Я слышал, как печатают.Необязательно [], но значения по умолчанию сбрасывают их, например, имя на «новая роль».
Ответ №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
или оба colour
amp; name