Создаем Discord-бота с помощью Node.js
Discord — это чат-приложение, которое позволяет миллионам пользователей по всему миру обмениваться сообщениями и общаться голосом вживую в сообществах, называемых гильдиями (guilds) или серверами. Discord также предоставляет обширный API, который разработчики могут использовать для создания весьма функциональных Discord-ботов. Боты могут выполнять различные действия, такие как отправка сообщений на серверы и личных сообщений пользователям, модерация серверов и воспроизведение звука в голосовых чатах. Это позволяет разработчикам создавать продвинутых ботов, которые реализуют сложные функции, такие как инструменты модерации или даже игры. Например, служебный бот Dyno обслуживает миллионы гильдий и содержит такие полезные функции, как защита от спама, музыкальный проигрыватель и много других вспомогательных служб. Знание того, как создавать Discord-ботов, позволит вам реализовать возможности, с которыми смогут взаимодействовать каждый день тысячи людей.
В этом туториале мы с вами создадим Discord-бота с нуля, используя Node.js и библиотеку Discord.js, которая позволяет пользователям напрямую взаимодействовать с Discord API. Мы настроим профиль для Discord-бота, получим для него токены аутентификации и реализуем в боте возможность обработки команд с аргументами от пользователей.
Что вам для этого понадобится
Прежде чем вы начнете, вам понадобится следующее:
- Node.js, установленный на вашем компьютере. Чтобы установить его на macOS или Ubuntu 20.04, выполните действия, перечисленные в ”Как установить Node.js и создать локальную среду разработки в macOS” или в разделе “Установка Node.js посрдством Apt с помощью NodeSource PPA” руководства ”Как установить Node.js в Ubuntu 20.04”.
- Любой текстовый редактор на ваш вкус, например Visual Studio Code, Atom, Sublime или nano.
- Бесплатный Discord-аккаунт, подтвержденный по электронной почте, и бесплатный Discord-сервер, который мы будем использовать для тестирования нашего Discord-бота.
Шаг 1 — Настройка Discord-бота
На этом этапе мы будем использовать GUI Discord для разработчиков, чтобы настроить Discord-бота и получить для него токен, который вы будете использовать в своей программе.
Чтобы зарегистрировать бота на платформе Discord, используйте Discord application dashboard (панель управления приложением). В ней разработчики могут создавать Discord-приложения, в частности — Discord-ботов.

Чтобы начать, кликните New Application. Discord попросит вас ввести имя для вашего нового приложения. Далее кликните Create, чтобы создать приложение.

Примечание: Имя вашего бота не зависит от имени приложения, т.е. имя бота не обязательно должно совпадать с именем приложения.
Теперь откройте панель управления вашего приложения. Чтобы добавить бота в приложение, перейдите на вкладку Bot на навигационной панели слева.

Чтобы добавить бота в приложение, нажмите кнопку Add Bot. Кликните Yes, do it!, когда появится диалог подтверждения. После этого вы попадете в панель управления, содержащую сведения об имени вашего бота, токен аутентификации и изображение профиля.

Вы можете изменить имя или изображение профиля своего бота здесь, в этой панели управления. Вам также необходимо получить токен аутентификации бота, кликнув Click to Reveal Token и скопировав появившийся токен.
Предупреждение: никогда ни с кем не делитесь и никуда не публикуйте токен вашего бота, так как он позволяет любому, кто им обладает, получить доступ к вашему боту.
Теперь вам нужно создать инвайт для добавления бота в Discord-гильдию, где вы сможете его тестировать. Сначала перейдите на страницу URL Generator во вкладке OAuth2 панели управления приложением. Чтобы создать инвайт, проскрольте вниз и выберите bot в scopes. Вам также следует установить разрешения (permissions), чтобы контролировать, какие действия ваш бот может выполнять в гильдиях. В рамках этого руководства мы выберем Administrator, что даст вашему боту права на выполнение почти всех возможных действий в гильдиях. Скопируйте ссылку с помощью, нажав на кнопку Copy.

Затем добавьте бота на сервер. Перейдите по только что созданной ссылке-инвайту. В раскрывающемся меню вы можете добавить бота на любой сервер, которым вы владеете или на котором имеете права администратора.

Теперь нажмите Continue. Убедитесь, что у вас установлен флажок рядом с Administrator — это предоставит боту права администратора. Затем нажмите Authorize. До того, как бот присоединится к серверу, Discord попросит вас заполнить капчу. После этого бот должен появиться в offline в списке участников на сервере, на который вы его добавили.

Вы успешно создали Discord-бота и добавили его на сервер. Далее мы напишем программу для логина в бот.
Шаг 2 — Создание вашего проекта
На этом шаге мы настроим базовую среду разработки, в которой вы напишете код своего бота и залогинитесь в него программным способом.
Во-первых, вам нужно создать папку проекта и необходимые файлы для бота.
Создайте папку своего проекта:
mkdir discord-bot
Перейдите в папку проекта, которую вы только что создали:
cd discord-bot
Затем с помощью текстового редактора создайте файл с именем config.json , где будет храниться токен аутентификации вашего бота:
nano config.json
Добавьте следующий код в полученный файл конфигурации, заменив выделенный текст на токен аутентификации вашего бота:
Сохраните и закройте файл.
Затем вам нужно создать файл package.json , в котором будут храниться сведения о вашем проекте и зависимостях, которые вы будете для него использовать. Создайте файл package.json , выполнив следующую npm-команду:
npm init
npm запросит у вас различные сведения о вашем проекте. Если вам нужна помощь в заполнении этих сведений, вы можете почитать об этом в разделе “Как использовать модули Node.js с npm и package.json”.
Теперь вам нужно установить пакет discord.js , который вы будете использовать для взаимодействия с Discord API. Вы можете установить discord.js через npm с помощью следующей команды:
npm install discord.js
Когда вы настроили файл конфигурации и установили необходимую зависимость, вы готовы приступить к созданию своего бота. В реальном приложении, если бот большой, то он будет разделен на множество файлов, но в этом руководстве весь код вашего бота будет написан в одном файле.
Сначала создайте файл с именем index.js в папке discord-bot:
nano index.js
Начнем код бота с требования зависимости discord.js и файл конфигурации с токеном:
const Discord = require("discord.js"); const config = require("./config.json");
После этого добавьте следующие две строки кода:
. const client = new Discord.Client(
Сохраните и закройте файл.
Первая строка кода создает новый Discord.Client и присваивает его константе client. Этот клиент - это то, как вы будете взаимодействовать с Discord API и как Discord будет уведомлять вас о таких событиях, как новые сообщения. Клиент, по сути, представляет Discord-бота. Объект, переданный в конструктор Client , определяет намерения (gateway intents) вашего бота. Таким образом определяется, какие WebSocket-события будет слушать ваш бот. Здесь мы указали GUILDS и GUILD_MESSAGES , чтобы бот получал события сообщений в гильдиях.
Вторая строка кода использует метод login для входа в созданный вами Discord-бот, используя токен из файла config.json в качестве пароля. Токен позволяет Discord API узнать, для какого бота предназначена программа, и что вы прошли аутентификацию для использования этого бота.
Теперь запустите файл index.js с помощью Node:
node index.js
Статус вашего бота на Discord-сервере, на который вы его добавили, изменится на online.

Вы успешно настроили среду разработки и написали базовый код для логина в Discord-бот. На следующем шаге мы будем обрабатывать пользовательские команды и научим ваш бот выполнять действия, такие как отправка сообщений.
Шаг 3 - Обработка вашей первой пользовательской команды
На этом шаге вы создадите бота, который может обрабатывать пользовательские команды. Вы реализуете свою первую команду ping , которая будет отвечать "pong" и временем, которое потребовалось для ответа на команду.
Во-первых, чтобы вы могли обрабатывать команды, вам нужно обнаруживать и получать сообщения, которые отправляют пользователи. Используя метод Discord-клиента on , вы будете получать от Discord уведомление о новых событиях. Метод on принимает два аргумента: имя ожидаемого события и функцию, запускаемую каждый раз, когда это событие происходит. С помощью этого метода вы можете прослушивать событие message , которое генерируется каждый раз, когда сообщение отправляется в гильдию, в которой бот имеет разрешение на просмотр сообщений. Таким образом мы создадим функцию, которая запускается каждый раз, когда отправляется сообщение.
Сначала откройте свой файл:
nano index.js
Добавьте в файл следующий код:
. const client = new Discord.Client(); client.on("messageCreate", function(message) < >); client.login(config.BOT_TOKEN);
Эта функция, которая запускается в ответ на событие messageCreate, принимает message в качестве параметра. message имеет значение инстанса сообщения Discord.js, которое содержит информацию об отправленном сообщении и методах, которые помогут боту ответить.
Добавьте следующую строку кода в свою функцию обработки команд:
. client.on("messageCreate", function(message) < if (message.author.bot) return; >); .
Эта строка проверяет, является ли автор сообщения ботом, и, если да, то прекращает обработку команды. Это важно, поскольку обычно вы не хотите обрабатывать сообщения ботов или отвечать на них. Ботам обычно не нужно использовать информацию от других ботов, поэтому игнорирование их сообщений помогает предотвратить нежелательные ответы и экономит вычислительную мощность.
Теперь мы напишем обработчик команд. Для этого нужно понимать формат команды Discord. Обычно команда Discord состоит из трех частей в следующем порядке: префикс, имя команды и (иногда) аргументы команды.

- Префикс: префиксом может быть что угодно, но зачастую это пунктуационный символ или абстрактная фраза, которая обычно не встречается в начале сообщения. Это означает, что когда вы начинаете сообщение с префикса, бот поймет, что предназначение этой команды заключается в том, чтобы бот обработал ее.
- Имя команды: имя команды, которую хочет использовать пользователь. Это означает, что бот может поддерживать несколько команд с разной функциональностью и позволяет пользователям выбирать между ними, указывая соответствующее имя команды.
- Аргументы: иногда, если команда использует или даже требует дополнительную информацию от пользователя, пользователь может указать аргументы после имени команды, где этом каждый аргумент отделяется пробелом.
Примечание: Нет унифицированной жесткой структуры команд, и боты могут обрабатывать команды так, как вам хочется, но представленная здесь структура является эффективной, и ее использует подавляющее большинство ботов.
Начнем создание парсера команд, обрабатывающего этот формат, добавив следующие строки кода в функцию обработки сообщений:
. const prefix = "!"; client.on("messageCreate", function(message) < if (message.author.bot) return; if (!message.content.startsWith(prefix)) return; >); .
В первой строке кода мы присваиваем константе prefix значение "!" , которое будет использоваться в качестве префикса команды.
Во второй строке кода, которую вы добавляете, мы проверяем, начинается ли содержимое сообщения, полученного ботом, с установленного вами префикса, и, если нет, то останавливаем обработку сообщения.
Теперь нам нужно преобразовать остальную часть сообщения в имя команды и аргументы, которые могут присутствовать в сообщении. Добавьте следующие выделенные строки:
. client.on("messageCreate", function(message) < if (message.author.bot) return; if (!message.content.startsWith(prefix)) return; const commandBody = message.content.slice(prefix.length); const args = commandBody.split(' '); const command = args.shift().toLowerCase(); >); .
В первой строке мы удаляем префикс из сообщения и присваиваем результат константе commandBody . Это необходимо, поскольку нам не нужно включать префикс в имя команды, которую мы парсим.
Вторая строка принимает сообщение уже без префикса и применяет к нему метод split с пробелом в качестве разделителя. Это разобьет его на массив подстрок, делая разделение везде, где стоит пробел. В результате получается массив, содержащий имя команды, а затем, если они включены в сообщение, все аргументы. Мы присваиваем этот массив константе args .
Третья строка удаляет первый элемент из массива args (он станет именем полученной команды), преобразует его в нижний регистр и затем назначает его константе command . Это позволяет вам изолировать имя команды и оставить в массиве только аргументы. Вы также следует использовать метод toLowerCase , поскольку команды в Discord-ботах обычно нечувствительны к регистру.
Вы завершили создание парсера команд, реализовали требуемый префикс и получили имя команды и все аргументы из сообщения. Теперь вам нужно написать код для конкретных команд.
Добавьте следующий код для команды ping :
. const args = commandBody.split(' '); const command = args.shift().toLowerCase(); if (command === "ping") < >>); .
Этот if-оператор проверяет, совпадает ли имя команды, которое вы распарсили (присвоенное константе command ), с "ping" . Если совпадает, то это означает, что пользователь хочет использовать команду "ping" . В подобной примитивной реализации код для конкретной команд вы можете просто обернуть в блок if-оператора. Делайте тоже самое и для других команд, которые хотите реализовать.
Теперь вы можете написать код для команды "ping" :
. if (command === "ping") < const timeTaken = Date.now() - message.createdTimestamp; message.reply(`Pong! This message had a latency of $ms.`); > .
Сохраните и закройте файл.
Мы добавили блок команды "ping" , который вычисляет разницу между текущим временем, полученным с помощью метода now объекта Date, и таймстемпом, когда сообщение было создано, в миллисекундах. Таким образом мы узнаем, сколько времени потребовалось для обработки сообщения, т.е. "ping" бота.
Вторая строка отвечает на команду пользователя, используя метод reply константы message . Метод reply пингует (уведомляет и выделяет сообщение для указанного пользователя) пользователя, который отправил команду, с содержимым, предоставляемым в качестве первого аргумента метода. Вы предоставляете литерал шаблона, содержащий сообщение и вычисленный пинг, в качестве ответа, который использует метод reply .
На этом реализация команды "ping" закончена.
Запустите своего бота с помощью следующей команды (в той же папке, что и index.js ):
node index.js
Теперь вы можете использовать команду "!ping" в любом канале, который бот может просматривать и отправлять туда сообщения, и получите ответ.

