Add methods in KuiToi class

This commit is contained in:
Maxim Khomutov 2023-07-15 02:15:11 +03:00
parent 08e4f0fcba
commit 64ce662d04

View File

@ -1,19 +1,55 @@
import os
import types
from contextlib import contextmanager
from core import get_logger
# TODO: call_client_event, get_player, get_players, GetPlayerCount
class KuiToi:
_plugins_dir = ""
def __init__(self, name=None):
if name is None:
raise Exception("BeamMP: Name is required")
self.log = get_logger(f"PluginsLoader | {name}")
self.name = name
raise AttributeError("KuiToi: Name is required")
self.log = get_logger(f"Plugin | {name}")
self.__name = name
self.__dir = os.path.join(self._plugins_dir, self.__name)
if not os.path.exists(self.__dir):
os.mkdir(self.__dir)
def set_name(self, name):
self.name = name
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
# You chell not pass
pass
@property
def dir(self):
return self.__dir
@dir.setter
def dir(self, value):
# You chell not pass
pass
@contextmanager
def open(self, file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):
path = os.path.join(self.__dir, file)
if not os.path.exists(path):
with open(path, 'x'): ...
f = None
try:
f = open(path, mode, buffering, encoding, errors, newline, closefd, opener)
yield f
except Exception as e:
raise e
finally:
if f is not None:
f.close()
@staticmethod
def register_event(event_name, event_func):