Найти тему
CSaR

Простой Discord бот на python

Приветствую всех, кто также как и я хочет попробовать написать бота для сервера в Discord'е! Я покажу как писать несколько базовых команд, таких как: бан, кик, разбан (ну или как там это на русском), очистка чата и мы заменим стандартный встроенный help на свой (также это будет практика работы с embed'ами). Весь код, который будет в этой статье - в конце.

Начнём с установки python. Делается это на официальном сайте. Качаем последнюю версию.

После установки python'а скачаем и установим редактор кода. Их существует огромное множество, но я использую Visual Studio Code.

Создадим самого бота. Для этого переходим по ссылке и регистрируем бота: нажимаем кнопку New Application, даём боту имя и нажимаем Create. В левом столбце видим вкладку Bot - переходим к ней. Нажимаем кнопку Add Bot => Yes, do it! В том же левом столбце переходим во вкладку Oauth2, выставляем настройки, копируем ссылку и переходим по ней:

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

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

-2

Итак, теперь создаём папку для нашего бота (у меня на рабочем столе, вы можете создать где угодно). В ней создаём файл bot.py (ну или любое другое название, без разницы).

-3

Далее заходим в Visual Studio Code. Нажимаем Файл => Открыть папку и выбираем недавно созданную нами папку. В левом столбце выбираем наш файл bot.py. Затем нажимаем Терминал => Новый терминал. Внизу появляется что-то такое:

-4

В терминале пишем: pip install discord.py

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

КООООД

Начнём с простого: проверим, работает ли наш бот или нет. Для этого напишем программу, которая на наше сообщение ping отвечает pong.

Код ping-pong
Код ping-pong

После того, как написали код нажимаем Ctrl+S (сохраняем код). Затем нажимаем Ctrl + F5 (запуск программы). Идём в Discord и проверяем работоспособность бота:

Оно говорит?
Оно говорит?

Пришло время для команд ban и kick. Просто добавляем этот код в уже существующую программу и перезапускаем бота:

ban и kick
ban и kick

Проверяем на своём друге (только аккуратно, чтобы он не обиделся).

У меня просто нет друзей, так что test
У меня просто нет друзей, так что test

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

Unban
Unban

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

Уборщицу вызывали?
Уборщицу вызывали?

Clear работает так: пишем !clear *число сообщений, которое хотим удалить*. Если не писать число сообщений, то удалится сама команда и сообщение над ней.

Ну и под конец покажу, как можно работать с embed'ами. Напишем команду help, чтобы люди знали, какие команды существуют у вас на сервере. Она есть изначально, но посмотрите как она выглядит:

фу
фу

Мне вот не нравится, так что напишем свой:

-12

Вместо ссылки пишем любую другую ссылку на картинки. ВНИМАНИЕ!!! HELP РАБОТАТЬ НЕ БУДЕТ ПОКА МЫ НЕ НАПИШЕМ ПОСЛЕ БИБЛИОТЕК ЭТО:

client.remove_command('help')

После этого запускаем бота, пишем !help и видим вот такую красоту:

-13

Вот и готов наш простенький бот для Discord'а. Вы можете дополнять его функциями, которые прописаны в официальной документации (только она на английском (English, you know?)).

Спасибо что читали, прикладываю полный код бота: https://github.com/AlexFast9900/bot-for-discord.git