Как установить необязательный аргумент в discord.py? - PullRequest
1 голос
/ 18 июня 2020

Я попытался провести исследование в Интернете, но никакие другие вопросы не помогли мне решить мою проблему.

Вот мой сценарий.

Я делаю команду отключения звука в discord.py .

Я хочу, чтобы время было необязательным, но если время не указано, я хочу, чтобы этот аргумент был частью причины.

Разъяснение того, что я имею в виду:

@client.command()
@commands.has_permissions(kick_members=True)
async def mute(ctx, member: Member = None, time: int = None, *, reason = None):
    pass

Здесь, если time равно None, сделайте его частью reason.

Бот примет оба из них:

!mute @user 1h spam и !mute @user spam

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 18 июня 2020

При желании вы можете подождать асинхронно, а затем включить микрофон пользователя:

@bot.command()
async def mute(ctx, member: discord.Member, time: typing.Optional[int]):
    await member.edit(mute=True)
    if time:
        await asyncio.sleep(time)
        await member.edit(mute=False)
1 голос
/ 18 июня 2020

Вы можете установить аргумент по умолчанию:

@bot.command()
async def mute(ctx, member: discord.Member, time=None):
    if not time:
        # Mute indefinitely? do whatever you want
    else:
        # Mute for x amount of time

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...