Как создать бота для разногласий на js

Обновлено: 06.07.2024

Discord – это приложение для чата, которое позволяет миллионам пользователей по всему миру обмениваться сообщениями и голосовым чатом в онлайн-сообществах, называемых гильдиями или серверами. Discord также предоставляет обширный API, который разработчики могут использовать для создания мощных ботов Discord. Боты могут выполнять различные действия, такие как отправка сообщений на серверы, отправка сообщений пользователям, модерация серверов и воспроизведение звука в голосовых чатах. Это позволяет разработчикам создавать мощных ботов, которые включают расширенные сложные функции, такие как инструменты модерации или даже игры. Например, служебный бот Dyno обслуживает миллионы гильдий и содержит такие полезные функции, как защита от спама, музыкальный проигрыватель и другие служебные функции. Научившись создавать ботов Discord, вы сможете реализовать множество возможностей, с которыми каждый день могут взаимодействовать тысячи людей.

В этом руководстве вы создадите бота Discord с нуля, используя Node.js и библиотеку Discord.js, что позволит пользователям напрямую взаимодействовать с API Discord. Вы настроите профиль для бота 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. Здесь разработчики могут создавать приложения Discord, включая ботов Discord.

Изображение панели управления приложения Discord после первого посещения https://discord .com/developers/applications

Чтобы начать, нажмите Новое приложение. Discord попросит вас ввести имя для вашего нового приложения. Затем нажмите «Создать», чтобы создать приложение.

Изображение запроса на создание приложения с < бр />

Примечание. Имя вашего приложения не зависит от имени бота, и имя бота не обязательно должно совпадать с именем приложения.

Теперь откройте панель инструментов вашего приложения. Чтобы добавить бота в приложение, перейдите на вкладку "Бот" на панели навигации слева.

Изображение вкладки бота на панели управления приложения

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

Панель инструментов, содержащая сведения о вашем боте
< /p>

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

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

Теперь вам нужно создать приглашение, чтобы добавить бота в гильдию Discord, где вы сможете его протестировать. Сначала перейдите на страницу генератора URL-адресов на вкладке OAuth2 панели управления приложением. Чтобы создать приглашение, прокрутите вниз и выберите бота в области видимости. Вы также должны установить разрешения, чтобы контролировать, какие действия ваш бот может выполнять в гильдиях. Для целей этого руководства выберите «Администратор», что даст вашему боту разрешение выполнять почти все действия в гильдиях. Скопируйте ссылку с помощью кнопки Копировать.

вкладка OAuth2 с областью действия

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

Страница перехода по ссылке-приглашению, позволяющая пользователям добавлять бота на серверы

Теперь нажмите «Продолжить». Убедитесь, что у вас установлен флажок рядом с «Администратор» — это предоставит боту права администратора. Затем нажмите Авторизовать. Discord попросит вас решить CAPTCHA, прежде чем бот присоединится к серверу. Теперь у вас есть бот Discord в списке участников на сервере, на который вы добавили бота в автономном режиме.

Список участников сервера Discord с вновь созданным ботом под

Вы успешно создали бота Discord и добавили его на сервер. Далее вы напишете программу для входа в бота.

Шаг 2 — Создание проекта

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

Во-первых, вам нужно настроить папку проекта и необходимые файлы проекта для бота.

Создайте папку проекта:

Перейдите в только что созданную папку проекта:

Затем с помощью текстового редактора создайте файл с именем config.json для хранения токена аутентификации вашего бота:

Затем добавьте в файл конфигурации следующий код, заменив выделенный текст токеном аутентификации вашего бота:

Сохраните и закройте файл.

Далее вы создадите файл package.json, в котором будут храниться сведения о вашем проекте и информация о зависимостях, которые вы будете использовать для проекта. Вы создадите файл package.json, выполнив следующую команду npm:

npm запросит у вас различные сведения о вашем проекте. Если вам нужны инструкции по выполнению этих запросов, вы можете прочитать о них в разделе Как использовать модули Node.js с npm и package.json.

Теперь вы установите пакет discord.js, который будете использовать для взаимодействия с API Discord. Вы можете установить discord.js через npm с помощью следующей команды:

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

Сначала создайте файл с именем index.js в папке discord-bot для кода:

Начните программировать бота, потребовав зависимость discord.js и файл конфигурации с токеном бота:

После этого добавьте следующие две строки кода:

Сохраните и закройте файл.

Первая строка кода создает новый Discord.Client и назначает его постоянному client . Этот клиент частично определяет, как вы будете взаимодействовать с API Discord и как Discord будет уведомлять вас о таких событиях, как новые сообщения. Клиент, по сути, представляет собой бота Discord. Объект, переданный в конструктор Client, определяет намерения шлюза вашего бота. Это определяет, какие события WebSocket будет прослушивать ваш бот. Здесь вы указали GUILDS и GUILD_MESSAGES, чтобы бот мог получать события сообщений в гильдиях.

