public async Task <IActionResult> ReportAcceptPlayer( [FromBody] ReportAcceptPlayer.Request req, [FromServices] GeneralManager gm) { var res = new ReportAcceptPlayer.Response { allowed = false, playerId = -1, rating = 0, side = Battle.Side.Other, }; await gm.EnqueueJob(() => { var player = gm.MatchManager.AcceptPlayer(req.battleServerSessionId, req.joinPassword); if (player != null) { res.allowed = true; res.playerId = player.PlayerId; res.rating = player.Rating; res.side = player.Side; } }); return(Ok(res)); }
public async Task <IActionResult> ReportAcceptPlayer([FromBody] ReportAcceptPlayer.Request req) { var requester = new evomatching.ProtocolModels.Matching.ReportAcceptPlayer(); requester.request.battleServerSessionId = SelfHost.sessionId; requester.request.joinPassword = req.joinPassword; var response = await requester.PostAsyncXXX(MatchingServerInfo.AreaUri(SelfHost.matchingArea)); if (response.StatusCode != System.Net.HttpStatusCode.OK) { return(BuildErrorResponse(Error.LowCode.ServerInternalError)); } var res = new ReportAcceptPlayer.Response { playerId = response.Payload.playerId, allowed = response.Payload.allowed, side = response.Payload.side, rating = response.Payload.rating, }; if (response.Payload.allowed) { var player = new Player(response.Payload.playerId); await player.FetchAsync(); res.privilegeLevel = player.Model.privilegeLevel; res.sessionId = player.Model.sessionId; } return(Ok(res)); }