You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py中mod-mail bot监听指定消息反应并执行对应操作的方法

Discord Mod-Mail Bot 多反应监听实现方案

实现逻辑

  • 调整校验函数规则,允许绿色、红色两种emoji的触发请求(排除bot自身发送的反应)
  • 捕获到用户点击的反应后,根据emoji类型分支执行对应服务器的联络逻辑

调整后代码示例

import asyncio

# 调整校验函数:同时匹配两种目标emoji,排除bot自身的反应
def reaction_check(reaction, user):
    return str(reaction.emoji) in ['🟢', '🔴'] and user != bot.user

try:
    reaction, user = await bot.wait_for('reaction_add', timeout=3600.0, check=reaction_check)
except asyncio.TimeoutError:
    await concept_msg.delete()
    await ctx.author.send("No moderator responded, wait some time and try again.")
    return
else:
    # 根据点击的emoji分支处理
    if str(reaction.emoji) == '🟢':
        # 绿色反应对应的服务器联络逻辑,原有逻辑放在这里
        concept_embed_dict = concept_embed.to_dict()
        # 后续A服务器处理逻辑...
    elif str(reaction.emoji) == '🔴':
        # 红色反应对应的服务器联络逻辑,在这里补充B服务器的处理代码
        # 后续B服务器处理逻辑...

注意事项

  • 发送提示消息后需要按顺序主动添加两个反应,避免用户看到消息时反应还没加载完成
  • 如果后续需要扩展更多服务器,只需要在reaction_check的emoji列表里新增对应emoji,再新增对应分支判断即可

内容的提问来源于stack exchange,提问作者KipZonderKop101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:57:03