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

如何让Discord.JS机器人在私信中响应指定命令?

实现Discord.JS机器人的.hello命令回复功能

没问题,这是Discord.js里非常基础的命令实现,我一步步带你完成:

1. 准备工作

首先确保你已经完成了基础的环境搭建:

  • 安装了Node.js(建议LTS版本,比如18.x或20.x)
  • 在项目文件夹里安装Discord.js依赖:
    npm install discord.js
    
  • 已经在Discord开发者平台创建好机器人,拿到了机器人的Token,并且把机器人邀请到了你的服务器(需要勾选bot和applications.commands权限)

2. 编写核心代码(以Discord.js v14为例)

创建一个index.js文件,写入以下代码:

const { Client, GatewayIntentBits } = require('discord.js');

// 初始化客户端,需要指定必要的权限(Intents)
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds, // 服务器相关权限
    GatewayIntentBits.GuildMessages, // 服务器消息权限
    GatewayIntentBits.MessageContent // 读取消息内容的权限(必须开启,否则拿不到消息文本)
  ]
});

// 机器人上线时触发的事件
client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

// 监听消息创建事件
client.on('messageCreate', (message) => {
  // 跳过机器人自己发送的消息,避免循环回复
  if (message.author.bot) return;

  // 定义命令前缀和命令内容
  const prefix = '.';
  // 判断消息是否以指定前缀开头
  if (!message.content.startsWith(prefix)) return;

  // 提取命令部分(去掉前缀后的内容)
  const command = message.content.slice(prefix.length).trim().toLowerCase();

  // 判断是否是hello命令
  if (command === 'hello') {
    // 回复消息(@发送者)
    message.reply('Hello there! 😊');
    // 也可以用 message.channel.send('Hello!') 直接发送到频道,不@用户
  }
});

// 用机器人Token登录
client.login('你的机器人Token');

3. 关键注意点

  • Intents权限开启:MessageContent权限需要你在Discord开发者平台的机器人页面,找到「Privileged Gateway Intents」手动开启,否则机器人无法读取消息内容。
  • 避免循环回复:一定要判断message.author.bot,跳过机器人自己的消息,不然可能出现无限循环回复的情况。
  • Token保密:绝对不要把机器人Token直接写在代码里提交到仓库!后续可以用dotenv包管理环境变量,更安全。

4. 测试运行

在终端执行:

node index.js

看到控制台输出Logged in as [你的机器人标签]!后,到服务器里发送.hello,机器人就会给你回复啦!

如果你用的是Discord.js v13

v13的Intents写法略有不同,把客户端初始化部分改成下面的代码即可,其余逻辑完全一致:

const { Client, Intents } = require('discord.js');

const client = new Client({
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.MESSAGE_CONTENT
  ]
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:52:38