如何制作自己的不和谐机器人

Discord有一个很好的API用于编写自定义机器人,以及一个非常活跃的机器人社区 今天我们来看看如何开始制作自己的产品。

你需要一些编程知识来编写一个机器人,所以并不适合所有人,但幸运的是有一些流行语言的模块使它很容易。 我们将使用最受欢迎的一个, discord.js

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

入门

前往Discord的僵尸网站门户 ,并创建一个新的应用程序。

您需要记下客户端ID和密码(当然,您应该保密)。 但是,这不是机器人,只是“应用程序”。您必须在“Bot”选项卡下添加机器人。

记下这个标记,并保守秘密。 在任何情况下,都不要将此密钥提交给Github。 您的机器人几乎会立即被黑客入侵。

安装Node.js并获取编码

要在网页外部运行Javascript代码,您需要Node 下载,安装它,并确保它在终端(或命令提示符)中工作,因为所有这些都适用于Windows系统。 默认命令是“node”。

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

  npm i -g nodemon 

你需要一个文本编辑器。 您可以使用记事本,但我们建议使用AtomVSC

这是我们的“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( '乒乓');
  }
  });

 client.login( '令牌'); 

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

  • 前两行是配置客户端。 第一行将模块导入名为“Discord”的对象,第二行初始化客户端对象。
  • 当机器人启动时, client.on('ready')块将触发。 在这里,它只是配置为将其名称记录到终端。
  • 每当新消息发布到任何频道时, client.on('message')块将触发。 当然,您需要检查消息内容,这就是if块的作用。 如果消息只是说“ping”,那么它将回复“Pong!”
  • 最后一行使用来自bot门户的令牌登录。 显然,截图中的令牌是假的。 不要在互联网上发布您的令牌。

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

如何运行机器人

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

  nodemon --inspect index.js 

这会启动脚本,并启动Chrome调试器,您可以通过在Chrome的Omnibar中键入chrome://inspect/然后打开“Node的专用devtools”来访问该调试器。

现在,它应该只是说“以<bot-name>登录”,但在这里我添加了一行来记录收到的所有消息对象到控制台:

那么这个消息对象是什么组成的? 很多东西,实际上:

最值得注意的是,您有作者信息和频道信息,您可以使用msg.author和msg.channel访问这些信息。 我推荐这种将对象记录到Chrome节点devtools的方法,只是环顾四周看看是什么让它起作用。 你可能会发现有趣的东西。 例如,在这里,机器人将其回复记录到控制台,因此机器人的回复会触发client.on('message') 所以,我做了一个spambot:

注意 :小心这一点,因为你真的不想处理递归。

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

这部分比应该更难。 您必须使用此URL:

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

并将CLIENTID替换为机器人的客户端ID,可在应用程序页面的常规信息选项卡中找到 完成此操作后,您可以将链接提供给您的朋友,让他们将僵尸程序添加到他们的服务器中。

好吧,那我还能做什么?

除了基本设置之外,其他任何事情都完全取决于您。 但是,如果我们停止在hello world,这不会是一个教程,所以让我们回顾一些文档 ,这样你就可以更好地了解可能的内容。 我建议你尽可能多地阅读,因为它有很好的记录。

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

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

赞 (0)
分享到:更多 ()