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|避免同一用户对机器人发送的消息做出不止一种反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Discord.py|避免同一用户对机器人发送的消息做出不止一种反应


猜你喜欢
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01