Как запустить своего бота в дискорде
Перейти к содержимому

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

  • автор:

Как в мессенджере Дискорд создать своего бота, инструкция по написанию

Как в мессенджере Дискорд создать своего бота, инструкция по написанию

Были времена, когда люди все делали сами. Конечно, поручить тяжелый физический труд они могли автоматизированным машинам. Однако умственные операции, где нужно производить логический анализ, поручить было некому. С недавнего времени эта проблема решилась программами с готовыми логическими инструкциями, которые называются ботами. Расскажем, как создать собственного бота в сервисе Дискорд, который считается одним из лучших мессенджеров в 2024 году.

С чего начать

screenshot_1

Может, где-то на просторах интернета и «гуляют» готовые конструкторы (их иногда называют Creator) ботов, они довольно ограничены по функционалу. Так как невозможно предсказать все желания пользователя. Потому мы будем рассматривать разработку Discord bot на основе языка программирования JavaScript(JS), а точнее платформы Node.js. Первым делом необходимо создать приложение в базе Discord. Для этого выполните следующие действия:

  • Перейдите по этой ссылке. Рекомендуем сделать это не на телефоне, а через компьютер.

screenshot_2

  • Нажмите на кнопку «New Application».

screenshot_3

  • Введите название для приложения. В будущем оно будет отображаться как имя бота.

screenshot_4

  • Перейдите в раздел «Bot», который находится в левом навигационном меню.
  • Нажмите кнопку «Add bot». Подтвердите действие. Если возникнет ошибка, то, скорее всего, название вашего приложения уже использовалось и нужно придумать новое. Отредактировать его можно в разделе «General».

screenshot_5

  • Найдите поле «Token». Кликните по ссылке под ним. Должен появиться длинный текст из разных символов. Это и есть токен, с помощью которого происходит обращение к боту.
  • Скопируйте его и сохраните куда-то. Без него обращение невозможно. Также не рекомендуем показывать этот токен кому-либо, так как этот кто-то сможет управлять вашим приложением.

screenshot_6

Готово. Местечко для приложения мы уже подготовили. Осталось установить сам код на выделенном хостинге.

Подготовка сервера

В нашем случае будет использовать VDS (виртуальный выделенный сервер) с ОС Ubuntu 18.04. Если вы новичок, то рекомендуем остановиться именно на этом дистрибутиве. Сам сервер необходимо арендовать. Для обучения можно найти и бесплатный хостинг. Для подготовки сервера выполняем следующие действия:

  • Запустите сервер и откройте терминал. В Ubuntu достаточно нажать ПКМ по рабочему столу и выбрать «Терминал».
  • Введите следующие команды:
    sudo apt update

sudo apt install docker npm.

screenshot_7

Таким образом мы установили npm, который нужен для установки пакетов node.js. Уже непонятно? Тогда рекомендуем для начала ознакомиться с базовым курсом по JS и Node.js. Впрочем, если полностью следовать инструкциям, дополнительный материал для изучения не понадобится.

Создание основных файлов бота

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

  • Откройте терминал.
  • Перейдите в домашний каталог с помощью команды «cd /home».
  • Создайте директорию с произвольным названием. В нашем случае это будет mkdir newbot.

screenshot_8

Готово, окружение подготовлено. Переходим к файлам.

Добавление команд

Первый делом создайте в этой директории файл package.json с помощью команды «touch package.json». С помощью текстового редактора заполните файл следующими строками:

«name»: «*здесь укажите имя бота*»,

«version»: «*его версию (на свое усмотрение) *»,

«description»: «*описание, которое будут видеть пользователи*»,

«author»: «электронный адрес автора»,

screenshot_9

Обратите внимание на строку «»main»: «main.js»». Внутри кавычек указывается исполняемый файл. В нашем случае это main.js. Создайте в этой же директории файл с таким названием, а после введите следующий готовый код:

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

const bot = new Discord.Client();

const token = process.env.token;

const prefix = process.env.prefix;

console.info(`Current prefix: $`);

if (message.content === `$hello`)

if (message.content === `$server`)

screenshot_10

Это простейший скрипт, который будет приветствовать пользователя и по команде «Server» выводить количество участников. Теперь создадите файл .env, в котором необходимо написать следующие строки:

token=*токен, который был скопирован при создании бота*

prefix=»*символ, с которого будут начинаться команды*»

В звездочках указаны места, куда нужно ввести свои данные. При подготовке кода эти звездочки писать не нужно.

screenshot_11

Тестирование

По сути, скрипт выше не взаимодействует со стандартным интерфейсом JS, а «общается» сразу посредством discord API. Следственно, проверить его работоспособность сразу не получится. Единственное, что может сделать пользователь на этом этапе, так это проверить, запустится ли код вообще. Для этого необходимо из терминала ввести команду «npm start», находясь в директории с проектом. Если никаких ошибок не возникло, то переходите к следующему этапу.

Docker-контейнер

