Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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"));
            }
        }
Пример #4
0
 public void AddPlayer(NetPeer peer, PlayerAuth data)
 {
     _players.Add(peer.Id, new Player(peer, data));
 }