mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-17 08:15:42 +00:00
Plugin System
Installing the Library with "Stubs"
(This means that it will not work without a server, but the IDE will suggest the API)
(The library is still under development)
- Using pip:
$ pip install KuiToi
- From source code:
git clone https://github.com/KuiToi/KuiToi-PyLib
Example
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():
# Plugin initialization
ev.register_event("my_event", my_event_handler)
log.info("Plugin loaded successfully.")
def start():
# Running plugin processes
ev.call_event("my_event")
ev.call_event("my_event", "Some data", data="some data too")
log.info("Plugin started successfully.")
def unload():
# Code that ends all processes
log.info("Plugin unloaded successfully.")
- It is recommended to use
open()
afterload()
. Otherwise, usekt.load()
- creates a file in theplugin/<plugin_name>/<filename>
folder. - Creating your own event:
kt.register_event("my_event", my_event_function)
- Calling an event:
kt.call_event("my_event")
- Calling an event with data:
kt.call_event("my_event", data, data2=data2)
- Basic events: Will write later
Async Functions
Async support is available.
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():
# Plugin initialization
ev.register_event("my_event", my_event_handler)
log.info("Plugin loaded successfully.")
async def start():
# Running plugin processes
await ev.call_async_event("my_event")
await ev.call_async_event("my_event", "Some data", data="some data too")
log.info("Plugin started successfully.")
async def unload():
# Code that ends all processes
log.info("Plugin unloaded successfully.")
A more extensive example can also be found in async_example.py.
- Creating your own event:
kt.register_event("my_event", my_event_function)
(register_event checks for function) - Calling an async event:
kt.call_async_event("my_event")
- Calling an async event with data:
kt.call_async_event("my_event", data, data2=data2)
- Basic async events: Will write later