mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2026-06-18 22:51:03 +00:00
97 lines
3.1 KiB
Markdown
97 lines
3.1 KiB
Markdown
# Система плагинов
|
|
|
|
### Ивенты: [тут](./events_list)
|
|
### Классы: [тут](./classes)
|
|
|
|
## Установка библиотеки с "Заглушками"
|
|
###### (Это значит, что не будет работать без сервера, но IDE подскажет API)
|
|
###### (Библиотека ещё в разработке)
|
|
|
|
* Используя pip:\
|
|
`$ pip install KuiToi`
|
|
* Из исходников:\
|
|
`git clone https://github.com/KuiToi/KuiToi-PyLib`
|
|
|
|
## Пример
|
|
|
|
```python
|
|
try:
|
|
import KuiToi
|
|
except ImportError:
|
|
pass
|
|
|
|
kt = KuiToi("ExamplePlugin")
|
|
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("Плагин выгружен успешно.")
|
|
```
|
|
Так же более обширный пример можно найти в [example.py](examples/example.py)
|
|
|
|
* Рекомендуется использовать `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](examples/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 ивенты: _Позже напишу_
|