<p>基于Doyousketch2的回答,我已经用<code>@client.command</code>编写了另一种方法,因为它需要更多的调整。我还包括了所用的时间(四舍五入到最接近的整秒)</p>
<p><strong>发生了什么变化</strong>:</p>
<ul>
<li>使用了<code>@client.command</code>而不是“if message.content==”!类型'</li>
<li><code>message.channel.send</code>现在{<cd4>}在这里</li>
<li><code>message.author</code>更改为<code>ctx.author</code>,因为<code>message</code>将给出一个错误<code>name 'message' is not defined</code></li>
</ul>
<pre class="lang-py prettyprint-override"><code>@client.command()
async def type(ctx):
starttime = time.time()
answer = 'Just a nice little test'
timer = 17.0
await ctx.send(f"You have {timer} seconds to type: {answer}")
def is_correct(msg):
return msg.author==ctx.author
try:
guess = await client.wait_for('message', check=is_correct, timeout=timer)
except asyncio.TimeoutError:
return await ctx.send("You took too long :(")
if guess.content == answer:
await ctx.send("You got it!")
fintime = time.time()
total = fintime - starttime
await ctx.send(f"{round(total)} seconds")
else:
await ctx.send("Nope, that wasn't really right")
fintime = time.time()
total = fintime - starttime
await ctx.send(f"{round(total)} seconds")
</code></pre>