Discord.py перезапись возвращает неправильное сообщение

Я хочу, чтобы мой дискорд-бот выполнял небольшую форму. Однако, когда я ввожу «N» вместо «Нет», я вместо этого получаю ответ, который получил бы, если бы ввел «Y» (вместо «да»). Кто-нибудь может помочь?

@client.command()
async def shad(ctx):
    await ctx.send("Do you like Pugs(Reply with Y/N)")


    def check(m):
        return m.content in ["Y", "N"] and m.channel == ctx.channel

    await client.wait_for("message", check=check)
    await ctx.send("Shad does love you")
    if "N" in ctx.content:
        await ctx.send("Shad does not love you")

person ShaDii    schedule 11.03.2019    source источник
comment
Вы всегда отправляете "Shad does love you" сообщение. Вероятно, он должен быть помещен в else блок после if.   -  person Patrick Haugh    schedule 11.03.2019


Ответы (1)


Вы можете просто сделать

@client.command()
async def shad(ctx):
    await ctx.send("Do you like Pugs?[Y/N]")

    awnser = client.wait_for('message', check=lambda message: message.author == ctx.author)
    if awnser in ['Y', 'y', 'yes', 'Yes']:
        #Do something
    else:
        #do something
person Raphiel    schedule 14.10.2020