Вы успешно создали бота, который может обрабатывать пользовательские команды, и реализовали свою первую команду. На следующем шаге мы научим бота выполнив команду sum.
Шаг 4 - Реализация команды Sum
Теперь мы расширим программу командой "!sum" . Команда примет любое количество аргументов, сложит их, а потом вернет пользователю сумму всех аргументов.
Если Discord бот все еще работает, вы можете остановить его процесс с CTRL + C .
Снова откройте файл index.js :
nano index.js
Для реализации команды "!sum" мы будем использовать блок else-if . После проверки имени команды на равенство ping он проверит, совпадает ли оно с "sum". Мы используем блок else-if , поскольку одновременно будет обрабатываться только одна команда, т.е., если программа получит команду "ping" , ей не нужно проверять, что это была команда "sum" . Добавьте в файл следующие выделенные строки:
. if (command === "ping") < const timeTaken = Date.now() - message.createdTimestamp; message.reply(`Ping! This message had a latency of $ms.`); > else if (command === "sum") < >>); .
Приступим к написанию кода команды "sum" . Код для команды "sum" будет расположен в только что созданном вами блоке else-if . Добавьте следующий код:
. else if (command === "sum") < const numArgs = args.map(x =>parseFloat(x)); const sum = numArgs.reduce((counter, x) => counter += x); message.reply(`The sum of all the arguments you provided is $!`); > .
Мы используем метод map на списке аргументов, чтобы создать новый список, используя функцию parseFloat для каждого элемента в массиве args . Это создаст новый массив (присвоенный константе numArgs ), в котором все элементы являются числами, а не строками. Это означает, что позже вы сможете успешно найти сумму этих чисел, сложив их вместе.
Вторая строка использует метод reduce на константе numArgs , которая суммирует все элементы в списке. Мы присваиваем сумму всех элементов в numArgs константе sum .
Затем мы используем метод reply , чтобы ответить по аналогии с предыдущей командой.
На этом реализация команды "sum" завершена. Теперь запустим бота, используя следующую команду (в той же папке, что и index.js ):
node index.js
Вы можете использовать команду "!sum" в любом канале, который бот может просматривать и отправлять туда сообщения.

