uberdog: Generate Toontown time manager, implement getLastLoggedInStr

This commit is contained in:
John Cote 2021-06-28 22:02:41 -04:00
parent dba9006efa
commit a47f6a2e28
3 changed files with 20 additions and 3 deletions

View file

@ -265,7 +265,12 @@ class LoginOperation(GameOperation):
self._handleDone() self._handleDone()
def getLastLoggedInStr(self): def getLastLoggedInStr(self):
return '' # TODO lastLoggedInStr = ''
if hasattr(self.loginManager.air, 'toontownTimeManager') and self.loginManager.air.toontownTimeManager:
lastLoggedInStr = datetime.strftime(self.loginManager.air.toontownTimeManager.getCurServerDateTime(),
self.loginManager.air.toontownTimeManager.formatStr)
return lastLoggedInStr
def getAccountCreationDate(self): def getAccountCreationDate(self):
accountCreationDate = self.account.get('CREATED', '') accountCreationDate = self.account.get('CREATED', '')

View file

@ -1,11 +1,10 @@
import time import time
from datetime import datetime, timedelta from datetime import datetime, timedelta
import pytz import pytz
from direct.distributed import DistributedObject
from direct.directnotify import DirectNotifyGlobal from direct.directnotify import DirectNotifyGlobal
from toontown.toonbase import TTLocalizer from toontown.toonbase import TTLocalizer
class ToontownTimeManager(DistributedObject.DistributedObject): class ToontownTimeManager:
notify = DirectNotifyGlobal.directNotify.newCategory('ToontownTimeManager') notify = DirectNotifyGlobal.directNotify.newCategory('ToontownTimeManager')
ClockFormat = '%I:%M:%S %p' ClockFormat = '%I:%M:%S %p'
formatStr = '%Y-%m-%d %H:%M:%S' formatStr = '%Y-%m-%d %H:%M:%S'

View file

@ -1,8 +1,11 @@
import time
from direct.directnotify import DirectNotifyGlobal from direct.directnotify import DirectNotifyGlobal
from otp.distributed.DistributedDirectoryAI import DistributedDirectoryAI from otp.distributed.DistributedDirectoryAI import DistributedDirectoryAI
from otp.distributed.OtpDoGlobals import * from otp.distributed.OtpDoGlobals import *
from toontown.distributed.ToontownInternalRepository import ToontownInternalRepository from toontown.distributed.ToontownInternalRepository import ToontownInternalRepository
from toontown.parties.ToontownTimeManager import ToontownTimeManager
# TODO: Remove Astron dependence. # TODO: Remove Astron dependence.
@ -12,6 +15,7 @@ class ToontownUDRepository(ToontownInternalRepository):
def __init__(self, baseChannel, serverId): def __init__(self, baseChannel, serverId):
ToontownInternalRepository.__init__(self, baseChannel, serverId, dcSuffix='UD') ToontownInternalRepository.__init__(self, baseChannel, serverId, dcSuffix='UD')
self.toontownTimeManager = None
self.astronLoginManager = None self.astronLoginManager = None
def handleConnected(self): def handleConnected(self):
@ -22,12 +26,21 @@ class ToontownUDRepository(ToontownInternalRepository):
rootObj = DistributedDirectoryAI(self) rootObj = DistributedDirectoryAI(self)
rootObj.generateWithRequiredAndId(self.getGameDoId(), 0, 0) rootObj.generateWithRequiredAndId(self.getGameDoId(), 0, 0)
# Create our local objects.
self.notify.info('Creating local objects...')
self.createLocals()
# Create our global objects. # Create our global objects.
self.notify.info('Creating global objects...') self.notify.info('Creating global objects...')
self.createGlobals() self.createGlobals()
self.notify.info('UberDOG server is ready.') self.notify.info('UberDOG server is ready.')
def createLocals(self):
# Create our Toontown time manager...
self.toontownTimeManager = ToontownTimeManager(serverTimeUponLogin=int(time.time()),
globalClockRealTimeUponLogin=globalClock.getRealTime())
def createGlobals(self): def createGlobals(self):
# Create our Astron login manager... # Create our Astron login manager...
self.astronLoginManager = self.generateGlobalObject(OTP_DO_ID_ASTRON_LOGIN_MANAGER, 'AstronLoginManager') self.astronLoginManager = self.generateGlobalObject(OTP_DO_ID_ASTRON_LOGIN_MANAGER, 'AstronLoginManager')