wait_for_message可以检查多个内容吗?

时间:2018-01-17 22:31:05

标签: python python-3.x python-asyncio discord discord.py

我正在等待一条消息:

msg = await bot.wait_for_message(author=message.author, content = '.hit')

我想要做的是等待消息,然后继续处理2种不同的内容,例如:

msg = await bot.wait_for_message(author=message.author, content = '.hit' or '.pass')

虽然这不会引发任何错误,但它不起作用。我查了一下:

if msg.content == (".hit"):

    print("He hits.")

elif msg.content == (".pass"):

    print("He passes.")

else:

   print("It did not work.")

有人知道这是否可行?谢谢!

2 个答案:

答案 0 :(得分:1)

您可以这样做:

msg = (await bot.wait_for("message")).content
    if msg == ".hit":
        print("He hits!")
    elif msg == ".pass":
        print("He passes!")
    else:
        print("He doesn't do anything")

答案 1 :(得分:0)

content = '.hit' or '.pass'

将不会按照您的想法执行,它(如果您在空闲状态下检查)将只返回'.hit'您想要做的事情,只是不要包含content关键字参数并自己检查内容所以

msg = await bot.wait_for_message(author=message.author)
if msg:
    if msg.content == '.hit':
        print('He hits')
    elif msg.content == '.pass':
        print('He passes')
    else:
        print('He didn\'t give a valid option')

我首先放置if msg分支的原因是,如果您设置了超时,机器人将返回None代替discord.Message