如何使自己的不和谐机器人

Discord具有出色的用于编写自定义机器人的API,以及一个非常活跃的机器人社区。今天,我们将探讨如何开始制作自己的作品。

您需要一点编程知识才能编写机器人程序,因此并非所有人都可以使用,但是幸运的是,有一些流行语言模块可以很容易地实现。我们将使用最受欢迎的Discord.js。

有关的:如何创建,设置和管理Discord服务器

入门

转到Discord的漫游器门户,然后创建一个新的应用程序。

您需要记下客户端ID和机密(当然,您应该保守秘密)。但是,这不是机器人,而是“应用程序”。您必须在“启动”标签下添加机器人。

还要记下此令牌,并将其保密。在任何情况下,都不要将此密钥提交给Github。您的漫游器几乎会立即被黑客入侵。

安装Node.js并获取编码

要在网页外运行Javascript代码,您需要Node。下载它,安装它,并确保它可以在终端上运行(或命令提示符,因为所有这些都应在Windows系统上运行)。默认命令是“节点”。

我们还建议安装nodemon工具。这是一个命令行应用程序,可监视您的机器人代码并在更改后自动重新启动。您可以通过运行以下命令来安装它:

npm i -g nodemon

您需要一个文本编辑器。您可以只使用记事本,但是我们建议使用Atom或VSC。

这是我们的“ Hello World”:

const Discord = require('discord.js'); const client = new Discord.Client(); client.on('ready',()=> {console.log(`登录为$ {client.user.tag}!`);}); client.on('message',msg => {if(msg.content ==='ping'){msg.reply('pong');}})); client.login('token');

此代码取自discord.js示例。让我们分解一下。

  • 前两行用于配置客户端。第一行将模块导入名为“ Discord”的对象,第二行初始化客户端对象。
  • client.on('就绪') 僵尸程序启动时,block将触发。在这里,它只是配置为将其名称记录到终端。
  • client.on('message') 每当有新消息发布到任何频道时,block都会触发。当然,您需要检查邮件内容,这就是 如果 阻止了。如果该消息仅显示“ ping”,则将回复“ Pong!”。
  • 最后一行使用Bot门户中的令牌登录。显然,此屏幕截图中的令牌是伪造的。永远不要将令牌发布到互联网上。

复制此代码,将其粘贴在底部的令牌中,然后另存为 index.js 在专用文件夹中。

如何运行机器人

转到您的终端,然后运行以下命令:

nodemon-检查index.js

这将启动脚本,并启动Chrome调试器,您可以通过键入以下内容进行访问 chrome:// inspect / 进入Chrome的Omnibar,然后打开“ Node专用devtools”。

现在,它应该只说“以...身份登录”,但是我在这里添加了一行,它将记录接收到控制台的所有消息对象:

那么,什么构成了这个消息对象呢?实际上有很多东西:

最值得注意的是,您具有作者信息和频道信息,可以使用msg.author和msg.channel访问这些信息。我建议您使用这种方法将对象记录到Chrome Node devtools,然后四处查看以了解其工作原理。您可能会发现一些有趣的东西。例如,机器人在此处将其回复记录到控制台,因此机器人的回复会触发 client.on('message')。所以,我做了一个垃圾邮件机器人:

笔记:请务必谨慎,因为您确实不想处理递归。

如何将Bot添加到您的服务器

这部分比应做的要难。您必须使用以下网址:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

然后将“ CLIENTID”替换为您的机器人的客户端ID,该ID可在应用程序页面的“常规信息”标签上找到。不过,一旦完成,您就可以将链接提供给您的朋友,让他们也将漫游器添加到他们的服务器中。

好吧,那我还能做什么?

除了基本设置外,其他任何事情都完全由您决定。但是,如果我们停滞不前,那么本教程就不会多了,所以让我们看一下一些文档,这样您就可以更好地了解。我建议您尽可能多地通读,因为它已被很好地记录了下来。

我建议添加 console.log(客户端) 到代码的开头,然后在控制台中查看客户端对象:

从这里,您可以学到很多东西。由于您可以一次将漫游器添加到多个服务器,因此服务器是 公会 地图对象。在该对象中是各个公会(这是API的“服务器”名称),并且这些公会对象具有包含所有信息和消息列表的通道列表。该API非常深入,可能需要花费一些时间来学习,但至少它很容易设置并开始学习。


$config[zx-auto] not found$config[zx-overlay] not found