如何在不知道任何东西的情况下启动该项目?
好吧,作为我第一个不同意我的知识的机器人,总共增加了0ð,但考虑到我在去年年底开始移动JavaScript。
我在YouTube上和Chatgpt本身有很多帮助的渠道,以开发和理解应用程序。
在当今的互联网上,他们不是程序,也不了解谁真正想要的人,不是吗?因此,考虑一下,我需要创建一些记住的事情,以在日常生活中做一些重要的事情,我决定去学习,这就是我在这篇文章中要分享的。
注意:您的帐户在Discord上创建是基本的!
步骤1:在Discord上创建服务器。
随着疾病的打开,您需要创建服务器(可能与您要给机器人或任何其他名称的名称或任何其他名称的名称)一起提供下一步的步骤。
如果您不想在这里选择,则可以给出一个问题。
在这里您可以按照自己的名字命名并添加服务器配置文件照片。
完成,它将以这种方式打开。
步骤2:在疾病开发人员上创建一个新应用程序。
首先,您需要访问Developer Portal并转到选项新应用程序,如下图所示。
步骤3:生成机器人URL。
Apost创建应用程序,您需要执行 oauth2 >> URL GENERATOR 并标记选项 bot ,将在生成的中生成一个URL URL 字段,只需复制并在浏览器中的新选项卡中打开。
注意:如果通过标记选项 bot 来生成URL,则您需要标记选项管理员§在选择选项时将打开的§ > bot ,根据图像。
步骤4:需要在开发人员门户上完成的重要标记。
我们离开网络上的新选项卡中生成并打开的链接之前,我们需要在此处完成一个重要项目 developer portal ,这样我们就可以通过完全访问对信息。需要执行一些标记,因此您需要访问 bot 菜单,并在节省后不久,在第p。选项结束时找到标题特权网关意见。
步骤5:授权机器人输入服务器。
现在是的,让我们授予许可,以便机器人可以访问我们在 step 1 中创建的服务器,所以让我们使用生成的URL转到打开的选项卡,然后选择我们的服务器,apions,转到授权。
辩护授权他可能会要求确认它是一个人,确认后,如果一切顺利,此屏幕将出现在您身上,甚至在右下角的通知。
在我们在上创建的服务器上,步骤1 应该出现一条新的消息,欢迎该机器人,甚至显示它存在,但脱机。
步骤6:必要和必不可少的工具。
首先,您需要在母亲中安装了两个基本物品,一个IDE才能创建代码(然后我建议VS CODE20,但也有Sublime Text或Eclipse,其他河流),您也需要拥有安装了Node.Js,以便我们可以安装必要的依赖关系停止执行应用程序。
步骤7:安装必要的依赖。
最初让我们从计算机上的某个地方创建一个文件夹开始,我通常喜欢在工作中创建,但这取决于每个人,我创建了使用名称 bot- discord 的文件夹。
apã³s创建了文件夹,让我们打开IDE(在我的情况下为VS代码),让我们打开我们创建的文件夹。
打开后,让我们打开终端(可以来自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 。
在这一点上,我们已经可以开始下载一些我们需要的依赖性,主要的是Discord.js,我们将被降低。
$ npm install discord.js
我们还需要让node-cron或node-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 。
将是文件。 现在,让我们开始研究我们的机器人和您或您的功能,以发送提醒。首先,在 bot.js 文件中,我们将添加此代码。 为了使解释更容易,我添加了下一行的数量,让我们走。
下一步,让我们在处理程序>> index.js 中添加此功能。 最后,让我们将此功能添加到 sendmessage.js 。 我现在将解释如何找到上一步评论的ID。 apits激活,将转到我们在步骤1 和 enstry 的通道中创建的服务器,按下鼠标右键。复制通道ID 。
{
"token": "123456fdsd78sd54d"
}
步骤10:是时候实现它了!!!
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)
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 。 中提供的代币进行机器人登录
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 };
这个弊端的直接命令文件,将这些文件加载为妈妈,将它们添加到客户的“ slashCommands”映射中,然后在客户准备就绪时将这些命令定义到每个服务器。 。
文件
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 }
1
导入discord.js。 的库
2
导入库做节点安排。 td>
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?
首先,您需要激活开发人员模式。