Вторая строка кода использует метод входа на клиенте для входа в созданный вами бот Discord, используя токен в файле config.json в качестве пароля. Токен сообщает Discord API, для какого бота предназначена программа, и что вы прошли аутентификацию для использования бота.

Теперь запустите файл index.js с помощью Node:

Статус вашего бота изменится на "В сети" на сервере Discord, на который вы его добавили.

Изображение бота в сети

Вы успешно настроили среду кодирования и создали базовый код для входа в бот Discord. На следующем шаге вы будете обрабатывать пользовательские команды и заставите своего бота выполнять действия, например отправлять сообщения.

Шаг 3. Обработка вашей первой пользовательской команды

На этом шаге вы создадите бота, который может обрабатывать пользовательские команды. Вы реализуете свою первую команду ping , которая будет отвечать "pong" и временем, необходимым для ответа на команду.

Во-первых, вам нужно обнаруживать и получать любые сообщения, которые отправляют пользователи, чтобы вы могли обрабатывать любые команды. Используя метод on в клиенте Discord, Discord будет отправлять вам уведомления о новых событиях. Метод on принимает два аргумента: имя ожидаемого события и функцию, запускаемую каждый раз, когда это событие происходит. С помощью этого метода вы можете дождаться сообщения о событии — это будет происходить каждый раз, когда сообщение отправляется в гильдию, где бот имеет разрешение на просмотр сообщений. Поэтому вы создадите функцию, которая запускается каждый раз, когда сообщение отправляется для обработки команд.

Сначала откройте файл:

Добавьте в файл следующий код:

Эта функция, которая запускается для события messageCreate, принимает сообщение в качестве параметра. сообщение будет иметь значение Discord.js, который содержит информацию об отправленном сообщении и методах, помогающих боту ответить.

Теперь добавьте следующую строку кода в функцию обработки команд:

Эта строка проверяет, является ли автор сообщения ботом, и если да, то прекращает обработку команды. Это важно, так как обычно вы не хотите обрабатывать сообщения ботов или отвечать на них. Обычно ботам не нужно использовать информацию от других ботов, поэтому игнорирование их сообщений экономит вычислительную мощность и помогает предотвратить случайные ответы.

Теперь вы напишете обработчик команд. Для этого полезно понимать обычный формат команды Discord. Обычно структура команды Discord состоит из трех частей в следующем порядке: префикс, имя команды и (иногда) аргументы команды.

Изображение типичного чтения команды Discord

Префикс: префикс может быть любым, но обычно это часть пунктуации или абстрактная фраза, которая обычно не стоит в начале сообщения. Это означает, что если вы укажете префикс в начале сообщения, бот будет знать, что эта команда предназначена для обработки ботом.

Имя команды: имя команды, которую хочет использовать пользователь. Это означает, что бот может поддерживать несколько команд с разными функциями и позволяет пользователям выбирать между ними, указав другое имя команды.

Аргументы. Иногда, если команда требует или использует дополнительную информацию от пользователя, пользователь может указать аргументы после имени команды, разделив каждый аргумент пробелом.

Примечание. Принудительной структуры команд не существует, и боты могут обрабатывать команды так, как им нравится, но представленная здесь структура является эффективной структурой, которую использует подавляющее большинство ботов.

Чтобы начать создание парсера команд, который обрабатывает этот формат, добавьте следующие строки кода в функцию обработки сообщений:

Вы добавляете первую строку кода, чтобы присвоить значение "!" на постоянный префикс , который вы будете использовать в качестве префикса бота.

Вторая строка кода, которую вы добавляете, проверяет, начинается ли содержимое сообщения, которое обрабатывает бот, с установленного вами префикса, и если это не так, останавливает дальнейшую обработку сообщения.

Теперь вы должны преобразовать остальную часть сообщения в имя команды и любые аргументы, которые могут существовать в сообщении. Добавьте следующие выделенные строки:

Вы используете первую строку здесь, чтобы удалить префикс из содержимого сообщения и присвоить результат константе commandBody . Это необходимо, так как вы не хотите включать префикс в разбираемое имя команды.

Вторая строка берет сообщение с удаленным префиксом и использует для него метод разделения с пробелом в качестве разделителя. Это разбивает его на массив подстрок, создавая разделение везде, где есть пробел. В результате получается массив, содержащий имя команды, а затем, если он включен в сообщение, любые аргументы. Вы присваиваете этот массив константе args .

Третья строка удаляет первый элемент из массива args (который будет предоставленным именем команды), преобразует его в нижний регистр, а затем назначает его константе command . Это позволяет изолировать имя команды и оставить в массиве только аргументы. Вы также используете метод toLowerCase, так как команды обычно нечувствительны к регистру в ботах Discord.

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

