Гайд по написанию дискорд бота на языке Python и на библиотеке Disnake
Скачать:
Библиотека:
Что бы добавить туда свой сервер напишите так
Что бы добавить несколько серверов напишите так
Важно - Если айди вашего сервера не будет там то слеш команда появится/обновится только через 10-15 минут после её добавления/изменения
Токен - зашифрованный ключ Discord, с помощью которого бот авторизуется
Импорт - обязательная вещь которая добавляет в код много полезного, пример ниже
Ивент - триггер который активируется при каком либо действии, к примеру on_ready - бот включен(готов)
Скачать:
Скрытое содержимое доступно для зарегистрированных пользователей!
Скрытое содержимое доступно для зарегистрированных пользователей!
Начало работы
Установка Python
- Тыкаем сюда и у вас скачивается Python 3.9
- Обязательно включаем галочку рядом с Add Python 3.9 to PATH и проходим дальнейшую установку
Работа с ботом
Создание нового бота на сайте
- Заходим на сайт и нажимаем на кнопку New Application
- Вводим название приложения и нажимаем Create
- Выбираем вкладку Bot
- Нажимаем Add Bot
- И снова нажимаем Yes, do it!
- Нажимаем Reset Token и сохраняем его где-нибудь (После перезагрузки страницы токен пропадет и его придется пересоздать в случае утери)
Настройка интентов
Во вкладке Bot включаем следующие галочки- Public Bot - Означает, что бот является общедоступным и может быть добавлен другими людьми на их сервера в Discord.
- Presence Intent - Позволяет боту отслеживать присутствие пользователей, включая их статус в реальном времени (например, онлайн, отсутствует, занят) и активность (например, играет в игру).
- Server Members Intent - Позволяет боту получать информацию об участниках сервера, такую как имена, никнеймы, роли и т.д.
- Message Content Intent - Позволяет боту получать информацию о содержимом сообщений, включая текст и вложения.
Установка зависимости
Пишем в cmd вот эту команду pip install disnakeКорневой файл
Настройка бота под себя
Статусы
Python:
Онлайн
status=disnake.Status.online
Оффлайн
status=disnake.Status.offline
Не беспокоить
status=disnake.Status.dnd
Не активен
status=disnake.Status.idle
Активности
Python:
Играет
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хЧто бы добавить туда свой сервер напишите так
Python:
test_guilds=[960169222808432660]
Что бы добавить несколько серверов напишите так
Python:
test_guilds=[960169222808432660, 941767647790514216]
Важно - Если айди вашего сервера не будет там то слеш команда появится/обновится только через 10-15 минут после её добавления/изменения
Создание кога
Создаем файл <название на английском>.py в папке cogs, пример - moderation.pyНачинка кога (Вместо Fun ставим название своего кога)
Python:
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, с помощью которого бот авторизуется
Импорт - обязательная вещь которая добавляет в код много полезного, пример ниже
Python:
import disnake
from disnake.ext import commands
Ивент - триггер который активируется при каком либо действии, к примеру on_ready - бот включен(готов)