Discord的第一个提醒发送:从头到部署! #step1ïda£
#javascript #初学者 #教程 #discord

如何在不知道任何东西的情况下启动该项目?

好吧,作为我第一个不同意我的知识的机器人,总共增加了0ð,但考虑到我在去年年底开始移动JavaScript。
我在YouTube上和Chatgpt本身有很多帮助的渠道,以开发和理解应用程序。
在当今的互联网上,他们不是程序,也不了解谁真正想要的人,不是吗?因此,考虑一下,我需要创建一些记住的事情,以在日常生活中做一些重要的事情,我决定去学习,这就是我在这篇文章中要分享的。

注意:您的帐户在Discord上创建是基本的!

步骤1:在Discord上创建服务器。

随着疾病的打开,您需要创建服务器(可能与您要给机器人或任何其他名称的名称或任何其他名称的名称)一起提供下一步的步骤。

Image description

Image description

如果您不想在这里选择,则可以给出一个问题。

Image description

在这里您可以按照自己的名字命名并添加服务器配置文件照片。

Image description

完成,它将以这种方式打开。

Image description


步骤2:在疾病开发人员上创建一个新应用程序。

首先,您需要访问Developer Portal并转到选项新应用程序,如下图所示。

Image description


步骤3:生成机器人URL。

Apost创建应用程序,您需要执行 oauth2 >> URL GENERATOR 并标记选项 bot ,将在生成的中生成一个URL URL 字段,只需复制并在浏览器中的新选项卡中打开。

Image description

注意:如果通过标记选项 bot 来生成URL,则您需要标记选项管理员§在选择选项时将打开的§ > bot ,根据图像。

Image description

步骤4:需要在开发人员门户上完成的重要标记。

我们离开网络上的新选项卡中生成并打开的链接之前,我们需要在此处完成一个重要项目 developer portal ,这样我们就可以通过完全访问对信息。需要执行一些标记,因此您需要访问 bot 菜单,并在节省后不久,在第p。选项结束时找到标题特权网关意见

Image description


步骤5:授权机器人输入服务器。

现在是的,让我们授予许可,以便机器人可以访问我们在 step 1 中创建的服务器,所以让我们使用生成的URL转到打开的选项卡,然后选择我们的服务器,apions,转到授权

Image description

辩护授权他可能会要求确认它是一个人,确认后,如果一切顺利,此屏幕将出现在您身上,甚至在右下角的通知。

Image description

在我们在上创建的服务器上,步骤1 应该出现一条新的消息,欢迎该机器人,甚至显示它存在,但脱机。

Image description


步骤6:必要和必不可少的工具。

首先,您需要在母亲中安装了两个基本物品,一个IDE才能创建代码(然后我建议VS CODE20,但也有Sublime TextEclipse,其他河流),您也需要拥有安装了Node.Js,以便我们可以安装必要的依赖关系停止执行应用程序。


步骤7:安装必要的依赖。

最初让我们从计算机上的某个地方创建一个文件夹开始,我通常喜欢在工作中创建,但这取决于每个人,我创建了使用名称 bot- discord 的文件夹。

Image description

apã³s创建了文件夹,让我们打开IDE(在我的情况下为VS代码),让我们打开我们创建的文件夹。

Image description

打开后,让我们打开终端(可以来自VS代码),然后运行以下命令:

$ npm init

运行上面的命令后,他会要求一些东西,只需输入所有内容,最后将获得以下返回:

