/// <summary> /// アカウント登録 /// </summary> /// <param name="deviceId">デバイスID</param> /// <param name="playerUid">プレイヤーユニークID</param> /// <param name="name">プレイヤー名</param> /// <param name="dateTimeOffset">現在時間</param> /// <returns>プレイヤーID</returns> public async Task <long> RegisterAsync(string deviceId, string playerUid, string name, DateTimeOffset dateTimeOffset) { long playerId = await playerIdRepository.GetPlayerId(); // 認証情報作成 var playerAuth = PlayerAuth.Create(playerId, deviceId, playerUid); await playerAuthRepository.CreateAsync(playerAuth); var playerBasic = PlayerBasic.Create(playerId, name, dateTimeOffset); await playerBasicRepository.CreateAsync(playerBasic); return(playerId); }
/// <summary> /// プレイヤーログイン /// </summary> /// <param name="playerId">プレイヤーID</param> /// <param name="deviceId">デバイスID</param> /// <param name="playerUid">プレイヤーUID</param> /// <param name="current">現在時刻</param> public async Task LoginAsync(long playerId, string deviceId, string playerUid, DateTimeOffset current) { // セッションID更新 var session = new Session() { Id = PlayerAuth.GenerateSessionId(), LastLogin = current }; await this.sessionRepository.Set(playerId, session); await playerAuthenticationRepository.SetPlayerIdAndSessionIdAsync(playerId, session.Id); // ログイン時間の更新 var playerBasic = await playerBasicRepository.FindAsync(playerId); playerBasic.LastLogin = current; await playerBasicRepository.UpdateAsync(playerBasic); }
public void OnConnectionRequest(ConnectionRequest rq) { try { PlayerAuth data = new PlayerAuth(rq.Data); //This will throw an exception in case of protocol error data.Validate(); _gm.AddPlayer(rq.Accept(), data); } catch (Exception e) { if (e is PlayerAuthException) { rq.Reject(NetDataWriter.FromString(e.Message)); return; } Console.WriteLine(e); rq.Reject(NetDataWriter.FromString("An unknown error occured")); } }
public void AddPlayer(NetPeer peer, PlayerAuth data) { _players.Add(peer.Id, new Player(peer, data)); }