Discord.py|避免同一用户对机器人发送的消息做出不止一种反应 [英] Discord.py | Avoid getting more than one reaction by a same user to a message sent by a bot
本文介绍了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|避免同一用户对机器人发送的消息做出不止一种反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文