📜  从消息 discord.py 中获取反应 - Python (1)

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

从消息 discord.py 中获取反应 - Python

在 Discord 机器人开发中,我们经常需要获取用户的反应,以此触发某些特定的操作。本篇文章将介绍如何从消息中获取反应,使用的语言是 Python。

步骤
  1. 创建 discord.py 的客户端,并添加事件处理函数
import discord

client = discord.Client()

@client.event
async def on_message(message):
    # Do something
  1. 在事件处理函数中添加获取反应的代码

使用 wait_for 函数获取用户的反应。这个函数需要以下参数:

  • event:要等待的事件类型,这里是 on_reaction_add
  • check:一个函数,用于检查所接收的事件是否满足某些条件。我们可以在这里指定只处理特定的消息或反应。
  • timeout:等待事件的超时时间。

在本例中,我们等待用户对消息添加反应,并且反应为指定的 emoji。

import discord

client = discord.Client()

@client.event
async def on_message(message):
    def check(reaction, user):
        return user == message.author and str(reaction.emoji) == '😄'

    await message.add_reaction('😄')

    try:
        reaction, user = await client.wait_for('reaction_add', timeout=60.0, check=check)
    except asyncio.TimeoutError:
        await message.remove_reaction('😄', client.user)
    else:
        await message.channel.send(f'{user} 反应了 😄')

client.run('TOKEN')
结论

通过这个例子,您已经知道了如何从 Discord 消息中获取反应。您可以使用此功能触发其他操作,例如将消息添加到数据库或执行某些计算。