Как отключить бота в Discord js

Обновлено: 06.07.2024

В этой главе предполагается, что вы ознакомились с главой "Начало работы" и код вашего бота скомпилирован. Кроме того, я должен повторить: если вы не понимаете код, который собираетесь увидеть, кодирование бота может быть не для вас. Перейдите в CodeAcademy и изучите Javascript.

В этой главе я проведу вас через разработку простого бота с некоторыми полезными командами. Мы начнем с примера, созданного в первой главе:

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

Это событие:

В частности, это событие в discord.js, но оно похоже на то, как другие API обрабатывают события. Это событие срабатывает каждый раз, когда бот видит сообщение. Сюда входят все каналы, к которым у бота есть доступ, а также любые прямые или личные сообщения, которые он получает. Если кто-то отправляет 5 сообщений на канал, это событие срабатывает 5 раз.

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

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

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

С этого момента я буду опускать код, который требует и инициирует discord.js, и сосредоточусь на конкретных частях кода.

Сохраните код и перезапустите бота. Для этого используйте CTRL+C в командной строке и повторно запустите node index.js. Да, есть лучшие способы перезагрузить код, как вы увидите далее в этой книге.

Вы можете протестировать свою новую команду, сказав foo в канале, которым вы делитесь с ботом. Вы также можете подтвердить, что ping по-прежнему возвращает pong !

Вы могли заметить, что многие боты реагируют на команды с префиксом. Это может быть восклицательный знак (!), точка (.), вопросительный знак (?) или другой символ, но с введением косой черты настоятельно не рекомендуется использовать / . Но это полезно по двум причинам.

Во-первых, если вы не используете уникальный префикс и имеете более одного бота на сервере, оба будут отвечать на одни и те же команды. На серверах разработчиков ввод !help приводит к потоку ответов и личных сообщений, чего следует избегать.

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

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

