mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-10-08 06:51:21 +00:00
25 lines
1.4 KiB
Markdown
25 lines
1.4 KiB
Markdown
# Optional plugin API additions (discussion #144)
|
|
|
|
Existing hooks, callbacks, return values, context lookup, strings and menu behaviour
|
|
remain unchanged. The C plugin function table gains four fixed append-only slots;
|
|
unused slots are NULL. Older binaries use the unchanged prefix. A plugin must check
|
|
the documented get_info() feature key before accessing a new slot on an older host.
|
|
New Python modules are installed by Meson and the existing Windows copy/installer
|
|
pipeline. Only modules present in the installation are exported; imports of
|
|
zoitechat, hexchat and xchat retain their compatibility aliases.
|
|
|
|
All APIs run on the client main thread unless explicitly documented otherwise.
|
|
New reserved flags must be zero. These changes do not make old API calls thread-safe.
|
|
|
|
Nested hook dispatch defers deleted-hook reclamation until its outermost return,
|
|
so new observers can safely emit events and unhook themselves or other hooks.
|
|
|
|
The optional asyncio module requires Python 3.7 or newer; older supported
|
|
interpreters skip that module and retain the existing scripting API.
|
|
|
|
Python reload drops the script/API modules while retaining the embedding module
|
|
so callback and lib.ph pointer types keep the same CFFI identity.
|
|
|
|
Server-hook insertion matches both raw and attrs hooks so documented priorities
|
|
are honoured for mixed registrations, including new filtered attrs callbacks.
|