public void JoinGame(ClientSocket client, MediusJoinGameRequest request) { var game = Program.GetGameById(request.MediusWorldID); if (game == null) { client.ClientObject.AddLobbyMessage(new RT_MSG_SERVER_APP() { AppMessage = new MediusJoinGameResponse() { MessageID = request.MessageID, StatusCode = MediusCallbackStatus.MediusGameNotFound } }); } else if (game.GamePassword != null && game.GamePassword != string.Empty && game.GamePassword != request.GamePassword) { client.ClientObject.AddLobbyMessage(new RT_MSG_SERVER_APP() { AppMessage = new MediusJoinGameResponse() { MessageID = request.MessageID, StatusCode = MediusCallbackStatus.MediusInvalidPassword } }); } else { var dme = game.DMEServer; dme.AddProxyMessage(new RT_MSG_SERVER_APP() { AppMessage = new MediusServerJoinGameRequest() { MessageID = $"{game.Id}-{client.ClientObject.ClientAccount.AccountId}-{request.MessageID}", ConnectInfo = new NetConnectionInfo() { Type = NetConnectionType.NetConnectionTypeClientServerTCPAuxUDP, WorldID = game.DMEWorldId, SessionKey = request.SessionKey, ServerKey = Program.GlobalAuthPublic } } }); } }
public void JoinGame(ClientObject client, MediusJoinGameRequest request) { var game = GetGameByGameId(request.MediusWorldID); if (game == null) { client.Queue(new MediusJoinGameResponse() { MessageID = request.MessageID, StatusCode = MediusCallbackStatus.MediusGameNotFound }); } else if (game.GamePassword != null && game.GamePassword != string.Empty && game.GamePassword != request.GamePassword) { client.Queue(new MediusJoinGameResponse() { MessageID = request.MessageID, StatusCode = MediusCallbackStatus.MediusInvalidPassword }); } else if (game.PlayerCount >= game.MaxPlayers) { client.Queue(new MediusJoinGameResponse() { MessageID = request.MessageID, StatusCode = MediusCallbackStatus.MediusWorldIsFull }); } else { var dme = game.DMEServer; dme.Queue(new MediusServerJoinGameRequest() { MessageID = new MessageId($"{game.Id}-{client.AccountId}-{request.MessageID}"), ConnectInfo = new NetConnectionInfo() { Type = NetConnectionType.NetConnectionTypeClientServerTCPAuxUDP, WorldID = game.DMEWorldId, SessionKey = client.SessionKey, ServerKey = Program.GlobalAuthPublic } }); } }