mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-05 14:26:06 +02:00
Fix avatars not being found in cache (#1027)
This commit is contained in:
@@ -66,13 +66,13 @@ namespace VRCX
|
||||
return versionHex.PadLeft(32, '0');
|
||||
}
|
||||
|
||||
public int ReverseHexToDecimal(string hexString)
|
||||
public (int, int) ReverseHexToDecimal(string hexString)
|
||||
{
|
||||
if (hexString.Length != 32)
|
||||
return 0; // it's cooked
|
||||
return (0, 0); // it's cooked
|
||||
|
||||
try {
|
||||
var variantVersionHexString = hexString.Substring(16, 8); // 16..24
|
||||
var variantVersionHexString = hexString.Substring(0, 8); // 0..8
|
||||
var versionHexString = hexString.Substring(24, 8); // 24..32
|
||||
var versionBytes = new byte[4];
|
||||
var variantVersionBytes = new byte[4];
|
||||
@@ -85,12 +85,12 @@ namespace VRCX
|
||||
}
|
||||
var version = BitConverter.ToInt32(versionBytes, 0);
|
||||
var variantVersion = BitConverter.ToInt32(variantVersionBytes, 0);
|
||||
return version + variantVersion;
|
||||
return (version, variantVersion);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error($"Failed to convert hex to decimal: {hexString} {ex}");
|
||||
return 0; // it's cooked
|
||||
return (0, 0); // it's cooked
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,9 +110,18 @@ namespace VRCX
|
||||
public string GetVRChatCacheFullLocation(string id, int version, string variant = "", int variantVersion = 0)
|
||||
{
|
||||
var cachePath = GetVRChatCacheLocation();
|
||||
var idHash = GetAssetId(id, variant);
|
||||
var idHash = GetAssetId(id, variant);
|
||||
var topDir = Path.Combine(cachePath, idHash);
|
||||
var versionLocation = GetAssetVersion(version, variantVersion);
|
||||
return Path.Combine(cachePath, idHash, versionLocation);
|
||||
if (!Directory.Exists(topDir))
|
||||
return Path.Combine(topDir, versionLocation);
|
||||
var versionSearchPattern = string.Concat("*", versionLocation.AsSpan(8));
|
||||
var dirs = Directory.GetDirectories(topDir, versionSearchPattern);
|
||||
if (dirs.Length > 0)
|
||||
return dirs.OrderByDescending(dir => ReverseHexToDecimal(Path.GetFileName(dir)).Item2).First();
|
||||
|
||||
|
||||
return Path.Combine(topDir, versionLocation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -16699,7 +16699,6 @@ speechSynthesis.getVoices();
|
||||
var unityPackage = ref.unityPackages[i];
|
||||
if (
|
||||
unityPackage.variant &&
|
||||
unityPackage.variant !== 'standard' &&
|
||||
unityPackage.variant !== 'security'
|
||||
) {
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user