Расширения
расширения - внешний компонент, расширяющий базовый функционал бота. Если каждая команда это функция бота, то расширение это единица функционала.
Как правило расширения может предоставлять содержать следующие компоненты:
- Команды. Конкретные /команды бота с параметрами.
- События. Обработчики событий Discord. А также определение/обработка собственных событий.
- Настройки. Внешнее хранилище настроек, привязанное к расширению.
- Базы данных. Определение таблиц для базы данных.
- Таймеры. Циклические обработчики, выполняемые через время.
Структура
Заголовок раздела «Структура»Для Шиори, расширения представлены в виде файлов python кода.
По умолчанию такие файлы располагаются в директории extensions/.
Директорияextensions/
- music.py
- coffee.py
- …
Как вы можете видеть, у нас есть расширение музыкального плеера и кофе. И при таком раскладе, нетрудно догадаться что примерно выполняет каждое из расширений.
Отсюда следует и следующее правило: Расширения не должны зависеть друг от друга. Они могут использовать только функционал из ядра или библиотек.
Директорияextensions/
- eco.py Расширение-помощник для запуска экономической системы
- casino.py Мини-игры, с участием экономики
- …
Директорияlibs/
- eco.py
Как вы можете видеть, есть библиотека, предоставляющая функционал экономики.
А также два расширения, которые от него зависят.
При томс эти расширения не зависят друг от друга и вы в любой момент сможете
исключить casino, если посчитаете что оно вам больше не нужно.
Группа расширений
Заголовок раздела «Группа расширений»Бывают конечно и более сложные случаи. Давайте вернёмся к примеру с плеером. Предположим что функционал плеера значительно расширился. Теперь там можно управлять воспроизведением, очередью, фильтрами, а ещё реагировать на различные события плеера. В таком случае разбивают одно расширение на группу.
Директорияextensions/
Директорияmusic/
- main.py Основной функционал
- player.py Управление плеером
- filters.py Добавление фильтров
- queue.py Управление очередью
- events.py Обработка событий плеера
- …
Директорияlibs/
Директорияmusic/ Общие компоненты музыкального расширения
- …
Группа расширения как правило выделяется в собственную директорию.
и у такой директории есть главное расширение main.
Именно оно отвечает за подключение библиотеки и будет считаться обязательным.
Все остальные - побочные расширения. Их добавлять будет не обязательно. Опять же, они не зависят друг от друга, а лишь дополняют общий функционал.
коллекция расширений
Заголовок раздела «коллекция расширений»теперь давайте поговорим откуда можно взять расширения. В первую очередь их можно найти в официальном репозитории chiori. Все представленные в репозитории расширения мы будем называть коллекцией.
В коллекции представлены все (или почти) расширения, которые вы могли видеть в главной сборке Шиори. Вы можете использовать и модифицировать их в своих сборках.