mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-18 00:35:36 +00:00
Add EventsSystem
This commit is contained in:
parent
1cf9a07f69
commit
8bf4ceb032
1
src/modules/EventsSystem/__init__.py
Normal file
1
src/modules/EventsSystem/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
from .events_system import EventsSystem
|
6
src/modules/EventsSystem/events-builtins.pyi
Normal file
6
src/modules/EventsSystem/events-builtins.pyi
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
class EventsSystem:
|
||||||
|
@staticmethod
|
||||||
|
def register_event(self, event_name, event_func): ...
|
||||||
|
@staticmethod
|
||||||
|
def call_event(self, event_name, *data): ...
|
||||||
|
class ev(EventsSystem): ...
|
49
src/modules/EventsSystem/events_system.py
Normal file
49
src/modules/EventsSystem/events_system.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import builtins
|
||||||
|
|
||||||
|
from core import get_logger
|
||||||
|
|
||||||
|
|
||||||
|
class EventsSystem:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.__events = {
|
||||||
|
"on_starting": [self.on_starting],
|
||||||
|
"on_started": [self.on_started],
|
||||||
|
"on_stop": [self.on_stop],
|
||||||
|
"on_auth": [self.on_auth]
|
||||||
|
}
|
||||||
|
self.log = get_logger("EventsSystem")
|
||||||
|
|
||||||
|
def builtins_hook(self):
|
||||||
|
self.log.debug("used builtins_hook")
|
||||||
|
builtins.ev = self
|
||||||
|
|
||||||
|
def register_event(self, event_name, event_func):
|
||||||
|
self.log.debug(f"register_event({event_name}, {event_func}):")
|
||||||
|
if callable(event_func):
|
||||||
|
self.log.error(f"Cannot add event '{event_name}'. "
|
||||||
|
f"Use `BEAMP.add_event({event_name}', function)` instead. Skipping it...")
|
||||||
|
if event_name not in self.__events:
|
||||||
|
self.__events.update({str(event_name): [event_func]})
|
||||||
|
else:
|
||||||
|
self.__events[event_name].append(event_func)
|
||||||
|
|
||||||
|
def call_event(self, event_name, *data):
|
||||||
|
self.log.debug(f"Using event '{event_name}'")
|
||||||
|
if event_name in self.__events.keys():
|
||||||
|
for event in self.__events[event_name]:
|
||||||
|
event(*data)
|
||||||
|
else:
|
||||||
|
self.log.warning(f"Event {event_name} does not exist. Just skipping it...")
|
||||||
|
|
||||||
|
def on_starting(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def on_started(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def on_stop(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def on_auth(self):
|
||||||
|
pass
|
@ -9,3 +9,4 @@
|
|||||||
from .console import Console
|
from .console import Console
|
||||||
from .config_provider import ConfigProvider, Config
|
from .config_provider import ConfigProvider, Config
|
||||||
from .i18n import MultiLanguage
|
from .i18n import MultiLanguage
|
||||||
|
from .EventsSystem import EventsSystem
|
||||||
|
Loading…
x
Reference in New Issue
Block a user