В этом уроке мы узнаем, как настроить среду программирования Python, создать и зарегистрировать бота с помощью Discord Developer Portal и написать несколько строк кода на Python для ответа на сообщения пользователей в Discord. Мы также предоставим разбор каждой строки кода для тех, кто хочет глубже понять, как все это работает.
Бот Discord, которого мы собираемся построить, будет слушать ключевое слово $meme и отвечать случайным мемом с Reddit.
Конечный результат будет выглядеть следующим образом:
Требования
Прежде чем мы начнем, вам понадобится несколько вещей, если у вас их еще нет:
- Установленный Python 3.
- Установлен pip (программа установки пакетов).
- Учетная запись Discord.
- Сервер Discord с правами «Manager Server».
Как работает бот Discord
Сначала давайте немного расширим рамки и подумаем над таким вопросом: «Что значит создать Discord Bot?». Проще говоря, бот — это не что иное, как компьютерная программа, выполняющая некоторые полезные действия.
ДИСКОРД БОТ PYTHON 2.0 #1 СОЗДАНИЕ ФАЙЛОВОЙ СТРУКТУРЫ БОТА И SLASH КОМАНД
Поскольку Discord хочет, чтобы боты могли делать полезные вещи, они разрешили разработчикам получать доступ к части своей системы в коде, например, автоматически отвечать на сообщения или помогать с административными функциями сервера (например, посмотрите эти популярные боты Discord).
Сегодня мы сосредоточимся на том, чтобы заставить нашего бота читать и писать сообщения, поэтому давайте посмотрим, как это работает.
Из грубого рисунка выше (я инженер, а не художник) видно, как пользователи и боты подключаются к бэкенду Discord. Каждый пользователь взаимодействует с бэкендом Discord, чтобы писать и читать сообщения. Затем серверы бэкенда Discord передают событие о том, что было опубликовано новое сообщение, любой программе. Все, что нам нужно сделать, это написать нашу программу для реагирования на события сообщений (здесь она называется bot.py) и подключить ее к бэкенду Discord, используя их API.
API (Application Programming Interface) — это просто модная терминология для определения того, как одна программа общается с другой программой. В нашем случае API Discord позволяет нам читать и отправлять сообщения на его внутренние серверы.
Сначала нам нужно создать и зарегистрировать нашего бота на портале разработчиков Discord.
Настройка портала разработчиков Discord
Создание бота Discord в Python
В этом уроке мы разработаем собственного бота Discord с помощью Python.
Исходный код этого бота будет храниться в моем репозитории github.
О боте
Сначала мы создадим базового бота Discord, который будет приветствовать отправителя сообщения, а затем мы создадим бота Minecraft, который позволит нам делать следующее:
:: Bot Usage :: !mc help : shows help !mc serverusage : shows system load in percentage !mc serverstatus : shows if the server is online or offline !mc whoisonline : shows who is online at the moment
Войти в полноэкранный режим Выйти из полноэкранного режима
Зависимости
Создайте виртуальную среду python и установите зависимые пакеты:
СВОЙ ДИСКОРД БОТ НА PYTHON 2021
$ python3 -m virtualenv .venv $ source .venv/bin/activate $ pip install discord $ pip install python-dotenv
Войти в полноэкранный режим Выйти из полноэкранного режима
Создание приложения Discord
Сначала нам нужно создать приложение на discord и получить токен, который потребуется нашему приложению python.
Создайте приложение на discord:
- https://discordapp.com/developers/applications
Вы должны увидеть:
Нажмите «Новое приложение» и дайте ему имя:
Проверьте наш последний продукт — конечный создатель страниц tailwindcss .
После создания приложения у вас появится окно для загрузки логотипа, описания и, самое главное, для получения идентификатора приложения, а также публичного ключа:
Затем выберите раздел «Бот»:
Затем выберите «Добавить бота»:
Выберите OAuth2 и выберите область действия «bot»:
В нижней части страницы вам будет предоставлен URL-адрес, который выглядит примерно так:
https://discord.com/api/oauth2/authorize?client_id=xxxxxxxxxxxscope=bot
Войти в полноэкранный режим Выйти из полноэкранного режима
Вставьте ссылку в браузер и авторизуйте бота на выбранном вами сервере:
Затем нажмите кнопку авторизации, и вы увидите, что ваш бот появился в Discord:
Разработка бота Discord
Теперь мы будем создавать нашего бота для Discord на python. Вернитесь в раздел «Bot» и выберите «Reset Token», затем скопируйте и сохраните значение токена в файл .env :
DISCORD_TOKEN=xxxxxxxxx
Вход в полноэкранный режим Выход из полноэкранного режима
Таким образом, в текущей рабочей директории у нас должен быть файл .env со следующим содержимым:
$ cat .env DISCORD_TOKEN=your-unique-token-value-will-be-here
Войти в полноэкранный режим Выйти из полноэкранного режима
Для этой демонстрации я создам приватный канал в discord под названием minecraft-test и добавлю в него бота MinecraftBot (это только для тестирования, после тестирования вы можете добавить своего бота в другие каналы для использования другими людьми):
Для нашего первого теста, базового бота, где мы хотим набрать hello и бот должен поприветствовать нас по имени пользователя, в нашем файле mc_discord_bot.py мы будем иметь:
Войти в полноэкранный режим Выйти из полноэкранного режима
Затем запустите бота:
$ python mc_discord_bot.py MinecraftBot has logged in.
Войти в полноэкранный режим Выйти из полноэкранного режима
Когда мы набираем hello и goodbye , вы можете увидеть, что наш бот реагирует на эти значения:
Теперь, когда мы протестировали нашего бота, мы можем очистить mc_discord_bot.py и написать нашего minecraft бота, требования этого бота просты, но мы бы хотели следующее:
- использовать команду !mc для запуска нашего бота и подкоманды для того, что мы хотим
- возможность видеть, кто играет в minecraft на нашем сервере в данный момент
- возможность получить статус, если сервер minecraft находится онлайн
- возможность получить процент загрузки сервера (так как бот работает на сервере minecraft).
Это наш полный mc_discord_bot.py :
Вход в полноэкранный режим Выход из полноэкранного режима
А теперь мы можем запустить нашего бота:
$ python mc_discord_bot.py
Источник: procodings.ru
Пишем DISCORD бота на Python
Пишем DISCORD бота на Python ka1do_: Смотрите те, у кого не работает. Мы вначале писали код под названием config. Берешь и копирует все оттуда в свой основной код. А далее просто отовсюду убираешь модуль config ( config. ROLES, config. TOKEN и т. д) И да, для этого тебе надо использовать сублайм текст ( питон не откроет эту прогу т. к. там будут смайлы)
Дата: 2020-05-03
Комментарии и отзывы: 9
Ma4eTeV
У меня вопрос! А возможно ли сделать так, чтобы еще эти роли можно было купить за разные монеты, типо допустем, роль батя сата за 500 коинов сообщений(за 5 сообщений 1 коин) Или 1 коин голосовы0 за 1 минуьа разговора в голосовом чате) Надеюсь ты увидешь этот комм Всем удачи
Иван
Хауди не мог бы ты по подробнее затронуть тему ассинхронного программирования. Тема интересная, но довольно размытая. Новичкам вроде меня понять что и как там, сложно. Подумай мож запилить видео с хотя бы с кратким объяснением темы. Заранее спасибо )
Gleisk
Народ сначала была ошибка [Errno 2] No such file or directory ее решил сменил дерикторию, но появилась новая, то что код типо я написал и он он моментально закрывается, мне кажется он принимает его за ошибку и закрывает как исправить? Делал я все это в PyCharm
>Hero
Как можно было додуматься сделать массив, а не массив []! Круто придумал. Постоянно будет очень удобно настраивать бота (нет. Выдача ролей — это максимум функционала бота! Круто, че!
Молодец (нет. Как говорится создал бота из говна и палок
NikotoZ
— У меня есть сервер в Дискорде. Искал бота для мониторинга онлайна на сервере, но нашел платные версии ботов. Теперь, после просмотра этого видео, загорелся желанием создать подобного бота. Вопрос только в том, получится ли?
TTimusevich
Привет, классное видео. Только вот я всё сделал, но роли почему-то не показываются у человека под его аватаркой, при нажатии на его профиль, но количество, при нажатии, меняется. P. S. буду благодарен за любую помощь — инфу.
Farcrause
Хауди, нахер ты показываешь бота, объясни как его делать чтобы люди сами научились делать бота, чтобы они сами создавали эти функции, а ты просто протараторил и сделал, чтобы люди просто скатали, зачем!
NITAGAS
Добрый день, может быть у кого-нибудь была такая ошибка при запуске бота File mybotnit. py, line 4 async def on_ready(self): SyntaxError: invalid syntax кто знает можете подсказать что не так? код использовал из описания под видео.
SUBGAME
привет! можешь подсказать написал все также но он не выводит в консоль сообщения! т. е от кого просто он активируется и всё! из за чего это может быть? может библеотек не хватает?
Источник: zakruti.com