Добавьте следующий код, чтобы начать реализацию команды ping:

Этот оператор if проверяет, соответствует ли проанализированное вами имя команды (назначенное константной команде) "ping". Если это так, это означает, что пользователь хочет использовать команду «ping». Вы вложите код конкретной команды в блок операторов if. Вы будете повторять этот шаблон для других команд, которые хотите реализовать.

Теперь вы можете реализовать код для команды "ping":

Сохраните и закройте файл.

Вы добавляете командный блок "ping", который вычисляет разницу между текущим временем, найденным с помощью метода now объекта Date, и отметкой времени создания сообщения в миллисекундах. Это вычисляет, сколько времени потребовалось для обработки сообщения и «пинг» бота.

Вторая строка отвечает на команду пользователя, используя метод ответа для константы сообщения. Метод ответа отправляет эхо-запрос (который уведомляет пользователя и выделяет сообщение для указанного пользователя) пользователя, вызвавшего команду, а затем содержимое, предоставленное в качестве первого аргумента метода. Вы предоставляете литерал шаблона, содержащий сообщение и рассчитанный пинг в качестве ответа, который будет использовать метод ответа.

На этом реализация команды "ping" завершена.

Запустите бота с помощью следующей команды (в той же папке, что и index.js ):

Теперь вы можете использовать команду "!ping" в любом канале, который бот может просматривать и отправлять сообщения, что приводит к ответу.

Изображение бота, отвечающего в Discord на

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

Шаг 4. Реализация команды Sum

Теперь вы расширите свою программу, реализовав команду "!sum". Команда примет любое количество аргументов и сложит их вместе, прежде чем вернуть пользователю сумму всех аргументов.

Если ваш бот Discord все еще работает, вы можете остановить его работу, нажав CTRL + C .

Снова откройте файл index.js:

Чтобы начать реализацию команды "!sum", вы будете использовать блок else-if. После проверки имени команды ping он проверит, равно ли имя команды «sum». Вы будете использовать блок else-if, поскольку одновременно будет обрабатываться только одна команда, поэтому, если программа соответствует имени команды «ping», ей не нужно проверять команду «sum». Добавьте в файл следующие выделенные строки:

Вы можете приступить к реализации кода для команды "сумма". Код команды «сумма» будет находиться внутри только что созданного вами блока else-if. Теперь добавьте следующий код:

Вы используете метод map для списка аргументов, чтобы создать новый список, используя функцию parseFloat для каждого элемента в массиве args. Это создает новый массив (назначенный константе numArgs), в котором все элементы являются числами, а не строками. Это означает, что позже вы сможете успешно найти сумму чисел, сложив их вместе.

Во второй строке используется метод сокращения константы numArgs, обеспечивающий функцию, которая суммирует все элементы в списке. Вы присваиваете сумму всех элементов в numArgs постоянной сумме .

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

На этом реализация команды "sum" завершена. Теперь запустите бота с помощью следующей команды (в той же папке, что и index.js):

Теперь вы можете использовать команду "!sum" на любом канале, который бот может просматривать и отправлять сообщения.

Изображение отвечающего бота

Ниже представлена ​​завершенная версия скрипта бота index.js:

На этом шаге вы усовершенствовали своего бота Discord, внедрив команду sum.

Заключение

Вы успешно реализовали бота Discord, который может обрабатывать несколько различных пользовательских команд и аргументов команд. Если вы хотите расширить возможности своего бота, вы можете реализовать больше команд или опробовать дополнительные части API Discord, чтобы создать мощного бота Discord. Вы можете просмотреть документацию Discord.js или документацию по API Discord, чтобы расширить свои знания об API Discord. В частности, вы можете преобразовать команды бота в команды с косой чертой, что рекомендуется для Discord.js v13.

При создании ботов Discord всегда следует помнить об условиях обслуживания Discord API, в которых описывается, как разработчики должны использовать Discord API. Если вы хотите узнать больше о Node.js, ознакомьтесь с нашей серией статей «Как кодировать в Node.js».

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Discord – это надежное приложение для общения, которым пользуется большое сообщество геймеров, разработчиков и энтузиастов криптовалюты.

Администраторы могут добавлять на свои серверы уникальных ботов Discord. Существуют также мощные API для создания ботов Discord для тех, кто предпочитает брать дело в свои руки. Например, Discord.js позволяет нам создать простого бота Discord с помощью Javascript.

В этом руководстве мы обсудим, как создать бота Discord и запустить его на сервере.

Оглавление

Требования

Чтобы следовать дальше, читателю потребуется:

  • Подключение к сети Wi-Fi.
  • Аккаунт Discord.
  • Редактор кода, например Visual Studio Code. .

