Как сделать бота в Дискорд

21 мая в 2020 20K 21871f6e5ca6e5a460cd2bdc40af6385.png

В этом ознакомительном HOWTO я расскажу, как можно немного занять себя на время карантина и сделать бота для своего Discord-сервера. Мы развернем NodeJS в Docker под Ubuntu 18.04 и запустим в нем бота с парочкой простых команд. В конце я оставлю ссылки на полезные источники информации, чтобы вы могли дальше развивать бота, наделяя его полезными функциями.

Программное обеспечение сервера, используемое в этом уроке:

  • Ubuntu 18.04
  • Docker 19.03.6
  • npm 6.14.5 

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

Первые шаги

Первым шагом станет создание приложения на официальном сайте Discord (убедитесь, что вы зарегистрированы). Для этого потребуется пройти по ссылке и нажать на кнопку “New application”.

f07542164ddbfacf54f291887e4042d96663931a.pngВ появившемся окне нужно придумать имя своему приложению (будущему боту):

После указания имени и создания приложения мы можем перейти к созданию бота. Для этого в левом меню выберите пункт “Bot” и нажмите на кнопку “Add Bot”.

Последним шагом здесь будет копирование token по кнопке “Copy”. Держите в секрете ваш token и сохраните его куда-нибудь — он понадобится позже. 

Подготовка сервера

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

Команды для установки в Ubuntu 18.04:

  sudo apt update  sudo apt install docker npm

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

Создание основных файлов

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

  • discord.js (основная библиотека для работы бота);
  • dotenv (будет использоваться для конфигурационного файла).

Создадим рабочую директорию проекта и файл package.json. В моем случае рабочая директория располагается в директории /home, но вы можете выбрать любую другую на свое усмотрение.

  mkdir /home/my-discord-bot  cd /home/my-discord-bot  touch package.json

Примерный вид файла:

  {  "name": "my-discord-bot",   "version": "1.0.0",   "description": "My discord bot",   "author": "Me ",   "main": "app.js",   "keywords": [   "nodejs"    ],   "dependencies": {   "discord.js": "^12.1.1",   "dotenv": "^8.2.0"    }  }

В нем мы указали имя будущего пакета (name), версию (version), описание (description), автора (author), основной файл (app.js) и список зависимостей (dependencies).

Запустим npm install и убедимся, что создался файл package-lock.json, который потом также будет скопирован в контейнер.

Теперь создадим файл самого бота app.js и запишем в него следующий код:

  // Загрузка библиотек и конфигурационного файла  require('dotenv').config();    const Discord = require('discord.js');  const bot = new Discord.Client();  const token = process.env.token;  const prefix = process.env.prefix;    bot.login(token);    // Запуск бота  bot.on('ready', () => {   console.info(`Logged in as ${bot.user.tag}!`);   console.info(`Current prefix: ${prefix}`);  });    // Команда для приветственного сообщения  bot.on('message', message => {   if (message.content === `${prefix}hello`) {   console.log(message.content, message.author);   message.channel.send('hello!');    }  });    // Команда для вывода количества участников сервера  bot.on('message', message => {   if (message.content === `${prefix}server`) {   console.log(message.content, message.author);   message.channel.send(`Сообщество: ${message.guild.name}nУчастников: ${message.guild.memberCount}`);    }  });

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

  token=tokenbot  prefix="!"

Вместо “tokenbot” подставляется token бота, который был сохранен в начале статьи, а в качестве prefix указывается символ, после которого будут вводиться команды. Я выбрал в качестве префикса “!”, но вы можете выбрать другой удобный символ, если только он не используется самим Discord, как например “@” или “/”.

Создание Docker-контейнера

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

  FROM node:14    WORKDIR /home/my-discord-bot  COPY package*.json ./    RUN npm install    COPY . .    EXPOSE 8080    CMD ["node", "app.js"]

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

  node_modules  npm-debug.log

Соберем образ и запустим на его основе контейнер:

  docker build -t authorname/my-discrod-bot  docker run -p 42150:8080 -d authorname/my-discrod-bot

Вместо “authorname” можно ввести имя пользователя, от которого создается бот, и через “/” указать имя бота.

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

  docker ps     9fbaf1176c7a        authorname/my-discrod-bot   "docker-entrypoint.s…"   6 seconds ago       Up 4 seconds        0.0.0.0:42150->8080/tcp   pensive_carson

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

Бот запущен и работает в контейнере. Осталось только пригласить его на сервер и проверить его работу.

Для приглашения необходимо: 

  1. Вернуться обратно по ссылке.
  2. Выбрать созданное приложение.
  3. Перейти во вкладку “OAuth2”.
  4. В списке “Scopes” выбрать “bot”.
  5. Скопировать ссылку и перейти по ней в браузере.
  6. Выбрать сервер, на который будет добавлен бот.

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

Заключение

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

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

  • документация библиотеки discordjs;
  • справочная информация по JavaScript;
  • ознакомительный курс по Docker.

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

