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

В Discord одним из элементов веселого или отзывчивого канала является наличие ботов Discord. Боты Discord — это программируемые интерактивные машины, которые могут выполнять действия на сервере, такие как отправка сообщений или размещение изображений и ссылок на видео. Хотите бота, который поможет упростить модерацию вашего канала? Circle и Pancake хороши для этого. Хотите веселую текстовую чат-игру, в которую можно играть с друзьями или в одиночку? Mythical и Pokecord очень популярны и интересны.

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

Часть удовольствия от ботов Discord, на мой взгляд, заключается в том, чтобы создавать их и иметь возможность настраивать их возможности, и это намного проще, чем думают многие разработчики. Для этого мы рассмотрим процесс создания, управления и размещения бота Discord. Предпосылки для этого заключаются в том, что вам понадобится редактор кода (например, NotePad++ или Visual Studio Code), и вы захотите установить Node.js на машину, на которой вы будете программировать, и, расширение, хорошо знаете JavaScript, так как это язык, на котором будет написана большая часть, если не весь этот проект.

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

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

Вы заметите опцию «TOKEN». Скопируйте его в буфер обмена, так как он понадобится нам для наших следующих шагов. Наконец-то мы добрались до кода! Откройте свой любимый текстовый редактор и создайте новую папку с тремя новыми файлами внутри. Эта папка будет содержать весь ваш код для вашего бота. Три файла мы назовем auth.json, bot.js и package.json (хотя вы можете опустить package.json с помощью консольной команды npm init в файле бота).

В auth.json создайте объект JSON с ключом «token» со значением строки, содержащей «TOKEN», который мы скопировали ранее. Должно выглядеть примерно так:

{
"token": "AUTH_TOKEN"
}

Затем в файле package.json создайте еще один объект JSON со следующими свойствами:

{
  "name": "bot_name",
  "version": "1.0.0",
  "description": "Bat Bot for Discord",
  "main": "bot.js",
  "scripts": {
  "test": "test"
  },
  "author": "your_name",
  "license": "ISC",
}

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

Для этого установите Discord.io и Winston из npm. Пакет Discord.io имеет доступ к большому набору методов, которые позволяют боту подключаться и взаимодействовать с серверами и пользователями Discord, а Winston — это пакет, который позволяет регистрировать ошибки и сообщения на вашем сервере или в любом месте, где вы хотите их отправить. . Как только они будут установлены в вашу папку node_modules, перейдите в свой файл bot.js и потребуйте Winston и Discord.io в файл, а также ваш файл auth.json.

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

var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
colorize: true
});
logger.level = 'debug';

// Initialize Discord Bot
var bot = new Discord.Client({
token: auth.token,
autorun: true
});

bot.on('ready', function (evt) {
logger.info('Connected');
logger.info('Logged in as: ');
logger.info(bot.username + ' - (' + bot.id + ')');
});

Под комментарием «Initialize Discord Bot» мы создаем новый экземпляр клиента Discord и передаем «TOKEN» из файла auth.json и устанавливаем его на автозапуск, чтобы при запуске нашего бота он подключался к любым серверам, которые есть. часть автоматически. Функция готовности чуть ниже регистрирует подключение нашего сервера, которое появится, когда мы запустим наш сервер.

Итак, теперь, когда мы создали нашего бота, нам нужно пригласить его в гильдию Discord, чтобы протестировать. Либо создайте свой собственный, либо пригласите его в уже существующую комнату (если у вас нет комнаты, всегда лучше сначала спросить). Это необходимо сделать, вернувшись на портал разработчика и создав переход на вкладку OAuth2 вашего приложения, а затем выбрав бота из списка областей действия OAuth.

Выбрав бота, скопируйте приведенный ниже URL-адрес, который он дает вам под контрольным списком, и вставьте его в строку поиска. Оттуда вам будет предложено выбрать сервер, на который вы хотите пригласить бота. Как только это будет сделано, ваш бот с присвоенным именем должен появиться в списке участников сервера, но в автономном режиме. Чтобы запустить бота, просто перейдите в командной строке к файлу бота и введите node bot.js . Вы должны увидеть в своей консоли выходные данные регистратора, которые мы установили в нашей функции готовности, и серый статус станет зеленым, указывая на то, что бот находится в сети! Ура!

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

Здесь бот читает все сообщения и ищет те, которые начинаются с «!». Если сообщение будет отправлено пользователем, бот проверит, будет ли сообщение после «!» был «пинг». Если это так, бот отправляет сообщение на сервер через функцию bot.sendMessage, в данном случае говоря «Привет» для всех участников сервера! Чтобы проверить это, пока ваш бот находится в сети, отправьте «!ping» в тестовом чате. Бот должен ответить очень скоро после этого!

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