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)); }
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)); }