有没有一种方法可以使漫游器响应三个消息之一,每个消息对一组消息都有自己的响应?

时间:2020-01-25 02:33:49

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

我有一个借口发生器,决定将其转移到机器人上。从我所看到的命令是分支路径。它会询问您,然后做出响应,然后根据您之前的回答再次询问。

问题是QuestionOneOne = int(input())QuestionOneTwo = int(input())QuestionOneThree = int(input())。我了解他们的工作方式,但不了解如何使它在Discord上工作,在Discord上,您会问这些问题,例如这三行代码如何在命令提示符下寻找响应。

TL; DR:int(input())使机器人在命令提示符下寻找响应。我不知道如何使其在聊天中显示。

这是问题所在的代码。如果此部分固定,则可以正常工作。

@client.command()
async def yote(ctx):
  await ctx.send("Welcome to the EXCUSE GENERATOR")
  await ctx.send("This is a generator that creates a random EXCUSE for you")
  await ctx.send("What do you need an excuse for?")
  await ctx.send("1: I forgot")
  await ctx.send("2: I lost")
  await ctx.send("3: I didn't do")
  QuestionOne = int(input())
  if QuestionOne == 1:
    await ctx.send("What did you forget?")
    await ctx.send("1: Homework")
    await ctx.send("2: An object")
    await ctx.send("3: A concept")
    QuestionOneOne = int(input())
  elif QuestionOne == 2:
    await ctx.send("What did you lose?")
    await ctx.send("1: Something expensive")
    await ctx.send("2: Something cheap")
    await ctx.send("3: Someone")
    QuestionOneTwo = int(input())
  elif QuestionOne == 3:
    await ctx.send("What didn't you do?")
    await ctx.send("1: Your homework")
    await ctx.send("2: An errand")
    await ctx.send("3: Something important")
    QuestionOneThree = int(input())
    Thing = str(input())

1 个答案:

答案 0 :(得分:1)

您应该使用Client.wait_for / Bot.wait_for方法,并为"message"指定event
您还需要添加一张支票,例如用于频道或作者,整数输入等。