概述和设置
本文将展示如何创建Discord Bot。对于我在UVU时为作业编写的Discord Bot的示例,请按照this link. 开始进行启动,您将需要创建一个新的node.js环境。如果您没有下载和安装节点,请首先执行此操作。在根文件夹中,创建一个index.js文件。接下来,您需要下载几个NPM包装。在您的终端运行npm install dotenv
和npm install discordjs
中。
进入它
开始,我们将在根文件夹中创建一个.env文件。这是一个包含环境变量的文件。现在,它应该是空的,但是Wil将稍后再添加。现在,在您的index.js文件中,您需要导入并使用刚刚安装的软件包。将以下代码添加到index.js文件的顶部。
//index.js
const dotenv = require("dotenv");
dotenv.config({ path: "./.env" });
const { env } = process;
const Discord = require("discord.js");
现在,随着所有导入的一切,我们将进入机器人的实际代码。使用Discordjs NPM软件包,创建机器人非常简单。在index.js文件中添加以下代码:
//index.js
const client = new Discord.Client();
client.once("ready", () => {
console.log("Ready!");
});
那就是这样!使用那几行代码,您的机器人将旋转并注销“准备就绪!”。不过,这还不起来,因为我们尚未将机器人代码连接到Discord上的实际机器人或对机器人进行身份验证。所以让我们现在做。
在不和谐中创建机器人
首先,登录或创建一个Discord帐户。然后关注this link 进入开发人员门户。在右上角,单击按钮创建一个新应用程序。
这将为您访问您刚创建的应用程序的“常规信息”页面。在左侧,您会看到一个菜单。选项之一是“ bot”,单击它。
现在您将看到此页面,单击“添加bot”按钮。
Discord将创建机器人,并给出与您命名应用程序相同的用户名。您可以在此处更改此信息,也可以在此处添加图片。使用现在创建的机器人,您需要复制机器人令牌,以便将其添加到应用程序中。
回到代码中,转到我们之前创建的.ENV文件。在这里,我们将添加您刚刚复制的机器人令牌。 重要:机器人令牌是一个秘密,不应在Github或类似的内容上跟踪。请确保将.ENV文件添加到.gitignore之前,然后将其推入GitHub 此.ENV文件应该看起来像这样:
//.env
BOT_TOKEN=<YOUR_TOKEN_HERE>
现在在index.js文件中,在代码底部,添加以下行:
//index.js
client.login(env.BOT_TOKEN);
现在,您的代码实际上已登录并连接到您刚创建的Discord Bot!现在所有需要完成的就是将其添加到服务器中。
将机器人添加到服务器
返回您的机器人的应用程序门户,在菜单栏中,单击OAuth2行。
这将带您进入身份验证设置。在页面的底部有一个“范围”部分。检查“机器人”选项。这将在本节的底部显示一个URL。将URL复制并粘贴到新的浏览器选项卡中。该URL是邀请链接,将您的机器人添加到Discord服务器中。
只要您在Discord Server中获得添加机器人的权限,就可以选择服务器并单击“授权”。当您这样做时,您已经正式创建并添加了机器人!
现在在您的节点终端中的Back中,运行node index.js
。在您的节点终端中,您应该看到它已登录“准备就绪!”。但是当您发送消息时,什么都不会发生。接下来,我们将为机器人添加一些功能以与消息交互。
向机器人添加功能
将机器人创建并添加到服务器中是非常酷的,但是您可能不想创建一个无所事事的机器人。现在,我们将添加一个前缀,该前缀将寻找并让其发送回复。
就像以前一样,当我们使用client.on()
方法启动时记录消息时,我们现在将使用它来查看每个消息。将以下代码添加到您的index.js文件,上方是login()
方法。
//index.js
client.on("message", async (message) => {});
这将允许机器人查看发送到它可以访问的频道的消息。在此方法内部,我们可以添加逻辑以制作一个前缀,该前缀只能响应以前缀开头的消息。我们将使我们的前缀'@'。我们还可以制作机器人可以知道如何响应的关键字。我们现在会这样做。在.on卷曲支架中添加以下代码。
//index.js
client.on("message", async (message) => {
if (message.author.bot) return;
if (!message.content.startsWith("@")) return;
const contentArr = message.content.split(" ");
if (contentArr[0] === "@marco") {
message.reply("Polo!.");
return;
} else if (contentArr[0] === "@polo") {
message.reply("Marco!");
return;
}
});
那里的第一行,如果消息的作者是机器人,则将退出该方法。当机器人以响应命令发送消息时,这将保护我们免受无限循环的影响。下一行查看一条消息,以检查它是否从前缀'@'开始。如果这些条件中的任何一个都不正确,则该方法返回。最后,我们将消息内容分为数组,并检查数组中的第一个单词是否匹配我们的关键词之一。如果是这样,我们会发回消息。
如果您停止了节点应用程序并重新运行node index.js
并发送“ @marco”或“ @polo”的消息,则应在Bot回复您的消息中看到正确的响应。
结论
作为开始的,您需要制作一个机器人来做任何您想要的事情。您可以使用不同的命令来执行您想要的操作,并在发送关键字时使用JavaScript具有bot运行函数。在我早些时候在帖子中链接的github存储库中,您将看到我如何使用机器人拨打API并返回答复,发送电子邮件并发送短信。
希望这能帮助您创建一个酷的不和谐机器人!如果您想了解有关Discord NPM软件包的更多信息,请阅读文档here。