📜  wait_for_message 定义 (1)

📅  最后修改于: 2023-12-03 15:05:54.187000             🧑  作者: Mango

定义 wait_for_message

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))

上述例子中,当用户发送一条消息后,机器人会等待用户回复,并将回复内容输出到消息频道。

注意事项
  1. 使用 wait_for_message 函数需要在异步上下文中使用 await
  2. wait_for_message 函数只会等待一个相应的消息,等待多次消息需要多次调用该函数。
  3. check 参数在筛选消息时非常有用,可以让你只等待特定条件下的消息。例如,你可以使用 check=lambda m: m.content == 'hello' 只等待消息内容为 'hello' 的消息。