Docker – это специальное окружение для проекта, которое позволяет запустить код, вне зависимости от параметров основной системы. Он также поможет собрать сам проект и запустить его локально на сервере. Для этого создайте файл Dockerfile со следующим содержимым:

RUN npm install

Теперь создайте файл .dockerignore, где будут храниться не используемые при сборке компоненты. Добавьте в него эти строки:

Для запуска и сборки используем следующие команды:

docker build -t author/test

docker run -p 42150:8080 -d author/test

screenshot_12

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

Можете спокойно выдохнуть, на этом все сложности заканчиваются. Добавления займет не более 1 минуты. Для инсталляции (от слова «install») снова вернитесь в окно создания приложения. Но теперь перейдите в раздел «OAuth2». В разделе «Scopes» выберите пункт «Bot». Сервис выдаст ссылку, которую нужно вставить в адресную строку.

screenshot_13

Дальше у вас спросят, в какой сервер добавить бота. Когда эти процедуры завершатся, можете смело проверять ваше творение. Пока бот может выполнять только одну команду: «!server». Вместо «!» будет указан префикс, который вы использовали в скрипте. В идеале должна вернуться строка следующего вида:

Сообщество: *название сообщества*

Участников: *количество участников*

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

screenshot_14

Благодарим за прочтение.

08.11.2021 17:16 295
Евгений Верещака
Информационный портал IT Техник

Информационный портал IT Техник

Похожие публикации

Как отключить или удалить бота в мессенджере Дискорд, инструкция

Как создать и настроить своего чат-бота в Телеграме, пошаговая разработка

Описание бота Карла и как его добавить в Дискорд, настройка и как пользоваться

Функционал бота Мегумин для мута, как скачать и установить на свой Дискорд

Описание и команды бота Джунипер, как добавить Лису в Дискорд и ее настройка

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

Вам помогло? Поделитесь с друзьями — помогите и нам!
Поделиться
Поделиться
Вотсапнуть
Сейчас просматривают
Как на Windows 10 исправить ошибку с кодом KERNEL DATA INPAGE ERROR, 7 способов
Как можно отключить режим В самолете на компьютере с системой Windows 10
Описание сервиса BigBookName, как им пользоваться и удалить себя из базы
Честный обзор бюджетного смартфона Nokia 2.2 за 6990 рублей
Комментарии к статье: 0
Добавить комментарий Отменить ответ
Наш Youtube-канал
Канал Telegram
Инфо-портал IT-Техник
Копировать запрещено
109 запросов. 0,291 секунд. / 17.44mb
39 минут назад
խաբեբայությունա
Что это за приложение Bfamtion и для чего оно нужно, стоит ли пользоваться
1 час назад
Скиньте на кашел 10$ напишите вашу сумму, прикрепите скрин и вернем все
Что это за приложение Bfamtion и для чего оно нужно, стоит ли пользоваться
1 час назад
sssssssssssssssssssssssss
Что это за приложение Bfamtion и для чего оно нужно, стоит ли пользоваться
1 час назад

Я довольна применением Сферум. Я педагог. Сферум сокращает бумажную волокиту, освобождает время, например, для доп. профессионального развития. Сферум позволяет учащимся, которые болеют, изучать учебные материалы дистанционно и не отставать; позволяет формировать и хранить портфолио работ учащихся в компактном цифровом формате, позволяет проводить учебные онлайн-консультации и наглядные уроки с презентациями, когда это остро необходимо; экономит время, и еще много чего. Да, мы привыкли общаться в Ватсап, а это «вражеский» ресурс, тем более его активно взламывают. В апреле 2024. в Ватсап получила сообщение от знакомой (прямо из её профиля) с просьбой перевести ей до завтра 50 т.р. на её карточку; пыталась ей перезвонить — занято было постоянно. Позже сотрудники сказали, что все получили от неё такое сообщение; одна перевела 10 т.р. Никакой защиты информации в Ватсапе нет. А Сферум постоянно развивают с учетом замечаний учителей, родителей и самих учеников России. Я не за тотальную оголтелую цифровизацию, а только за использование этого сервиса там, где он действительно реально улучшает процесс обучения и где дает возможности, недоступные традиционным подходам. В этом суть развития

Описание образовательной платформы Сферум, зачем нужна, плюсы и минусы
2 часа назад

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

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

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

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

Содержание статьи скрыть

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пошаговый план
«Как эксперту выйти на стабильные 100 000 ₽/мес»
На продаже своих услуг без всякого «наставничества»
Получить план

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

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

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

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

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

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

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

Шаг 2. Создаём бота

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

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

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

Шаг 3. Настраиваем бота

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

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

Шаг 4. Добавляем бота на сервер

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

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

Как написать код на Python для бота в дискорде

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

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

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

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

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

async def on_ready ():

