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

Discord.js v12实现艾特我时机器人自动回复,现有代码无响应该如何修改?

Discord.js v12 艾特触发回复代码修改方案

现有代码存在的问题

  • 硬编码匹配<@myid>字符串,首先你没有把占位符替换成自己的实际用户ID,其次没有兼容带昵称艾特的<@!用户ID>格式,只要艾特的时候带了你的服务器昵称就会匹配失败
  • 使用startsWith匹配要求艾特必须在消息开头且后面跟空格,要是艾特在消息中间、后面没跟空格都会匹配失败
  • 未确认是否开启了必要的权限,Discord官方要求所有机器人必须在开发者后台开启Message Content Intent才能读取普通消息内容,未开启的话机器人拿不到消息文本自然不会触发逻辑

修改后的可用代码

// 请将下方引号内的内容替换为你自己的Discord用户ID
const TARGET_USER_ID = "你的实际用户ID";

client.on("message", (message) => {
    if (message.author.bot) return;
    // 直接调用官方封装的提及判断方法,自动兼容所有艾特格式
    if (message.mentions.users.has(TARGET_USER_ID)) {
        message.channel.send("yo sup");
    }
});

额外检查项

  • 确认机器人邀请到服务器时已经勾选了「发送消息」权限
  • 确认Discord开发者后台的机器人设置页已经开启Message Content Intent开关

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:24:06