Создание музыкального бота с помощью discord js

Обновлено: 07.07.2024

Начнём. Ссылка на мой youtube канал.

Discord bot туториал. Туториал по созданию ботов для дискорда на node.js используя discord.js.

Creation date : 06.12.2019

Давайте начнём создание бота. Если у вас установлена node.js, то пропустите сделающие 2 строчки. Заходим на сайт node.js, скачиваем, устанавливаем. Скриншотов процесса установки нету, тк переустанавливать node.js нету желания. Но там всё интуитивно понятно.

Создание файлов, инициализация проекта, установка библиотек.

Создаём папку bot. Желательно не использовать кирилицу, юникод и т. п. в названии. Сразу же создаём файл index.js или bot.js. Это не несёт особого смысла. Можно назвать как угодно, но принятно index.js / bot.js. Это будет главный файл бота, т.е. первым запускается, в нём основной код бота. Далее открываем консоль / терминал если у вас linux. Для быстрого открытия консоли на windows можно нажать WIN + R, ввести cmd. Далее переходим в папку бота, думаю как это сделать через консоль всем понятно. Пишим : npm init - инициализация проекта. Жмём enter до конца. Если ошибка в package name, то напишите bot. npm i discord.js - установка библиотеки discord.js.

Далее рекомендую установить один из следующих редакторов кода :

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

Вы можете зарегистрировать его на сайте discord developers. Жмём кнопку "New Application". Вводим название бота. Жмём "Create". Переходим во вкладку "Bot", нажимаем "Add Bot", затем "Yes, do it!" Находим строку "token", немного ниже есть кнопка "Copy", нажимаем. Теперь в вашем буфере обмена есть токен бота.

Создадим первый код. Пишем :

Открываем консоль, переходим в папку проекта и пишем :

в зависимости от названия файла. Если у вас windows, то вы можете создать файл start.bat с текстом

Если линукс, то вы можете создать файл start.sh

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

Создаем файл config.json с конфигурацией нашего бота.

В начале кода бота напишем :

Еще вы можете создать конфиг прямо в коде бота.

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

Давайте залогируем тег автора.

Также можно писать не

.startsWith проверят начинается ли строка с символов в аргументах.

Также даже начинающим программистам будет очень полезна в боте команда !eval для выполнения кода не пиша его в коде бота, т.е. вы пишите !eval какой-то код и бот выполняет этот код.
Я нашёл хороший туториал по этой команде на github. Рекомендую ознакомиться и взять себе команду в код бота. Принцип её работы мы разберём позже. Тык.

Image alt

Это называется RichEmbed (Embed). Давайте отправим простой эмбед похожий на данный. (Картинка ниже)

Image alt

Для этого создадим новую команду !ping .

В Embed есть много различных параметров, вы можете прочесть их далее, либо посмотреть на оффициальном сайте discord.js

Давайте сделаем команду для получения информации о пользователе. Команда взята из моего бота. Будем использовать библиотеку moment.js , устанавливаем npm i moment.js

Image alt

Мой дискорд сервер!

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

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Как сделать бота для музыки в Дискорде

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

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

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

Переход к регистрации нового приложения для создания музыкального бота в Discord

Ввод названия при регистрации нового приложения для создания музыкального бота в Discord

Переход к подключению компонентов нового приложения для создания музыкального бота в Discord

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

Подтверждение подключения компонентов к новому приложению для создания музыкального бота в Discord

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

Выбор типа работы приложения для создания музыкального бота в Discord

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

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

Копирование ссылки авторизации инструмента для создания музыкального бота в Discord

Первая авторизация после перехода по ссылке для создания музыкального бота в Discord

Успешная авторизация после перехода по ссылке для создания музыкального бота в Discord

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

Шаг 2: Подготовительные действия

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

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

Добавление пользовательской папки для создания музыкального бота в Discord

Добавление файлов в пользовательскую папку для создания музыкального бота в Discord

Скачивание компонента для создания музыкального бота в Discord

Запуск и установка компонента для создания музыкального бота в Discord

Запуск Командной строки для создания музыкального бота в Discord

Команда установки дополнительных модулей для создания музыкального бота в Discord

Процесс установки дополнительных модулей для создания музыкального бота в Discord

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

Шаг 3: Редактирование файла конфигурации бота

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

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

    Запустите файл config.js через текстовый редактор или среду разработки, вставьте туда представленный далее код.

Изменение префикса при редактировании конфигурационного файла для создания музыкального бота в Discord

Копирование уникального токена для создания музыкального бота в Discord

Замена уникального токена в конфигурационном файле для создания музыкального бота в Discord

Использование текстового редактора при редактировании конфигурационного файла для создания музыкального бота в Discord

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

Шаг 4: Пробный запуск бота

Сначала нам нужно убедиться в том, что бот вообще запускается на сервере и переходит в онлайн-режим, для этого понадобится записать его основную часть кода в index.js , а затем уже использовать Node.js для запуска.

    Через среду разработки или выбранный текстовый редактор откройте упомянутый файл для редактирования.

Открытие файла ввода кода для создания музыкального бота в Discord

Код объявления зависимостей для создания музыкального бота в Discord

Добавление клиента и токена для создания музыкального бота в Discord

Команды при подключении в коде для создания музыкального бота в Discord

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

Запуск командной строки для включения бота для создания музыкального бота в Discord

Команда включения бота для создания музыкального бота в Discord

Ввод другой команды включения бота для создания музыкального бота в Discord

Результат успешного запуска для создания музыкального бота в Discord

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

Шаг 5: Написание основного кода музыкального бота

Редактирование кода для обеспечения нормальной работы музыкального бота в Discord

client.on('message', async message =>

if (message.author.bot) return;

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

if (!message.content.startsWith(prefix)) return;

Проверка запускаемых команд осуществляется при помощи простых операторов if, а конструкция в нашем случае выглядит следующим образом:

const serverQueue = queue.get(message.guild.id);

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

const queue = new Map();

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

const songInfo = await ytdl.getInfo(args[1]);
const song = title: songInfo.title,
url: songInfo.video_url,
>;

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

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

С очередью все понятно, но пока еще песни не воспроизводятся, поскольку отсутствует назначение для функции play . Для этого в код необходимо добавить структуру

function play(guild, song) const serverQueue = queue.get(guild.id);
if (!song) serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
>
>

Проигрывание же начинается при помощи функции playStream() и указанной ссылки на трек.

const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on('end', () => console.log('Музыка кончилась!');
// Удаляет законченную песню из очереди
serverQueue.songs.shift();
// Снова вызывает функцию воспроизведения со следующей песней
play(guild, serverQueue.songs[0]);
>)
.on('error', error => console.error(error);
>);
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);

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

Примерно по той же схеме работает и функция остановки, но блок с кодом обретает немного другой вид:

Внешний вид полного исходного кода для создания музыкального бота в Discord

const Discord = require('discord.js');
const prefix,
token,
> = require('./config.json');
const ytdl = require('ytdl-core');

const client = new Discord.Client();

const queue = new Map();

