DISCORD
July 6, 2023

Начало работы Discord

Итак, с момента последнего гайда прошло кучу времени, данная статья была написана давненько, однако требовалась редакция, итак приступим.

После выбора IDE (Я использую WebStorm) и ознакомления с азами JS и Node.js, приступаем к созданию первого бота.

Оглавление:

Cоздания проекта

Для создания проекта используется команда в консоли

npm init

После ввода команды она предложит выбрать имя проекта, обычно это имя папки в которой вы сейчас находитесь, я просто жму enter

Дальше просит выбрать версию, я ставлю 0.0.1

Потом просит описание

Дальше просит указать название "главного исполняемого файла", я ввожу обычно название бота.

Дальше просит ввести тестовую команду, этот пункт я пропускаю и жму enter, следом попросит git репозиторий, его мы подключим позже в гайдах, поэтому также пропускаем, точно также пропускаем keyword, далее просит ввести автора, вводим себя

На лицензия, также жмём enter, дальше просит проверить всё, также жмём enter.

Всё, мы создали проект, дальше создаём главный файл, который мы указывали до этого, папка сейчас выглядит так:

Далее заходим в package.json и после строки "version" создаем новую строку и пишем: "type" : "module", у меня сейчас этот файл выглядит так:

{
  "name": "guide_bot",
  "version": "0.0.1",
  "type": "module",
  "description": "бот для гайда тг канала https://t.me/plercn",
  "main": "guide.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "https://t.me/plercn",
  "license": "ISC"
}

После этого идём обратно в консоль и пишем:

npm i discord.js

После выполнения команды, добавится папка "node_modules" и также файл "package-lock.json"

Создание бота

Далее идём на сайт:
https://discord.com/developers/applications

Авторизовываемся и жмём кнопку:

Далее высветится окно, где надо ввести название приложения

Вводим название, жмём "Create", далее нас кинет на страницу приложения, идём во вкладку Bot, листаем чуть ниже и ставим галочки как у меня, это нужно для корректной работы бота.

Теперь чуть подробнее:
Public Bot - делает бота публичным/приватным, т.е только Вы сможете добавлять бота на сервера или же все.

Остальные пункты это доп разрешения бота, их особо рассматривать не будем, страницу не закрываем.

Первый код и запуск

Итак, идём опять в нашу IDE, заходим в файл бота и начинаем.

1) Импортируем необходимые классы для первоначального запуска бота, путём:

import {Client, GatewayIntentBits, Partials} from "discord.js";

Класс "Client" - самый важный класс, по сути класс бота,
Класс "GatewayIntentBits" - Необходим для создания систем кэширований других классов, чтобы получать их эвенты и хранить сообщения от пользователей, сервера на который есть дискорд и т.д
Класс "Partials" - по сути точно такой же доступ, необходим чтобы также дать необходимые разрешения.

После того как мы импортировали, создаём бота:

const bot_guide = new Client({
    intents: [
      GatewayIntentBits.Guilds,
      GatewayIntentBits.GuildMessages,
      GatewayIntentBits.GuildMembers,
      GatewayIntentBits.GuildPresences,
      GatewayIntentBits.GuildIntegrations,
      GatewayIntentBits.GuildModeration,
      GatewayIntentBits.AutoModerationExecution
    ],
    partials: [
      Partials.User,
      Partials.GuildMember,
      Partials.Channel,
    ]
  }
);

Таким образом мы дали разрешения:
На получения эвентов сообщений, что происходит с пользователями, интеграциями, модерациями и т.д, а также дали разрешение боту на взаимодействие с пользователями и каналами.

Все GateWayIntentBits:
https://discord-api-types.dev/api/discord-api-types-v10/enum/GatewayIntentBits
О Partials:
https://old.discordjs.dev/#/docs/discord.js/main/typedef/Partials

Далее нужно применить свой первый эвент:

bot_guide.on("ready", async () => {
  console.log("Бот запущен!")
})


Мы "говорим" боту включиться как только он залогиниться, затем создаём функцию которая при исполнения эвента(listener) выводит сообщение в консоль о том, что бот запущен, при этом функция у нас асинхронная.

Далее нам необходимо залогинить своего бота, для этого пишем следующее:

bot_guide.login("token_this")


Где вместо token_this, вставляем токен, который можно получить на странице нашего бота, нажав на кнопку "Reset Token"

Как только всё это сделали, идём в консоль и пишем:

node .

Если всё сделано верно, вам в консоль выведет "бот запущен":

Итоги

На этом гайд заканчивается, мы с 0 создали и запустили своего бота дискорда, p.s, чтобы его отключить нажмите "Ctrl+C" в консоли.

Надеюсь на вашу поддержку, ибо это мотивирует писать новые гайды.

Мой Telegram канал: https://t.me/plercn Мой Telegram чат: https://t.me/plercn_chat Мой Twitch: https://twitch.tv/plercn