2023-07-15 16:20:37 +03:00

2.9 KiB
Raw Blame History

Система плагинов

Установка библиотеки с "Заглушками"

(Это значит, что не будет работать без сервера, но IDE подскажет API)
(Библиотека ещё в разработке)
  • Используя pip:
    $ pip install KuiToi
  • Из исходников:
    git clone https://github.com/KuiToi/KuiToi-PyLib

Пример

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 есть

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 ивенты: Позже напишу