Изменения в коде по-прежнему просты. Давайте пройдемся по ним:

  • константный префикс = "!"; определяет префикс как восклицательный знак. Конечно, вы можете изменить его на что-то другое.
  • Строка if (!message.content.startsWith(prefix)) return; это небольшая оптимизация, которая гласит: «Если сообщение не начинается с моего префикса, прекратите то, что вы делаете». Это предотвратит работу остальных функций, благодаря чему ваш бот станет быстрее и быстрее откликнется.
  • Команды изменились, поэтому используйте этот префикс, при котором startWith(\ $ping`) будет запускаться только тогда, когда сообщение начинается с !ping`.

Второй момент так же важен, как наличие одного обработчика событий messageCreate. Допустим, бот получает сотню сообщений каждую минуту (не большое преувеличение для популярных ботов). Если функция не обрывается в начале, вы обрабатываете эти сотни сообщений в каждом из ваших условий команды. Если, с другой стороны, вы обрываете, когда префикса нет, вы экономите все эти циклы процессора для лучших вещей. Если команды составляют 1 % ваших сообщений, вы экономите 99 % вычислительной мощности.

Хорошо, извините, я немного вру. Это не 99%, это преувеличение. Однако правда, что вы значительно экономите на мощности процессора и оперативной памяти.

Мы почти закончили с базовым ботом. И последнее, о чем я хочу поговорить: боты отвечают друг другу.Давайте представим на мгновение, что у вас есть два бота на вашем сервере, и каждый из них может ответить на одну и ту же команду с префиксом !help . Но когда эта команда вызывается, она отвечает: !help команды: введите !help, а затем один из следующих, чтобы увидеть подробности: ping , foo .

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

Это условие содержит оператор ИЛИ ( || ), который выглядит следующим образом:

Если префикс отсутствует или автор этого сообщения — бот, остановить обработку. Это включает и самого бота.

И теперь у нас есть бот, который реагирует только на 2 команды и не тратит силы на то, чтобы понять что-то еще. Это полноценный базовый бот? Конечно! Итак, давайте закончим эту страницу здесь, а затем мы рассмотрим некоторые новые концепции.

Полный код бота теперь будет таким:

Каждый раз, когда я вижу этот SuperSecretBotTokenHere , я немного съеживаюсь. Видите ли, не рекомендуется иметь токены и элементы аутентификации в вашем коде, это действительно должно быть в отдельном файле! Перейдите к разделу Добавление файла конфигурации, и давайте сделаем это.

Посмотрите, как бот реагирует на канал, в котором не должно быть ботов?


После этого руководства вы узнаете, как это отключить!

<р>1. Откройте настройки сервера


<р>2. Откройте вкладку ролей


<р>3. Выберите все роли, которые есть у бота


<р>4. Отключить права администратора


<р>5. Дайте боту другие необходимые разрешения (если вы не знаете какие, просто дайте все!)


<р>6. Сделайте то же самое для других ролей бота!


<р>7. Сохранить изменения


Удалить разрешения для канала

<р>1. Откройте настройки канала


<р>2. Перейдите на вкладку разрешений


<р>3. Добавить настройки разрешений для ролей ботов


<р>4. Выберите роли бота


<р>5. Отключить текстовые разрешения


<р>6. Сохранить изменения


<р>7. Сделайте то же самое для всех ролей бота


Все роли бота должны принадлежать только ему! Если у других участников такая же роль, они могут потерять доступ к каналу

Вы можете редактировать категорию, если у нее есть разрешение на синхронизацию с каналами

zwxi прокомментировал 20 ноября 2020 г.

TwilyHoney прокомментировал 15 февраля 2021 г. •

Привет. Извините за наезд, но я не вижу разрешения на чтение сообщений, как сегодня, даже в разногласиях. Можете обновить статью? Спасибо

zwxi прокомментировал 16 февраля 2021 г.

Привет. Извините за наезд, но я не вижу разрешения на чтение сообщений, как сегодня, даже в разногласиях. Можете обновить статью? Спасибо

Я думаю, что отключения разрешения "просмотр канала" будет достаточно, чтобы бот не видел этот канал

TwilyHoney прокомментировал 17 февраля 2021 г.

сделать канал закрытым для людей? я это сделал. спасибо

saveisarando прокомментировал 27 февраля 2021 г.

Большое спасибо!

[Для тех, кто все еще в замешательстве]

Создайте роли для всех ботов на вашем сервере.

Назначьте эту роль всем ботам. НЕ давайте ее никому из участников.

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

Зайдите в каналы, в которых боты не должны отвечать/активировать какие-либо команды, и добавьте роль, которую вы дали всем ботам, и откажитесь от первого разрешения, которое называется «просмотр канала»!

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

Для использования аудиокоманд у вас должен быть установлен один из модулей голосовой поддержки discord.js!

Установка

Находясь в корневом каталоге вашего сервера, запустите:

И подготовьте сценарий сервера:

Использование

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

Чтобы просмотреть список команд, введите !help в канале DM Bot. (если ваш префикс установлен на "!")

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

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

Языки

en – английский (сделано мной) (язык по умолчанию)

pt-BR – Português Brasil (сделано мной)

Реакции

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

Значения по умолчанию внутри объекта реакции: успех: ✅ ошибка: 🚫 заблокировано: ❌ тайм-аут: ⏰

Как получить реакцию:

Отправить консоль

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

Сообщения консоли Discord

Если вы хотите отправить сообщение Discord, которое пользователь идентифицирует как отправленное сообщение, было отправлено модулем Discord Bot Control.

Отправить в файл журнала

Эти сценарии можно использовать для отправки сообщений по выбранному пути к файлу журнала.

Конфигурация

Основные ценности

messageCacheTime (Число)

Число времени в секундах, в течение которого элемент управления сообщением записывается в кэш перед его удалением.

showLogs (логическое значение)

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

суперадминистратор (массив [строка])

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

discord.bots (Массив[объект])

Массив со списком всех ботов, которые будут активированы внутри приложения.

язык (строка)

Основной язык приложения.

реакции (объект)

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

msg_checker (функция)

Добавьте функцию для проверки сообщения.

команды (Array[String or Object]) (также работает в конфигурации бота.)

Разместите здесь свои пользовательские команды.

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

папка_хранилища (строка)

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

папка_звука (строка)

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

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

log_folder (строка)

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

log_time_24hours (логическое значение)

Активировать 24-часовой режим.

log_timezone (строка)

добро пожаловать (логическое значение)

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

logoff_warn (логическое значение)

Должно ли быть отправлено приветственное сообщение всем администраторам бота после завершения работы бота.

реакции (объект)

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

Конфигурация бота

Значения конфигурации бота

токен (строка или объект Discord.JS)

Поместите здесь токен вашего бота. Если ваш бот уже определен в объекте Discord.JS, вы можете поместить объект своего бота вместо строки токена.

Примеры

цвет

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

добро пожаловать (логическое значение)

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

logoff_warn (логическое значение)

Должно ли быть отправлено приветственное сообщение всем администраторам бота после завершения работы бота.

язык (строка)

Установите язык для этого бота.

префикс (строка)

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

block_prefix (массив [строка])

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

warnNoAdminsDM (логическое значение)

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

shutdownStatus (логическое значение)

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

журналы (объект с логическими значениями)

Включает журналы информации в консоли приложения.

admin (массив [строка])

Массив строк с идентификатором учетной записи Discord.

суперадминистратор (массив [строка])

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

adminRoles (массив [объект])

Массив ролей серверов Discord, которым разрешен доступ к администратору бота.

adminRoles[item].id (строка)

adminRoles[item].guild (строка)

msg_checker (функция)

Добавьте функцию для проверки сообщения.

allowGlobalDM (логическое значение)

Разрешить команде получать DM от всех пользователей бота DM. ВНИМАНИЕ: не рекомендуется для ботов, присутствующих на многих серверах! Используйте на свой страх и риск!

Вставить пользовательский язык

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

С помощью этого метода вы также можете получить уже установленные языки.

Изменить конфигурацию приложения

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

Это API событий для всех, кто интересуется разработкой подключаемых модулей. Вы можете использовать метод «вкл», «выкл», «один раз».

готов

Когда приложение будет готово к использованию.

подготовка бота

preparingBot[индекс]

готовый бот

readyBot[индекс]

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

data.index

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

Объект клиента Discord.JS.

готовый администратор

Когда администратор получает предупреждение о запуске бота. Аргументы: данные, пользователь

data.index

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

Объект пользователя Discord.JS.

command_adminBotДобавлен

command_adminBotRemoved

command_adminBotReseted

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

data.bot

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

data.cfg_option

Имя конфигурации изменено внутри индекса поля.

data.result (недоступно в command_adminBotReseted)

Новый результат cfg_option.

data.value (недоступно в command_adminBotReseted)

Новое значение параметра cfg_option.

Объект сообщения Discord.JS.

command_blockprefixДобавлен

command_blockprefixудален

command_blockprefixReseted

command_blockuserДобавлен

command_blockprefixудален

command_blockprefixReseted

Когда пользователь использует команду для добавления нового префикса, блокируется. Аргументы: данные, сообщение

Как создать музыкального бота с помощью Discord.js

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

Предпосылки

Прежде чем мы начнем создавать бота, убедитесь, что у вас установлены все необходимые инструменты.

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

Настройка бота для разногласий

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

Мы можем сделать это, посетив портал и нажав новое приложение.

Создание нового приложения< бр />

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

После этого нам нужно дать нашему приложению имя и нажать кнопку "Создать".

Создание бота для разногласий< бр />

Создание бота для разногласий

После этого нам нужно выбрать вкладку бота и нажать добавить бота.

Информационная страница бота Discord< бр />

Информационная страница Discord-бота

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

Добавление бота на ваш сервер

После создания нашего бота мы можем пригласить его с помощью генератора URL-адресов OAuth2.

Для этого нам нужно перейти на страницу OAuth2 и выбрать бота в области касания.

вкладка OAuth2

Вкладка OAuth2

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

Предоставление боту Discord необходимых разрешений

Предоставление боту Discord необходимых разрешений

Затем мы можем скопировать сгенерированный URL-адрес и вставить его в наш браузер.

Ссылка для приглашения бота Discord

Ссылка для приглашения бота Discord

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

Пригласите бота на сервер

Пригласить бота на сервер

Создание нашего проекта

Теперь мы можем начать создавать наш проект, используя наш терминал.

Сначала мы создаем каталог и переходим в него. Мы можем сделать это с помощью этих двух команд.

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

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

Теперь нам просто нужно открыть наш проект в текстовом редакторе. Я лично использую VS Code и могу открыть его с помощью следующей команды.

Основы Discord js

Теперь нам просто нужно установить некоторые зависимости, прежде чем мы сможем начать.

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

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

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

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

Это единственное, что нам нужно сделать в нашем файле config.json. Итак, давайте начнем писать наш код JavaScript.

Во-первых, нам нужно импортировать все наши зависимости.

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

Теперь давайте добавим несколько простых слушателей, которые будут регистрироваться в console.log при их выполнении.

После этого мы можем запустить нашего бота с помощью команды узла, и он должен быть в сети в дискорде и вывести «Готово!» в консоли.

Чтение сообщений

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

Для чтения сообщений нам нужно написать только одну простую функцию.

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

Теперь нам нужно проверить, исходит ли сообщение от нашего собственного бота, и проигнорировать его, если это так.

В этой строке мы проверяем, является ли автор сообщения нашим ботом, и возвращаем результат, если это так.

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

После этого мы можем проверить, какую команду нам нужно выполнить. Мы можем сделать это, используя несколько простых операторов if.

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

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

Добавление песен

Начнем с добавления команды воспроизведения. Для этого нам нужна песня и гильдия (гильдия представляет собой изолированный набор пользователей и каналов и часто называется сервером). Нам также понадобится библиотека ytdl, которую мы установили ранее.

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

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

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

Это позволит получить информацию о песне с помощью библиотеки ytdl , которую мы установили ранее. Затем мы сохраняем необходимую информацию в объект песни.

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

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

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

Воспроизведение песен

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

Сначала мы создадим функцию play, которая принимает два параметра (гильдия и песня, которую мы хотим воспроизвести) и проверяет, пуста ли песня. Если это так, мы просто покинем голосовой канал и удалим очередь.

После этого мы начнем воспроизводить нашу песню, используя функцию соединения play() и передав URL-адрес нашей песни.

Здесь мы создаем поток и передаем ему URL-адрес нашей песни. Мы также добавляем два слушателя, которые обрабатывают события конца и ошибки.

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

Теперь мы готовы воспроизвести песню, просто набрав !play URL в чате.

Пропуск песен

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

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

Остановка песен

Функция stop() почти аналогична функции skip() за исключением того, что мы очищаем массив песен, из-за чего наш бот удаляет очередь и покидает голосовой чат.

Полный исходный код index.js:

Здесь вы можете получить полный исходный код нашего музыкального бота:

Заключение

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

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

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

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

Создать Discord-бота (2022)

Необходимые условия для создания Discord-бота

скачать nodejs

Чтобы эффективно просматривать, писать и изменять код, вы можете использовать любой из этих лучших текстовых редакторов для написания кода. Если бы нам нужно было выбрать одну из них, мы бы выбрали Visual Studio Code от Microsoft (скачать), в которой также есть множество тем VSCode.

Настроить учетную запись Discord Bot и добавить на сервер Discord

<р>1. Посетите портал разработчиков Discord и войдите в свою учетную запись Discord. Оказавшись там, нажмите кнопку «Новое приложение» в правом верхнем углу, чтобы начать.

создать новое приложение discord

<р>2. Введите имя для вашего приложения и нажмите «Создать». Обратите внимание, что имя приложения не обязательно должно совпадать с именем бота. Вы можете изменить имя бота позже.

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

<р>3. Теперь перейдите в раздел «Бот» на левой боковой панели и нажмите «Добавить бота».

добавить бота discord dev

<р>4. Когда появится всплывающее окно, нажмите «Да, сделайте это!» чтобы продолжить.

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

<р>5. Теперь Discord создал вашего бота. Теперь вы можете изменить имя и значок бота в разделе «Бот». Перед этим нажмите на кнопку «Копировать» под «Токеном», чтобы скопировать токен бота. Токен бота потребуется позже. Имейте в виду, что вы не должны никому передавать токен своего бота, так как он предоставляет им доступ к вашему боту.

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

<р>6. Теперь разверните вкладку «OAuth2» на левой боковой панели и перейдите в раздел «Генератор URL». Здесь выберите «бот» в качестве области действия и предоставьте соответствующие разрешения для бота. Для этой демонстрации мы даем боту права администратора.

выберите область действия и разрешения для бота

<р>7. Прокрутите вниз и нажмите кнопку «Копировать», чтобы скопировать URL-адрес бота.

 скопировать адрес бота

<р>8. Перейдите по скопированному URL-адресу из браузера, чтобы добавить бота на свой сервер Discord. Все, что вам нужно сделать, это выбрать сервер из списка «Добавить на сервер» и нажать «Продолжить», чтобы добавить бота.

добавьте бота на сервер

Создайте и разместите бота Discord локально на своем ПК

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

<р>1. Создайте новую папку в любом месте на вашем ПК. Затем вы должны создать в этой папке два файла — .env, bot.js. Вставьте в файл .env скопированный ранее токен бота в следующем формате:

вставить токен в файл env

<р>2. Затем добавьте следующий код в файл bot.js. С помощью этого кода бот будет отвечать «pong» всякий раз, когда пользователь отправляет «ping».

 код бота раздора

<р>4. Теперь установите библиотеку Discord.js с помощью следующей команды:

 установить discordjs lib

<р>5. Далее вы должны создать файл package.json с помощью команды «npm init -y».

 создать пакет json

<р>6. Наконец-то вы можете использовать команду «node bot.js» для запуска своего бота Discord.

 запустите своего бота

<р>7. Как вы можете видеть ниже, бот работает как положено и ответил на мое тестовое сообщение.

вывод бота

Создание и размещение бота Discord в облаке

Если вы предпочитаете размещать своего бота Discord в Интернете, мы рекомендуем использовать Replit. Для тех, кто не знает, Replit — это онлайн-среда разработки, в которой вы можете запускать и размещать более 50 языков программирования. Кроме того, процесс настройки Replit также довольно прост. Итак, давайте приступим к делу.

<р>1. Сначала вы должны зарегистрировать новую учетную запись Replit. Вы можете использовать свой адрес электронной почты или продолжить работу со своими учетными записями Google, GitHub или Facebook.

 зарегистрироваться replit

<р>2. Нажмите кнопку «Создать» в верхнем левом углу, чтобы создать новый проект.

создать новый проект повторения

<р>3. В появившемся всплывающем окне выберите шаблон Node.js, назовите свой проект и нажмите «Создать реплику».

создать реплику

<р>4. Найдите символ замка на левой боковой панели и вставьте ранее скопированный токен бота. Вы должны вставить токен в поле «значение» и установить имя токена в поле «ключ». Нажмите «Добавить новый секрет», чтобы подтвердить токен и добавить его в свой код Node.js.

добавьте копию своего токена

<р>5. Вставьте следующий код и нажмите зеленую кнопку «Выполнить» вверху, чтобы запустить проект. Теперь вы можете использовать своего бота даже после выключения компьютера.

вставьте код и запустите

<р>6. Вы можете вернуться в проект Replit и нажать кнопку «Стоп», чтобы остановить бота. И вот оно. Вы можете изменить код бота, чтобы добавить или удалить нужные вам функции.

остановить повтор

Часто задаваемые вопросы

В: Могу ли я бесплатно создать бота Discord?

Да, вы можете бесплатно создать бота Discord и разместить его локально на своем ПК или в облаке.

В: Как создать бота Discord без программирования?

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

В: Могу ли я использовать Discord.py для создания своего бота Discord?

Разработчик популярной библиотеки Discord Python «discord.py» недоволен обязательным переходом Discord на косые команды для проверенных ботов с апреля 2022 года и решил отказаться от поддержки этой библиотеки. Библиотека больше не разрабатывается, и страница GitHub Discord.py теперь доступна только для чтения. Хотя на данный момент неподтвержденные боты не затронуты, это может измениться в будущем.

Создайте собственного Discord-бота

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

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