mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-17 16:25:36 +00:00
3.1 KiB
3.1 KiB
Система плагинов
Установка библиотеки с "Заглушками"
(Это значит, что не будет работать без сервера, но IDE подскажет API)
(Библиотека ещё в разработке)
- Используя pip:
$ pip install KuiToi
- Из исходников:
git clone https://github.com/KuiToi/KuiToi-PyLib
Пример
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
- Рекомендуется использовать
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 есть
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
- Создание своего ивента:
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 ивенты: Позже напишу