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

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)