client.on('message', async message => if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;

const serverQueue = queue.get(message.guild.id);

async function execute(message, serverQueue) const args = message.content.split(' ');

const songInfo = await ytdl.getInfo(args[1]);
const song = title: songInfo.title,
url: songInfo.video_url,
>;

function play(guild, song) const serverQueue = queue.get(guild.id);

if (!song) serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
>

const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on('end', () => console.log('Music ended!');
serverQueue.songs.shift();
play(guild, serverQueue.songs[0]);
>)
.on('error', error => console.error(error);
>);
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
>

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

Команда проверки исходного кода для создания музыкального бота в Discord

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

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

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

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

Начало работы

Если вы уже знакомы с приведёнными ниже материалами, — смело можете пролистать этот раздел.

Для начала работы с кодом нам нужно установить среду разработки, это может быть:

Среда разработки выбирается по удобству использования и практичности, она у вас может быть любая, но мы рассмотрим её на примере Visual Studio Code, так как она является одной из самых приемлемых для новичков, а также для опытных программистов.

Для установки переходим по этой ссылке.



Выбираем свою операционную систему и запускаем скачивание.

Для создания бота мы используем среду выполнения node.js. Для её установки нам необходимо перейти на этот сайт.


На данный момент нас интересует версия долгосрочной поддержки (LTS), скачиваем её.

В Visual Studio Code присутствует возможность устанавливать расширения.
Для этого, кликните по отмеченной ниже иконке.


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


Из полезных расширений могу отметить:

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

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

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

Здесь всё просто. Переходим на портал разработчиков и нажимаем на кнопку с надписью «New Application» — она находится в правом верхнем углу.

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


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

Теперь наша задача — воплотить бота в жизнь. Для этого переходим во вкладку «Bot».


Нажимаем на кнопку с надписью «Add Bot» и воплощаем бота в жизнь.

Поздравляю! Вы создали аккаунт для вашего бота. Теперь у него есть тег, токен, ник и иконка.

Подготовка к написанию кода

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

Первым делом создаём папку, после чего открываем её в VS Code (Файл > Открыть папку) / (Ctrl + K Ctrl + O)

Далее нам нужно открыть терминал (Терминал > Создать терминал) / (Ctrl + Shift + `)


Теперь мы должны создать файл с неким «описанием» нашего бота, сделаем это через терминал.

Вписываем данную строку в терминал и нажимаем Enter:


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

Далее, мы должны поочерёдно вводить в терминал эти строки:

«Install» также можно сокращать в «I», но необязательно.

Итого, если вы следовали инструкциям и всё сделали правильно, в вашей папке должны были появиться 3 объекта:


Написание кода

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

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

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

Но не волнуйтесь, весь код вам писать не придётся.

Для начала, нам нужно где-то хранить основные параметры и информацию о боте.

Мы можем сделать это двумя способами:

  1. Создать отдельный файл
  2. Записать всё в константы

Разберём хранение параметров в отдельном файле.

Итак, создаем файл config.json

Вставляем в него следующий код:


* Для получения токена зайдите на портал разработчиков, перейдите во вкладку «Bot» и скопируйте его.


* Самым распространённым среди разработчиков префиксом является !

Далее нам нужно создать файл bot.js и вставить в него данный код:


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

В нём должен быть следующий код:


Чтобы добавить больше команд — просто объявляйте больше функций и добавляйте их в список, например:


И вот, мы вышли на финишную прямую!

Осталось всего ничего — запустить бота.

Для этого открываем терминал и вставляем в него следующую строку:



Готово! Бот запущен и вы можете им пользоваться, ура!

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

Перейдём во вкладку OAuth2, пролистаем чуть ниже, выберем «Bot» и отметим нужные боту привилегии.


Как вывести ссылку-приглашение в терминал, при запуске бота?

Существует два способа:

    Заранее отметить нужные привилегии.


Итоговый код должен быть таким:


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


* Все привилегии указываются заглавными буквами

Список доступных привилегий:

ADMINISTRATOR
CREATE_INSTANT_INVITE
KICK_MEMBERS
BAN_MEMBERS
MANAGE_CHANNELS
MANAGE_GUILD
ADD_REACTIONS
VIEW_AUDIT_LOG
PRIORITY_SPEAKER
STREAM
VIEW_CHANNEL
SEND_MESSAGES
SEND_TTS_MESSAGES
MANAGE_MESSAGES
EMBED_LINKS
ATTACH_FILES
READ_MESSAGE_HISTORY
MENTION_EVERYONE
USE_EXTERNAL_EMOJIS
VIEW_GUILD_INSIGHTS
CONNECT
SPEAK
MUTE_MEMBERS
DEAFEN_MEMBERS
MOVE_MEMBERS
USE_VAD
CHANGE_NICKNAME
MANAGE_NICKNAMES
MANAGE_ROLES
MANAGE_WEBHOOKS
MANAGE_EMOJIS

Полезные и интересные команды

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

Я заинтересовался созданием бота для Discord, но всё что я нашёл, было пару видео на YouTube, да и то там просто писали код, без всяких пояснений. Поэтому я хочу начать серию статей по созданию ботов на основе discord.js.

Получение токена бота

Для начала нам нужно зайти на страницу создание приложений и нажать New Application.


После чего, нам предложат назвать наше приложение. Вводим желаемое название и нажимаем Create. Мы попадаем на страницу настройки приложения, где мы можем поменять название, аватар, описание и тд. Но нам это пока не нужно, переходим во вкладку Bot. И создаём бота.


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

Подготовка среды разработки

Для начала нужно установить Node.js и Visual Studio Code (VS code), в последнем собственно и будет происходить процесс создания бота. Запускаем VS code. Открываем папку, в которой будет хранится наш бот. Нажимаем Вид->Терминал, после этого в нижней части приложения должен появится терминал.


Написания "тела" бота

Для начало нужно создать описание бота.

После ввода команды, она будет спрашивать вас данные о боте (можно оставить по умолчанию, просто нажав Enter). В конце она спросит правильно ли всё указано и выведет полученные ответы.


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

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

Если вы всё сделали правильно, то в папке бота должно быть следующее.


Далее создаём файл botconfig.json, здесь мы будем хранить основные параметры бота.

Теперь создаём файл index.js, в него копируем следующий код.

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

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