📜  discord.py 检查消息是否有某种反应 - Python (1)

📅  最后修改于: 2023-12-03 14:40:45.227000             🧑  作者: Mango

Discord.py - 检查消息是否有某种反应

在 Discord 中,您可以使用反应表情符号对消息进行反应。同时,您可以使用 Discord.py 库来检查消息是否有某种反应。这很有用,因为它可以让您的机器人根据用户的反应执行不同的操作。

安装与设置

要开始使用 Discord.py 检查消息反应的功能,您需要先安装 Discord.py 库。使用以下命令安装:

pip install discord.py

安装完成后,您需要创建一个 Discord 机器人并获取其令牌。您可以遵循 Discord 官方文档中的说明操作,链接在此处:https://discordpy.readthedocs.io/en/latest/discord.html

现在,您可以使用以下代码段创建一个 Discord 客户端,并连接到 Discord 服务器:

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('Logged in as {0.user}'.format(client))
检查消息是否有反应

假设您已经从 Discord API 获取了一个消息对象 message,现在想要检查它是否有某种反应表情符号,例如👍。您可以使用 discord.Message.reactions 属性来获取消息的反应列表,然后检查该列表中是否有 emoji 属性匹配目标表情符号。

target_emoji = '👍'

reactions = message.reactions

for reaction in reactions:
    emoji = reaction.emoji
    if emoji == target_emoji:
        # 该消息有目标表情符号的反应

如果消息具有目标表情符号的反应,上面的代码中的 if 语句将为真,并且您可以在其中执行希望执行的代码。

整合代码

以下是用于检查 Discord 消息是否有目标表情符号的完整代码。请注意,您需要替换 <your-bot-token><channel-id>,以分别为您的机器人提供令牌和要监视的通道 ID。

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('Logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if message.channel.id == <channel-id>:
        target_emoji = '👍'

        reactions = message.reactions

        for reaction in reactions:
            emoji = reaction.emoji
            if emoji == target_emoji:
                # 消息有目标表情符号的反应
                print('Message with target reaction found')
                # 在这里执行您希望执行的操作

client.run('<your-bot-token>')

现在,您的 Discord 机器人可以检查消息是否有目标表情符号的反应,并相应地执行操作。