Discord.py|避免同一用户对机器人发送的消息做出不止一种反应

Discord.py | Avoid getting more than one reaction by a same user to a message sent by a bot(Discord.py|避免同一用户对机器人发送的消息做出不止一种反应)
本文介绍了Discord.py|避免同一用户对机器人发送的消息做出不止一种反应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试制作一个命令,它将发送一个嵌入的命令,它有两个反应,一个勾号和一个十字,我想让用户只对其中一个反应做出反应,而不是对这两个反应都做出反应。我还需要一些帮助来制定一个系统,以确保做出反应的人具有特定的角色。如有任何帮助,将不胜感激!

推荐答案

使用on_raw_reaction_add()事件可以做到这一点。

@bot.event
async def on_raw_reaction_add(payload): # checks whenever a reaction is added to a message
                                        # whether the message is in the cache or not

     # check which channel the reaction was added in
    if payload.channel_id == 112233445566778899:

        channel = await bot.fetch_channel(payload.channel_id)
        message = await channel.fetch_message(payload.message_id)

        # iterating through each reaction in the message
        for r in message.reactions:

            # checks the reactant isn't a bot and the emoji isn't the one they just reacted with
            if payload.member in await r.users().flatten() and not payload.member.bot and str(r) != str(payload.emoji):

                # removes the reaction
                await message.remove_reaction(r.emoji, payload.member)

引用:

  • on_raw_reaction_add()
  • Message.remove_reaction()
  • Reaction.users()
  • User.bot
  • RawReactionActionEvent-(负载)
  • Message.reactions
  • Client.fetch_channel()
  • TextChannel.fetch_message()

这篇关于Discord.py|避免同一用户对机器人发送的消息做出不止一种反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)