mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-18 08:45:37 +00:00
Add new stock events;
Add async support to call_event(); Add **kwargs t0 call_event(); Sends new data to events;
This commit is contained in:
parent
8feba0e085
commit
c6c6ec31b0
@ -1,4 +1,7 @@
|
|||||||
|
import asyncio
|
||||||
import builtins
|
import builtins
|
||||||
|
import inspect
|
||||||
|
import time
|
||||||
|
|
||||||
from core import get_logger
|
from core import get_logger
|
||||||
|
|
||||||
@ -8,13 +11,17 @@ class EventsSystem:
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# TODO: default events
|
# TODO: default events
|
||||||
|
self.log = get_logger("EventsSystem")
|
||||||
|
self.loop = asyncio.get_event_loop()
|
||||||
self.__events = {
|
self.__events = {
|
||||||
"on_started": [],
|
"server_started": [],
|
||||||
|
"_plugins_start": [],
|
||||||
"auth_sent_key": [],
|
"auth_sent_key": [],
|
||||||
"auth_ok": [],
|
"auth_ok": [],
|
||||||
"chat_receive": [],
|
"chat_receive": [],
|
||||||
|
"_plugins_unload": [],
|
||||||
|
"server_stopped": [],
|
||||||
}
|
}
|
||||||
self.log = get_logger("EventsSystem")
|
|
||||||
|
|
||||||
def builtins_hook(self):
|
def builtins_hook(self):
|
||||||
self.log.debug("used builtins_hook")
|
self.log.debug("used builtins_hook")
|
||||||
@ -39,7 +46,12 @@ class EventsSystem:
|
|||||||
if event_name in self.__events.keys():
|
if event_name in self.__events.keys():
|
||||||
for func in self.__events[event_name]:
|
for func in self.__events[event_name]:
|
||||||
try:
|
try:
|
||||||
funcs_data.append(func({"event_name": event_name, "args": args, "kwargs": kwargs}))
|
event_data = {"event_name": event_name, "args": args, "kwargs": kwargs}
|
||||||
|
if inspect.iscoroutinefunction(func):
|
||||||
|
d = self.loop.run_until_complete(func(event_data))
|
||||||
|
else:
|
||||||
|
d = func(event_data)
|
||||||
|
funcs_data.append(d)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# TODO: i18n
|
# TODO: i18n
|
||||||
self.log.error(f'Error while calling "{event_name}"; In function: "{func.__name__}"')
|
self.log.error(f'Error while calling "{event_name}"; In function: "{func.__name__}"')
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
class EventsSystem:
|
class EventsSystem:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def register_event(self, event_name, event_func): ...
|
def register_event(event_name, event_func): ...
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def call_event(self, event_name, *data): ...
|
def call_event(event_name, *data, **kwargs): ...
|
||||||
class ev(EventsSystem): ...
|
class ev(EventsSystem): ...
|
Loading…
x
Reference in New Issue
Block a user