mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-15 12:53:51 +02:00
Fix friends++, saving prints, deleted userdata
This commit is contained in:
@@ -199,17 +199,20 @@ namespace VRCX
|
||||
|
||||
await print.SaveAsPngAsync(tempPath);
|
||||
|
||||
using var oldPngFile = new PNGFile(path);
|
||||
using var newPngFile = new PNGFile(tempPath);
|
||||
|
||||
var oldPngFile = new PNGFile(path);
|
||||
var newPngFile = new PNGFile(tempPath);
|
||||
|
||||
// Copy all iTXt chunks to new file
|
||||
var textChunks = oldPngFile.GetChunksOfType(PNGChunkTypeFilter.iTXt);
|
||||
|
||||
|
||||
for (var i = 0; i < textChunks.Count; i++)
|
||||
{
|
||||
newPngFile.WriteChunk(textChunks[i]);
|
||||
}
|
||||
|
||||
oldPngFile.Dispose();
|
||||
newPngFile.Dispose();
|
||||
|
||||
File.Move(tempPath, path, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -24,20 +24,8 @@ namespace VRCX
|
||||
internal void Init()
|
||||
{
|
||||
var userDataDir = Path.Join(Program.AppDataDirectory, "userdata");
|
||||
|
||||
// delete userdata if Cef version has been downgraded, fixes VRCX not opening after a downgrade
|
||||
var currentVersion = Cef.ChromiumVersion;
|
||||
if (File.Exists(_lastCefVersionPath))
|
||||
{
|
||||
var lastCefVersion = File.ReadAllText(_lastCefVersionPath).Trim();
|
||||
if (string.Compare(lastCefVersion, currentVersion, StringComparison.Ordinal) > 0)
|
||||
{
|
||||
logger.Info("Cef downgrade detected, deleting userdata: {0} -> {1}", lastCefVersion, currentVersion);
|
||||
Directory.Delete(userDataDir, true);
|
||||
}
|
||||
}
|
||||
File.WriteAllBytes(_lastCefVersionPath, Encoding.UTF8.GetBytes(currentVersion));
|
||||
logger.Info("Cef version: {0}", currentVersion);
|
||||
CheckCefVersion(userDataDir);
|
||||
|
||||
var cefSettings = new CefSettings
|
||||
{
|
||||
@@ -125,6 +113,51 @@ namespace VRCX
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckCefVersion(string userDataDir)
|
||||
{
|
||||
var currentVersion = Cef.ChromiumVersion;
|
||||
if (File.Exists(_lastCefVersionPath))
|
||||
{
|
||||
var lastCefVersion = File.ReadAllText(_lastCefVersionPath).Trim();
|
||||
var lastCefVersionParts = lastCefVersion.Split('.');
|
||||
var currentVersionParts = currentVersion.Split('.');
|
||||
if (lastCefVersionParts.Length != currentVersionParts.Length)
|
||||
{
|
||||
logger.Info("Cef version mismatch detected, deleting userdata: {0} -> {1}", lastCefVersion,
|
||||
currentVersion);
|
||||
DeleteUserData(userDataDir);
|
||||
}
|
||||
|
||||
for (var i = 0; i < lastCefVersionParts.Length; i++)
|
||||
{
|
||||
if (int.TryParse(lastCefVersionParts[i], out var lastPart) &&
|
||||
int.TryParse(currentVersionParts[i], out var currentPart) &&
|
||||
lastPart > currentPart)
|
||||
{
|
||||
logger.Info("Cef downgrade detected, deleting userdata: {0} -> {1}", lastCefVersion,
|
||||
currentVersion);
|
||||
DeleteUserData(userDataDir);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File.WriteAllBytes(_lastCefVersionPath, Encoding.UTF8.GetBytes(currentVersion));
|
||||
logger.Info("Cef version: {0}", currentVersion);
|
||||
}
|
||||
|
||||
private static void DeleteUserData(string userDataDir)
|
||||
{
|
||||
if (!Directory.Exists(userDataDir))
|
||||
return;
|
||||
|
||||
try {
|
||||
Directory.Delete(userDataDir, true);
|
||||
} catch (Exception ex) {
|
||||
logger.Error(ex, "Failed to delete userdata directory: {0}", userDataDir);
|
||||
}
|
||||
}
|
||||
|
||||
internal void Exit()
|
||||
{
|
||||
Cef.Shutdown();
|
||||
|
||||
@@ -191,7 +191,7 @@ export const useDiscordPresenceSettingsStore = defineStore(
|
||||
state.lastLocationDetails.accessName = `${t('dialog.new_instance.access_type_friend')} #${L.instanceName} (${platform})`;
|
||||
break;
|
||||
case 'friends+':
|
||||
state.lastLocationDetails.accessName = `${t('dialog.new_instance.access_type_friend_plus')}+ #${L.instanceName} (${platform})`;
|
||||
state.lastLocationDetails.accessName = `${t('dialog.new_instance.access_type_friend_plus')} #${L.instanceName} (${platform})`;
|
||||
break;
|
||||
case 'group':
|
||||
state.lastLocationDetails.accessName = `${t('dialog.new_instance.access_type_group')} #${L.instanceName} (${platform})`;
|
||||
|
||||
Reference in New Issue
Block a user