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

Discord机器人如何实现@用户ID触发指定回复功能

Discord机器人@指定用户触发回复实现方法

实现逻辑说明

Discord中@用户的消息会被自动解析到message.mentions列表中,你可以通过判断该列表是否包含目标用户ID来触发回复,相比直接匹配文本的方式兼容性更高,也能同时识别带昵称的@格式。

代码修改示例

方式一:匹配实际@用户操作(推荐)

# 替换为你要触发的目标用户ID,注意为整数类型
TARGET_USER_ID = 2647388376563834

# 排除机器人自己发的消息,避免循环触发
if message.author == client.user:
    return
# 检查消息中是否@了目标用户
if any(user.id == TARGET_USER_ID for user in message.mentions):
    await message.channel.send(Nico)

方式二:匹配纯文本@用户ID格式

如果你的触发场景是用户手动输入@2647388376563834纯文本而不是真正@用户,用以下写法:

# 替换为你要匹配的文本内容
TARGET_TRIGGER = "@2647388376563834"

if message.author == client.user:
    return
if TARGET_TRIGGER in message.content:
    await message.channel.send(Nico)

注意事项

  • discord.py v2.0及以上版本需要提前开启权限:
    1. 进入Discord开发者后台,找到对应Bot的设置页,开启message content intent权限
    2. 初始化Bot时添加权限配置:
    import discord
    
    intents = discord.Intents.default()
    intents.message_content = True
    # 如需读取服务器成员信息可额外开启members权限
    intents.members = True
    
    client = discord.Client(intents=intents)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:39:02