Добавить новое приложение Discord

Затем нажмите кнопку "Новое приложение" справа.

 новое приложение

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

 Диалог

Далее выберите вариант бота , а затем кнопку добавления бота. Появится следующее диалоговое окно:

 Подтверждение

Затем подтвердите создание нового приложения и все; у вас есть бот.

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

Нажмите на меню OAuth2 и установите флажки, как показано ниже. Затем скопируйте ссылку, появившуюся в текстовом поле:

 бот

 разрешение

Затем вставьте скопированную ранее ссылку в любой браузер. Вы должны увидеть следующий экран:

 вставить ссылку

Выберите свой сервер и нажмите кнопку авторизации:

 авторизовать

Если у вас нет сервера, перейдите по этой ссылке, чтобы создать его.

Создание проекта Node.js

Поскольку мы зарегистрировали нашего бота, теперь нам нужно создать папку, в которой будут храниться наши файлы Node.js. Вы можете загрузить последнюю версию Node.js отсюда.

Установка зависимостей

Зависимости – это пакеты, которые необходимы приложению для работы. В нашем случае нам нужна только библиотека discord.js. Тем не менее, мы установим пакет dotenv, чтобы упростить управление токеном mybot.

Это обеспечит правильную авторизацию всех вызовов. Нам также требуется nodemon для поддержания работы сервера. Запустите новый терминал и введите следующую команду для инициализации проекта:

Обратите внимание, как приведенная выше команда создает проект npm, минуя интерактивный процесс.

В моем случае результаты следующие:

Команда ниже установит discord.js и библиотеку dotenv в проект:

Чтобы установить библиотеку nodemon, используйте следующую команду:

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

Создаем нашего бота

Нам нужно авторизовать звонки от Discord.js на портале разработчиков. Для этого мы должны скопировать токен нашего бота.

 копировать-токен

После копирования откройте новый файл и назовите его .env , а затем вставьте его в следующем формате.

Создайте файл бота

Создайте новый файл и назовите его bot.js в главном каталоге проекта. Мы настроим переменные среды с помощью пакета dotenv, импортируем классы из discord.js, а затем запустим новый клиент:

Чтобы запустить бота, введите в терминале следующее:

 бот-онлайн

Как показано выше, наш бот находится в сети, но не имеет никаких функций.

Обратите внимание, что мы аутентифицируем именованную переменную из нашего файла .env, который подключен к Discord API. Чтобы протестировать бота, мы должны войти в учетную запись Discord и запустить сервер.

Ответ на сообщения

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

Наш бот ответит на приветственное сообщение и упомянет отправителя.

 ответ-сообщение

Обзор

Мы добавили новое приложение Discord через портал разработчиков Discord.

Для разработки нашего бота мы создали проект Node.js и установили необходимые зависимости. Затем мы разрешили боту отвечать на определенные сообщения от пользователей.

Вы можете получить доступ к полному коду здесь.

Заключение

Платформа Discord быстро развивается.Это создало безопасный способ для геймеров, предпринимателей и любителей криптовалюты общаться и общаться с другими единомышленниками.

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