print(‘ We have logged in as ‘.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»:

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

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

Строка кода Значение
import discord Импорт библиотеки discord.py
client = discord.Client() Создание экземпляра клиента. Клиент — это наша связь с дискордом
@client.event

async def on_ready():

print(‘We have logged in as ’.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.py. Часть 1

Это первая статья про создание бота для Discord. В конце статьи находятся ссылки на следующие части, со временем они будут дополняться. Статьи следуют друг за другом, без каких-либо «информационных дыр». Если нашли опечатку или неточность, отпишите о проблеме в комментариях или в личных сообщениях, максимально оперативно всё поправим! А теперь переходим непосредственно к созданию бота.

В данной части

  1. Создание тестового сервера
  2. Включение режима разработчика
  3. Создание приложения и получение токена
  4. Добавление бота на сервер
  5. Установка библиотеки discord.py
  6. Первые строчки кода

Создание сервера

Гайд будет максимально подробный, поэтому и начинать будем с создания тестового сервера. Зачем он нужен? Лишь для вашего удобства и безопасности, если у вас уже есть большой сервер, тем более не стоит сразу добавлять на него разрабатываемого бота. Никто не защищён от багов и дыр в безопасности.

  1. Заходим в дискорд
  2. Слева видим список серверов, листаем в самый низ до кнопки «Создать сервер«.
  3. Создаём сервер по любому из предложенных шаблонов.

Включаем режим разработчика

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

Чтобы включить этот режим, заходим в настройки.

В категории «Настройки приложения» ищем «Расширенные«.

И включаем режим разработчика.

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

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

После этого вам предложат назвать ваше приложение (Потом можно будет изменить).

Создание приложени

После создания, попадаем на страницу настройки приложения. В меню выбираем «Bot«.

На данной странице нажимаем на «Add Bot«. Скопируем токен и сохраним его.

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

Добавление бота на сервер

В меню ищем пункт OAuth2 –> URL Generator.

В поле SCOPES выбираем bot и applications.commands. В появившемся ниже поле выбираем Administrator, это более удобно для тестирования. Но когда бот будет работать в продакшене, лучше выставлять только те права, которые правда нужны, потому что никто не защищён от потери токена, а с правами администратора это может стать очень большой проблемой.

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

Ура! Наш бот на тестовом сервере!

Установка библиотеки

Для начала нужно установить python, данный этап не расписан, но желательно установить версию 3.10 (Последняя версия на момент написания 3.10.5). Если у вас Windows, для проверки можете использовать следующую команду

py --version

В ответ получите версию вашего python. Устанавливать будем не стабильную, а разрабатываемую версию, для этого пропишем следующую команду. (Это можно делать уже внутри проекта). Хотя некоторые IDE устанавливаю git вместе с собой, можете скачать его отдельно.

py -m pip install git+https://github.com/rapptz/discord.py

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

py -3 -m pip install -U discord.py py -3 -m pip install -U discord.py[voice]

Подробнее про установку библиотеки и саму библиотеку можно прочитать тут.

Первые строчки кода

Пришло время писать код! Программирование в статьях будет происходить в PyCharm, хоть это и довольно тяжёлая IDEA, она удобная и бесплатная для студентов.

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

Для этого заходим в PyCharm, далее File –> Open.

P.s. Не обращайте внимания на другую тему IDE.

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

Если PyCharm автоматически не создал main.py, создайте его вручную.

Вставляем код ниже и запускаем.

import discord # Подключаем библиотеку from discord.ext import commands intents = discord.Intents.default() # Подключаем "Разрешения" intents.message_content = True # Задаём префикс и интенты bot = commands.Bot(command_prefix='>', intents=intents) # С помощью декоратора создаём первую команду @bot.command() async def ping(ctx): await ctx.send('pong') bot.run('token') 

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

Идём в дискорд и используем нашу первую команду.

Немного объясним данную структуру. Поскольку это обычная команда, вся информация хранится в ctx(Переменная одноимённого класса). Она имеет следующие поля:

['args', 'author', 'bot', 'channel', 'cog', 'command', 'command_failed', 'guild', 'invoked_parents', 'invoked_subcommand', 'invoked_with', 'kwargs', 'me', 'message', 'prefix', 'subcommand_passed', 'valid', 'voice_client']

И следующие команды:

['fetch_message', 'history', 'invoke', 'pins', 'reinvoke', 'reply', 'send', 'send_help', 'trigger_typing', 'typing']

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

print(dir(ctx))

На более правильно прочитать документацию про Context.

Заключение

Сразу отвечу всем комментаторам. Да — подобных статей море, в том числе есть официальная документация. Но поскольку в моих планах есть создать серию статей, я хотел бы, что бы в них было описано всё, начиная с самых азов.

И небольшое примечание. Статьи строятся на основании того, что у вас есть опыт и знания программирования на python.

Как сделать бота в 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;

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

if (message.content.startsWith(`$play`))

> 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, удаления очереди и выхода из чата.

function stop(message, serverQueue)

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

Полный код бота для Дискорд

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

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);

if (message.content.startsWith(`$play`))

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

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

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

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!’);

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

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

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