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|避免同一用户对机器人发送的消息做出不止一种反应


基础教程推荐
猜你喜欢
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01