Вопросы и пожелания можно оставлять в комментариях. Спасибо за внимание!

NoName +4

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

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

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

Этап 1: Подготовка

  1. Загрузите node.js на ПК через официальный сайт.
  2. Заранее создайте новую папку, где и будут храниться данные проекта.
  3. Установите модуль Дискорда в только что созданную директорию (у нас это bot). Запустите командную строку и введите «cd Desktop/bot» (актуально, если вы создали папку с названием bot на рабочем столе) и нажмите «Enter». После этого введите «npm install discord.js —save».
  4. Перейдите на официальный сайт Discord и найдите вкладку для разработчиков. Здесь выберите «My Apps» и нажмите «New App». 
  5. Укажите название, описание, выберите картинку и подтвердите действия с помощью кнопки «Создать».
  6. Перейдите в настройки и отметьте параметр «Общественный бот».
  7. Нажмите на кнопку «Создать бота». Если появится ошибка, то попробуйте написать имя латинскими буквами.
  8. Авторизуйте бота на сервере по ссылке. Для этого замените в адресной строке браузера «Client ID» на значение из параметров приложения.
  9. Выдайте все необходимые разрешение и подтвердите действия.

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

Этап 2: Добавление команд

После подготовительного этапа и создания «оболочки» необходимо прописать команды для бота. Для примера мы добавим самую простую — ответ на запрос. Для этого понадобится простой текстовый редактор (например, блокнот), но лучше использовать специальную программу notepad++ (доступна бесплатно). Выполните следующие действия:

  1. В первой строке введите «const Discord = require(‘discord.js’);».
  2. Во второй — «const client = new Discord.Client();».
  3. В третьей — «var prefix = ‘++’». Вместо «++» можете указать любой другой префикс. Именно с него будут начинаться все команды.

Внимание! Везде нужно вводить текст из кавычек, но самих кавычек («») быть не должно. Все остальные символы обязательны.

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

  1. on(‘message’, message => {
    1. if(message.author === client.user) return;
    2. if(message.content.startsWith(prefix + ‘start’)) {
      1. message.channel.sendMessage(‘Welcome to server);
    3. }
  2. });
  3. В данном примере, сообщение «Welcome to server» будет появляться в ответ на нашу ++start. По желанию вы можете заменить текст на любой другой, но вводите его латиницей.
  4. В последней строке добавьте «client.login(‘токен’);», где вместо слова токен укажите его значение. Узнать его можно в параметрах.

На этом этап программирования можно считать оконченным.

Этап 3: Тестирование

Теперь необходимо сделать так, чтобы бот появился в списке онлайн участников. Для этого вновь открываем командную строку и вводим «cd Desktop/bot» (для перехода в созданную папку) и «node bot.js». Если вы все сделали правильно, то он появится онлайн.

Введите «++start» в текстовом канале Дискорда. В ответ bot должен отправить сообщение «Welcome to server». Если этого не происходит, а в процессе вы меняли префикс и другие значения, то попробуйте перепроверить код. Особое внимание уделите наличию пробелов и скобок.

Заключение

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

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

Для чего сервер в дискорде

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

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

Все сервер готов. Он нужен для ведения на нем переговоров в игре, ведения голосовой и видео трансляции, чтения новостей.

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

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

Добавление бота

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

  1. Нужно определиться зачем он там будет находиться;
  2. Найти специализирующийся на роботах для дискорда сайт;
  3. В описании почитать его возможности;
  4. Сделав выбор, обязательно ознакомиться с возможными командами, обязательно с префиксом для робота. Что касается префиксов: это команда, которая активирует конкретного робота-помощника, на случай если у вас их несколько на сервере, префикс может выглядеть так: «++», «))», «;;» или как-то похоже;
  5. Нажимаете добавить (add bot to server), выскочит окошко Дискорда, в котором нужно выбрать из списка серверов, необходимый. Нажимаете ок, робот добавлен.

Команды для работы помощника

  1. У каждого бота есть список действий, которые он выполняет. Если вдруг вы не посмотрели и не запомнили их на сайте, откуда его брали, список можно активировать командой Help, с префиксом перед командой-действием;
  2. Он отправит вам личное сообщение со списком возможных им действий;
  3. Выбираете необходимую вам и вписываете ее на канале, куда добавили робота, и о чудо, он функционирует. Включает музыку, делиться новостями, пытается шутить, удаляет спам;

Как сделать своего бота

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

Кстати, техническая поддержка дискорда активно сотрудничает со всеми желающими помочь продвигать их создание.

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

Заключение

Теперь вы знаете, как добавить бота в Дискорд. Как видите, это не так и сложно. Достаточно сделать несколько последовательных шагов, описанных выше.

Используемые источники:

  • https://timeweb.com/ru/community/articles/sozdaem-bota-dlya-discord-nodejs-docker
  • https://discord-bot.ru/kak-sozdat-novogo-bota-v-diskorde
  • https://discords.ru/sdelat-bota-v-diskord.html

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий