mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-07 14:56: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');
|
return versionHex.PadLeft(32, '0');
|
||||||
}
|
}
|
||||||
|
|
||||||
public int ReverseHexToDecimal(string hexString)
|
public (int, int) ReverseHexToDecimal(string hexString)
|
||||||
{
|
{
|
||||||
if (hexString.Length != 32)
|
if (hexString.Length != 32)
|
||||||
return 0; // it's cooked
|
return (0, 0); // it's cooked
|
||||||
|
|
||||||
try {
|
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 versionHexString = hexString.Substring(24, 8); // 24..32
|
||||||
var versionBytes = new byte[4];
|
var versionBytes = new byte[4];
|
||||||
var variantVersionBytes = new byte[4];
|
var variantVersionBytes = new byte[4];
|
||||||
@@ -85,12 +85,12 @@ namespace VRCX
|
|||||||
}
|
}
|
||||||
var version = BitConverter.ToInt32(versionBytes, 0);
|
var version = BitConverter.ToInt32(versionBytes, 0);
|
||||||
var variantVersion = BitConverter.ToInt32(variantVersionBytes, 0);
|
var variantVersion = BitConverter.ToInt32(variantVersionBytes, 0);
|
||||||
return version + variantVersion;
|
return (version, variantVersion);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
logger.Error($"Failed to convert hex to decimal: {hexString} {ex}");
|
logger.Error($"Failed to convert hex to decimal: {hexString} {ex}");
|
||||||
return 0; // it's cooked
|
return (0, 0); // it's cooked
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,8 +111,17 @@ namespace VRCX
|
|||||||
{
|
{
|
||||||
var cachePath = GetVRChatCacheLocation();
|
var cachePath = GetVRChatCacheLocation();
|
||||||
var idHash = GetAssetId(id, variant);
|
var idHash = GetAssetId(id, variant);
|
||||||
|
var topDir = Path.Combine(cachePath, idHash);
|
||||||
var versionLocation = GetAssetVersion(version, variantVersion);
|
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>
|
/// <summary>
|
||||||
|
|||||||
@@ -16699,7 +16699,6 @@ speechSynthesis.getVoices();
|
|||||||
var unityPackage = ref.unityPackages[i];
|
var unityPackage = ref.unityPackages[i];
|
||||||
if (
|
if (
|
||||||
unityPackage.variant &&
|
unityPackage.variant &&
|
||||||
unityPackage.variant !== 'standard' &&
|
|
||||||
unityPackage.variant !== 'security'
|
unityPackage.variant !== 'security'
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user