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

sessiontools.py (1085B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\util\sessiontools.py
      2 from gametime import GetSimTime
      3 from logging import getLogger
      4 from uthread2 import Sleep
      5 logger = getLogger(__name__)
      6 
      7 def wait_for_session_ready(attempts_before_timeout = 20):
      8     for i in xrange(attempts_before_timeout):
      9         if _is_session_change_finished() and session.IsItSafe():
     10             break
     11         Sleep(1.0)
     12         logger.info('Waiting for session to be ready (attempt {}/{})'.format(i, attempts_before_timeout))
     13     else:
     14         raise TimedOutWaitingForSession(attempts_before_timeout)
     15 
     16 
     17 def _is_session_change_finished():
     18     return not session.nextSessionChange or session.nextSessionChange - GetSimTime() < 0
     19 
     20 
     21 class TimedOutWaitingForSession(RuntimeError):
     22 
     23     def __init__(self, attempts_before_timeout):
     24         self.message = 'Timed out waiting for session to be ready after {} attempts'.format(attempts_before_timeout)
     25         super(TimedOutWaitingForSession, self).__init__(self.message)
     26 
     27     def __str__(self):
     28         return self.message