本文将仅专注于使用裸露的Discord API创建您的第一个机器人。也许最著名的Discord机器人是音乐机器人。音乐机器人可让您键入歌曲名称,并且该机器人将将新用户附加到播放请求歌曲的频道。这是在游戏或流媒体服务器上的年轻人中常用的机器人。
让我们开始创建一个自定义的Discord bot。>
本文已更新了2020年。要了解更多节点,请查看Node.js Web开发。钥匙要点
接下来,我们需要输入服务器的名称。为了使事情保持简单,我将服务器discord_playground命名。如果需要,您可以根据位置的位置更改服务器位置以获得更好的ping。
如果一切顺利,您应该看到新创建的服务器。
>当我们想通过代码控制机器人时,我们需要在我们的Discord帐户下首先注册该机器人。
注册机器人,转到Discord Developers Portal并使用您的帐户登录。
新应用程序按钮来创建一个新的应用程序。>
接下来,您将看到一个弹出窗口,要求您输入应用程序的名称。让我们称我们的机器人my-greeter-bot。通过单击
>按钮,Discord将创建一个API应用程序。
创建应用程序后,您会看到新创建的My-Greeter-Bot应用程序的概述。您会看到诸如客户端ID和客户端秘密之类的信息。此秘密将在稍后用作授权令牌。
现在,单击
菜单中的bot 菜单选项。 Discord将构建我们的my-greeter-bot应用程序,并在其中添加一个bot用户。>
>构建机器人时,您将获得自定义机器人的概述。看一下
部分。复制此授权令牌并将其写入某个地方,因为我们稍后需要将其连接到我们的bot用户。
>步骤3:定义权限并将bot添加到服务器
第三,我们要定义机器人的权限,并将其添加到我们的Discord服务器中。
settings
菜单下的部分。在这里,我们可以定义机器人的范围。由于我们只想启用一个简单的机器人,因此我们选择bot选项。> >您可能会注意到下面的授权URL现在已更改。但是,权限= 0部分表示我们尚未设置权限。>
如果我们向下滚动,您会发现
最后,复制此URL并将其粘贴到您喜欢的Web浏览器中。您会找到一个概述,询问您要添加机器人的服务器。让我们选择新创建的discord_playground。
>单击
>授权>按钮将bot添加到我们的服务器中。
如果您能够成功地将机器人添加到服务器中,则应看到以下成功屏幕。
如果要仔细检查添加机器人,请访问常规>频道。您应该看到一条类似的消息,该消息表明该机器人已加入了频道。
步骤4:项目设置
该项目取决于两个依赖项,即dotenv和discord.js。第一个依赖关系使我们可以使用一个.ENV文件,该文件保存了我们写下的机器人令牌。很明显,我们需要第二个依赖性,discord.js来开发不和谐bot。
为了安装两个依赖项,请在项目文件夹中执行NPM安装。最后,要完成安装,请在项目的根部创建.ENV文件。将一个称为令牌的环境变量添加到这样的文件:
>>步骤5:探索Discord.js
>让我们看一下位于项目根部的index.js文件:
<span>TOKEN=my-unique-bot-token </span>
机器人变量实际上是我们的Discord客户端,我们将通过它进行交互。
听“准备就绪”事件<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>
接下来,我们可以聆听事件。首先,我们正在听准备的活动。一旦我们连接到机器人,就可以发射现成的事件:
如果您已经使用了正确的令牌登录到机器人,则终端应打印bot bot.user.tag的名称。
>
如果成功连接了机器人,则应看到在终端中打印的机器人的名称。bot<span>.on('ready', () => { </span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>); </span><span>}); </span>
听“消息”事件
>除了
事件之外,Discord Client允许您收听
<span>TOKEN=my-unique-bot-token </span>
>如果我们进一步探索代码,您会发现我们正在寻找带有内容ping的消息。如果我们收到只包含ping的消息,则该机器人将与Pong回复。之后,我们使用msg.channel.send再次发送pong。
请注意两个命令之间的区别:
寻找标记的用户
>假设我们想通过发送诸如kick @username之类的消息来踢某人。因此,首先我们要寻找!启动消息的内容。如果我们找到以!踢开头的消息,我们可以检查用户是否在消息中使用msg.mentions.users属性标记。
<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>
>
>步骤6:其他问题……如果链
>成为意大利面代码的受害者更容易
代码很难读取访问
首先,让我们探索命令文件夹。该文件夹包含一个index.js文件,该文件导出我们将定义的所有命令。为了使事情变得简单,我们只会定义一个命令,ping:
><span>TOKEN=my-unique-bot-token </span>
bot.commands.set函数接受命令的名称和整个命令对象:
之后,我们必须删除其他……如果链条并用一些动态代码替换它,以找到我们要调用的正确命令:
<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>
>我们首先尝试使用.split( / /)将消息的内容拆分。我们假设此ARGS数组中的第一个项目是我们的命令。要检查该命令是否存在于我们的集合中,该集合将公开A HES()函数,该功能只是返回对或false。如果命令不存在,我们返回一个空的响应。
bot<span>.on('ready', () => { </span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>); </span><span>}); </span>
>这是一种易于阅读的,动态的呼叫命令的方式,而无需编写意大利面条代码。如果需要,这使您可以将项目扩展到数百个命令。
>>再次,如果要测试我们代码的新版本,请确保查看具有Git Checkout Advanced的高级分支。接下来,使用NPM安装安装所有依赖关系,并使用节点索引启动机器人。
总结>一开始安装和设置新的Discord机器人可能会感到不知所措。但是,discord.js软件包提供的API很简单,Discord网站提供了很好的示例。
本教程仅涵盖了两个权限,因此还有更多可找到的权限。您可以在discordjs.guide网站上了解有关权限的更多信息。
构建您的第一个Discord Bot! 顺便说一句,您可以使用此链接加入Sitepoint的Discord社区。快来与我们谈谈技术。经常询问的问题(常见问题解答)有关与node.js
>在您的Discord Bot中添加更多功能,涉及了解Discord.js库和Discord API。您可以添加功能,例如发送消息,回复消息,加入语音频道,播放音频等等。要添加这些事件,您需要收听事件,然后根据这些事件执行操作。例如,要使您的机器人发送消息,您可以使用“消息”事件和'Message.Channel.Send'方法。
>调试您的Discord Bot涉及使用console.log语句打印有关机器人状态和动作的信息。您还可以使用node.js调试工具,例如内置调试器或外部工具,例如Visual Studio Code的调试器。此外,Discord.js库还提供了诸如“调试”和“警告”之类的事件,您可以听取有关机器人正在做什么的更多信息。
>使您的Discord Bot与其他API相互作用涉及使用“ Fetch”或“ Axios”库发送HTTP请求。您可以使用这些库从其他API获取数据,然后在机器人中使用该数据。例如,您可以制作一个机器人,以获取天气数据并将其作为消息频道中发送。在服务器上而不是本地计算机上。您可以使用云托管提供商,例如Heroku,AWS或Google Cloud。这些提供商允许您24/7运行机器人,并且它们经常提供可以与机器人一起使用的数据库和其他服务。
使您的Discord Bot响应特定命令涉及聆听“消息”事件,然后检查消息内容是否以特定命令开头。您可以使用“ startswith”方法为此。如果消息以命令开头,则可以执行特定的操作。
>处理您的Discord Bot中的错误涉及使用尝试/捕获块并聆听“错误”事件。如果在尝试块中发生错误,则将执行捕获块。每当在ciscord.js库中发生错误时,“错误”事件将发出。
以上是如何用node.js构建第一个不和谐机的详细内容。更多信息请关注PHP中文网其他相关文章!