📜  discord.js 开始 - Javascript (1)

📅  最后修改于: 2023-12-03 15:14:41.931000             🧑  作者: Mango

使用 discord.js 开发你的聊天机器人

如果你想要在 Discord 上开发自己的聊天机器人,那么 discord.js 就是一款非常棒的工具。它是 Discord API 的封装,可以很方便的进行开发和使用。

安装

在开始之前,我们需要先安装 discord.js 这个库。可以使用 npm 进行安装:

npm install discord.js
创建机器人

在使用 discord.js 之前,我们需要先创建一个 Discord 应用。具体的步骤可以参考官方文档 https://discordapp.com/developers/docs/intro

在创建完成后,我们可以获得一个 Bot Token。这个 Token 就是我们使用 discord.js 来连接到 Discord API 的身份验证凭据。

连接到 Discord

接下来,我们需要使用 Bot Token 来连接到 Discord API:

const Discord = require('discord.js');
const client = new Discord.Client();

client.login('your-bot-token');

Client Login 方法会返回一个 Promise,表示连接成功。在连接成功后,我们可以监听各种事件,比如收到消息、用户进入/离开等等:

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', msg => {
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
});
命令解析

通常情况下,我们希望机器人能够根据指令来进行相应的响应。这个时候,我们可以使用一个简单的命令解析模块来实现。

比如 discord.js-commando 这个模块就提供了一个非常棒的命令解析框架:

const { CommandoClient } = require('discord.js-commando');
const path = require('path');

const client = new CommandoClient({
  commandPrefix: '!',
  owner: 'your-discord-id',
  disableEveryone: true
});

client.registry
  .registerDefaultTypes()
  .registerGroups([
    ['test', 'Test commands']
  ])
  .registerDefaultGroups()
  .registerDefaultCommands()
  .registerCommandsIn(path.join(__dirname, 'commands'));

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.login('your-bot-token');

在上面的示例中,我们定义了命令前缀为 !,只允许指定的 Discord ID 来使用命令,并且禁用了 @everyone 权限。同时,我们还注册了一个 test 命令组,并把命令文件放在了 commands 文件夹里。

在命令文件中,通常会定义一个继承自 Commando.Command 类的子类,并定义 run 方法来处理命令:

const { Command } = require('discord.js-commando');

module.exports = class HelloCommand extends Command {
  constructor(client) {
    super(client, {
      name: 'hello',
      group: 'test',
      memberName: 'hello',
      description: 'Say hello!'
    });
  }

  run(msg) {
    return msg.say('Hello!');
  }
};
结语

以上是一个简单的使用 discord.js 和 discord.js-commando 创建聊天机器人的示例。当然, discord.js 的功能远不止于此,还有许多更高级的用法等待你去发掘。希望这篇文章能够帮助你入门开发 Discord 机器人。