Discord – это мощное коммуникационное приложение, которым пользуется огромное сообщество геймеров, разработчиков и энтузиастов криптовалюты. Существует океан уникальных ботов Discord, которые администраторы могут добавить на свои серверы. Для тех, кто более склонен брать дело в свои руки, есть также мощные API для создания ботов Discord.

  1. 1 Краткое введение
  2. 2 Шаг 1. Настройка проекта
    1. 2.1. Шаг 1а. Создайте новый проект и инициализируйте его как проект Node.js.
    2. 2.2. Шаг 1.b. Установка зависимостей
    3. 2.3. Шаг 1.c. Добавьте файл .env для хранения токена OAuth2
    4. 2.4. Необязательно: обновите Node.js
      1. 4.1. Шаг 3.a. Скопируйте токен OAuth2 в файл .env
      2. 4.2. Шаг 3.b. Создание основного файла.
        1. 6.1 Отсутствующие намерения клиента
        2. 6.2 Бот удален с сервера

        Используя Discord.js, можно относительно легко создать бота Discord с использованием Javascript. В этом руководстве по ботам Discord мы рассмотрим все необходимое, чтобы развернуть бота на нашем сервере Discord. Прежде чем полностью погрузиться в тему, давайте сначала рассмотрим некоторые основные требования, необходимые для запуска и запуска бота Discord.

        Краткое введение

        1. Настройка проекта + установка библиотек
        2. Убедитесь, что установлена ​​правильная версия Node.js
        3. Регистрация приложения на портале разработчиков Discord
        4. Настройка разрешений для наших ботов
        5. Программирование логики бота в Discord.js

        К концу этого руководства у нас будет полностью функционирующий бот Discord, который можно развернуть на сервере по нашему выбору. В этом руководстве предполагается, что читатели знакомы с базовым синтаксисом JavaScript, базовой конфигурацией проекта Node.js и установкой пакетов через npm.

        Шаг 1. Настройка проекта

        Для начала нам необходимо выполнить следующие задачи:

        1. Создайте новую папку проекта с соответствующими файлами.
        2. Инициализирует новый проект Node.js
        3. Установить зависимости
        4. Обновите узел, если необходимо

        Мы разберем эти шаги один за другим, чтобы убедиться, что наше приложение правильно запускается. Во-первых, давайте создадим новую папку проекта и инициализируем ее как новый проект Node.js

        Примечание. Эти шаги выполняются на компьютере с Windows 10 в WebStorm IDE от Jetbrains.

        Шаг 1а. Создайте новый проект и инициализируйте его как проект Node.js

        После создания нового каталога проекта нам нужно инициализировать проект как проект Node.js. Это можно сделать с помощью команды npm init и получить следующий результат:

        npm init one

        Запросы конфигурации и результирующий вывод после выполнения команды npm init (щелкните, чтобы увеличить)

        В качестве альтернативы мы могли бы использовать npm init --y, чтобы принять все значения по умолчанию, сгенерированные npm.

        Шаг 1.b. Установите зависимости

        Нам нужно установить некоторые зависимости, чтобы сделать alphabot немного интереснее. Единственная необходимая библиотека — Discord.js. Однако мы также установим dotenv, чтобы помочь управлять токеном alphabot, чтобы наши вызовы API могли быть должным образом авторизованы. Оба они могут быть установлены в одну строку как таковые: npm i --save discord.js dotenv . Флаг --save гарантирует, что эти пакеты будут перечислены как зависимости в package.json. Чтобы быть уверенным, мы подтвердим, что содержимое нашего файла package.json отражает следующее:

        Шаг 1.c. Добавьте файл .env для хранения нашего токена OAuth2

        Discord.js требуется токен нашего приложения для выполнения вызовов API Discord. Это может быть жестко закодировано в нашем приложении, загружено через текстовый файл или любым другим способом. В духе передовой практики мы собираемся использовать переменную системной среды, поддерживаемую пакетом dotenv.

        Чтобы это работало, нам нужно создать новый файл с именем .env в папке нашего проекта и добавить следующую информацию:

        Чуть позже мы расскажем, как это работает. А пока давайте сделаем шаг назад и убедимся, что папка нашего проекта отражает все, что требуется. Структура нашего проекта теперь должна выглядеть так:

        Необязательно: обновите Node.js

        Начиная с Discord.js V13.0.0, требуется версия Node.js >=16.0.0. На момент написания текущая LTS-версия Node.js — 14.18.1, что не соответствует требованиям Discord.js. Дополнительную информацию об этом можно найти здесь. Чтобы исправить эту ситуацию, просто загрузите версию 16.0.0 или более позднюю.

        После всей этой настройки наш следующий шаг – зарегистрировать приложение Discord, создать нашего бота, получить URL-адрес OAuth2 и вернуться в папку нашего проекта с токеном доступа к API.

        Шаг 2. Зарегистрируйте приложение Discord

        Для начала нам необходимо зарегистрировать приложение. Это делается через портал разработчиков Discord. Чтобы получить доступ к этому порталу, необходимо войти в версию Discord для веб-браузера, а затем перейти на портал разработчиков здесь. Нажмите кнопку Новое приложение в правом верхнем углу окна браузера, чтобы зарегистрировать новое приложение.

        1 регистрация новое приложение

        Нажмите кнопку «Новое приложение», чтобы начать работу с новым ботом Discord

        После нажатия этой кнопки нам будет предложено создать диалоговое окно для создания имени для нашего приложения. В этом случае мы назовем нашего бота alphabot. Как креативно, верно? Это следующий экран, который нам показывают:

        2 назовите свое приложение

        Введите имя для приложения, затем нажмите кнопку «Создать», чтобы создать новое приложение Discord.

        С помощью этого действия мы успешно создали новое приложение Discord. Примечание. Это пока не бот Discord. Нам все еще нужно указать несколько параметров конфигурации для этого. Вот экран, который нам сейчас показывают:

        3 экран-заставка приложения

        Этот экран указывает на успешное создание приложения Discord

        Вы заметите, что слева в меню есть пункт Bot. Вот куда мы идем дальше. Это вызовет разрешения и URL-адреса аутентификации для нашего нового бота Discord, а также информацию о токенах, чтобы мы могли начать кодировать нашего бота Discord. Оказавшись там, нажмите кнопку «Создать бота», чтобы открыть следующий экран подтверждения:

        4 экран создания бота

        Создайте нового бота и подтвердите, чтобы получить доступ к странице конфигурации бота

        После подтверждения создания нашего нового бота мы перейдем на страницу конфигурации бота. Есть несколько дополнительных функций, которые мы можем включить здесь, хотя, если наш бот обнаружит себя на более чем 100 серверах, может потребоваться дополнительная проверка и одобрение. Подробнее читайте здесь. Это дополнительные функции:

        5 опционально привилегии бота 1

        Участники и намерение присутствия являются необязательными, но полезными функциями.

        Эти параметры дадут нашему боту несколько дополнительных разрешений для взаимодействия с пользователями. Это не является строго необходимым, но, учитывая относительную простоту, с которой мы можем их включить, почему бы не иметь дополнительную область действия. Следующим в нашем списке является посещение меню OAuth2, чтобы установить область действия нашего бота и получить URL-адрес OAuth2 для авторизации нашего нового бота.

        6 бот область разрешений oauth2

        Отметив «Бот» для области разрешений, а затем выбрав нужные разрешения, будет создан соответствующий URL-адрес OAuth2

        Далее скопируйте URL-адрес, показанный чуть ниже панели Области, и вставьте его в наш веб-браузер. Это авторизует нашего нового бота Discord, чтобы мы могли начать разработку кода. Теперь после копирования/вставки URL-адреса OAuth2 в выбранный нами браузер (смелый, верно?) отображается следующий экран:

        7 разрешить диалоговое окно URL-адреса oauth2 бота разногласий

        Выпадающий список позволит нам выбрать соответствующий сервер (из тех, для которых мы создаем мод) и добавить бота на этот сервер

        После успешного выбора нашего сервера и нажатия кнопки «Продолжить» нам показывают последний экран подтверждения, в котором суммируется объем разрешений, которыми будет обладать наш новый бот. Нажатие кнопки Авторизовать завершит процесс создания нашего бота.

        Примечание: здесь может быть проблема с капчей — к счастью, нашу человечность можно легко доказать. Кроме того, если вы получаете сообщение об ошибке о том, что боту требуется «Предоставление кода», вернитесь в меню «Бот» и убедитесь, что параметр «Требуется предоставление кода OAuth2» отключен.При этом нам показывается следующий экран, показывающий успешную авторизацию нового бота Discord.

        успешное разногласие

        Этот экран указывает на успешную авторизацию нашего недавно созданного бота Discord

        Теперь, когда наш бот создан и авторизован, мы можем перейти к созданию кода для нашего бота.

        Шаг 3. Закодируйте бота

        Прежде чем мы начнем программировать, нужно выполнить последний шаг на портале разработчиков приложений Discord. Нам нужно скопировать токен нашего бота, чтобы авторизовать вызовы из Discord.js.

        Шаг 3.a. Скопируйте токен OAuth2 в файл .env

        Это просто сделать, нажав кнопку Копировать в меню Бот, как показано на следующем рисунке:

        10 копий значение токена бота

        Нажмите «Копировать», чтобы скопировать токен бота в буфер обмена. Мы воспользуемся этим чуть позже при настройке нашего проекта Discord.js.

        После копирования мы добавим токен OAuth2 нашего бота в файл .env в следующем формате:

        Этот файл загрузит наш токен в качестве значения для ключа переменной среды DISCORD_TOKEN. Далее мы создадим файл с именем alphabot.js, в котором будет находиться основная запрограммированная логика нашего бота.

        Шаг 3.b. Создайте основной файл

        Здесь мы создадим файл с именем alphabot.js в нашем основном каталоге проекта. Нашим первым делом будет настройка переменных среды с помощью пакета dotenv, импорт необходимых классов из discord.js, а затем создание экземпляра нового клиента Discord. Это достигается с помощью следующего кода:

        Обратите внимание, что мы также аутентифицируемся с помощью именованной переменной среды из нашего файла .env. Это аутентифицирует alphabot с помощью Discord API. Прежде чем мы сможем начать тестирование alphabot, мы должны войти в Discord и открыть и увидеть наш сервер (к которому был добавлен один алфавит). Оказавшись в Discord, мы можем проверить правильность нашего кода, выполнив следующую команду: node alphabot.js. Теперь мы должны увидеть нового пользователя — alphabot — в списке подключенных к сети на нашем сервере Discord:

        alphabot join

        На боковой панели статуса Discord будет отображаться alphabot и указан его текущий онлайн/офлайн статус.

        Мы по-прежнему будем видеть alphabot в списке участников, даже если он не подключен активно — как и любой другой участник.

        Шаг 4. Запрограммируйте бота Discord

        На данный момент мы сделали всю тяжелую работу по запуску и запуску alphabot. Остальную часть работы можно отнести к категории программирование и разработка. Этот этап будет разным для всех.

        Чтобы немного ускориться и продемонстрировать использование базового синтаксиса, давайте заставим alphabot реагировать на несколько простых команд. Для этого нам нужно всего лишь добавить несколько строк кода:

        В этом примере мы указали alphabot прослушивать чат сервера для любого сообщения, которое точно соответствует фразе «Привет, alphabot!» и — если обнаружено — ответить этому пользователю ответом «Привет себе!» Это достигается с помощью следующих строк кода:

        Чтобы эти изменения вступили в силу, нам придется закрыть наш предыдущий экземпляр Node.js и перезапустить alphabot. После перезапуска мы можем ввести фразу, на которую мы закодировали ответ alphapbot (Привет, alphabot!). Мы должны получить ответ, как показано на изображении ниже:

        В этот момент Alphabot должен сердечно поприветствовать нас, отвечая почти мгновенно.

        Это завершает все основные требования для создания приложения Discord с использованием Discord.js. Мы создали невероятно простого бота. Для большинства продвинутых пользователей реализованный здесь код — после первоначальной настройки — вряд ли сможет каким-либо значимым образом управлять разработкой бота Discord.

        Общие препятствия

        При кодировании основы нового бота Discord.js может возникнуть несколько распространенных ошибок/проблем. Мы уже рассмотрели возможность обновления Node.js до более новой версии, чем текущая LTS. Точно так же есть некоторые другие особенности, которые могут потребовать решения в зависимости от того, какая версия Node работает, какая версия Discord.js и некоторых других факторов. Ниже приведены некоторые распространенные ошибки.

        Отсутствуют намерения клиента

        При создании экземпляра нового объекта Discord.js Client требуется указать несколько объектов Intents для типа взаимодействия (в данном случае — разрешений пользователя), которое может иметь место.

        Помните, как мы ранее устанавливали эти флажки для Намерения присутствия и Намерения члена сервера? Вот где они вступают в игру. Полный список намерений, которые можно передавать в качестве аргументов, см. здесь.Более краткий список этих намерений также можно найти в документации Discord.js.

        Хотя наш код здесь отражает правильные объекты Intents, передаваемые в качестве параметров, этот пост можно было найти с помощью отладочного поиска в Google. В таком случае имейте в виду, что создание экземпляра клиента Discord.js должно иметь следующий синтаксис:

        Бот удален с сервера

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

        1. Вновь войдите на портал разработчиков Discord.
        2. Выберите приложение
        3. Перейти к панели OAuth2
        4. Выберите «Бот» и требуемые разрешения.
        5. Скопируйте и вставьте URL-адрес OAuth2 в браузер
        6. Выберите, на какой сервер добавить бота
        7. Нажмите все нужные кнопки для подтверждения.

        Этот процесс повторяет более поздние действия из шага 2 выше. Это равносильно удалению с сервера и повторному присоединению по действующей ссылке-приглашению. URL-адрес OAuth2 — это, по сути, ссылка для приглашения ботов Discord.

        Собираем все вместе

        Здесь мы рассмотрели довольно много вопросов. Резюмируя:

        1. Создал новое приложение Discord.
        2. Определил тип как бот и установил нужные разрешения
        3. Создал проект на основе Node.js.
        4. Реализованы вызовы API через Discord.js
        5. Протестировали нашего бота, чтобы убедиться в его работоспособности.

        Это основные шаги, необходимые для запуска и запуска бота Discord.js. Ниже приведен пример всего нашего кода, объединенного в один удобный блок:

        Более общая версия этого кода доступна на Github здесь.

        Заключительные мысли

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

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

        Предприниматель, программист, дизайнер и постоянно учится. Можно найти, делая заметки от Матери-Природы, когда не стучит по клавиатуре.

        Всем привет! В этой статье давайте узнаем, как создать простого бота Discord с помощью Node.js. Это руководство предназначено для начинающих с нулевыми знаниями о том, как создать бота Discord.

        Чтобы продолжить, вам необходимо выполнить следующие условия:

        • Редактор кода (например, VS Code)
        • Базовые знания JavaScript
        • На вашем компьютере установлены Node и npm
        • Учетная запись Discord и настроенный сервер

        Шаг 1. Создайте приложение в Discord

        После входа в систему нажмите "Новое приложение" в правом верхнем углу окна.

        Создание приложения в Discord

        Затем введите сведения о своем приложении (например, название), и вы попадете на панель инструментов вашего приложения. Перейдите к разделу «Бот» и нажмите «Добавить бота», чтобы включить приложение в качестве бота.

        Создание приложения в Discord

        Теперь у вас есть бот, и вы увидите этот раздел.

        Создание приложения в Discord

        Нажмите «Копировать», чтобы скопировать токен и сохранить его где-нибудь, он понадобится нам позже.

        Шаг 2. Установите бота на сервер

        Создайте новый сервер Discord с вашей учетной записью Discord, чтобы установить на него бота.

        Вернувшись на панель инструментов приложения, перейдите к OAuth2 и выберите "бот" в разделе "Области действия".

        Установить бота на сервер

        Внизу вы увидите сгенерированный URL. Скопируйте этот URL-адрес и вставьте его на новую вкладку. Вы будете перенаправлены на страницу, как показано ниже:

        Установить бота на сервер

        Установите этого бота на предпочитаемый вами сервер Discord. Например, мой сервер MyBot, который я только что создал.

        Если все работает правильно, ваш бот должен появиться на вашем сервере Discord.

        Установить бота на сервер

        Шаг 3. Создайте папку проекта

        Теперь давайте заставим этого бота работать! Создайте новый проект с помощью следующих команд терминала:

        Шаг 4. Установите пакеты

        Теперь нам нужно установить пакеты npm для этого проекта. Запустите эту команду ниже:

        Шаг 5: index.js

        В каталоге нашего проекта запустите:

        Это создаст файл index.js, в котором будут записаны функции нашего бота.

        Если вы видите, что бот установлен на вашем сервере, значит, он сейчас не в сети. Первое, что нам нужно сделать, чтобы закодировать нашего бота для разногласий, — это создать клиент бота для разногласий и войти в него.

        Импортируйте пакет discord.js и создайте новый клиент следующим образом:

        Помните токен, который мы скопировали на шаге 1? Создайте файл .env и сохраните в нем токен.

        В вашем файле .env:

        Отлично, теперь, если мы запустим приведенную ниже команду, наш бот должен подключиться к сети:

        Статус бота изменился на онлайн

        Статус бота изменился на онлайн.

        Шаг 6. Написание первой команды для бота

        Давайте напишем очень простую команду для бота: когда мы набираем ping , бот ответит нам "Pong!".

        Это так просто:

        Добавьте этот блок кода над файлом client.login(process.env.CLIENT_TOKEN); строка, и если вы снова запустите node index.js, ваш бот должен ответить вам, когда вы наберете ping .

        Отлично! И вот, вы написали свою первую команду для бота!

        Шаг 7. Получение из API + отправка изображений

        Бот, который просто отвечает "Pong!" всякий раз, когда вы набираете ping, это не очень полезно, не так ли? Давайте сделаем еще один шаг вперед, попросив у бота изображение. Как насчет мема, например?

        Мы можем ввести "meme", и бот извлечет мем из API и отправит нам случайный мем!

        Для удобства команды бота обычно начинаются с восклицательного знака, поэтому давайте напишем "!meme", чтобы проинструктировать бота для мема.

        Мы хотим, чтобы бот отправил нам свойство url этих данных, и оно отобразится в виде изображения в Discord.

        Давайте создадим функцию для получения мема. Мы назовем его getMeme(). Вот как это выглядит в index.js:

        Не забудьте импортировать аксиомы вверху файла:

        Теперь мы можем переписать наш блок client.on('message'. с нашей новой командой !meme:

        Чтобы сохранить чистоту кода нашего бота для разногласий, давайте использовать операторы switch-case вместо блоков if.

        При запуске бот должен работать, как показано ниже:

        Шаг 8. Отправка повторяющихся сообщений

        Давайте добавим еще одну классную команду нашему боту! Как насчет того, чтобы наш бот отправлял нам автоматические сообщения через заданные промежутки времени?

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

        Давайте создадим команду !eye, чтобы пользователь мог подписаться на напоминания для глаз.

        Используя setInterval , теперь бот будет отправлять напоминание каждый час. Вместо этого давайте проверим это с 3-секундными интервалами.

        Отлично, работает! Но не имеет смысла позволять боту постоянно присылать нам эти напоминания, верно? Что, если мы захотим, чтобы это прекратилось?

        Давайте создадим для этого команду !stop. Для этого мы просто используем clearInterval().

        Если вы не уверены в методах setInterval и clearInterval, посетите этот сайт, чтобы узнать о них больше.

        Итак, вот наша команда !stop:

        И это должно работать правильно, как показано ниже:

        Отправка повторных сообщений

        Вывод: это еще не все!

        С ботом Discord можно делать гораздо больше удивительных вещей! Даже те, которые используют базы данных и так далее. Изучите документацию для разработчиков Discord и документацию по discord.js, чтобы узнать больше и создать бота своей мечты.

        Спасибо, что прочитали. Я надеюсь, что это было полезное введение в то, как сделать бота Discord. Если это было полезно, поставьте лайк или поделитесь этой статьей, чтобы расширить охват.

        Если вы создали классного бота для Discord, поделитесь им в комментариях ниже. Я хотел бы проверить это! Ваше здоровье!

        Читайте также: