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" )