Как создать Discord-бота на Python

Обновлено: 05.07.2024

Поддержка библиотеки discord.py больше не поддерживается. Это руководство по-прежнему будет работать для discord.py версий 1.6.0-1.7.3, но некоторые части могут быть повреждены в версии 2.0.0 и выше, на чем основано большинство ответвлений библиотеки. Однако многие из этих библиотек, такие как pycord, nextcord и disnake, предоставляют прокладки, которые позволяют вам продолжать использовать пространство имен discord, поэтому большую часть этого руководства по-прежнему можно использовать и с этими библиотеками.

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

Однако я хотел бы сказать, что, просмотрев несколько доступных библиотек (pycord, nextcord и disnake), я считаю, что на данный момент есть одна явная победительница из-за ее сходства по стилю с оригинальным discord. ру, умные и разумные дизайнерские решения, и вообще направление, в котором оно движется: disnake. Я лично хотел бы, чтобы эта библиотека выиграла эту битву, поскольку ее дизайнерские решения кажутся хорошо продуманными, особенно реализация команд с косой чертой.

Учебное пособие, в котором подробно объясняется, как создать собственного бота Discord с помощью библиотеки discord.py.

Некоторые примечания перед началом

Для этого урока вам понадобится:

  • Установлен Python 3.6 или более поздней версии.
  • discord.py 1.6.0 или более поздней версии установлен
  • Средний опыт работы с Python или сильное желание учиться

Невероятно полезным ресурсом для вас на протяжении всего обучения будет документация discord.py

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

Библиотека discord.py — это расширенная библиотека Python. Таким образом, в этом руководстве предполагается наличие определенного уровня промежуточных знаний Python, а базовые функции Python не рассматриваются и не объясняются. При этом, если вы хотите учиться и искать то, чего не понимаете, по ходу дела, нет никаких причин, по которым вы не сможете принять участие.

Исходя из этого руководства, вы сами пишете код и понимаете, что пишете. Я стремлюсь объяснить, что я делаю, и прояснить решения, которые я принимаю, но это руководство не поможет вам, если вы решите скопировать и вставить его содержимое, а не пытаться понять и решить его самостоятельно. Я настоятельно рекомендую вам поиграть с кодом, который вы пишете, и сделать его отличным от того, что вы видите здесь. Это поможет вам научиться использовать discord.py, а не даст вам код для бота.

Индекс

Дополнительно

Если это руководство помогло вам, рассмотрите возможность поддержки меня на Ko-fi, чтобы я мог продолжать работать над проектами, подобными этому: P

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

В этом руководстве вы создадите бота Discord с помощью языка программирования Python и развернете его на сервере Ubuntu 20.04. Вы будете использовать библиотеку Discord Python, discord.py, для программирования своего бота.

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