Ниже представлена полная версия index.js бота:
const Discord = require("discord.js"); const config = require("./config.json"); const client = new Discord.Client(); const prefix = "!"; client.on("messageCreate", function(message) < if (message.author.bot) return; if (!message.content.startsWith(prefix)) return; const commandBody = message.content.slice(prefix.length); const args = commandBody.split(' '); const command = args.shift().toLowerCase(); if (command === "ping") < const timeTaken = Date.now() - message.createdTimestamp; message.reply(`Pong! This message had a latency of $ms.`); > else if (command === "sum") < const numArgs = args.map(x =>parseFloat(x)); const sum = numArgs.reduce((counter, x) => counter += x); message.reply(`The sum of all the arguments you provided is $!`); > >); client.login(config.BOT_TOKEN);
Заключение
Вы успешно создали Discord-бота, который может обрабатывать несколько разных пользовательских команд с аргументами. Если вы хотите расширить возможности своего бота, вы могли бы реализовать больше команд или опробовать другие части Discord API. Рекомендую вам почитать документацию Discord.js и Discord API, чтобы углубить свои знания о Discord API. В частности, вы можете преобразовать свои команды своего бота в слэш-команды, что является лучшей практикой для Discord.js v13.
Создавая Discord-ботов, вы всегда должны помнить об условиях обслуживания Discord API, в которых описывается, как разработчики должны использовать Discord API. Если вы хотите узнать больше о Node.js, ознакомьтесь с нашей серией статей How To Code in Node.js.
Перевод статьи подготовлен в преддверии старта специализации Fullstack developer, а также курса Node.js Developer.
- Узнать подробнее о специализации Fullstack developer
- Узнать о курсе Node.js Developer
Как запустить бота на Node JS?
Прежде всего в контакт-лист телеграмма нужно добавить @botFather и написать ему команду /newBot. Далее задаем имя нашего бота и, если оно не занято, придумываем идентификатор бота, по которому его можно будет найти. Далее создадим новый проект, введем npm init и добавим файл bot.
Как запустить бота Node JS?
Тут всё просто, в консоли пишем node index. js , заходим к нашему боту в телеграм и начинаем с ним общаться. Не закрывайте консоль — бот работает только на вашем компьютере, и без консоли он не станет отвечать. Как видим, бот успешно отвечает.27 апр. 2020 г.
Как запустить Телеграм бота на сервер?
Размещаем чат-бота Чтобы настроить его, заходим во вкладку SFTP в Termius, нажимаем на «select host» и выбираем имя сервера. После этого создаем папку с любым названием на латинице. Затем копируем в нее файлы бота.15 июн. 2020 г.
Как запустить бота?
Как создать нового бота в TelegramШаг 1. Введите в поле поиска @BotFather и выберите бота.Шаг 2. Нажмите «Запустить» для активации бота BotFather.Шаг 3. Выберите или напечатайте и отправьте команду /newbot .Шаг 4. Дайте имя боту — клиенты увидят это имя при общении с ботом. . Шаг 1. . Шаг 2.29 мар. 2021 г.
Как запустить бота на Python?
Для создания бота понадобится пакет python-telegram-bot — оболочка для API от Telegram. Написать бота с помощью этой библиотеки очень просто, так как она полностью совместима с Python 3.6+. Первое, что нужно сделать — установить python-telegram-bot. Вот ссылка на официальную документацию библиотеки.5 апр. 2021 г.
Как загрузить бота на Heroku?
3 ответаПервым делом создайте Git репозиторий в папке с ботом: git init.Войдите в аккаунт Heroku : heroku login.Создайте приложение: heroku create appname --region eu.Теперь нужно упаковать все зависимости проекта: pip freeze > requirements.txt. . Коммитим изменения: git add . . Пушим на Heroku : git push heroku master.•22 окт. 2018 г.
Как запустить Телеграм бота на ПК?
Зарегистрировать нового бота в TelegramНайдите бота @BotFather в Телеграм. Это официальный бот, созданный специально для управления ботами.Отправьте ему команду: /newbot.@BotFather спросит вас, как вы назовёте вашего бота. . Запишите полученный токен от @BotFather — это ключ для работы с Telegram API.
На чем лучше написать Телеграм бота?
Нет принципиальной разницы, на каком языке писать бота. . Вам потребуется просто достучаться до API телеграма. Чаще всего ботов пишут на Python - просто потому, что на этом языке просто что-то реализовать и много реализованных библиотек.11 апр. 2021 г.
Как запустить php бота?
Просто нажмите кнопку «Добавить бота» на диалоговой клавиатуре, введите ник своего бота, и вы получите токен бота. Теперь Botanio готов отслеживать ваши бот-события, и вы можете получать статистику по пользователям, сеансам, времени хранения и событиям прямо в своем мессенджере.16 мар. 2019 г.
Как установить бота на сервер дискорд?
Чтобы пригласить бота, нажмите на ссылку авторизации, выберите сервер, откажитесь или разрешите ему указывать разрешения на странице и нажмите «Авторизовать». Чтобы удалить бота с вашего сервера, просто кикните или забаньте его, как любого другого пользователя. У аккаунтов ботов есть тег бота рядом с их именем.
Как добавить на сервер бота?
Как добавить ботов на сервер DiscordПроверьте свои разрешения Вы можете приглашать ботов только на те серверы, где у вас есть на это разрешение. . Пригласите бота Далее вам нужно пригласить бота на свой сервер. . Авторизуйте разрешения бота. . Настройте роль бота в Discord. . Настройте и используйте Discord Bot.15 нояб. 2020 г.
Какие есть боты в Дискорде?
А теперь давайте изучим 10 наиболее полезных и распространенных ботов для «Дискорд» в 2021 году.MEE6. Невероятно полезный Discord-бот, использующийся для модерации, настройки уровней и создания кастомных команд на сервере. . ProBot. . Groovy. . Dank Memer. . Dyno bot. . Rythm бот . Quillbot.1 окт. 2021 г.
Как создать сервер в ДС?
Начните с выбора знака + в левой части интерфейса пользователя Discord. На мобильном устройстве вы должны нажать на три строки в левом верхнем углу экрана, чтобы получить доступ к этой панели. Это опция добавления сервера. После того, как вы нажали или нажали на него, выберите опцию создания сервера.26 мар. 2020 г.
Как создать свой дискорд?
Как создать учетную запись Дискорд?Откройте приложение Discord на вашем устройстве.Нажмите кнопку "Требуется учетная запись".Нажмите на поле имени пользователя.Введите имя пользователя для новой учетной записи.Нажмите на поле электронной почты.Введите адрес электронной почты.Нажмите на поле пароля.
Как сделать сервер в ДС популярным?
Как сделать свой Discord-сервер популярным? Приглашать друзей, и ваши друзья приглашают их друзей. Пиарить на своем ютуб канале, либо попросить известного ютубера(это коннчно не будет бесплатно) Заходить на специальные сервера с пиаром. . Настроить ботов получше.27 дек. 2020 г.
Как создать сервер по шаблону дискорд?
Как создать Для того что бы создать Серверный шаблон, нужно зайти в настройки сервера, далее зайти в раздел Server Template, там вы можете указать название шаблона и его описание, далее вы создаете шаблон и копируете ссылку, которую вы можете создавать и раздавать людям для создания аналогичного сервера.
Как использовать шаблон дискорд?
Как только новое меню загрузится в Discord, дайте своему серверу имя, загрузите для него изображение, а затем нажмите кнопку «Создать сервер». После того, как ваш шаблонный сервер настроен, вы можете щелкнуть правой кнопкой мыши каналы, чтобы взаимодействовать с ними.25 янв. 2021 г.
Как сделать свой дискорд красивым?
0:124:58Рекомендуемый клип · 61 сек.Начало рекомендуемого клипаКонец рекомендуемого клипа
Что можно добавить на сервер в Дискорде?
Как красиво оформить и настроить сервер в Дискорде, фишки для улучшенияНазвание сервера и логотипГруппировка и названия каналовТекст с правилами сервераСообщение с приветствиемУправление ролямиЭмодзиБотыИнтеграция26 июн. 2021 г.
Как поднять актив в дискорд сервере?
Чтобы поднять актив сервера Дискорд, необходимо дать пользователям дополнительные возможности, к примеру, прослушивания музыки, обмена изображениями и т. д.7 мая 2021 г.
Что такое виджет сервера в Дискорде?
Виджет для мессенджера «Дискорд» – скрипт, добавляющий на веб-страницу сайта, интернет-магазина или тематического ресурса панель, отображающую информацию о сервере, открывающую доступ к чату и функциям базового взаимодействия с посетителями.28 мар. 2021 г.
Как сделать канал только для чтения в Дискорде?
Если вам нужен канал только для чтения, в настройках канала поставьте крестик для роли "@everyone" на против "Отправлять сообщения". Готово.8 дек. 2020 г.
Телеграм-бот на сервере: загрузка, настройка и запуск
В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.
Шаг 1. Выбрать хостинг
Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):
- Google Cloud
- Oracle Cloud
- Amazon Web Services
Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.
Для примера мы закажем облачный VPS в REG.RU, вы можете воспользоваться любым VPS-хостингом. Он удобен для тестового проекта тем, что оплата почасовая. При выборе тарифа мы рекомендуем ориентироваться на несколько параметров:
- Прогнозируемая нагрузка — зависит от сложности вашего бота и количества запросов к нему.
- Количество оперативной памяти — это зависит от многих факторов, как, например, уровень оптимизации кода и общий масштаб вашего проекта.
Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.
Шаг 2. Заказать хостинг
Переходим по ссылке: https://www.reg.ru/vps/cloud/, выбираем тариф, операционную систему и шаблон «Чистая ОС». Если у вас нет особых предпочтений, рекомендуем выбрать Ubuntu 18.04. Хотя у REG.RU есть шаблон c Node.js, для чистоты эксперимента всё необходимое ПО мы установим сами. Нажимаем кнопку «Заказать»:

После заказа и оплаты дождёмся настройки сервера:

В течение минуты статус сервера сменится с «В процессе» на «Активен». После этого отобразятся реквизиты доступа к серверу, они также будут отправлены на почту:

Шаг 3. Загрузить бота
Приступим к загрузке бота на сервер. Это можно сделать разными способами — с помощью FTP, SFTP, панели управления или, к примеру, rsync. Мы выберем самый быстрый вариант — SFTP, так как для него нужна только возможность подключения к серверу по SSH, которая обычно присутствует на всех VPS сразу после заказа.
Мы подключимся к серверу с помощью FileZilla. Укажем IP-адрес сервера, а также логин root и пароль в настройках клиента:

При первом подключении появится окно с предупреждением:

Ставим галочку «Всегда доверять этому хосту» и нажимаем «Ок».
Переходим на директорию выше ( . ), затем в каталог /opt и создаём папку с произвольным названием (мы выбрали keksbot ):

