public MapManager(ServerModel server) { _tempFolder = Path.Combine(MainTempFolder, Guid.NewGuid().ToString().ToUpper()); Directory.CreateDirectory(_tempFolder); _server = server; Canceled = false; }
public static List <string> GetMapsToDownload(this ServerModel server) { var client = new WebClient(); var csvMaps = client.DownloadString(server.MapListUrl); client.Dispose(); var list = csvMaps .Replace("\r", "") .Replace("\n", "") .Split(',') .Where(x => !string.IsNullOrEmpty(x) || x.Length > 3) .ToList(); return(list); }
public MapModel(string rawName, ServerModel serverContext) { _serverContext = serverContext; var fileExt = ".bsp"; IsCompressed = rawName[0] != '$'; if (IsCompressed) { fileExt += ".bz2"; } // removes the $ prefix if exists Name = rawName.Replace("$", ""); DownloadableFileName = Name + fileExt; LocalFileName = Name + ".bsp"; RemoteFileName = _serverContext.FastdlUrl + DownloadableFileName; }
public static string GetMapsDirectory(this ServerModel server) { string registryValue = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Software\Valve\Steam", "SteamPath", null); if (registryValue == null) { return(null); } string libraryInfoFileContents = File.ReadAllText(registryValue.Replace("/", @"\") + @"\steamapps\libraryfolders.vdf"); List <string> libraryFolders = new List <string>(); for (int i = 1; true; i++) { if (!libraryInfoFileContents.Contains("\"" + i + "\"")) { break; } libraryFolders.Add(libraryInfoFileContents.Split(new string[] { "\"" + i + "\" \""}, StringSplitOptions.None)[1].Split('"')[0].Replace(@"\\", @"\")); } libraryFolders.Add(registryValue.Replace("/", @"\")); string dir = null; foreach (string folder in libraryFolders) { string acfFile = folder + $@"\steamapps\appmanifest_{server.SteamApplicationID}.acf"; if (File.Exists(acfFile)) { string installDir = File.ReadAllText(acfFile).Split(new string[] { "\"installdir\" \""}, StringSplitOptions.None)[1].Split('"')[0]; dir = folder.Substring(0, 1).ToUpper() + folder.Substring(1).Replace("program files", "Program Files") + $@"\steamapps\common\{installDir}{server.MapsDirectory}"; break; } } return(dir); }