Exemplo n.º 1
0
        public IActionResult ReportDisconnectPlayer(
            [FromBody] ReportDisconnectPlayer.Request req, [FromServices] GeneralManager gm)
        {
            gm.EnqueueJob(async() =>
            {
                var match = gm.MatchManager.DisconnectPlayer(req.battleServerSessionId, req.playerId);

                if (match != null)
                {
                    await new ConnectionQueue(match.Server.SessionId).EnqueueAsync(match.MatchInfo());
                }
            });

            var res = new ReportDisconnectPlayer.Response();

            return(Ok(res));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> ReportDisconnectPlayer([FromBody] ReportDisconnectPlayer.Request req)
        {
            var requester = new evomatching.ProtocolModels.Matching.ReportDisconnectPlayer();

            requester.request.battleServerSessionId = SelfHost.sessionId;
            requester.request.playerId = req.playerId;
            var response = await requester.PostAsync(MatchingServerInfo.AreaUri(SelfHost.matchingArea));

            var lastBattle = new LastBattle(req.playerId);

            lastBattle.Model.matchId         = (req.forbiddenReturnMatch) ? "" : SelfHost.battleServerInfo.matchId;
            lastBattle.Model.lastExistedDate = DateTime.UtcNow;
            await lastBattle.SaveAsync();


            var res = new ReportDisconnectPlayer.Response();

            res.playerId = req.playerId;
            return(Ok(res));
        }