Переходим в созданную папку и загружаем файлы index.js и package.json :

Шаг 4. Зайти на сервер по SSH
Теперь нужно подключиться к серверу по SSH, чтобы установить Node.js и запустить бота. Для этого необходим SSH-клиент, например Putty, XShell, Bitvise SSH или любой другой. Функциональность программ может немного отличаться, но большой разницы в использовании между ними нет. Мы выбрали PuTTY как самый популярный и бесплатный SSH-клиент для Windows.
Открываем PuTTY, указываем IP-адрес сервера, порт 22 уже указан по умолчанию:

Нажимаем «Соединиться». Откроется окно с запросом логина:

Вводим root , после чего появится запрос пароля, при вводе которого символы не отображаются. Не стоит переживать, это особенность работы Linux — пароль нужно вводить вслепую. Чтобы не делать этого вручную, можно скопировать пароль и нажать правой кнопкой мыши в окне PuTTY. Убедитесь, что вы скопировали пароль без пробелов!
Шаг 5. Установить Node.js
Теперь займёмся установкой. Обратите внимание, что команды для установки Node.js отличаются в зависимости от операционной системы. В наших примерах указаны команды для Ubuntu, Debian и CentOS — мы будем вводить их в консоли SSH-клиента.
Если вы не знаете, какая ОС установлена на сервере, можете проверить это командой:
cat /etc/os-release
Вывод будет примерно таким:
NAME="Ubuntu" VERSION="16.04.6 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.6 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" VERSION_CODENAME=xenial UBUNTU_CODENAME=xenial
Нас интересует поле NAME , в котором указано название дистрибутива.
Помимо Node.js нам понадобится утилита Screen, чтобы бот продолжал работать, когда мы отключимся от сервера. Также нужен менеджер пакетов npm для установки зависимостей.
apt -y install nodejs npm screen
yum -y install nodejs npm screen
Подождём завершения установки и проверим, что Node.js работает:
nodejs -v
Если в ответе отобразилась версия установленного пакета, то всё прошло успешно.
Теперь перейдём в папку с файлом бота и установим зависимости:
cd /opt/keksbot npm install
Возможные ошибки при установке, и как их решить
При установке могут появиться ошибки вида:
Existing lock /var/run/yum.pid: another copy is running as pid 9571. Another app is currently holding the yum lock; waiting for it to exit.
E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
Обычно это связано с тем, что у пользователя недостаточно прав для установки пакетов на сервере, либо предыдущий процесс установки завершён некорректно.
В первом случае необходимо убедиться, что вы подключились к серверу под именем суперпользователя root — при необходимости зайдите на сервер заново.
Во втором случае для решения проблемы нужно завершить процесс менеджера пакетов и удалить lock -файлы. Чтобы это сделать, запустите команды:
ps aux | grep ‘apt\|apt-get’ | awk ‘’ | xargs kill -9 rm -f /var/cache/apt/archives/lock rm -f /var/lib/dpkg/lock rm -rf /var/lib/dpkg/lock-frontend
ps aux | grep ‘yum’ | awk ‘’ | xargs kill -9 rm -f /var/cache/apt/archives/lock rm -f /var/lib/dpkg/lock
После этого попробуйте заново запустить установку.
Шаг 6. Запустить и проверить бота
Пришло время запустить бота. Для начала запустим утилиту Screen простой командой:
screen
Перейдём в каталог с файлом бота:
cd /opt/keksbot
npm install
После этого можем запустить бота:
nodejs index.js
Заходим в Telegram, проверяем бота:

Отлично! Всё работает.
Теперь можно отключиться от сервера и закрыть окно PuTTY, бот продолжит работу.
Шаг 7. Обеспечить автоматический перезапуск бота
Из-за ошибок в коде бот может «упасть» в самый неожиданный момент. Чтобы этого не случилось, настроим автозапуск бота при старте сервера и его автоматический перезапуск при ошибках.
Это позволит боту стабильно работать даже в случае обнаружения багов. Вы сможете оперативно их исправить, а бот в это время продолжит отвечать на запросы.
Большинство современных Linux-систем используют systemd для управления службами, поэтому следующая инструкция подойдёт для последних версий Ubuntu, Debian и CentOS.
Для начала отключим бота командой:
killall node
Нам понадобится создать собственную службу, для этого в каталоге /lib/systemd/system создадим файл:
имя_бота.service
В нашем случае это будет файл /lib/systemd/system/keksbot.service . В файл поместим следующий код:
[Unit] Description=Keksbot - Telegram bot After=network.target [Service] ExecStart=/usr/bin/node index.js ExecReload=/usr/bin/node index.js WorkingDirectory=/opt/keksbot/ KillMode=process Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
Текст в некоторых строках необходимо отредактировать относительно вашего проекта. Разберём строки, на которые нужно обратить внимание.
В поле Description указывается описание службы. Вы можете указать в ней краткую информацию о боте.
Description=Keksbot - Telegram bot
Команда для запуска бота.
ExecStart=/usr/bin/node index.js ExecReload=/usr/bin/node index.js
Её следует поменять, если имя скрипта вашего бота отличается от index.js . В таком случае нужно будет указать следующие значения:
ExecStart=/usr/bin/node имя_файла.js ExecReload=/usr/bin/node имя_файла.js
Папка со скриптом, который мы запускаем. В нашем случае это /opt/keksbot/ .
WorkingDirectory=/opt/keksbot/
Сохраняем файл. В примерах далее мы будем использовать имя службы keksbot — если вы указали другое имя, не забудьте поменять его. Для установки службы воспользуемся командами:
systemctl enable keksbot
Теперь запустим бота командой:
systemctl start keksbot
Готово. Теперь бот будет автоматически запускаться при старте сервера или при возникновении ошибок. Можно проверить это, завершив процесс node:
killall node
Через пять секунд бот автоматически перезапустится.
Помимо запуска мы можем управлять ботом командами:
systemctl stop keksbot
systemctl restart keksbot
systemctl status keksbot
Ещё о создании бота:
- Как написать Телеграм-бота на JavaScript
- Как настроить работу Телеграм-бота с Google Sheets
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Создание Discord-бота, используя библиотеку discord.js | Часть №1
В этой статье я подробно расскажу о том, как работать с библиотекой discord.js, создать своего Discord-бота, а также покажу несколько интересных и полезных команд.
Сразу хочу отметить, что я планирую сделать ряд подобных статей, начиная с простых команд, заканчивая музыкой, системой экономики и распознаванием голоса ботом.
Начало работы
Если вы уже знакомы с приведёнными ниже материалами, — смело можете пролистать этот раздел.
Установка среды разработки
Для начала работы с кодом нам нужно установить среду разработки, это может быть:
Среда разработки выбирается по удобству использования и практичности, она у вас может быть любая, но мы рассмотрим её на примере Visual Studio Code, так как она является одной из самых приемлемых для новичков, а также для опытных программистов.
Для установки переходим по этой ссылке.

