mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-17 16:25: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 .config_provider import ConfigProvider, Config
|
||||
from .i18n import MultiLanguage
|
||||
from .EventsSystem import EventsSystem
|
||||
|
Loading…
x
Reference in New Issue
Block a user