public static void AddGoldSourceServer(this MainWindow mainWindow) { IServer server = new GoldSourceServer(); AddEditServerGoldSource editWindow = new AddEditServerGoldSource(mainWindow, server); editWindow.Title = Properties.Resources.aes_AddNewServerTitle; if (editWindow.ShowDialog() == true) { mainWindow._serversControl.Servers.Add(server); CreateControlsForServer(mainWindow, server); SaveOptions(mainWindow, mainWindow._configFileName); } }
public static void ImportServers(this MainWindow mainWindow) { string oldConfigFileName = "servers.xml"; OpenFileDialog dialog = new OpenFileDialog(); dialog.DefaultExt = oldConfigFileName; dialog.Filter = string.Format("{0}|{1}", Properties.Resources.mw_OldHldslOptionsFile, oldConfigFileName); if (dialog.ShowDialog() == true) { XElement oldConfig = XElement.Load(dialog.FileName); int serversAdded = 0; foreach (XElement xServer in oldConfig.XPathSelectElements("Servers/Server")) { IServer server = null; switch (xServer.XPathSelectElement("Game").Value) { case "cstrike": { server = new GoldSourceServer(); (server.Options as GoldSourceServerOptions).Game = GoldSourceGame.cstrike; if (xServer.XPathSelectElement("Ip") != null) { (server.Options as GoldSourceServerOptions).Ip = xServer.XPathSelectElement("Ip").Value; } if (xServer.XPathSelectElement("Port") != null) { (server.Options as GoldSourceServerOptions).Port = xServer.XPathSelectElement("Port").Value; } if (xServer.XPathSelectElement("Map") != null) { (server.Options as GoldSourceServerOptions).Map = xServer.XPathSelectElement("Map").Value; } if (xServer.XPathSelectElement("MaxPlayers") != null) { (server.Options as GoldSourceServerOptions).MaxPlayers = int.Parse(xServer.XPathSelectElement("MaxPlayers").Value); } if (xServer.XPathSelectElement("RconPassword") != null) { (server.Options as GoldSourceServerOptions).RconPassword = xServer.XPathSelectElement("RconPassword").Value; } if (xServer.XPathSelectElement("HostName") != null) { (server.Options as GoldSourceServerOptions).HostName = xServer.XPathSelectElement("HostName").Value; } if (xServer.XPathSelectElement("DopArgs") != null) { (server.Options as GoldSourceServerOptions).AdditionalCommandLineArgs = xServer.XPathSelectElement("DopArgs").Value; } if (xServer.XPathSelectElement("HldsExe") != null) { (server.Options as GoldSourceServerOptions).ExecutablePath = xServer.XPathSelectElement("HldsExe").Value; } if (xServer.XPathSelectElement("ConsolePosX") != null) { (server.Options as GoldSourceServerOptions).ConsolePositionX = int.Parse(xServer.XPathSelectElement("ConsolePosX").Value); } if (xServer.XPathSelectElement("ConsolePosY") != null) { (server.Options as GoldSourceServerOptions).ConsolePositionY = int.Parse(xServer.XPathSelectElement("ConsolePosY").Value); } if (xServer.XPathSelectElement("AutoRestart") != null) { (server.Options as GoldSourceServerOptions).AutoRestart = bool.Parse(xServer.XPathSelectElement("AutoRestart").Value); } if (xServer.XPathSelectElement("ActiveServer") != null) { (server.Options as GoldSourceServerOptions).ActiveServer = bool.Parse(xServer.XPathSelectElement("ActiveServer").Value); } if (xServer.XPathSelectElement("IntegratedConsole") != null) { (server.Options as GoldSourceServerOptions).ConsoleType = (bool.Parse(xServer.XPathSelectElement("IntegratedConsole").Value) ? ConsoleType.Integrated : ConsoleType.Native); } break; } case "cstrikesource": { server = new SourceServer(); (server.Options as SourceServerOptions).Game = SourceGame.cstrike; if (xServer.XPathSelectElement("Ip") != null) { (server.Options as SourceServerOptions).Ip = xServer.XPathSelectElement("Ip").Value; } if (xServer.XPathSelectElement("Port") != null) { (server.Options as SourceServerOptions).Port = xServer.XPathSelectElement("Port").Value; } if (xServer.XPathSelectElement("Map") != null) { (server.Options as SourceServerOptions).Map = xServer.XPathSelectElement("Map").Value; } if (xServer.XPathSelectElement("MaxPlayers") != null) { (server.Options as SourceServerOptions).MaxPlayers = int.Parse(xServer.XPathSelectElement("MaxPlayers").Value); } if (xServer.XPathSelectElement("RconPassword") != null) { (server.Options as SourceServerOptions).RconPassword = xServer.XPathSelectElement("RconPassword").Value; } if (xServer.XPathSelectElement("HostName") != null) { (server.Options as SourceServerOptions).HostName = xServer.XPathSelectElement("HostName").Value; } if (xServer.XPathSelectElement("DopArgs") != null) { (server.Options as SourceServerOptions).AdditionalCommandLineArgs = xServer.XPathSelectElement("DopArgs").Value; } if (xServer.XPathSelectElement("HldsExe") != null) { (server.Options as SourceServerOptions).ExecutablePath = xServer.XPathSelectElement("HldsExe").Value; } if (xServer.XPathSelectElement("ConsolePosX") != null) { (server.Options as SourceServerOptions).ConsolePositionX = int.Parse(xServer.XPathSelectElement("ConsolePosX").Value); } if (xServer.XPathSelectElement("ConsolePosY") != null) { (server.Options as SourceServerOptions).ConsolePositionY = int.Parse(xServer.XPathSelectElement("ConsolePosY").Value); } if (xServer.XPathSelectElement("AutoRestart") != null) { (server.Options as SourceServerOptions).AutoRestart = bool.Parse(xServer.XPathSelectElement("AutoRestart").Value); } if (xServer.XPathSelectElement("ActiveServer") != null) { (server.Options as SourceServerOptions).ActiveServer = bool.Parse(xServer.XPathSelectElement("ActiveServer").Value); } if (xServer.XPathSelectElement("IntegratedConsole") != null) { (server.Options as SourceServerOptions).ConsoleType = (bool.Parse(xServer.XPathSelectElement("IntegratedConsole").Value) ? ConsoleType.Integrated : ConsoleType.Native); } break; } case "hltv": { server = new ValveHltvServer(); if (xServer.XPathSelectElement("Ip") != null) { (server.Options as ValveHltvServerOptions).Ip = xServer.XPathSelectElement("Ip").Value; } if (xServer.XPathSelectElement("Port") != null) { (server.Options as ValveHltvServerOptions).Port = xServer.XPathSelectElement("Port").Value; } if (xServer.XPathSelectElement("Map") != null) { (server.Options as ValveHltvServerOptions).HostName = xServer.XPathSelectElement("HostName").Value; } if (xServer.XPathSelectElement("DopArgs") != null) { (server.Options as ValveHltvServerOptions).AdditionalCommandLineArgs = xServer.XPathSelectElement("DopArgs").Value; } if (xServer.XPathSelectElement("HldsExe") != null) { (server.Options as ValveHltvServerOptions).ExecutablePath = xServer.XPathSelectElement("HldsExe").Value; } if (xServer.XPathSelectElement("ConsolePosX") != null) { (server.Options as ValveHltvServerOptions).ConsolePositionX = int.Parse(xServer.XPathSelectElement("ConsolePosX").Value); } if (xServer.XPathSelectElement("ConsolePosY") != null) { (server.Options as ValveHltvServerOptions).ConsolePositionY = int.Parse(xServer.XPathSelectElement("ConsolePosY").Value); } if (xServer.XPathSelectElement("AutoRestart") != null) { (server.Options as ValveHltvServerOptions).AutoRestart = bool.Parse(xServer.XPathSelectElement("AutoRestart").Value); } if (xServer.XPathSelectElement("ActiveServer") != null) { (server.Options as ValveHltvServerOptions).ActiveServer = bool.Parse(xServer.XPathSelectElement("ActiveServer").Value); } break; } } if (server != null) { mainWindow._serversControl.Servers.Add(server); CreateControlsForServer(mainWindow, server); serversAdded++; _logger.Info(string.Format(Properties.Resources.mw_ServerImported, server.Options.HostName)); } } if (serversAdded > 0) { SaveOptions(mainWindow, mainWindow._configFileName); } } }