Как создать своего собственного бота для Discord

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

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

СВЯЗАННЫЕ: Как создать, настроить и управлять своим сервером Discord

Начиная

Перейдите на портал ботов Discord и создайте новое приложение.

Вы захотите записать идентификатор клиента и секрет (который, конечно, следует держать в секрете). Однако это не бот, а просто «Приложение». Вам нужно будет добавить бота на вкладке «Бот».

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

Установите Node.js и получите код

Чтобы запустить код Javascript за пределами веб-страницы, вам понадобится Node. Загрузите его, установите и убедитесь, что он работает в терминале (или в командной строке, поскольку все это должно работать в системах Windows). Команда по умолчанию - «узел».

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

npm я -g nodemon

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

Вот наш «Hello World»:

const Discord = require ('discord.js'); const client = новый Discord.Client (); client.on ('ready', () => {console.log (`Вы вошли как $ {client.user.tag}!`);}); client.on ('сообщение', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('токен');

Этот код взят из примера discord.js. Давайте разберемся.

  • Первые две строки предназначены для настройки клиента. Первая строка импортирует модуль в объект под названием «Discord», а вторая строка инициализирует клиентский объект.
  • client.on('ready')Блок будет срабатывать , когда бот запускается. Здесь он просто настроен для регистрации своего имени в терминале.
  • client.on('message')Блок будет срабатывать каждый раз новое сообщение опубликовано на любой канал. Конечно, вам нужно будет проверить содержимое сообщения, и это то, что ifделает блок. Если в сообщении написано просто «пинг», то ответ будет «Понг!»
  • Последняя строка авторизуется с токеном с портала бота. Очевидно, что токен на скриншоте - подделка. Никогда не размещайте свой токен в Интернете.

Скопируйте этот код, вставьте свой токен внизу и сохраните его как index.js в специальной папке.

Как запустить бота

Перейдите к своему терминалу и выполните следующую команду:

nodemon --inspect index.js

Это запускает скрипт, а также запускает отладчик Chrome, к которому вы можете получить доступ, набрав chrome://inspect/  в Chrome Omnibar и затем открыв «выделенные инструменты разработки для Node».

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

Итак, что составляет этот объект сообщения? На самом деле много всего:

В частности, у вас есть информация об авторе и информация о канале, к которым вы можете получить доступ с помощью msg.author и msg.channel. Я рекомендую этот метод записи объектов в инструменты разработчика Chrome Node и просто осматриваться, чтобы увидеть, что заставляет его работать. Вы можете найти что-нибудь интересное. Здесь, например, бот записывает свои ответы в консоль, поэтому ответы бота запускаются client.on('message'). Итак, сделал спам-бот:

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

Как добавить бота на свой сервер

Эта часть сложнее, чем должна быть. Вы должны взять этот URL:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

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

Хорошо, а что еще я могу сделать?

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

Я бы рекомендовал добавить console.log(client)в начало вашего кода и взглянуть на клиентский объект в консоли:

Отсюда вы можете многому научиться. Поскольку вы можете добавить бота сразу на несколько серверов, серверы являются частью Guilds объекта карты. В этом объекте находятся отдельные гильдии (это имя API для «сервера»), и у этих объектов гильдии есть списки каналов, которые содержат всю информацию и списки сообщений. API очень глубокий, и его изучение может занять некоторое время, но, по крайней мере, его легко настроить и начать обучение.