mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-18 08:45:37 +00:00
93 lines
2.9 KiB
Markdown
93 lines
2.9 KiB
Markdown
# Система плагинов
|
||
|
||
## Установка библиотеки с "Заглушками"
|
||
###### (Это значит, что не будет работать без сервера, но IDE подскажет API)
|
||
###### (Библиотека ещё в разработке)
|
||
|
||
* Используя pip:\
|
||
`$ pip install KuiToi`
|
||
* Из исходников:\
|
||
`git clone https://github.com/KuiToi/KuiToi-PyLib`
|
||
|
||
## Пример
|
||
|
||
```python
|
||
try:
|
||
import KuiToi
|
||
except ImportError:
|
||
pass
|
||
|
||
kt = KuiToi("Example")
|
||
log = kt.log
|
||
|
||
def my_event_handler(event_data):
|
||
log.info(f"{event_data}")
|
||
|
||
def load():
|
||
# Инициализация плагина
|
||
ev.register_event("my_event", my_event_handler)
|
||
log.info("Плагин загружен успешно.")
|
||
|
||
|
||
def start():
|
||
# Запуск процессов плагина
|
||
ev.call_event("my_event")
|
||
ev.call_event("my_event", "Some data", data="some data too")
|
||
log.info("Плагин запустился успешно.")
|
||
|
||
|
||
def unload():
|
||
# Код завершающий все процессы
|
||
log.info("Плагин выгружен успешно.")
|
||
```
|
||
|
||
* Рекомендуется использовать `open()` после `load()`, иначе стоит использовать `kt.load()` - Создаёт файл в папке `plugin/<plugin_name>/<filename>`
|
||
* Создание своего ивента : `kt.register_event("my_event", my_event_function)` -
|
||
* Вызов ивента: `kt.call_event("my_event")`
|
||
* Вызов ивента с данными: `kt.call_event("my_event", data, data2=data2)`
|
||
* Базовые ивенты: _Позже напишу_
|
||
|
||
## Async функции
|
||
|
||
Поддержка async есть
|
||
|
||
```python
|
||
try:
|
||
import KuiToi
|
||
except ImportError:
|
||
pass
|
||
|
||
kt = KuiToi("Example")
|
||
log = kt.log
|
||
|
||
|
||
async def my_event_handler(event_data):
|
||
log.info(f"{event_data}")
|
||
|
||
|
||
async def load():
|
||
# Инициализация плагина
|
||
ev.register_event("my_event", my_event_handler)
|
||
log.info("Плагин загружен успешно.")
|
||
|
||
|
||
async def start():
|
||
# Запуск процессов плагина
|
||
await ev.call_async_event("my_event")
|
||
await ev.call_async_event("my_event", "Some data", data="some data too")
|
||
log.info("Плагин запустился успешно.")
|
||
|
||
|
||
async def unload():
|
||
# Код завершающий все процессы
|
||
log.info("Плагин выгружен успешно.")
|
||
|
||
```
|
||
|
||
Так же более обширный пример можно найти в [async_example.py](./async_example.py)
|
||
|
||
* Создание своего ивента: `kt.register_event("my_event", my_event_function)` (в register_event стоит проверка на функцию)
|
||
* Вызов async ивента: `kt.call_async_event("my_event")`
|
||
* Вызов async ивента: `kt.call_async_event("my_event", data, data2=data2)`
|
||
* Базовые async ивенты: _Позже напишу_
|