/discord_bot

Гайд по написанию Discord бота на языке Python

Primary LanguagePython

Discord bot

Гайд по написанию дискорд бота на языке Python и на библиотеке Disnake
Для корректной работы бота советуем установить Python 3.9 и выше

Начало работы

Установка Python

  1. Тыкаем сюда и у вас скачивается Python 3.9

  2. Обязательно включаем галочку рядом с Add Python 3.9 to PATH и проходим дальнейшую установку

После установки Python вы так же можете установить Visual Studio Code для редактирования файлов бота по этой ссылке

Работа с ботом

Создание нового бота на сайте Discord Developers Portal

  1. Заходим на сайт и нажимаем на кнопку New Application
  2. Вводим название приложения и нажимаем Create
  3. Выбираем вкладку Bot
  4. Нажимаем Add Bot
  5. И снова нажимаем Yes, do it!
  6. Нажимаем Reset Token и сохраняем его где-нибудь (После перезагрузки страницы токен пропадет и его придется пересоздать в случае утери)

Настройка интентов

Во вкладке Bot включаем следующие галочки

  1. Public Bot - Означает, что бот является общедоступным и может быть добавлен другими людьми на их сервера в Discord.
  2. Presence Intent - Позволяет боту отслеживать присутствие пользователей, включая их статус в реальном времени (например, онлайн, отсутствует, занят) и активность (например, играет в игру).
  3. Server Members Intent - Позволяет боту получать информацию об участниках сервера, такую как имена, никнеймы, роли и т.д.
  4. Message Content Intent - Позволяет боту получать информацию о содержимом сообщений, включая текст и вложения.

Установка зависимости

Пишем в cmd вот эту команду pip install disnake

Корневой файл bot.py

Настройка бота под себя
Статусы
Онлайн
status=disnake.Status.online

Оффлайн
status=disnake.Status.offline

Не беспокоить
status=disnake.Status.dnd

Не активен
status=disnake.Status.idle
Активности
Играет
activity=disnake.Game(name="игру")

Смотрит
activity=disnake.Activity(type=disnake.ActivityType.watching, name="ютуб")

Слушает
activity=disnake.Activity(type=disnake.ActivityType.listening, name="музыку")

Стримит
activity=disnake.Streaming(name="игру", url="https://www.twitch.tv/никнейм") #если убрать аргумент url то кнопки просто не будет, но все будет работать

Соревнуется в
activity=disnake.Activity(type=disnake.ActivityType.competing, name="создании бота")
Test Guilds

Этот параметр обозначает добавление тестового сервера на котором слеш команды будут обновляться сразу При добавлении большого количество идентификаторов то бот будет запускаться медленно, советуем добавлять не более 3х

Что бы добавить туда свой сервер напишите так

test_guilds=[960169222808432660]

Что бы добавить несколько серверов напишите так

test_guilds=[960169222808432660, 941767647790514216]

Важно - Если айди вашего сервера не будет там то слеш команда появится/обновится только через 10-15 минут после её добавления/изменения

Создание кога

Создаем файл <название на английском>.py в папке cogs, пример - moderation.py

Начинка кога (Вместо Fun ставим название своего кога)

import disnake
from disnake.ext import commands

class Fun(commands.Cog):

    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self): #ивент который будет активироваться когда вы включите бота
        print('Любой текст, к примеру: Cog Fun - Ready')

    #Тут будут команды и ивенты

def setup(bot):
    bot.add_cog(Fun(bot))

Термины

Ког - модуль бота где хранятся команды, можно создавать столько когов, сколько захотите (Модерация, Развлечение и.т.п)

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

Импорт - обязательная вещь которая добавляет в код много полезного, пример ниже

import disnake
from disnake.ext import commands

Ивент - триггер который активируется при каком либо действии, к примеру on_ready - бот включен(готов)

На этом все, дальше смотрите файлы, там я буду выкладывать примеры