36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
import betterproto
|
|
from game_server.net.session import PlayerSession
|
|
from database.account.account_data import find_account_by_uid
|
|
from database.player.player_data import PlayerData,find_player_by_uid
|
|
from database.lineup.lineup_data import LineupData
|
|
from rail_proto.lib import (
|
|
PlayerGetTokenCsReq,
|
|
PlayerGetTokenScRsp
|
|
)
|
|
from game_server.game.player.player_manager import PlayerManager
|
|
|
|
async def handle(session: PlayerSession, msg: PlayerGetTokenCsReq) -> betterproto.Message:
|
|
account_uid = int(msg.account_uid)
|
|
account_data=find_account_by_uid(account_uid)
|
|
if not account_data:
|
|
return PlayerGetTokenScRsp(
|
|
retcode=1003
|
|
)
|
|
|
|
player_data=find_player_by_uid(account_uid)
|
|
if not player_data:
|
|
player_data=PlayerData(uid=account_uid).create_player_data(account_data.username)
|
|
session.player=PlayerManager(data=player_data)
|
|
session.player.add_avatar(8001)
|
|
session.player.add_avatar(1001)
|
|
session.player.add_lineup([8001])
|
|
|
|
else:
|
|
session.player=PlayerManager(data=player_data)
|
|
|
|
|
|
return PlayerGetTokenScRsp(
|
|
retcode=0,
|
|
uid=account_uid,
|
|
msg="OK"
|
|
) |