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

Discord.js Bot实现向指定用户ID发送自定义私信命令开发求助

实现步骤

1. 修复现有代码的基础问题

你当前的代码存在2处需要先修正的问题,否则会无法正常运行后续功能:

  • 客户端初始化缺少发送私信必须的DIRECT_MESSAGES Intent,且Discord.js v13及以上版本的消息触发事件名应为messageCreate,而非旧版的message,同时需要添加CHANNEL部分匹配配置才能正常触发私信相关逻辑
  • 拆分参数的split方法错误给正则加了引号,正则语法不需要用引号包裹
    修正后的基础代码片段如下:
// 修正Intent和partials配置
const client = new Discord.Client({ 
  intents: ["GUILDS", "GUILD_MESSAGES", "DIRECT_MESSAGES"],
  partials: ["CHANNEL"]
})

// 替换旧的message事件为v13+支持的messageCreate事件
client.on('messageCreate', async message => {
    if (message.author.bot) return;
    let prefix = '??'
    if (!message.content.startsWith(prefix)) return;

    // 修正split的正则写法,去掉多余引号
    let args = message.content.slice(prefix.length).trim().split(/ +/g);
    let msg = message.content.toLowerCase();
    let cmd = args.shift().toLowerCase();

    // 原有ping、hello命令逻辑保持不变
    if (msg.startsWith(prefix + 'ping')) {
        message.channel.send('pong');
    }

    if (msg.startsWith(prefix + 'hello')) {
        message.channel.send('hewwo uwu');
    }

2. 新增私信发送命令逻辑

在现有hello命令的判断下方新增dm命令的处理代码,命令使用格式为??dm @目标用户 要发送的自定义私信内容

if (cmd === 'dm') {
        // 权限校验:仅管理员可使用该命令,避免被滥用发送垃圾私信
        if (!message.member.permissions.has('ADMINISTRATOR')) return message.reply('你没有权限使用该命令')
        // 校验是否指定了目标用户
        const targetUser = message.mentions.users.first()
        if (!targetUser) return message.reply('请@要接收私信的目标用户')
        // 提取要发送的私信内容
        const dmContent = args.slice(1).join(' ')
        if (!dmContent) return message.reply('请输入要发送的私信内容')
        // 尝试发送私信
        try {
            await targetUser.send(dmContent)
            message.reply(`已成功向${targetUser.tag}发送私信`)
        } catch (err) {
            // 发送失败的常见场景:用户关闭了陌生人私信、用户屏蔽了机器人
            message.reply('私信发送失败,可能是目标用户关闭了陌生人私信权限或屏蔽了机器人')
        }
    }
});

3. 额外注意事项

  • 不要将机器人TOKEN硬编码写入代码,建议放到config.json中读取,避免TOKEN泄露导致机器人被盗用
  • 如果你使用的是Discord.js v14版本,Intent常量需要改为GatewayIntentBits前缀的写法,权限常量也需要对应改为PermissionFlagsBits.Administrator

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:42:02