簡體   English   中英

Discord.py reaction_add 反應檢查適用於每條消息

[英]Discord.py reaction_add reaction check works for every message

我想做,所以你需要用 ✅ 做出反應接受和 ❌ 拒絕,但我的腳本適用於每條消息 - 機器人會在其消息中添加 2 個表情符號,但如果你對其他消息做出這些表情符號的反應它仍然有效,所以我需要制作它因此只有當您對具有這些反應的機器人消息做出反應時它才會起作用。 感謝任何幫助!
代碼:

emojis = ['✅', '❌']
for emoji in emojis:
    await msg.add_reaction(emoji)
                
try:
    emojiWait, user = await client.wait_for('reaction_add', check=lambda r, user: user == ctx.author and r.emoji in emojis, timeout=30.0)
except asyncio.TimeoutError:
    #code when user didn't react for 30s
                
else:
    if emojiWait.emoji == emojis[0]:
        #code when user reacted with ✅ 
    elif emojiWait.emoji == emojis[1]:
        #code when user reacted with ❌

您還必須在 lambda function 中比較消息 ID:

emojiWait, user = await client.wait_for(
    'reaction_add',
    check=lambda r, user: user == ctx.author and r.emoji in emojis and r.message.id == msg.id,
    timeout=30.0,
)

請注意新條件r.message.id == msg.id ,我們在其中檢查反應的消息是否是我們正在觀看的消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM