81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
from panda3d.core import *
|
|
from direct.distributed.MsgTypes import *
|
|
from direct.directnotify import DirectNotifyGlobal
|
|
from . import LoginBase
|
|
from direct.distributed.PyDatagram import PyDatagram
|
|
|
|
class LoginGSAccount(LoginBase.LoginBase):
|
|
|
|
def __init__(self, cr):
|
|
LoginBase.LoginBase.__init__(self, cr)
|
|
|
|
def createAccount(self, loginName, password, data):
|
|
self.loginName = loginName
|
|
self.password = password
|
|
self.createFlag = 1
|
|
self.cr.freeTimeExpiresAt = -1
|
|
self.cr.setIsPaid(1)
|
|
return None
|
|
|
|
def authorize(self, loginName, password):
|
|
self.loginName = loginName
|
|
self.password = password
|
|
self.createFlag = 0
|
|
self.cr.freeTimeExpiresAt = -1
|
|
self.cr.setIsPaid(1)
|
|
return None
|
|
|
|
def supportsRelogin(self):
|
|
return 1
|
|
|
|
def sendLoginMsg(self):
|
|
DISLID = config.GetInt('fake-DISL-PlayerAccountId', 0)
|
|
if not DISLID:
|
|
NameStringId = 'DISLID_%s' % self.loginName
|
|
DISLID = config.GetInt(NameStringId, 0)
|
|
cr = self.cr
|
|
datagram = PyDatagram()
|
|
datagram.addUint16(CLIENT_LOGIN)
|
|
datagram.addString(self.loginName)
|
|
if cr.connectMethod != cr.CM_HTTP:
|
|
datagram.addUint32(cr.tcpConn.getAddress().getIp())
|
|
else:
|
|
datagram.addUint32(0)
|
|
datagram.addUint16(5150)
|
|
datagram.addString(cr.serverVersion)
|
|
datagram.addUint32(cr.hashVal)
|
|
datagram.addString(self.password)
|
|
datagram.addBool(self.createFlag)
|
|
datagram.addString(cr.validateDownload)
|
|
datagram.addString(cr.wantMagicWords)
|
|
datagram.addUint32(DISLID)
|
|
datagram.addString(config.GetString('otp-whitelist', 'YES'))
|
|
cr.send(datagram)
|
|
|
|
def resendPlayToken(self):
|
|
pass
|
|
|
|
def requestPwdReminder(self, email = None, acctName = None):
|
|
return 0
|
|
|
|
def getAccountData(self, loginName, password):
|
|
return 'Unsupported'
|
|
|
|
def supportsParentPassword(self):
|
|
return 1
|
|
|
|
def authenticateParentPassword(self, loginName, password, parentPassword):
|
|
return (password == parentPassword, None)
|
|
|
|
def authenticateParentUsernameAndPassword(self, loginName, password, parentUsername, parentPassword):
|
|
return (password == parentPassword, None)
|
|
|
|
def supportsAuthenticateDelete(self):
|
|
return 1
|
|
|
|
def authenticateDelete(self, loginName, password):
|
|
return (password == self.cr.password, None)
|
|
|
|
def enableSecretFriends(self, loginName, password, parentPassword, enable = 1):
|
|
return (password == parentPassword, None)
|