Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }