Перейти к содержимому

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

  • автор:

Как написать бота на Python в дискорде: подробный гайд

Автор: Саша Берлизева

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

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

Какие бывают боты в дискорде и зачем они нужны

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

Короткая справка: что такое Discord

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

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

Среди преимуществ дискорда — высокая скорость, бесплатные сервера, функция шумоподавления, возможность форматирования текста и др.

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

Вот какие основные виды готовых ботов для дискорда можно выделить:

  • музыкальные боты — необходимы для проигрывания музыки, могут воспроизводить треки в определённой последовательности, регулировать громкость или делать паузы между треками;
  • боты администраторы — помогают модерировать рабочие чаты, могут поприветствовать новичков, очистить спам или напомнить о дне рождении одного из участников команды;
  • боты для сбора мнений — такой помощник поможет быстро опросить участников чата и собрать результаты в небольшой отчёт;
  • ролевые боты — необходимы, чтобы распределять роли в команде и наделять конкретных людей определёнными полномочиями;
  • боты переводчики — помогут перевести сообщения в чатах, если переписка ведётся на нескольких языках;
  • боты для определения рейтинга — такие помощники отмечают тех пользователей, которые наиболее активны;
  • многофункциональные боты — такие помощники могут выполнять сразу несколько разных задач, всё чаще пользователи обращаются именно к таким ботам, чтобы упростить работу в дискорде и не тратить время на несколько разных программ.

Боты в дискороде: опыт Checkroi

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

Мы пользуемся ботом mee6 — в нём есть ряд функций, которые влияют на вовлечение всех участников в общение. Бот помогает считать активность людей в чатах, позволяет получать внутреннюю валюту за активности и напоминает о днях рождения. Люди, видя свой рейтинг, чаще включаются в общение.

Ещё одна из фишек бота — воспроизведение музыки. По пятницам мы устраиваем радиоэфиры: включаем музыку, делимся тем, что любим и общаемся. Отличное чувство, когда ты на целый час делишься своим сокровенным — музыкой — и всем это нравится!

Помимо этого, мы используем дополнительные надстройки, которые делал наш программист: уведомление о трафике и лидах, оповещение о публикации новых статей и уведомление о новом отклике. Это позволяет всем быть в курсе, что происходит, видеть динамику по статьям и осознавать себя частью большего! Конечно, есть ещё куча других идей по ботам — и я уверен, мы их скоро реализуем

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

Как создать бота в дискорде: пошаговая инструкция

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

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

Шаг 1. Создаём учётную запись

Для создания бота вам потребуется библиотека Python и API Discord. Чтобы свободно работать с этими инструментами, необходимо создать учётную запись Discord Bot. Для этого войдите в Discord и откройте страницу приложения.

В правом верхнему углу нажмите на кнопку «New Application»:

В правом верхнему углу нажмите на кнопку «New Application»

Придумайте имя приложению и нажмите кнопку «Create», чтобы создать новую учётную запись:

Придумайте имя приложению и нажмите кнопку «Create», чтобы создать новую учётную записьШаг 2. Создаём бота

После этого откроется окно, которое запросит подтверждения действий, поэтому кликните на «Yes, do it!»

После того как запись создана, можете приступать к созданию бота. Для этого откройте вкладку «Bot» и нажмите кнопку «Add Bot», чтобы добавить нового бота. После этого откроется окно, которое запросит подтверждения действий, поэтому кликните на «Yes, do it!»:

Поздравляем, вы создали бота, теперь вам нужно скопировать его токен — это своеобразный пароль, которым никто не должен завладеть. Нажмите на кнопку «Rest Token»:

Нажмите на кнопку «Rest Token»

Скопируйте полученную информацию, нажав на кнопку «Copy». Сохраните токен, он вам потребуется чуть позже:

Скопируйте полученную информацию, нажав на кнопку «Copy»Шаг 3. Настраиваем бота

Далее вам нужно настроить вашего бота, для этого перейдите во вкладку «OAuth2». Выберите из выпадающего списка «URL Generator» и поставьте галочку рядом с «bot»:

Выберите из выпадающего списка «URL Generator» и поставьте галочку рядом с «bot»

Выберите те функции, который должен выполнять ваш бот и скопируйте полученную ссылку, нажав кнопку «Copy»:

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

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

Вставьте URL-адрес в браузерную строку и выберите сервер, на который нужно добавить бота:

Вставьте URL-адрес в браузерную строку и выберите сервер, на который нужно добавить ботаКак написать код на Python для бота в дискорде

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

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

После того как авторизуетесь, нажмите на кнопку «Create», выберите язык Python и кликнете на «Create Repl»

Для начала откройте любой редактор кода. Мы будем использовать Repl.it, регистрация в нём занимает две минуты. После того как авторизуетесь, нажмите на кнопку «Create», выберите язык Python и кликнете на «Create Repl»:

Затем свяжите редактор кода с библиотекой discord.py, записав в вверху main.py простую строчку «import discord». После того как введёте в поле «import discord», нажмите кнопку «Run»

После того как введёте в поле «import discord», нажмите кнопку «Run»

Теперь сделаем так, чтобы наш бот научился отвечать на сообщения: для этого скопируем стандартный код из документации discord.py и вставим его в mai.py. Или скопируйте его отсюда:

async def on_ready ():

print(‘ We have logged in as <0.user>‘.format(client))

async def on_message( message):

if message.author == client.user:

if message.content.startswith(‘ $hello’ ):

await message.channel.send(‘ Hello! ‘)

client.run(‘ your token here ‘)

В последней строчке замените фразу «your token here» на ваш токен, который вы скопировали, когда создавали бота и кликните по кнопке «Run»:

В последней строчке замените фразу «your token here» на ваш токен, который вы скопировали, когда создавали бота и кликните по кнопке «Run»

Если вы всё сделали верно, переписка с ботом будет выглядеть примерно так:

Если вы всё сделали верно, переписка с ботом будет выглядеть примерно так

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

async def on_ready():

print(‘We have logged in as <0.user>’.format(client))

Используем декоратор Client.event() для регистрации события.

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

В нашем примере событие on_ready() происходит, когда бот завершает вход в систему и настройку, а событие on_message() случается, когда бот получил сообщение

async def on_message(message):

if message.author == client.user:

Используем декоратор Client.event() для уточнения события.

Триггер событий срабатываем каждый раз при получении сообщения on_message(). Но боту не нужно отвечать, если мы сами написали сообщение. Поэтому, если бот видит Message.author он понимает, что это сообщение от Client.user и совершает возврат действия

Если бот получил в сообщении «привет», он ответит той же фразой

Не забудьте заменить «your token here» на ваш токен

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

Лучшие курсы для профессионального создания ботов на Python

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

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

Лучший курс по программированию на Python с гарантией трудоустройства

Курс от Skillbox для начинающих разработчиков. Вы поймёте, как устроены популярные фреймворки, библиотеки, базы данных и другие инструменты для разработки. Вы научитесь создавать программы разной сложности: от консольных скриптов до чат-ботов, упаковывать проекты, публиковать рабочую версию продукта на сервере и работать в команде.

Длительность. 12 месяцев

Какой получите результат. 3 проекта в портфолио, диплом об окончании курса, трудоустройства

Какие будут бонусы. Индивидуальные и групповые практические задания, бесплатный доступ к среде разработки IDE, бонусные курсы и рассрочка

Лучший курс для освоения профессии Python-разработчик

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

Длительность. 9 месяцев

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

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

Лучший курс для знакомства с Python

Курс от Skypro поможет вам с нуля освоить популярный язык программирования. Вы поймёте, как устроен синтаксис Python и принципы объектно-ориентированного программирования. Вы узнаете, как пользоваться библиотеками Python и писать стабильный код. Вы научитесь разрабатывать архитектуру сервисов различной сложности и писать серверы для интернет-магазинов, приложений и игр.

Длительность. 10 месяцев

Какой получите результат. Диплом и помощь с трудоустройством

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

Лучший курс для практикующих разработчиков

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

Длительность. 5 месяцев

Какой получите результат. Сильное портфолио и сертификат об окончании курса

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

Заключение

Популярность Python растёт: всё больше тех, кто хочет освоить этот язык программирования. Но не все знают, где практиковаться. Один из простых способов понять, насколько вам интересно программировать на питоне и «пощупать» этот язык — создать бота в дискорде. У этой платформы масса возможностей, поэтому разработчикам ботов есть где развернуться.

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

Если вы всерьёз заинтересовались разработкой на питоне, но пока не выбрали оптимальный вариант обучения, рекомендуем ознакомиться с ещё одной нашей статьёй. В материале «Как грамотно выстроить обучение Python» рассказываем про курсы, видеоуроки и профессиональные сообщества

Создание Discord-бота, используя библиотеку discord.js | Часть №1

В этой статье я подробно расскажу о том, как работать с библиотекой 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» и отметим нужные боту привилегии.

Теперь осталось скопировать ссылку-приглашение и добавить бота на свой сервер.

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

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

Для этого, сначала мы должны скопировать ссылку-приглашение.
После чего перейти в файл bot.js и вставить данную строчку кода сюда:

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

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

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

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

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

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

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

    !say — с помощью этой команды бот может повторить ваше сообщение.

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

Пользователи часто спрашивают, как создать бота в Дискорде и тем самым получить программу с необходимыми функциями. Сразу отметим, что достижение такой цели — непростая задача, а реализовать ее можно несколькими способами, к примеру, на основе discord.js, на Python или с помощью программы Discord Bot Maker.

Как создать Дискорд-бота на основе discord.js

На практике API Discord представляет собой удобный инструмент, позволяющий создать, а впоследствии использовать бота. С его помощью легко разработать помощника для решения разных задач, а далее задать необходимый набор команд. Для примера рассмотрим общий алгоритм создания бота для музыки. При правильном подходе он сможет проигрывать, пропускать и останавливать музыкальные файлы. Кроме того, в его функции будет входить поддержка очереди на проигрывание мелодии.

Выполните следующие шаги:

  1. Войдите на сайт discord.com/developers/applications/.

  1. Жмите на кнопку New Application.

  1. Введите название будущего бота Дискорд, к примеру, Music Bot.
  2. Перейдите на вкладку Bot, а после жмите на кнопку Add Bot.


Этих действий достаточно, чтобы создать бота Дискорд, после чего нужно его добавить на сервер с помощью OAuth2 URL-генератора. Сделайте следующие шаги:

  1. Переместитесь в раздел OAuth2 и выберите Bot в панели Scopes.

  1. Укажите необходимые разрешения для проигрывания музыки и чтения.
  2. Копируйте созданный URL и вставьте его в веб-проводник.
  3. Выберите сервер, куда нужно добавить URL.
  4. Жмите на кнопку авторизации (Authorize).


На следующем этапе нужно создать проект с применением терминала. Для этого создайте директорию и перейдите ее с помощью следующих команд — mkdir musicbot && cd musicbot. Далее сделайте следующее:

  1. Создайте модули проекта с применением nmp init.
  2. Ответьте на несколько вопросов, которые необходимы, чтобы создать бота в Дискорд.
  3. Сделайте два файла, где будет вестись работа — touch index.js && touch config.json.
  4. Откройте проект в редакторе, к примеру, с помощью VS Code с применением приказа code.
  5. Установите группу зависимостей, необходимых для дальнейшей работы — npm install discord.js ffmpeg-binaries opusscript ytdl-core –save.
  6. Продолжите создание файла на config.json. На этом этапе сохраните префикс и токен для бота.
  1. Войдите на портал создания Дискорд и копируйте токен из раздела Bot (жмите на кнопку Copy).

Теперь нужно создать код javascript. Для этого копируйте следующие зависимости:

const Discord = require(‘discord.js’);

const ytdl = require(‘ytdl-core’);

После этого нужно создать с применением токена клиент и логин.

const client = new Discord.Client();

Далее добавьте несколько listeners, которые выполняют console.log при пуске.

После этого начните работать с ботом Дискорд с применением node. Важно, чтобы вновь созданный Discord-бот был онлайн. В консоли появится Ready!. Команда — node index.js.

Задание команд для бота Дискорд

Теперь остается задать необходимые команды.

Для чтения сообщений

Чтобы Дискорд-бот мог читать, напишите функцию.

client.on(‘message’, async message => <

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

if (message.author.bot) return;

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

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

Далее проверьте команду, которую нужно активировать. Используйте следующие команды.

> else if (message.content.startsWith(`$skip`)) <

> else if (message.content.startsWith(`$stop`)) <

message.channel.send(‘You need to enter a valid command!’)

После получения списка команд, которые можно запустить, переходите к их созданию.

Добавление песен

Здесь нужна гильдия, песня и библиотека ytdl (должна быть установлена заранее). Сделайте map с названием очереди, где будут храниться песни.

const queue = new Map();

Теперь создайте async0-функцию с названием execute и убедитесь, находится ли пользователь в чате, и имеется ли необходимое разрешение. При его отсутствии пишете сообщение об ошибке.

async function execute(message, serverQueue) <

const args = message.content.split(‘ ‘);

const voiceChannel = message.member.voiceChannel;

if (!voiceChannel) return message.channel.send(‘You need to be in a voice channel to play music!’);

const permissions = voiceChannel.permissionsFor(message.client.user);

if (!permissions.has(‘CONNECT’) || !permissions.has(‘SPEAK’)) <

return message.channel.send(‘I need the permissions to join and speak in your voice channel!’);

Перейдите к получению данных о песне и сохраните ее в song. Для этого потребуется ytdl-библиотека, получающая данные по ютуб-ссылке.

const songInfo = await ytdl.getInfo(args[1]);

Необходимые данные сохраняются в song. Теперь нужно создать контракт, обеспечивающий добавление в очередь. Проверьте факт определения serverQueue (проигрывание музыки), а после отправьте сообщение о достижении результата. Если это не удалось сделать, нужно его создать и соединиться с голосовым каналом и начать играть песню.

return message.channel.send(`$ has been added to the queue!`);

В раздел serverQueue, если он пустой, добавьте трек. В случае, когда serverQueue имеет параметр null, сделайте контракт.

// Creating the contract for our queue

// Setting the queue using our contract

// Pushing the song to our songs array

// Here we try to join the voicechat and save our connection into our object.

var connection = await voiceChannel.join();

// Calling the play function to start a song

// Printing the error message if the bot fails to join the voicechat

Проигрывание трека

Теперь нужно создать опцию play для бота Дискорд с параметрами гильдия и песня, а также проверкой объекта song.

function play(guild, song) <

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

Если да, нужно уйти с голосового канала и удалить очередь.

Далее трек играет с применением URL и playStream.

const dispatcher = serverQueue.connection.playStream(ytdl(song.url))

// Deletes the finished song from the queue

// Calls the play function again with the next song

Здесь создается stream, а его URL передается адресу песни.

Пропуск трека

Здесь оформите завершение диспетчера, который был сделан в опции play. Такое действие необходимо, чтобы начал играть очередной трек.

function skip(message, serverQueue) <

if (!message.member.voiceChannel) return message.channel.send(‘You have to be in a voice channel to stop the music!’);

if (!serverQueue) return message.channel.send(‘There is no song that I could skip!’);

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

Остановка

Опция stop подразумевает очистку массива song, удаления очереди и выхода из чата.

Как создать бота в Discord

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

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

Создание приложения и авторизация бота

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

  1. Перейдите по ссылке выше, чтобы оказаться на главной странице портала для разработчиков в Discord. Используйте личные авторизационные данные для входа в аккаунт. Авторизация на портале разработчиков для создания бота в Discord
  2. Создайте новое приложение, нажав кнопку «New Application». Переход к созданию нового приложения на портале разработчиков для создания бота в Discord

Lumpics.ru

Выбор среды разработки

Перед началом работы с кодом в упомянутых языках программирования уточним, что вам понадобится установить текстовый редактор или специальную среду разработки, поддерживающую синтаксис Python или JavaScript (в зависимости от выбранного). Конечно, можно использовать просто «Блокнот», но по удобству он уступает специализированным программам. Просмотрите их списки в обзорах по следующим ссылкам и выберите для себя подходящий софт.

Выбор среды разработки для создания бота в Discord

Вариант 1: Python и библиотека discord

Если ранее вы не сталкивались с языками программирования или знакомы с ними только поверхностно, создание бота для Discord на Python — лучший выбор. Этот ЯП проще учится, компактный и имеет логически понятный синтаксис, поэтому идеально подходит новичкам. К тому же в сети есть огромное количество исходников с различными командами или уже готовыми ботами, которые ничего не мешает скопировать и использовать в своих целях. В следующих шагах вы узнаете, как создать «каркас» бота на Python и запустить его, чтобы проверить работу.

Шаг 1: Установка Python и библиотеки discord

По умолчанию в Windows нет встроенных функций и утилит, предназначенных для работы с Питоном, поэтому их придется установить отдельно, не забыв про подключаемую библиотеку discord, которая позволит взаимодействовать с полезными функциями и командами, связанными исключительно с Дискордом.

  1. Воспользуйтесь ссылкой выше, чтобы перейти на официальный сайт Python и нажмите кнопку для загрузки его последней версии. Кнопка скачивания компонентов языка программирования для создания бота в Discord при помощи Python
  2. На новой странице отыщите инсталлятор для Windows и начните его загрузку. Выбор версии языка программирования для создания бота в Discord при помощи Python
  3. Дождитесь завершения скачивания и запустите установщик. Загрузка установочного файла компонентов языка программирования для создания бота в Discord при помощи Python
  4. Можно запустить установку без изменений, но обязательно отметьте галочкой «Add Python X.X to PATH», чтобы все переменные среды добавились автоматически и не возникло проблем при дальнейшем вводе команд. Кнопка установки компонентов языка программирования для создания бота в Discord при помощи Python
  5. Ожидайте завершения установки и на всякий случай перезагрузите компьютер, чтобы все изменения вступили в силу. Процесс установки компонентов языка программирования для создания бота в Discord при помощи Python
  6. Откройте «Командную строку» удобным для вас способом, например, отыскав приложение в меню «Пуск». Переход в Командную строку для установки библиотек ЯП для создания бота в Discord при помощи Python
  7. Напишите команду pip install discord и подтвердите ее нажатием клавиши Enter. Команда установки библиотек ЯП для создания бота в Discord при помощи Python
  8. Начнется загрузка файлов и в консоли «побегут» строки. Не закрывайте данное окно до завершения скачивания. Процесс установки библиотек ЯП для создания бота в Discord при помощи Python
  9. Как только появилась информация «Successfully installed», закрывайте «Командную строку» и переходите далее. Успешная установка компонентов ЯП для создания бота в Discord при помощи Python

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

Шаг 2: Создание словаря бота

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

  1. Начните с запуска IDLE, отыскав добавленное приложение через меню «Пуск». Если вы скачали другую среду разработки, откройте ее и создайте новый проект на базе Python. Запуск среды разработки для создания бота в Discord при помощи Python
  2. После открытия нового окна вызовите меню «File» и выберите пункт «New File». Сделать это можно и при помощи комбинации клавиш Ctrl + N. Открытие нового файла в среде разработки для создания бота в Discord при помощи Python
  3. В новом окне, которое и предназначено для написания кода, вставьте блок

Шаг 3: Создание тела бота

Для обеспечения базового функционирования бота ему нужно создать «тело» — основной код для запуска и работы на сервере. Понадобится отдельный файл, который можно назвать как угодно, но обязательно сохранить его в том же месте, где находится созданный ранее словарь.

Создание файла тела для создания бота в Discord при помощи Python

  1. В среде разработки откройте меню «File» и создайте новый файл.
  2. Вставьте туда три команды, которые предназначены для импорта установленных библиотек и созданного ранее файла:

@bot.command() # Не передаём аргумент pass_context, так как он был нужен в старых версиях.
async def hello(ctx): # Создаём функцию и передаём аргумент ctx.
author = ctx.message.author # Объявляем переменную author и записываем туда информацию об авторе.

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

Использование альтернативного кода для создания бота в Discord при помощи Python

import discord
from discord.ext import commands
from config import settings

bot = commands.Bot(command_prefix = settings[‘prefix’])

@bot.command() # Не передаём аргумент pass_context, так как он был нужен в старых версиях.
async def hello(ctx): # Создаём функцию и передаём аргумент ctx.
author = ctx.message.author # Объявляем переменную author и записываем туда информацию об авторе.
await ctx.send(f’Hello, !’) # Выводим сообщение с упоминанием автора, обращаясь к переменной author.

bot.run(settings[‘token’]) # Обращаемся к словарю settings с ключом token, для получения токена

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

import discord
from discord.ext import commands

TOKEN = ‘Ваш токен’
bot = commands.Bot(command_prefix=’!’)

@bot.command(pass_context=True) # разрешаем передавать аргументы
async def test(ctx, arg): # создаем асинхронную функцию бота
await ctx.send(arg) # отправляем обратно аргумент

Шаг 4: Запуск бота

Теперь можно запустить бота для проверки, для чего понадобится созданный в Шаге 3 основной файл. Скомпилируйте его прямо через среду разработки или вызовите «Командную строку» и введите там python bot.py , где bot.py — название созданного файла. Если файл найти не удалось, укажите его полный путь, например python C:\Users\USER_NAME\bot.py .

Запуск основного файла для создания бота в Discord при помощи Python

Перейдите в Дискорд и проверьте текущее состояние бота. Он должен отображаться в списке участников в разделе «В сети» вместе с зеленой точкой.

Проверка статуса бота для создания в Discord после его создания при помощи Python

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

Вариант 2: JavaScript и discord.js

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

Шаг 1: Установка Node.js и discord.js

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

  1. Откройте страницу Node.js в интернете и выберите последнюю рекомендованную версию для скачивания. Кнопка скачивания расширенной платформы для создания бота в Discord при помощи JavaScript
  2. Дождитесь получения исполняемого файла и запустите его. Процесс загрузки расширенной платформы для создания бота в Discord при помощи JavaScript
  3. Следуйте появившимся на экране инструкциям, завершите установку и перезагрузите компьютер. Установка расширенной платформы для создания бота в Discord при помощи JavaScript
  4. Раскройте «Пуск» и через поиск отыщите классическое приложение «Командная строка». Переход в Командную строку для создания бота в Discord при помощи JavaScript
  5. В ней напишите команду npm init и активируйте ее нажатием Enter. Команда установки файлов пакетов для создания бота в Discord при помощи JavaScript
  6. Создайте стандартный пакет с пользовательской информацией, нажимая Enter после ввода каждого параметра, или оставьте все по умолчанию. Процесс установки файлов пакетов для создания бота в Discord при помощи JavaScript
  7. Когда все параметры пакета окажутся заданы, вы получите предупреждение, которое нужно подтвердить, снова нажав Enter. Успешная установка файлов пакетов для создания бота в Discord при помощи JavaScript
  8. Введите команду npm install для установки недостающих стандартных компонентов. Команда установки основных компонентов библиотек для создания бота в Discord при помощи JavaScript
  9. Дождитесь завершения их загрузки и появления строки ввода. Успешная установка компонентов библиотек для создания бота в Discord при помощи JavaScript
  10. Напишите npm install discord.js . Установка библиотеки для создания бота в Discord при помощи JavaScript
  11. Как только и эта команда выполнена, откройте папку своего пользователя и убедитесь в наличии созданных файлов пакета формата JSON. Проверка добавленных пакетов для создания бота в Discord при помощи JavaScript

Шаг 2: Работа с файлами бота

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

Создание основных файлов для создания бота в Discord при помощи JavaScript

  1. Для начала создайте файлы «bot.js» и «config.json» в одном каталоге.
  2. Откройте через текстовый редактор или среду разработки «config.json» и добавьте туда такие строки:

<
«token» : «Ваш_токен»,
«prefix» : «Ваш_префикс»
>

const Discord = require(‘discord.js’); // Подключаем библиотеку discord.js
const robot = new Discord.Client(); // Объявляем, что robot — бот
const comms = require(«./comms.js»); // Подключаем файл с командами для бота
const fs = require(‘fs’); // Подключаем родной модуль файловой системы node.js
let config = require(‘./config.json’); // Подключаем файл с параметрами и информацией
let token = config.token; // «Вытаскиваем» из него токен
let prefix = config.prefix; // «Вытаскиваем» из него префикс

robot.on(«ready», function() <
/* При успешном запуске, в консоли появится сообщение «[Имя бота] запустился!» */
console.log(robot.user.username + » запустился!»);
>);

robot.on(‘message’, (msg) => < // Реагирование на сообщения
if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) <
var comm = msg.content.trim() + » «;
var comm_name = comm.slice(0, comm.indexOf(» «));
var messArr = comm.split(» «);
for (comm_count in comms.comms) <
var comm2 = prefix + comms.comms[comm_count].name;
if (comm2 == comm_name) <
comms.comms[comm_count].out(robot, msg, messArr);
>
>
>
>);

