如何使漫游器说由变量而不是回复命令激活的消息?

时间:2019-01-20 20:03:01

标签: python discord.py

我正在尝试制作一个Trivia机器人,它具有一个命令,使其在30秒内从30-1倒数。当达到1时,我不知道如何在不和谐的聊天中说些什么。

我已经尝试浏览API。

foo<vector>()

我希望questionTimer = 1时它可以在聊天中说出时间

2 个答案:

答案 0 :(得分:2)

如果您希望它打印出每个数字,您可以执行类似的操作

@client.command()
async def quiz():
  seconds = 30
  while seconds > 0:
    await client.say(seconds)
    await asyncio.sleep(1)
    seconds-=1

  await client.say("Done")

但是,如果您只想等待30秒然后显示一条消息,则可以执行类似的操作

@client.command()
async def quiz():
  await asyncio.sleep(30)
  await client.say("Done")

答案 1 :(得分:0)

根据您使用的是Discord.py的重写版本还是旧的异步版本,我建议以下内容:

Discord.py异步(0.16.x):

@commands.command(name="quiz", aliases=["q"])
async def quiz():
    quizMsg = 'Question of the quiz'
    msg = await ctx.send(f"{quizMsg}\n\n{secs}s left !")
    secs = 30
    while secs > 0:
        await asyncio.sleep(1)
        await msg.edit(content = f"{quizMsg}\n\n{secs}s left !")
        secs--
    await ctx.send("Time is up ! The answer was...")

Discord.py重写(1.0.x):

{{1}}

介意两种方法之间的区别