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

Discord.js V14中msg.mentions.members.first()无法使用的问题

解决Discord.js中提及成员无法获取的问题

你的问题核心不在msg.mentions.members.first()方法过时,而是消息内容的判断逻辑错误:
你用msg.content === "mention"做条件判断,只有当消息内容完全等于"mention"时才会执行后续代码。但实际触发指令时你发的是mention @User,此时msg.content不等于"mention",代码根本没走到获取提及成员的步骤。

修复方案

方案1:匹配开头包含指令的消息

把判断条件改成检查消息是否以"mention"开头,这样不管后面有没有@用户,都能进入逻辑:

if (msg.content.startsWith("mention")) {
    const target = msg.mentions.members.first();
    if (!target) {
        msg.delete()
        const bruhresponsee = await msg.channel.send(`<@${msg.author.id}>, please provide a user in your message!`)

        setTimeout(() => {
            bruhresponsee.delete()
        }, 5000);
        return;
    }

    console.log(target);
}

方案2:更严谨的指令拆分(适合扩展多指令)

把消息拆分成命令和参数,方便后续添加更多指令:

const args = msg.content.trim().split(/\s+/);
const command = args.shift()?.toLowerCase();

if (command === "mention") {
    const target = msg.mentions.members.first();
    if (!target) {
        msg.delete()
        const bruhresponsee = await msg.channel.send(`<@${msg.author.id}>, please provide a user in your message!`)

        setTimeout(() => {
            bruhresponsee.delete()
        }, 5000);
        return;
    }

    console.log(target);
}

补充说明

msg.mentions.members.first()方法并没有过时,只要消息中确实包含成员提及,就能正常返回对应的GuildMember对象。

内容的提问来源于stack exchange,提问作者average discord bot maker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:33:10