Auto launch Steam shortcut fixes

This commit is contained in:
Natsumi
2026-03-15 00:10:20 +11:00
committed by pa
parent d59a0a3894
commit cde18c653c
+9 -23
View File
@@ -526,12 +526,12 @@ namespace VRCX
return null; return null;
} }
string? testLibraryPath = null; var libraryFolders = new List<string>();
string? libraryPath = null;
foreach (var line in File.ReadLines(libraryFoldersVdfPath)) foreach (var line in File.ReadLines(libraryFoldersVdfPath))
{ {
if (line.Contains("\"path\"")) if (!line.Contains("\"path\""))
{ continue;
var parts = line.Split("\t"); var parts = line.Split("\t");
if (parts.Length < 4) if (parts.Length < 4)
continue; continue;
@@ -539,22 +539,11 @@ namespace VRCX
var basePath = parts[4].Replace("\"", "").Replace(@"\\", @"\"); var basePath = parts[4].Replace("\"", "").Replace(@"\\", @"\");
var path = Path.Join(basePath, @"steamapps"); var path = Path.Join(basePath, @"steamapps");
if (Directory.Exists(path)) if (Directory.Exists(path))
testLibraryPath = path; libraryFolders.Add(path);
} }
if (line.Contains($"\"{appId}\"")) foreach (var libraryPath in libraryFolders)
{ {
libraryPath = testLibraryPath;
break;
}
}
if (libraryPath == null)
{
logger.Error("Could not find Steam library containing appid {0}", appId);
return null;
}
string? installDir = null;
var appManifestFiles = Directory.GetFiles(libraryPath, "appmanifest_*.acf"); var appManifestFiles = Directory.GetFiles(libraryPath, "appmanifest_*.acf");
foreach (var file in appManifestFiles) foreach (var file in appManifestFiles)
{ {
@@ -572,20 +561,17 @@ namespace VRCX
var fullPath = Path.Join(libraryPath, "common", dirMatch.Groups[1].Value); var fullPath = Path.Join(libraryPath, "common", dirMatch.Groups[1].Value);
if (Directory.Exists(fullPath)) if (Directory.Exists(fullPath))
installDir = fullPath; return fullPath;
} }
catch catch
{ {
// ignore // ignore
} }
} }
if (installDir == null) }
{
logger.Error("Could not find install dir for appid {0}", appId); logger.Error("Could not find install dir for appid {0}", appId);
return null; return null;
} }
return installDir;
}
} }
} }