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

如何在Discord.js指令中实现提及(@)用户的交互功能

问题修复说明

你当前代码无法实现@用户交互的核心原因是:虽然已经通过message.mentions.users.first()捕获了被提及的用户数据存入user变量,但构造Embed嵌入消息时依旧硬编码使用了指令触发者message.author的信息,同时代码存在重复引入Discord模块的冗余问题。

修复后的完整代码如下:

const Discord = require("discord.js");

module.exports = new Command({
    name: "avatar",
    permission: "SEND_MESSAGES",
    async run(message) {
        // 优先取被@的用户,没有则取指令触发者本人
        const user = message.mentions.users.first() || message.author;
        const avatarEmbed = new Discord.MessageEmbed();

        avatarEmbed
            .setColor("FF0000")
            .setAuthor(user.username)
            .setImage(user.avatarURL({ dynamic: true }))

        message.channel.send({embeds: [avatarEmbed]});
    }
});

修复后调用规则:

  • 直接发送你配置的指令前缀+avatar,会返回你自己的头像
  • 发送指令前缀+avatar @某个用户,会返回被@用户的头像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:48:00