{
  "name": "bot-discord",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

除了在终端,在我们创建的文件夹中,在VS代码内部的文件夹中, package.json

Image description

在这一点上,我们已经可以开始下载一些我们需要的依赖性,主要的是Discord.js,我们将被降低。

$ npm install discord.js

我们还需要让node-cronnode-schedule与Cron Job合作,就我而言,我将使用 node-schedule

$ npm install node-schedule

我们还需要安装用于系统文件管理的LIB的fs,它允许您读取文件,重命名,创建,更新和删除,但是我不会大大加深它,让我们去做重要的事情。

$ npm install fs

步骤8:创建文件并设置项目结构。

让我们首先创建 bot.js (或可能是 index.js )文件,我们还需要创建 file ,我们还将创建一个称为 comaves 的文件夹(或您想要的名称,请记住我用第一个字母maim创建的此文件夹),在此文件夹中,另一个文件夹 eneral (所有薄荷,也可以是您想要的另一个名称),我们将创建 sendmessage.js
comands 文件夹之外,即在项目的角色中,我们将创建一个称为 handler 的文件夹,其中
file
file index.js ,文件结构将是这样的。

.
├── Comands
│   └── general
│       └── sendMessage.js
├── handler
│   └── index.js
├── bot.js
├── config.json
├── package.json

步骤9:配置 config.json 文件夹。

此文件将包含您的机器人令牌,非常重要的是,该令牌不会传播,更不用说在GitHub发布时在Github中披露(如果您在Github上上升)。因此,如果您想像我的github一样爬上这个项目,则需要创建一个 .gitignore file,并在其中通知 config.json 那样。

// arquivo .gitignore
config.json

现在,知道了这一点,让我们设置文件的结构。

{
  "token": "TOKEN_DO_SEU_SERVIDOR_DISCORD"
}

要找到这个令牌,您需要去Developer Portal,菜单 bot 和选项重置令牌,然后将其复制和项链,他代替 config.json

Image description

将是文件。

{
  "token": "123456fdsd78sd54d"
}

步骤10:是时候实现它了!!!

现在,让我们开始研究我们的机器人和您或您的功能,以发送提醒。首先,在 bot.js 文件中,我们将添加此代码。

1 const Discord = require("discord.js");
2 const config = require("./config.json")
3 const client = new Discord.Client({ 
4  intents: [
5   "Guilds", 
6   "GuildMembers", 
7   "MessageContent", 
8   "GuildMessages"
9  ] 
10 });
11
12 module.exports = client
13
14 client.on('interactionCreate', (interaction) => {
15
16  if (interaction.type === 
17  Discord.InteractionType.ApplicationCommand) {
18
19    const cmd = client.slashCommands
20    .get(interaction.commandName);
21
22    if (!cmd) return interaction.reply(`Error`);
23
24    interaction["member"] = 
25    interaction.guild.members.cache
26    .get(interaction.user.id);
27
28    cmd.run(client, interaction)
29
30  }
31 })
32
33 client.on("ready", () => {
34 console.log(`Estou online em ${client.user.username}`)
35
36  client.user.setActivity({
37    name: 'Lembrete',
38    type: Discord.ActivityType.Watching
39  })
40 })
41
42 client.slashCommands = new Discord.Collection()
43 require("./handler")(client)
44
45 client.login(config.token)

为了使解释更容易,我添加了下一行的数量,让我们走。

线 explic) 的库 中提供的代币进行机器人登录
1 导入discord.js。
2 用我们的令牌导入config.json文件。
3 使用discord.client()类创建新客户。 parano 意图指定将要听的事件。
12 导出客户端对象。
14 ã事件侦听器,该侦听器处理不和谐上的应用程序命令交互。该代码的这一部分负责接收和处理Discord上的应用程序命令,允许Bot对这些命令执行特定的操作。
33 â Ready 的事件听众。
34 终端控制台上显示一条消息显示消息“我在线提醒” ,因此我们可以识别它是否真的在起作用。
42 在这些行中,创建了一个新的集合 slashCommands ,并归因于 client 对象。然后导入并执行一个称为“ handler.js” 的文件。
45 代码使用 config.json

下一步,让我们在处理程序>> index.js 中添加此功能。

1 const fs = require("fs")
2
3 module.exports = async (client) => {
4
5  const SlashsArray = []
6
7  fs.readdir(`./Comands`, (error, folder) => {
8    folder.forEach(subfolder => {
9      fs.readdir(`./Comands/${subfolder}/`, (error, files) => {
10        files.forEach(files => {
11
12          if (!files?.endsWith('.js')) return;
13          files = require(`../Comands/${subfolder}/${files}`);
14          if (!files?.name) return;
15          client.slashCommands.set(files?.name, files);
16
17          SlashsArray.push(files)
18        });
19      });
20    });
21  });
22  client.on("ready", async () => {
23    client.guilds.cache.forEach(guild => 
24    guild.commands.set(SlashsArray))
25  });
26 };

explic)
这个弊端的直接命令文件,将这些文件加载​​为妈妈,将它们添加到客户的“ slashCommands”映射中,然后在客户准备就绪时将这些命令定义到每个服务器。

最后,让我们将此功能添加到 sendmessage.js
文件

1 const Discord = require("discord.js");
2 const schedule = require("node-schedule");
3 const client = require("../../bot")
4
5 const jobOne = schedule.scheduleJob("0 8 * * *", () => {
6  sendMessage("8:00", "Correr");
7 });
8
9 const jobTwo = schedule.scheduleJob("0 12 * * *", () => {
10  sendMessage("12:00", "Caminhar");
11 });
12
13 async function sendMessage(time, activity) {
14  const channelToSend = await client.channels
15    .fetch("1113553458931437720")
16    .catch(() => null);
17
18  if (channelToSend) {
19    const embed = new Discord.EmbedBuilder()
20      .setDescription(`Olá, são ${time}, hora de  
21      ${activity}`)
22      .setColor(0x2a3756);
23
24    channelToSend.send({ embeds: [embed] });
25  }
26 }
线 explic) 的库 导出客户端对象
1 导入discord.js。
2 导入库做节点安排。
3 从** bot.js.
5 创建一个差异 jobone 从内部称为函数 schephjob 并定义了每小时£o sendmessage 运行,在这种情况下08:00在早上,他将通过时间表“ 08:00”来打电话,并在“运行”。
9 创建一个差异 jobtwo ,该功能从内部称为 scheplejob ,并定义小时£o sendmessage run,在这种情况下12:00在早晨,他将通过恐怖作为弦“ 12:00”来打电话给时间,并在“步行”。
13 创建功能 sendmessage 接收团队和活动作为parano。
14 创建parano channeltosend 并通过获取通道apions的ID的说明来解释,请说明如何找到通道ID。
18 此代码部分检查是否定义了变量 channeltosend ,且不为空。如果是正确的话,它将创建一个带有欢迎消息,当前角和活动的描述的Discord嵌入对象的实例。嵌入对象还为消息的外观定义了颜色。然后,在Channeltosend中调用函数发送()以将包含嵌入对象的消息发送为parano。此消息显示在Channeltosend差异指定的文本通道上。

步骤11:如何找到通道ID?

我现在将解释如何找到上一步评论的ID。
首先,您需要激活开发人员模式。

Image description

apits激活,将转到我们在步骤1 enstry 的通道中创建的服务器,按下鼠标右键。复制通道ID

Image description