简介
Discord 是一个广受欢迎的聊天工具,它的用户群体涵盖了游戏玩家、开发者、社交爱好者等多个群体。Discord 具有完善的 API 可以通过编写程序来自动化聊天的过程,但是受限于 API 需要掌握的技术领域较多、开发复杂等因素,使用 API 开发机器人会存在比较大的门槛。
NPM 包 discord.js-artisan 就是一个为了让开发者更方便的开发 Discord 机器人而生的框架。它封装了 Discord.js 库和一些常用的工具,方便使用者进行开发,不需要过多的学习和调整,只需要轻轻松松地编写简短的代码,就可以快速开发出高质量的让人满意的 Discord 机器人。
安装
首先,我们需要安装 npm 包 discord.js-artisan:
npm i discord.js-artisan
使用方法
创建机器人
在 NPM 包 discord.js-artisan 中,可以使用如下语句来创建一个机器人:
const Control = require('discord.js-artisan/control.js'); const token = 'Bot Token'; const control = new Control(token);
这段代码中,token
是你刚刚申请到的机器人的 Token,而 Control
就是 discord.js-artisan 中一个重要的核心类,它代表了机器人控制主体,通过实例化这个对象的方式,就可以访问机器人的所有功能和信息。
设定机器人的回应
我们先来看一下如何设置当有人发送特定内容时,机器人反应。
//在 'messageCreate' 事件中回复消息,只在文本频道中回复 control.on('messageCreate', (message) => { if (!message.guild || !message.content || !message.content.startsWith('!ping')) return; message.reply('pong!'); });
通过 on
方法,可以对许多事件进行监听,这里我们监听了 messageCreate 的事件,即当有新消息在聊天窗口中生成时。并在这个事件的回调函数中,判断这个消息是否以 !ping
开头,如果是,则机器人回复 pong!
。
我们可以看到,通过 discord.js-artisan ,我们只需要编写短短的代码,就可以完成机器人的监听和回应。
发送消息到指定频道
当机器人在特定频道收到信息时,我们还可以通过代码将消息发送到指定频道,使用如下方式:
const channel = control.channels.cache.get('Channel Id'); channel.send('Hi there!');
这里,我们通过 control
的 channels 缓存来获取 Channel Id
区别的频道对象,通过调用频道对象的 send
方法,即可以向这个频道内新建一条消息。需要注意的是,当机器人所在的服务器很大时,频道对象可能需要从 API 中获取,需要使用异步方法,参考如下代码:
const channel = await control.channels.fetch('Channel Id'); channel.send('Hi there!');
示例代码
下面是一个完整的示例代码,可以用它来启动一个 Discord 机器人:
-- -------------------- ---- ------- ----- ------- - ----------------------------------------- ----- ----- - ---- ------- ----- ------- - --- --------------- ------------------- -- -- - ------------------- -- -- ----------------------- --- --------------------------- ----- --------- -- - -- -------------------- ------- ----- ------- - ----- ------------------------------- ----- -- --------------- -- --------------- -- ---------------------------- --- -- - ------------------ -------------------------- ---- ------- --------------------- - ---- - --------------------- ---- --------------------------- --------------------- - --- --------------- -------- -- - ---------------- ---------- -- -------------- -- - --------------------- ---
通过这段代码,我们可以在指定频道中监听机器人的消息,当收到新消息时,将消息的来源和内容反馈到频道中。这个示例代码展示了如何使用 discord.js-artisan 快速实现一个基本的机器人,并详细讲解了各部分代码的含义,供读者学习参考。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671d730d0927023822c9b