Предпосылки

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

    с пользователем sudo без полномочий root и брандмауэром. Вы можете настроить это, следуя нашему руководству по начальной настройке сервера Ubuntu 20.04.
  • Python3 установлен на вашем локальном компьютере. Чтобы получить конкретные инструкции, вы можете следовать одному из наших руководств по установке Python в Windows, Mac или Linux.
  • Учетная запись Discord и гильдия Discord с правами администратора. Посетите страницу «Начало работы» Discord, чтобы получить приложение и бесплатную учетную запись. Затем создайте гильдию. Если вы создадите свою собственную гильдию Discord, у вас будут необходимые права для добавления бота.
    • Любой текстовый редактор на ваш выбор, например Visual Studio Code, Atom, Sublime или Nano.

    Шаг 1 — Создание пользователя-бота для вашей гильдии Discord

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

    Войдите на портал разработчика и нажмите кнопку "Новое приложение", чтобы начать процесс.Приложение Discord позволяет вам взаимодействовать с Discord API. Боты привязаны к приложениям; так они работают.

    Нажмите кнопку

    Далее добавьте имя для приложения в модальном окне и нажмите кнопку «Создать». В этом уроке мы назовем нашего SammySharkBot .

    Назовите свое приложение

    Discord создаст ваше приложение. Далее вы увидите страницу с информацией о вашем боте. Вы можете добавить изображение, которое будет служить значком для вашего бота. Нажмите кнопку «Выбрать аккуратный значок» в разделе «Значок приложения» на странице. Это не требуется.

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

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

    Сохраните изменения

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

    Добавьте бота в свое приложение
    < /p>

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

    Подтвердите создание бота
    < /p>

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

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

    Вам будет предложено модальное окно с надписью Добавление пользователя-бота дает вашему приложению видимую жизнь в Discord. Однако это действие является безотзывным! Выбирать мудро. Идите вперед и нажмите Да, сделайте это! чтобы создать пользователя бота.

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

    Перейти к меню OAuth2

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

    Добавить обозначение бота

    Теперь прокрутите вниз и предоставьте своему боту следующие разрешения: Просмотр каналов, Отправка сообщений, Чтение истории сообщений. Это даст вашему боту ограниченный набор действий, которые он может выполнять. Если вы хотите создать бота без ограничений, вы можете выбрать опцию «Администратор»; это не рекомендуется.

    После того, как вы это сделаете, появится URL-адрес Discord, за которым следует кнопка «Копировать». Нажмите эту кнопку, чтобы скопировать ссылку и открыть ее в новом окне браузера.

    Добавить разрешения для ботов и скопировать ссылку

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

    Добавить бота в вашу гильдию

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

    Авторизовать разрешения для ботов

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

    Проверьте, вступил ли ваш бот в вашу гильдию

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

    Шаг 2. Создание виртуальной среды Python для вашего проекта

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

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

    Теперь создайте виртуальную среду с помощью Python:

    Это создаст каталог с именем discord в вашем каталоге .venvs. Внутри он установит локальную версию Python и локальную версию pip. Вы можете использовать его для установки и настройки изолированной среды Python для вашего проекта.

    Перед установкой требований Python для вашего проекта активируйте виртуальную среду:

    Ваше приглашение должно измениться, чтобы показать, что вы сейчас работаете в виртуальной среде Python. Это будет выглядеть примерно так: (discord) пользователь @ хост :~$ .

    При активной виртуальной среде установите discord.py с локальным экземпляром pip:

    Примечание. После того, как вы активировали виртуальную среду (когда перед вашим приглашением стоит (discord), используйте pip вместо pip3 , даже если вы используете Python 3. Копия инструмента в виртуальной среде всегда называется pip , независимо от версии Python.

    Теперь, когда у вас установлен пакет Discord, вам нужно сохранить это требование и его зависимости. Это хорошая практика, позволяющая воссоздать среду разработки по мере необходимости.

    Используйте pip для сохранения информации о вашей среде в файл requirements.txt:

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

    Шаг 3. Создание минимального бота Discord

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

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

    Для начала откройте файл с именем bot.py в предпочитаемом вами текстовом редакторе:

    Теперь добавьте в файл следующие импорты: os , random и discord . Библиотека os позволит вам считывать ценную информацию, такую ​​как токены API и название гильдии, из ваших переменных среды. Библиотека random позволит вам генерировать выходные данные для ваших случайных событий. А библиотека разногласий предоставит вам методы, объекты и декораторы, необходимые для взаимодействия с API разногласий. Код выглядит следующим образом:

    Далее вам нужно будет получить токен Discord API и гильдию вашего бота из переменных среды. Вы будете использовать метод getenv из библиотеки os стандартной библиотеки Python. Добавьте в bot.py следующий код:

    В версии 1.5 discord.py были введены намерения. Это было серьезным изменением по сравнению с предыдущими версиями библиотек Discord, которые позволяли ботам подписываться на определенные события, происходящие в гильдии. В этом руководстве вы установите доступные намерения клиента по умолчанию, но вам может потребоваться вернуться, если вы планируете взаимодействовать с намерениями GUILD_PRESENCES или GUILD_MEMBERS. Это намерения привилегированного шлюза.

    Добавьте следующий код в bot.py, чтобы правильно настроить намерения:

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

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

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

    Добавьте следующий код в конец bot.py:

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

    Наконец, вам нужно указать клиенту запускаться, когда скрипт выполняется с использованием вашего токена API. Добавьте следующую строку в bot.py, чтобы запустить бота:

    На этом этапе ваш код должен выглядеть следующим образом:

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

    Шаг 4. Локальное тестирование бота

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

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

    После того как вы скопировали токен, вернитесь к терминалу с активированной виртуальной средой. Экспортируйте токен Discord, чтобы он был доступен в переменных среды, чтобы ваш бот мог читать его при запуске:

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

    Получить название гильдии

    Теперь экспортируйте гильдию Discord, чтобы она была доступна в переменных среды, чтобы ваш бот мог читать ее при запуске:

    Теперь, когда вы экспортировали необходимые переменные среды, вы готовы протестировать своего бота:

    Запустите приложение:

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

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

    Проверьте, подключен ли ваш бот к сети

    В терминале вы можете заметить, что ваш код не завершается. Это потому, что бот — это постоянно работающий процесс. Чтобы остановить бота в любой момент, нажмите комбинацию клавиш CTRL + C.

    Шаг 5. Расширение бота Discord для выполнения случайных задач

    Теперь, когда ваш бот заработал, пришло время расширить его функциональные возможности. Чтобы ваш бот отвечал на сообщения, отправленные в текстовом чате, вам нужно прослушать событие on_message. Эта функция принимает один аргумент, message , который содержит объект сообщения, включая различные атрибуты и методы ответа на сообщения.

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

    Добавьте следующий код в bot.py, чтобы объявить функцию on_message и проверить, кто отправил сообщение:

    Наконец добавьте код, чтобы подбросить монетку. Вы также будете выполнять манипуляции со строками в содержимом сообщения в нижнем регистре (или в верхнем, если хотите), поэтому вам не нужно беспокоиться о точном совпадении регистра в строках. Используйте функцию randint() в библиотеке случайных чисел Python для имитации подбрасывания монеты. Наконец, как только вы создали сообщение, вы отправите его на канал, используя метод отправки сообщения. Помните, что это асинхронное программирование, поэтому вам придется использовать ключевое слово await при отправке сообщения.

    Добавьте следующий код в bot.py внутри функции on_message; это добавит функцию подбрасывания монеты:

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

    Теперь, когда бот готов, пришло время его протестировать. Сохраните и закройте файл.

    Ваш бот должен ответить орлом или решкой

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

    Шаг 6 — Развертывание в Ubuntu 20.04

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

    Рекомендуется запускать бота от имени пользователя без полномочий root. В этом руководстве используется имя пользователя sammy.

    Сначала скопируйте свой код и требования к библиотеке Python на сервер с помощью команды scp. Отправьте все в корневой каталог вашего пользователя:

    Затем подключитесь к серверу по ssh:

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

    Для запуска бота на сервере вам необходимо установить соответствующие системные пакеты Python.

    Установите python3 , python3-venv и screen :

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

    Чтобы начать сеанс экрана, используйте следующую команду:

    Экран предложит вам лицензионное соглашение.Нажмите «Ввод», чтобы продолжить.

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

    Сначала, как и раньше, создайте каталог для хранения ваших виртуальных сред:

    Затем создайте новую виртуальную среду:

    Активируйте виртуальную среду:

    Далее установите необходимые библиотеки с помощью pip:

    Прежде чем вы сможете запустить своего бота, вам необходимо экспортировать DISCORD_TOKEN и DISCORD_GUILD, чтобы ваш бот мог получить доступ к ключу API и информации о гильдии:

    Наконец, запустите своего бота:

    Ваш бот запустится и начнет принимать сообщения. Вы можете отключиться от сеанса экрана, используя комбинацию клавиш CTRL + A + D. Когда вы будете готовы повторно подключиться к сеансу, вы можете использовать эту экранную команду:

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

    Заключение

    В этом руководстве вы создали гильдию Discord, создали бота Discord, установили бота в своей гильдии и развернули бота на сервере Ubuntu 20.04. Вы только начали изучать Discord API. Боты мощные и расширяемые. Чтобы изучить другие возможности, ознакомьтесь с документацией API discord.py.

    Кроме того, если вы хотите узнать больше о программировании на Python, посетите нашу серию руководств How To Code in Python 3.

    Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

    Важное примечание. Здесь используется версия discord.py 0.16.12. Используемая версия Python — 3.6. Python 3.7 представил обратно несовместимые изменения с помощью async. Новая версия discord.py 1.0 также несовместима с этим кодом. Убедитесь, что вы внимательно следуете инструкциям и убедитесь, что у вас есть правильные версии. discord.py==0.16.12, питон

    Введение

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

    Также ознакомьтесь со второй частью, доступной на странице Создание бота Discord с помощью Python, часть 2.

    Если вы хотите ознакомиться с некоторыми уже созданными ботами, ознакомьтесь с двумя проектами DevDungeon: чат-ботом Chatty Cathy AI и ботом Help Desk Bot, забавным служебным ботом, оба написаны на Python.

    Если вам интересно узнать, как создать бота Discord на JavaScript, ознакомьтесь с учебным пособием по JavaScript для бота Discord и ознакомьтесь со всеми другими руководствами, связанными с Discord, на DevDungeon.

    Видеоурок

    Создать сервер

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

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

    После создания приложения прокрутите страницу сведений о приложении до раздела с именем бот и создайте пользователя-бота. Сохраните токен, он понадобится вам позже для запуска бота.

    Авторизуйте бота на свой сервер

    Установите пакет python discord.py

    Запустите pip install из системного терминала/оболочки/командной строки.

    Запустите пример кода

    Замените значение токена на токен вашего бота, который вы сохранили ранее.

    После запуска скрипта Python ваш бот должен появиться на сервере в сети. Вы можете ввести !hello боту в Discord, и он должен ответить.

    Добавление дополнительных функций в бот

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

    Заключение

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

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

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

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

    Приступим.

    1. Создайте свой Discord-сервер

    Прежде чем создавать бота Discord, необходимо начать с создания сервера, так как это место назначения бота.

    Сервер Discord или чат — это место, где вы управляете каналами и общением на платформе.

    Чтобы создать сервер Discord, перейдите на веб-сайт Discord и войдите в свою панель управления Discord. Или создайте учетную запись, если у вас ее еще нет.

    После входа в панель управления выполните следующие действия, чтобы создать сервер Discord:

      Нажмите значок добавления (+) на левой боковой панели.

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

    2. Настройте и создайте своего бота Discord

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

    В консоли разработчика:

      Нажмите «Новое приложение» в левом верхнем углу.

    Теперь нужно связать ваш сервер с ботом.

    Связать сервер с вашим ботом Discord

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

    Поэтому, как только вы скопируете сгенерированный URL-адрес, выполните следующие шаги, чтобы связать свою комнату чата с ботом Discord:

    1. Вставьте скопированный URL-адрес в адресную строку браузера и войдите в систему.
    2. В приглашении нажмите «Выбрать сервер» и выберите тот, который вы создали ранее.

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

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

    3. Запрограммируйте своего бота Discord с помощью Python

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

    Настройка Python и библиотек

    Чтобы запрограммировать бота Discord с помощью Python, вы будете использовать модуль discord.py, который работает только с Python 3.5.3 или более поздней версии.

    Вы можете проверить версию Python, установленную на вашем ПК, введя в терминале следующую команду:

    Если Python обновлен, откройте терминал в корне проекта. Затем активируйте виртуальную среду Python.

    Кроме того, вам потребуется установить discord.py и пакет голосовой поддержки под названием discord.py[voice].

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

    Отправить сообщение с помощью бота Discord

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

    Но сначала введите следующий код в верхней части скрипта, чтобы инициализировать бота Discord:

    Переменная бота вызывает пользовательские команды из класса команд. И command_prefix в скобках позволяет указать символ, который ему предшествует. Такие символы, как знак доллара ($), восклицательный знак (!), амперсанд (&) и другие, являются распространенными префиксами, которые предшествуют командам бота.

    Но в нашем случае мы отключили префикс. Так что он вам не нужен при обучении бота Discord.

    Обратите внимание, что пользовательские команды являются функциями Python:

    Теперь запустите скрипт Python в своем терминале. Затем перейдите в Discord и отправьте «Привет», чтобы увидеть, как разворачивается волшебство.

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

    Экземпляр ctx представляет собой контекст и выполняет множество функций. Но в этом случае он позволяет вашему боту Discord отправить сообщение.

    Приветствуйте новых участников канала с помощью своего бота

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

    Вместо этого мы будем использовать @bot.event. Вот как это работает:

    Функция on_member_join — это тип события. Однако есть много других. Например, метод on_ready широко используется для проверки готовности бота.

    Кроме того, условие, следующее за оператором if, проверяет, существует ли подключенный сервер (гильдия или чат). Если это так, он использует метод строкового формата Python для вывода имени пользователя нового участника и сервера, к которому он присоединился.

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

    Попросите бота Discord присоединиться к аудиоканалу или покинуть его

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

    В приведенном ниже примере кода бот Discord присоединяется к вам в аудиоканале, когда вы вводите «ввод»:

    Условие в операторе if проверяет, присоединились ли вы уже к аудиоканалу. Если это так, ключевое слово await связывает с ним вашего бота Discord.

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

    Примечание. Обязательно останавливайте и перезапускайте скрипт Python после каждого обновления. Это позволяет Python синхронизировать ваши изменения.

    После повторного выполнения скрипта Python, открытия Discord и ввода введите Enter — теперь вы увидите, что ваш бот Discord присоединился к аудиоканалу.

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

    Следующий код сообщает ему покинуть канал, когда вы вводите соответствующую команду. В этом случае мы будем использовать слово «оставить»:

    Остановитесь и снова выполните скрипт. Бот Discord теперь должен покинуть аудиоканал, когда вы отправляете команду «покинуть».

    Продолжайте улучшать своего Discord-бота

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

    Боты Discord очень интересны в использовании. Если вы еще не автоматизируете с их помощью задачи в своих чатах, вы упускаете серьезную эффективность.

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