转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人

图片[1] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

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

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

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

入门

前往 Discord 的机器人门户,并创建一个新应用程序。

图片[2] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

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

图片[3] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

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

安装 Node.js 并获取编码

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

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

npm i -g nodemon

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

这是我们的“Hello World”:

图片[4] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

const Discord = require(‘discord.js’);
const client = new Discord.Client();
client.on(‘准备好了’, () => {
console.log(`以 ${client.user.tag} 身份登录!`);
});
client.on(‘消息’, msg => {
if (msg.content === ‘ping’) {
msg.reply(‘pong’);
}
});
client.login(‘token’);

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

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

复制此代码,将您的令牌粘贴到底部,并将其另存为 专用文件夹。

index.js

如何运行机器人

图片[5] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

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

nodemon –检查 index.js

这将启动脚本,并启动 Chrome 调试器,您可以通过 在 Chrome 的 Omnibar 中键入内容然后打开“Node 专用开发工具”来访问它。

chrome://inspect/

现在,它应该只是说“以

身份登录”,但在这里我添加了一行,它将记录收到的所有消息对象到控制台:

图片[6] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

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

图片[7] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

最值得注意的是,您拥有作者信息和频道信息,您可以通过 msg.author 和 msg.channel 访问它们。我推荐这种将对象记录到 Chrome 节点开发工具的方法,然后四处看看是什么使它起作用。你可能会发现一些有趣的东西。例如,在这里,机器人将其回复记录到控制台,因此机器人的回复会触发。所以,我做了一个垃圾邮件机器人:

client.on(‘message’)

图片[8] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

注意:请注意这一点,因为您真的不想处理递归。

如何将机器人添加到您的服务器

图片[9] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

这部分比它应该的更难。你必须采取这个网址:

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

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

好吧,那我还能做什么?

图片[10] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

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

我建议添加到代码的开头,并在控制台中查看客户端对象:

console.log(client)

图片[11] - 转个技术帖学习搭建Discord~如何制作自己的 Discord 机器人 - 没前途的万事屋 - 没前途的万事屋

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

本文转自网易:阅读原文

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
吐槽 抢沙发

请登录后发表评论

    暂无评论内容