Выбираем свою операционную систему и запускаем скачивание.
Установка среды выполнения
Для создания бота мы используем среду выполнения node.js. Для её установки нам необходимо перейти на этот сайт.

На данный момент нас интересует версия долгосрочной поддержки (LTS), скачиваем её.
Установка полезных расширений
В Visual Studio Code присутствует возможность устанавливать расширения.
Для этого, кликните по отмеченной ниже иконке.

В открывшемся окне вписываем название название/идентификатор нужного нам расширения, после чего устанавливаем его.

Из полезных расширений могу отметить:
-
Discord Presence — расширение, позволяющее отображать рабочую область и файл, в котором вы работаете в вашей игровой активности (функция работает только при использовании приложения Discord).

Идентификатор расширения: icrawl.discord-vscode
Идентификатор расширения: formulahendry.code-runner
Создание бота
Теперь, когда вы установили все нужные компоненты, мы можем приступить к созданию самого бота.
Здесь всё просто. Переходим на портал разработчиков и нажимаем на кнопку с надписью «New Application» — она находится в правом верхнем углу.
В открывшемся окне вписываем имя бота, после чего, нажимаем на кнопку с надписью «Create».

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

Нажимаем на кнопку с надписью «Add Bot» и воплощаем бота в жизнь.
Поздравляю! Вы создали аккаунт для вашего бота. Теперь у него есть тег, токен, ник и иконка.
Подготовка к написанию кода
После создания аккаунта для бота, мы должны установить нужные пакеты и модули, чтобы в дальнейшем он корректно работал.
Первым делом создаём папку, после чего открываем её в VS Code (Файл > Открыть папку) / (Ctrl + K Ctrl + O)
Далее нам нужно открыть терминал (Терминал > Создать терминал) / (Ctrl + Shift + `)

Теперь мы должны создать файл с неким «описанием» нашего бота, сделаем это через терминал.
Вписываем данную строку в терминал и нажимаем Enter:
npm init
После каждой появившейся строки нажимаем Enter или вписываем свои значения.
Значения в этом файле можно будет изменить в любой момент.
Далее, мы должны поочерёдно вводить в терминал эти строки:
npm install
npm install discord.js
«Install» также можно сокращать в «I», но необязательно.
Итого, если вы следовали инструкциям и всё сделали правильно, в вашей папке должны были появиться 3 объекта:

Написание кода
Об удобстве написания кода
Для того, чтобы наш бот появился в сети и мог реагировать на команды, нам нужно написать для него код.
Существует множество вариантов для его написания: используя один файл, два, несколько, и т.д
Мы рассмотрим вариант с двумя файлами, так как его использовать очень легко и удобно, но у каждого варианта есть свои недостатки — например, у этого недостатком является сложность в написании начального кода.
Но не волнуйтесь, весь код вам писать не придётся.
О хранении данных
Для начала, нам нужно где-то хранить основные параметры и информацию о боте.
Мы можем сделать это двумя способами:
- Создать отдельный файл
- Записать всё в константы
Разберём хранение параметров в отдельном файле.
Итак, создаем файл config.json
Вставляем в него следующий код:
* Для получения токена зайдите на портал разработчиков, перейдите во вкладку «Bot» и скопируйте его.

* Самым распространённым среди разработчиков префиксом является !
Далее нам нужно создать файл bot.js и вставить в него данный код:
const Discord = require('discord.js'); // Подключаем библиотеку discord.js const robot = new Discord.Client(); // Объявляем, что robot - бот const comms = require("./comms.js"); // Подключаем файл с командами для бота const fs = require('fs'); // Подключаем родной модуль файловой системы node.js let config = require('./config.json'); // Подключаем файл с параметрами и информацией let token = config.token; // «Вытаскиваем» из него токен let prefix = config.prefix; // «Вытаскиваем» из него префикс robot.on("ready", function() < /* При успешном запуске, в консоли появится сообщение «[Имя бота] запустился!» */ console.log(robot.user.username + " запустился!"); >); robot.on('message', (msg) => < // Реагирование на сообщения if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) < var comm = msg.content.trim() + " "; var comm_name = comm.slice(0, comm.indexOf(" ")); var messArr = comm.split(" "); for (comm_count in comms.comms) < var comm2 = prefix + comms.comms[comm_count].name; if (comm2 == comm_name) < comms.comms[comm_count].out(robot, msg, messArr); >> > >); robot.login(token); // Авторизация бота
Теперь создаём файл comms.js, в нём будут сами команды.
В нём должен быть следующий код:
const config = require('./config.json'); // Подключаем файл с параметрами и информацией const Discord = require('discord.js'); // Подключаем библиотеку discord.js const prefix = config.prefix; // «Вытаскиваем» префикс // Команды // function test(robot, mess, args) < mess.channel.send('Test!') >// Список команд // var comms_list = [< name: "test", out: test, about: "Тестовая команда" >]; // Name - название команды, на которую будет реагировать бот // Out - название функции с командой // About - описание команды module.exports.comms = comms_list;
Чтобы добавить больше команд — просто объявляйте больше функций и добавляйте их в список, например:
const config = require('./config.json'); const Discord = require('discord.js'); const prefix = config.prefix; const versions = config.versions; // Команды // function test(robot, mess, args) < mess.channel.send("Тест!") >function hello(robot, mess, args) < mess.reply("Привет!") >// Список комманд // var comms_list = [< name: "test", out: test, about: "Тестовая команда" >, < name: "hello", out: hello, about: "Команда для приветствия!" >> module.exports.comms = comms_list;
И вот, мы вышли на финишную прямую!
Осталось всего ничего — запустить бота.
Для этого открываем терминал и вставляем в него следующую строку:
node bot.js

Готово! Бот запущен и вы можете им пользоваться, ура!
Чтобы пригласить бота на свой сервер, воспользуемся нам уже известным порталом разработчиков.
Перейдём во вкладку OAuth2, пролистаем чуть ниже, выберем «Bot» и отметим нужные боту привилегии.
Теперь осталось скопировать ссылку-приглашение и добавить бота на свой сервер.

Как вывести ссылку-приглашение в терминал, при запуске бота?
Существует два способа:
-
Заранее отметить нужные привилегии.
Для этого, сначала мы должны скопировать ссылку-приглашение.
После чего перейти в файл bot.js и вставить данную строчку кода сюда:
robot.on("ready", function()< console.log(robot.user.username + " запустился!"); console.log("Ссылка-приглашение") // )
Итоговый код должен быть таким:
const Discord = require('discord.js'); const robot = new Discord.Client(); var comms = require("./comms.js"); const fs = require('fs'); let config = require('./config.json'); let token = config.token; let prefix = config.prefix; robot.on("ready", function()< console.log(robot.user.username + " запустился!"); console.log("Ссылка-приглашение") >) robot.on('message', (msg) => < if(msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator)< var comm = msg.content.trim()+" "; var ok = false; var comm_name = comm.slice(0, comm.indexOf(" ")); var messArr = comm.split(" "); for(comm_count in comms.comms)< var comm2 = prefix + comms.comms[comm_count].name; if(comm2 == comm_name)< comms.comms[comm_count].out(robot, msg, messArr); >> > >); robot.login(token) robot.login(token);
robot.on("ready", function() < console.log(robot.user.username + " запустился!"); robot.generateInvite(["ADMINISTRATOR"]).then((link) =>< // < // console.log(link); // < // >)>)
const Discord = require('discord.js'); const robot = new Discord.Client(); var comms = require("./comms.js"); const fs = require('fs'); let config = require('./config.json'); let token = config.token; let prefix = config.prefix; robot.on("ready", function() < console.log(robot.user.username + " запустился!"); robot.generateInvite(["ADMINISTRATOR"]).then((link) =>< console.log(link); >)>) robot.on('message', (msg) => < if(msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator)< var comm = msg.content.trim()+" "; var ok = false; var comm_name = comm.slice(0, comm.indexOf(" ")); var messArr = comm.split(" "); for(comm_count in comms.comms)< var comm2 = prefix + comms.comms[comm_count].name; if(comm2 == comm_name)< comms.comms[comm_count].out(robot, msg, messArr); >> > >); robot.login(token);
Чтобы указать несколько привилегий, мы должны перечислить их в квадратных скобках, через запятую:
robot.generateInvite(['KICK_MEMBERS', 'BAN_MEMBERS', 'SEND_MESSAGES']).then((link) => < console.log(link);
* Все привилегии указываются заглавными буквами
Список доступных привилегий:
ADMINISTRATOR
CREATE_INSTANT_INVITE
KICK_MEMBERS
BAN_MEMBERS
MANAGE_CHANNELS
MANAGE_GUILD
ADD_REACTIONS
VIEW_AUDIT_LOG
PRIORITY_SPEAKER
STREAM
VIEW_CHANNEL
SEND_MESSAGES
SEND_TTS_MESSAGES
MANAGE_MESSAGES
EMBED_LINKS
ATTACH_FILES
READ_MESSAGE_HISTORY
MENTION_EVERYONE
USE_EXTERNAL_EMOJIS
VIEW_GUILD_INSIGHTS
CONNECT
SPEAK
MUTE_MEMBERS
DEAFEN_MEMBERS
MOVE_MEMBERS
USE_VAD
CHANGE_NICKNAME
MANAGE_NICKNAMES
MANAGE_ROLES
MANAGE_WEBHOOKS
MANAGE_EMOJIS
Полезные и интересные команды
В предыдущем разделе я показал вам, как запустить бота и как писать для него команды.
Теперь я хочу поделиться с вами несколькими своими командами.
-
!say — с помощью этой команды бот может повторить ваше сообщение.
if (!mess.member.hasPermission("MANAGE_MESSAGES")) return mess.channel.send("У вас нет прав"); /* Если у исполнителя команды нету привилегии MANGAGE_MESSAGES, он не сможет её использовать */ args = mess.content.split(' '); args.shift(); args = args.join(' '); mess.delete().catch(); // Удаление сообщения пользователя после отправки mess.channel.send(args)
mess.channel.send('Монета подбрасывается. ') var random = Math.floor(Math.random() * 4) + 1; // Объявление переменной random - она вычисляет случайное число от 1 до 3 if (random === 1) < // Если вычислено число 1, то выпадает орёл. mess.channel.send(':full_moon: Орёл!') >else if (random === 2) < // Если вычислено число 2, то выпадает решка. mess.channel.send(':new_moon: Решка!') >else if (random === 3) < // Если вычислено число 3, то монета падает ребром. mess.channel.send(':last_quarter_moon: Монета упала ребром!') >
const arggs = mess.content.split(' ').slice(1); // Все аргументы за именем команды с префиксом const amount = arggs.join(' '); // Количество сообщений, которые должны быть удалены if (!amount) return mess.channel.send('Вы не указали, сколько сообщений нужно удалить!'); // Проверка, задан ли параметр количества if (isNaN(amount)) return mess.channel.send('Это не число!'); // Проверка, является ли числом ввод пользователя if (amount > 100) return mess.channel.send('Вы не можете удалить 100 сообщений за раз'); // Проверка, является ли ввод пользователя числом больше 100 if (amount < 1) return mess.channel.send('Вы должны ввести число больше чем 1'); // Проверка, является ли ввод пользователя числом меньше 1 async function delete_messages() < // Объявление асинхронной функции await mess.channel.messages.fetch(< limit: amount >).then(messages => < mess.channel.bulkDelete(messages) mess.channel.send(`Удалено $сообщений!`) >) >; delete_messages(); // Вызов асинхронной функции
Не стоит пугаться большого кода, здесь всё предельно просто.
var name = [ // Объявление массива name и занесение в него большого количества имён 'Абрам', ' Аваз', ' Аввакум', ' Август', ' Августин', ' Авдей', ' Авраам', ' Автандил', ' Агап', ' Агафон', ' Аггей', ' Адам', ' Адис', ' Адольф', ' Адриан', ' Азамат', ' Айдар', ' Айнур', ' Айрат', ' Аким', ' Алан', ' Алей', ' Александр', ' Алексей', ' Али', ' Альберт', ' Альфред', ' Амадей', ' Амадеус', ' Амаяк', ' Амвросий', ' Ананий', ' Анастасий', ' Анатолий', ' Анвар', ' Ангел', ' Андоим', ' Андрей', ' Аникита', ' Антон', ' Арам', ' Арий', ' Аристарх', ' Аркадий', ' Арман', ' Арно', ' Арнольд', ' Арон', ' Арсен', ' Арсений', ' Арслан', ' Артем', ' Артемий', ' Артур', ' Архип', ' Аскар', ' Аскольд', ' Аслан', ' Афанасий', ' Ахмет', ' Ашот', ' Бальтазар', ' Бежен', ' Бенедикт', ' Берек', ' Бернард', ' Бертран', ' Богдан', ' Болеслав', ' Борис', ' Бронислав', ' Булат', ' Вадим', ' Валентин', ' Валерий', ' Вальтер', ' Варфоломей', ' Василий', ' Вацлав', ' Велизар', ' Венедикт', ' Вениамин', ' Викентий', ' Виктор', ' Вилли', ' Вильгельм', ' Виссарион', ' Виталий', ' Витольд', ' Владимир', ' Владислав', ' Владлен', ' Володар', ' Вольдемар', ' Всеволод', ' Вячеслав', ' Гавриил', ' Галактион', ' Гарри', ' Гастон', ' Гаяс', ' Гевор', ' Геннадий', ' Генрих', ' Георгий', ' Геракл', ' Геральд', ' Герасим', ' Герман', ' Глеб', ' Гордей', ' Гордон', ' Горислав', ' Градимир', ' Григорий', ' Гурий', ' Густав', ' Давид', ' Дамир', ' Даниил', ' Даниэль', ' Данияр', ' Дарий', ' Дементий', ' Демид', ' Демосфен', ' Демьян', ' Денис', ' Джамал', ' Джордан', ' Дмитрий', ' Добрыня', ' Дональд', ' Донат', ' Дорофей', ' Евгений', ' Евграф', ' Евдоким', ' Евсевий', ' Евсей', ' Евстафий', ' Егор', ' Елеазар', ' Елисей', ' Емельян', ' Еремей', ' Ермолай', ' Ерофей', ' Ефим', ' Ефрем', ' Жан', ' Ждан', ' Жорж', ' Захар', ' Зиновий', ' Ибрагим', ' Иван', ' Игнатий', ' Игорь', ' Илларион', ' Ильдар', ' Ильнар', ' Ильнур', ' Илья', ' Ильяс', ' Иннокентий', ' Иоанн', ' Иосиф', ' Ипполит', ' Искандер', ' Ислам', ' Камиль', ' Карим', ' Карл', ' Кирилл', ' Клим', ' Кондрат', ' Константин', ' Корней', ' Кузьма', ' Лавр', ' Лаврентий', ' Лев', ' Леон', ' Леонид', ' Леонтий', ' Леопольд', ' Лука', ' Лукьян', ' Любим', ' Макар', ' Максим', ' Максимилиан', ' Марат', ' Марк', ' Марсель', ' Мартин', ' Матвей', ' Мирон', ' Мирослав', ' Митрофан', ' Михаил', ' Михей', ' Мишель', ' Мстислав', ' Мурат', ' Муслим', ' Назар', 'Абрам', ' Аваз', ' Аввакум', ' Август', ' Августин', ' Авдей', ' Авраам', ' Автандил', ' Агап', ' Агафон', ' Аггей', ' Адам', ' Адис', ' Адольф', ' Адриан', ' Азамат', ' Айдар', ' Айнур', ' Айрат', ' Аким', ' Алан', ' Алей', ' Александр', ' Алексей', ' Али', ' Альберт', ' Альфред', ' Амадей', ' Амадеус', ' Амаяк', ' Амвросий', ' Ананий', ' Анастасий', ' Анатолий', ' Анвар', ' Ангел', ' Андоим', ' Андрей', ' Аникита', ' Антон', ' Арам', ' Арий', ' Аристарх', ' Аркадий', ' Арман', ' Арно', ' Арнольд', ' Арон', ' Арсен', ' Арсений', ' Арслан', ' Артем', ' Артемий', ' Артур', ' Архип', ' Аскар', ' Аскольд', ' Аслан', ' Афанасий', ' Ахмет', ' Ашот', ' Бальтазар', ' Бежен', ' Бенедикт', ' Берек', ' Бернард', ' Бертран', ' Богдан', ' Болеслав', ' Борис', ' Бронислав', ' Булат', ' Вадим', ' Валентин', ' Валерий', ' Вальтер', ' Варфоломей', ' Василий', ' Вацлав', ' Велизар', ' Венедикт', ' Вениамин', ' Викентий', ' Виктор', ' Вилли', ' Вильгельм', ' Виссарион', ' Виталий', ' Витольд', ' Владимир', ' Владислав', ' Владлен', ' Володар', ' Вольдемар', ' Всеволод', ' Вячеслав', ' Гавриил', ' Галактион', ' Гарри', ' Гастон', ' Гаяс', ' Гевор', ' Геннадий', ' Генрих', ' Георгий', ' Геракл', ' Геральд', ' Герасим', ' Герман', ' Глеб', ' Гордей', ' Гордон', ' Горислав', ' Градимир', ' Григорий', ' Гурий', ' Густав', ' Давид', ' Дамир', ' Даниил', ' Даниэль', ' Данияр', ' Дарий', ' Дементий', ' Демид', ' Демосфен', ' Демьян', ' Денис', ' Джамал', ' Джордан', ' Дмитрий', ' Добрыня', ' Дональд', ' Донат', ' Дорофей', ' Евгений', ' Евграф', ' Евдоким', ' Евсевий', ' Евсей', ' Евстафий', ' Егор', ' Елеазар', ' Елисей', ' Емельян', ' Еремей', ' Ермолай', ' Ерофей', ' Ефим', ' Ефрем', ' Жан', ' Ждан', ' Жорж', ' Захар', ' Зиновий', ' Ибрагим', ' Иван', ' Игнатий', ' Игорь', ' Илларион', ' Ильдар', ' Ильнар', ' Ильнур', ' Илья', ' Ильяс', ' Иннокентий', ' Иоанн', ' Иосиф', ' Ипполит', ' Искандер', ' Ислам', ' Камиль', ' Карим', ' Карл', ' Кирилл', ' Клим', ' Кондрат', ' Константин', ' Корней', ' Кузьма', ' Лавр', ' Лаврентий', ' Лев', ' Леон', ' Леонид', ' Леонтий', ' Леопольд', ' Лука', ' Лукьян', ' Любим', ' Макар', ' Максим', ' Максимилиан', ' Марат', ' Марк', ' Марсель', ' Мартин', ' Матвей', ' Мирон', ' Мирослав', ' Митрофан', ' Михаил', ' Михей', ' Мишель', ' Мстислав', ' Мурат', ' Муслим', ' Назар' ]; var RandElement = name[Math.floor(Math.random() * (name.length))]; // Выбор случайного элемента из массива mess.channel.send(RandElement) // Отправка сообщения со случайным элементом из массива в чат
Заключение
Вот и подошла к концу первая часть обучения, как вы могли заметить, создать бота, используя библиотеку discord.js очень просто.
Итого, из этой статьи мы выяснили:
- Как установить нужные модули и пакеты
- Как установить среду разработки
- Как установить среду выполнения
- Как установить полезные расширения
- Как создать аккаунт для бота
- Как воплотить бота в жизнь
- Как запустить бота
- Как научить бота реагировать на команды
- Как пригласить бота на свой сервер
- Как писать код для работы команд
Надеюсь, что вам понравилась моя статья и вы узнали из неё что-то новое.
Сайты для самостоятельного изучения
- Основная документация discord.js
- Документация discord.js №2
- Руководство discord.js
- Руководство discord.js №2
