📅  最后修改于: 2023-12-03 15:05:54.187000             🧑  作者: Mango
wait_for_message
是一个 Discord.py 中的异步函数,用于等待特定条件下的消息。
await client.wait_for(event, *, check=None, timeout=None)
参数解释:
event
:等待的事件类型,一般为 message
。check
:可选参数,一个可调用对象,当返回值为真时会终止等待。默认为 None
,即一直等待。timeout
:可选参数,等待的最长时间,单位为秒。默认为 None
,即一直等待。使用 wait_for_message
函数需要先获取一个 Discord.Client
对象,可以这样初始化:
import discord
client = discord.Client()
等待消息的例子:
@client.event
async def on_message(message):
# 忽略机器人自己发送的消息
if message.author == client.user:
return
# 等待用户回复
response = await client.wait_for('message', check=lambda m: m.author == message.author)
# 回复用户
await message.channel.send('你的回复是:{}'.format(response.content))
上述例子中,当用户发送一条消息后,机器人会等待用户回复,并将回复内容输出到消息频道。
wait_for_message
函数需要在异步上下文中使用 await
。wait_for_message
函数只会等待一个相应的消息,等待多次消息需要多次调用该函数。check
参数在筛选消息时非常有用,可以让你只等待特定条件下的消息。例如,你可以使用 check=lambda m: m.content == 'hello'
只等待消息内容为 'hello' 的消息。