如何使用JavaScript构建一个Discord机器人
Discord是一个强大的通信应用,被大量的游戏玩家、开发者和加密货币爱好者所使用。
管理员可以在他们的服务器上添加独特的Discord机器人。对于那些喜欢自己动手的人,也有强大的API用于创建Discord机器人。例如,Discord.js允许我们使用 Javascript 创建一个简单的 Discord 机器人。
在本教程中,我们将讨论如何创建一个 Discord 机器人并在服务器上运行它。
要求
要跟上,读者需要。
- 一个Wi-Fi连接。
- 一个 Discord 帐户。
- 一个代码编辑器,如Visual Studio Code。
- Node v17.1.0。
添加一个新的Discord应用程序
要开始,我们需要通过Discord开发者门户注册应用程序。要访问这个门户,请导航到discord.com/developers/…
然后点击右侧的New Application 按钮。
点击该按钮后,将弹出一个对话框,要求你为你的机器人命名。在我的例子中,我将把机器人简单地命名为 "mybot"。
接下来,点击bot option ,然后点击add bot 按钮。将会弹出以下对话框。
然后确认创建新的应用程序,就这样,你就有了一个机器人。
然而,我不认为你想要一个假的机器人。让我们通过赋予它一些权限来增加一些额外的功能,这将提高它与用户的互动性。
点击OAuth2 菜单,勾选boxes ,如下图所示。然后,复制出现在文本框中的链接。
接下来,将你之前复制的链接粘贴到任何浏览器中。你应该看到以下屏幕。
选择你的服务器,然后点击authorize 按钮。
如果你没有服务器,请按照这个链接来创建一个。
创建一个Node.js项目
由于我们已经注册了我们的机器人,我们现在需要创建一个文件夹来存储我们的Node.js文件。
安装依赖项
依赖项是应用程序工作所需的包。在我们的案例中,我们只需要discord.js 库。然而,我们将安装dotenv 包以协助管理mybot token 。
这将确保所有的调用都得到适当的授权。我们还需要nodemon ,以保持服务器的运行。启动一个new terminal ,并输入以下命令来初始化该项目。
npm init -y
注意上面的命令是如何生成一个npm项目的,而不需要经过交互过程。
在我的例子中,以下是结果。
{
"name": "mybot",
"version": "1.0.0",
"description": "",
"main": "bot.js",
"scripts": {
},
"keywords": [],
"author": "",
"license": "ISC"
}
下面的命令将在项目中安装discord.js 和dotenv 库。
npm install discord.js dotenv
要安装nodemon 库,使用以下命令。
npm install -D nodemon
每次我们对文件进行修改时,Nodemon都会重新启动服务器。
建立我们的机器人
我们需要在开发者门户中授权来自Discord.js 的调用。要做到这一点,我们必须复制我们机器人的令牌。
复制后,打开一个新的文件,命名为.env ,然后按以下格式粘贴。
TOKEN=Paste_token_here
创建机器人文件
在主项目目录下创建一个新文件,并将其命名为bot.js 。我们将使用dotenv 包设置环境变量,从discord.js ,导入类,然后启动一个新的客户端。
require("dotenv").config(); //to start process from .env file
const {Client, Intents}=require("discord.js");
const client=new Client({
Intents:[
Intents.FLAGS.GUILDS,//adds server functionality
Intents.FLAGS.GUILD_MESSAGES //gets messages from our bot.
]
});
client.once("ready", () =>{
console.log("BOT IS ONLINE"); //message when bot is online
})
client.login(process.env.TOKEN);
要运行机器人,请在你的终端输入以下内容。
node bot.js
如上所示,我们的机器人已经上线,但它没有任何功能。
请注意,我们正在从我们的
.env文件中验证named variable,该文件连接到Discord API。为了测试机器人,我们必须登录到一个Discord账户,并有一个服务器在运行。
回复信息
到目前为止,我们的机器人是在线的,但没有活跃的功能。下面几行代码将让我们的机器人回复一条简单的你好信息。
client.on('message',
function (messages){
if(messages.content.toLocaleLowerCase()==='hello')
messages.channel.send('hello' + ' ' + messages.author.username); //reply hello word message with senders name
})
我们的机器人将回复hello 信息,并提到sender 。
总结
我们通过[Discord 开发者门户]添加了一个新的 Discord 应用程序。
为了开发我们的机器人,我们创建了一个Node.js项目并安装了所需的依赖项。然后我们允许机器人回复用户的某些信息。
结论
Discord平台正在迅速发展。它为游戏玩家、企业家和热衷于加密货币的人创造了一种安全的沟通方式,并与其他志同道合的人联系。
拥有一个好的机器人,可以回复、禁止和静音成员,是一个额外的优势。在这篇文章中,我们介绍了如何创建一个机器人来回复某些文字。因此,你可以利用这些知识来纳入其他功能。