protected MaintenanceRequest(MaintenanceCommandTypes commandType) { this.commandType = (int)commandType; clientID = GameEngine.GetInstance().Client.ClientID; }
private void HandleMaintenanceCommands(String[] message, String plainText) { MaintenanceCommandTypes messageType = MaintenanceCommandTypes.Chat; int clientID = -1; String[] data = { "" }; try { messageType = (MaintenanceCommandTypes)Convert.ToInt32(message[1]); clientID = Convert.ToInt32(message[2]); data = message[3].Split(' '); } catch { } finally { switch (messageType) { case MaintenanceCommandTypes.Chat: Console.WriteLine(message[3]); break; case MaintenanceCommandTypes.JoinGame: if (data[0] == MyIP && this.clientID == -1) { this.clientID = clientID; Console.WriteLine("CLIENT: You connected to server as Player" + clientID.ToString()); } else if (!connectedClients.ContainsKey(clientID) || (connectedClients[clientID] != data[0])) { Console.WriteLine("CLIENT: Player" + clientID.ToString() + " connected to the server. (" + data[0] + ")"); } if (!connectedClients.ContainsKey(clientID)) { connectedClients.Add(clientID, data[0]); } else if ((connectedClients[clientID] != data[0])) { connectedClients[clientID] = data[0]; } break; case MaintenanceCommandTypes.Lockstep: //Lockstep++; Lockstep = int.Parse(data[0]); break; case MaintenanceCommandTypes.LeaveGame: connectedClients.Remove(clientID); Console.WriteLine("CLIENT: Player" + clientID.ToString() + " disconnected from the server. (" + data[0] + ")"); break; case MaintenanceCommandTypes.StartGame: Console.WriteLine("CLIENT: Starting game."); startGame = true; break; case MaintenanceCommandTypes.ChangeSeed: Console.WriteLine("CLIENT: Seed changed to:" + (int.Parse(data[0])).ToString()); serverSeed = int.Parse(data[0]); break; } } }
private void HandleMaintenanceRequests(String[] message, String plainText) { MaintenanceCommandTypes messageType = MaintenanceCommandTypes.Chat; int clientID = -1; String[] data = { "" }; try { messageType = (MaintenanceCommandTypes)Convert.ToInt32(message[1]); clientID = Convert.ToInt32(message[2]); data = message[3].Split(' '); } catch { } finally { switch (messageType) { case MaintenanceCommandTypes.Chat: Console.WriteLine(message[3]); ForwardMessage(plainText); break; case MaintenanceCommandTypes.JoinGame: ClientData clientData = new ClientData(); clientID = connectedClients.Count + 1; clientData.ID = clientID; clientData.IP = data[0]; connectedClients.Add(clientID, clientData); Console.WriteLine("SERVER: Player" + clientData.ID + " connected. (" + clientData.IP + ")"); //plainText = plainText.Replace("-1", clientID.ToString()); //Replace the client ID //ForwardMessage(plainText); //Tell all players about connection: foreach (KeyValuePair <int, ClientData> kvp in connectedClients) //Resend all connections { ForwardMessage(((int)MessageTypes.Maintenance).ToString() + ":" + ((int)MaintenanceCommandTypes.JoinGame).ToString() + ":" + kvp.Key.ToString() + ":" + kvp.Value.IP); } //Tell all players the seed: ForwardMessage(new ChangeSeedRequest(serverSeed).GetMessage()); break; case MaintenanceCommandTypes.Lockstep: connectedClients[clientID].LockStep = lockstep; TryIncreaseLockstep(); break; case MaintenanceCommandTypes.LeaveGame: connectedClients.Remove(clientID); Console.WriteLine("SERVER: Player" + clientID + " dissconnected. (" + data[0] + ")"); ForwardMessage(plainText); break; case MaintenanceCommandTypes.StartGame: Console.WriteLine("SERVER: Starting game."); ForwardMessage(plainText); break; case MaintenanceCommandTypes.ChangeSeed: Console.WriteLine("SERVER: Seed changed to: " + (int.Parse(data[0])).ToString()); serverSeed = int.Parse(data[0]); ForwardMessage(plainText); break; } } }