NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

characterSettingsSvc.py (1650B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\characterSettingsSvc.py
      2 from carbon.common.script.sys.service import Service
      3 
      4 class CharacterSettingsSvc(Service):
      5     __guid__ = 'svc.characterSettings'
      6     __update_on_reload__ = 1
      7     __notifyevents__ = ['OnSessionReset']
      8 
      9     def __init__(self):
     10         super(CharacterSettingsSvc, self).__init__()
     11         self._charMgr = None
     12         self._settings = None
     13 
     14     @property
     15     def charMgr(self):
     16         if self._charMgr is None:
     17             self._charMgr = session.ConnectToRemoteService('charMgr')
     18         return self._charMgr
     19 
     20     def OnSessionReset(self):
     21         self._charMgr = None
     22         self._settings = None
     23 
     24     def _GetSettings(self):
     25         if self._settings is None:
     26             self._settings = self.charMgr.GetCharacterSettings()
     27         return self._settings
     28 
     29     def Get(self, settingKey):
     30         try:
     31             return self._GetSettings()[settingKey]
     32         except KeyError:
     33             return None
     34 
     35     def Save(self, settingKey, value):
     36         if value is None or value == '':
     37             self.Delete(settingKey)
     38         else:
     39             if len(value) > 102400:
     40                 raise RuntimeError("We don't want to send too large character settings to the server", settingKey, len(value))
     41             self.charMgr.SaveCharacterSetting(settingKey, value)
     42             self._GetSettings()[settingKey] = value
     43 
     44     def Delete(self, settingKey):
     45         settings = self._GetSettings()
     46         if settingKey in settings:
     47             self.charMgr.DeleteCharacterSetting(settingKey)
     48             del settings[settingKey]