Домашняя » как » Как сделать свой собственный дискорд бот

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

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

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

    Начиная

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

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

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

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

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

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

    npm i -g nodemon

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

    Вот наш «Hello World»:

    const Discord = require ('discord.js'); const client = new Discord.Client (); client.on ('ready', () => console.log ('Вы вошли как $ client.user.tag!');); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ( 'маркера');

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

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

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

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

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

    nodemon --inspect index.js

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

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

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

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

    Заметка: Будьте осторожны с этим, так как вы действительно не хотите иметь дело с рекурсией.

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

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

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

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

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

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

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

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