robot.login(token); // Авторизация бота

const config = require(‘./config.json’); // Подключаем файл с параметрами и информацией
const Discord = require(‘discord.js’); // Подключаем библиотеку discord.js
const prefix = config.prefix; // «Вытаскиваем» префикс

function test(robot, mess, args) <
mess.channel.send(‘Test!’)
>

var comms_list = [ <
name: «test»,
out: test,
about: «Тестовая команда»
>];

// Name — название команды, на которую будет реагировать бот
// Out — название функции с командой
// About — описание команды

Для дальнейшей работы с командами достаточно будет объявить их функции и пополнить список соответствующими блоками кода. На примере готовый файл «comms.js» выглядит так:

const config = require(‘./config.json’);
const Discord = require(‘discord.js’);
const prefix = config.prefix;
const versions = config.versions;

function test(robot, mess, args) <
mess.channel.send(«Тест!»)
>

function hello(robot, mess, args) <
mess.reply(«Привет!»)
>

var comms_list = [ <
name: «test»,
out: test,
about: «Тестовая команда»
>,
<
name: «hello»,
out: hello,
about: «Команда для приветствия!»
>
>

Шаг 3: Запуск бота

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

  1. Откройте меню «Пуск» через поиск отыщите «Командную строку» и запустите ее. Переход к запуску приложения для создания бота в Discord при помощи JavaScript
  2. Введите node bot.js , где bot.js — название основного файла с кодом для бота. Если он находится не в вашей домашней папке, указывайте полный путь к файлу или сначала перейдите к расположению, используя команду cd . Запуск приложения для создания бота в Discord при помощи JavaScript через командную строку

Примеры полезных команд

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

const arggs = mess.content.split(‘ ‘).slice(1); // Все аргументы за именем команды с префиксом
const amount = arggs.join(‘ ‘); // Количество сообщений, которые должны быть удалены
if (!amount) return mess.channel.send(‘Вы не указали, сколько сообщений нужно удалить!’); // Проверка, задан ли параметр количества
if (isNaN(amount)) return mess.channel.send(‘Это не число!’); // Проверка, является ли числом ввод пользователя

if (amount > 100) return mess.channel.send(‘Вы не можете удалить 100 сообщений за раз’); // Проверка, является ли ввод пользователя числом больше 100
if (amount <
mess.channel.bulkDelete(messages)
mess.channel.send(`Удалено $ сообщений!`)
>)
>;
delete_messages(); // Вызов асинхронной функции

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

var random = Math.floor(Math.random() * 4) + 1; // Объявление переменной random — она вычисляет случайное число от 1 до 3

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *