Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ..PremiumMod/libs/baseclass.py
- import es
- import cfglib
- from PremiumMod.libs.constant import CFG_PATH, INI_PATH
- from PremiumMod.libs.database import setup_dict
- #These shouldn't be here, but imported from PremiumMod or somewhere you keep constants
- if not CFG_PATH.isdir():
- CFG_PATH.mkdir()
- if not INI_PATH.isdir():
- INI_PATH.mkdir()
- ##
- class FeatureBase:
- def __init__(self):
- self.name = self.__class__.__module__.split('.')[~0] #This is the name of the file
- self.module = __import__(self.__class__.__module__).skills.__dict__[self.name] #This gets the module (eg. for registering events)
- self._featurename = {'en':self.name}
- self._featuredescription = {'en':self.name}
- def __getattr__(self, attr):
- if attr == 'cvar':
- return lambda name, default, description='': self.cfg('pm_'+(self.name.lower())+'_'+name, default, description)
- elif attr in ('addGroup', 'addValueToGroup'):
- return getattr(self.ini, attr)
- raise AttributeError, attr
- def __load__(self, late): #Do player specific stuff
- pass
- def __unload__(self): #Do player specific stuff/cleanup
- pass
- def setName(self, name=None):
- if name is None:
- self._featurename = self.ini['name']
- return
- self._featurename['en'] = name
- def setDescription(self, description=None):
- if name is None:
- self._featuredescription = self.ini['description']
- return
- self._featuredescription['en'] = name
- def iniConfig(self):
- v = CFG_PATH.joinpath('features')
- if not v.isdir():
- v.mkdir()
- self.cfg = cfglib.AddonCFG(v.joinpath(self.name+'.cfg'))
- def exeConfig(self):
- self.cfg.write()
- self.cfg.execute()
- def iniLanguage(self):
- v = INI_PATH.joinpath('features')
- if not v.isdir():
- v.mkdir()
- self.ini = cfglib.AddonCFG(v.joinpath(self.name+'.ini'))
- def exeLanguage(self):
- self.ini.write()
- def hasFeature(self, steamid):
- return setup_dict[steamid].get(self.name, False) #You're gonna have to replace this (my_dict-thing)
- def registerEvent(self, event, callback):
- es.addons.registerForEvent(self.module, event, callback)
- def unregisterEvent(self, event):
- es.addons.unregisterForEvent(self.module, event)
- def onFeatureEnabled(self, userid): #Gets called when <userid> enabled the feature
- pass
- def onFeatureDisabled(self, userid): #Gets called when <userid> disabled the feature
- pass
Add Comment
Please, Sign In to add comment