public async Task <bool> OnHandle(MessageContext context, CChangeTeamReqMessage message) { var session = context.GetSession <Session>(); var plr = session.Player; var room = plr.Room; // No reason for gm mode to change teams // so just block it to make sure the clients dont break if (plr.IsInGMMode) { return(true); } var error = room.TeamManager.ChangeTeam(plr, message.Team); switch (error) { case TeamChangeError.Full: session.Send(new SChangeTeamFailAckMessage(ChangeTeamResult.Full)); break; case TeamChangeError.PlayerIsReady: session.Send(new SChangeTeamFailAckMessage(ChangeTeamResult.AlreadyReady)); break; } return(true); }
public void CChangeTeamReq(GameSession session, CChangeTeamReqMessage message) { var plr = session.Player; try { plr.Room.TeamManager.ChangeTeam(plr, message.Team); } catch (RoomException ex) { Logger.ForAccount(plr) .Error(ex, "Failed to change team to {team}", message.Team); } }
public void CChangeTeamReq(GameSession session, CChangeTeamReqMessage message) { var plr = session.Player; try { plr.Room.TeamManager.ChangeTeam(plr, message.Team); } catch (RoomException ex) { _logger.Error() .Account(plr) .Exception(ex).Message("Failed to change team to {0}", message.Team) .Write(); } }