structureGuests.py (1205B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\structure\structureGuests.py 2 import uthread 3 from carbon.common.script.sys.service import Service 4 5 class StructureGuests(Service): 6 __guid__ = 'svc.structureGuests' 7 __notifyevents__ = ['DoSessionChanging', 'OnCharacterEnteredStructure', 'OnCharacterLeftStructure'] 8 9 def Run(self, *args): 10 self.guests = None 11 self.lock = uthread.Semaphore() 12 13 def GetGuests(self): 14 if self.guests is None: 15 with self.lock: 16 if self.guests is None: 17 self.guests = sm.RemoteSvc('structureGuests').GetGuests(session.structureid) 18 return self.guests or {} 19 20 def IsGuest(self, charID): 21 return charID in self.GetGuests() 22 23 def DoSessionChanging(self, isRemote, session, change): 24 if 'structureid' in change: 25 self.guests = None 26 27 def OnCharacterEnteredStructure(self, characterID, corporationID, allianceID, factionID): 28 self.GetGuests()[characterID] = (corporationID, allianceID, factionID) 29 30 def OnCharacterLeftStructure(self, characterID): 31 self.GetGuests().pop(characterID, None)