Найти тему
Мотылёк

Дискорд бот языке Python

Оглавление
Это моя первая статья, не судите строго.

Это статья про то, как сделать дискорд бота на языке программирования Python.

Для обложки
Для обложки

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

Почему Python?

  • Имеет много всевозможных модулей;
  • Высокоуровневый (лёгок в написании);
  • Писать код можно даже на телефоне, скачав программу Pydroid;
  • А также много других привилегий!

Но минусы тоже имеются, например...

  • Он медленнее, в отличии от других (к примеру C++) хоть это не особо мешает, если у вас небольшой бот;
  • Разные версии питона не совместимы (например код на версии питона 2.x.x не будет работать на 3.x.x, а значит для перехода на новую версию придётся либо переписывать код, либо смириться и остаться на 2.x.x).

Что-ж, начинаем!

Для начала переходим на этот сайт. Это сайт дискорда, а точнее, портал разработчиков. Жмём на кнопку "New Application", чтобы создать приложение

Читай не это, а то что ниже!
Читай не это, а то что ниже!

Затем мы видим вот такую картину:

Тут вся информация о нашем приложении
Тут вся информация о нашем приложении

Далее- жмём на кнопку "Bot". И видим это:

Почему я замазал аватарку? Я не знаю :3
Почему я замазал аватарку? Я не знаю :3

Жмём кнопку "Add Bot", и соглашаемся.

Yes, do it!
Yes, do it!

Поздравляю, бот создан!

Теперь нам надо нажать кнопку "Copy", чтобы скопировать токен бота

Regenerate- сгенерировать новый токен. Токен- важнейшая вещь, ведь если он попадёт в нехорошие руки- кнопка Regenerate поможет!
Regenerate- сгенерировать новый токен. Токен- важнейшая вещь, ведь если он попадёт в нехорошие руки- кнопка Regenerate поможет!

Токен есть у каждого пользователя в дискорде. Не только у ботов, но и у каждого юзера он есть.

Токен позволяет войти в аккаунт. Одного токена хватит чтоб обойти логин, пароль, и даже двухфакторную аутентификацию (или же просто 2FA).

После копирования токена, врубаем интенты- для большего функционала

Без них нельзя даже функционировать с юзерами на сервере!
Без них нельзя даже функционировать с юзерами на сервере!

Далее переходим на вкладку OAuth2

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

Далее пролистываем вниз, ставим галочку на "bot" и "Administrator"

Вот что у нас вышло:

Ссылка для добавления бота на сервер.
Ссылка для добавления бота на сервер.

Далее жмём "Copy", и открываем эту ссылку в браузере.

Добавляем бота на тестовый сервер:

Добавляем бота.
Добавляем бота.

Ну а дальше жмите "Продолжить", и сами разберётесь. После этого бот будет на сервере. Начало пройдено.

Затем скачиваем интерпретатор. Я советую PyCharm, сам им пользуюсь.

Для начала скачаем модуль discord, который необходим для написания бота. Чтоб его установить пишем в командную строку Windows следующую команду:

pip install discord

Вскоре загрузка модуля кончится. Когда модуль скачается, начнём писать код!

Переходим к основе!

Для начала пишем в код импорт модуля discord:

import discord

И ещё

from discord.ext import commands

Потом пишем переменную Token.

Вот так:

Token = "ранее скопированный токен в кавычках"

Далее пишем интенты, и обьявляем что задействуем все их типы:

intents = discord.Intents.all()

Далее переменную bot

bot = commands.Bot(command_prefix='!', intents=intents, help_command=None)

Обьясняю:

Переменную bot мы обьявляем ботом. Мы будем её активно использовать, в дальнейшем.

command_prefix - это префикс всех команд. Тоесть знак, или знаки, или слово которое печатается до самой команды. Например:

!help

Префикс- восклицательный знак.

intents=intents - говорим программе что интенты находятся в переменной intents.

help_command=None - Это значит что команды !help (которая добавляется по умолчанию и выводит все команды) отсутствует, чтобы при написании !help ничего не происходило.

Пишем команды для бота!

Их написание нетрудное. Конечно, всё зависит от обьёма.

Пример команды:

@bot.command()
async def test(ctx):
await ctx.send("Я тут!")

Эта простенькая команда в 3 строки. При написании !test, бот говорит "Я тут!"

Объясняю поподробнее:

@bot.command() - объявляем что это- команда (есть и ивенты, и команды со слешем, и многое другое, так что это важная строка.)

async def - просто знайте что это надо писать перед названием каждой команды

test - само название команды

ctx - означает то что мы работаем с чатом

await - ставится обязательно после строки async def, означает что эта команда выполняет какую то функцию. Не ставится перед объявлением переменных.

ctx.send("текст") - как можно догадаться, отправляет сообщение.

Давайте напишем эту команду в общий код бота.

Далее запустим бота- для этого пишем:

bot.run(Token)

Либо же, если не сработало

bot.run("сюда токен бота, с кавычками")

Запускаем файл, и у нас получилось!

Но чтобы бот работал всегда, придётся поставить его на хостинг. Например repl.it.

И это всё только начало! Вы можете прочитать документацию по discord.py, если хорошо знаете английский.

Удачи вам в начинаниях!