add some logging, fix cache handling on load
This commit is contained in:
@@ -47,7 +47,7 @@ public class FileCacheManager : IDisposable
|
||||
var hash = splittedEntry[0];
|
||||
var path = splittedEntry[1];
|
||||
var time = splittedEntry[2];
|
||||
FileCaches[path] = new FileCacheEntity(hash, path, time);
|
||||
FileCaches[path] = ReplacePathPrefixes(new FileCacheEntity(hash, path, time));
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -112,8 +112,8 @@ public class FileCacheManager : IDisposable
|
||||
|
||||
public FileCacheEntity? GetFileCacheByPath(string path)
|
||||
{
|
||||
var cleanedPath = path.Replace("/", "\\", StringComparison.Ordinal).ToLowerInvariant().Replace(_ipcManager.PenumbraModDirectory()!.ToLowerInvariant(), "", StringComparison.Ordinal);
|
||||
var entry = FileCaches.FirstOrDefault(f => f.Value.ResolvedFilepath.EndsWith(cleanedPath, StringComparison.Ordinal)).Value;
|
||||
var cleanedPath = path.Replace("/", "\\", StringComparison.OrdinalIgnoreCase).ToLowerInvariant().Replace(_ipcManager.PenumbraModDirectory()!.ToLowerInvariant(), "", StringComparison.OrdinalIgnoreCase);
|
||||
var entry = FileCaches.FirstOrDefault(f => f.Value.ResolvedFilepath.EndsWith(cleanedPath, StringComparison.OrdinalIgnoreCase)).Value;
|
||||
|
||||
if (entry == null)
|
||||
{
|
||||
|
||||
@@ -39,15 +39,20 @@ public class TransientResourceManager : IDisposable
|
||||
{
|
||||
var persistentEntities = File.ReadAllLines(PersistentDataCache);
|
||||
SemiTransientResources.TryAdd(ObjectKind.Player, new HashSet<FileReplacement>());
|
||||
int restored = 0;
|
||||
foreach (var line in persistentEntities)
|
||||
{
|
||||
var fileReplacement = fileReplacementFactory.Create();
|
||||
fileReplacement.ResolvePath(line);
|
||||
if (fileReplacement.HasFileReplacement)
|
||||
{
|
||||
Logger.Debug("Loaded persistent transient resource " + line);
|
||||
SemiTransientResources[ObjectKind.Player].Add(fileReplacement);
|
||||
restored++;
|
||||
}
|
||||
}
|
||||
|
||||
Logger.Debug($"Restored {restored}/{persistentEntities.Count()} semi persistent resources");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ using MareSynchronos.API;
|
||||
using System.Text.RegularExpressions;
|
||||
using MareSynchronos.FileCache;
|
||||
using MareSynchronos.Managers;
|
||||
using System;
|
||||
using MareSynchronos.Utils;
|
||||
|
||||
namespace MareSynchronos.Models;
|
||||
|
||||
@@ -50,15 +50,24 @@ public class FileReplacement
|
||||
if (!IsFileSwap)
|
||||
{
|
||||
var cache = fileDbManager.GetFileCacheByPath(ResolvedPath);
|
||||
if (cache == null) return false;
|
||||
if (cache == null)
|
||||
{
|
||||
Logger.Warn("Replacement Failed verification: " + GamePaths.First());
|
||||
return false;
|
||||
}
|
||||
Hash = cache.Hash;
|
||||
return true;
|
||||
}
|
||||
|
||||
var resolvedPath = fileDbManager.ResolveFileReplacement(GamePaths.First());
|
||||
ResolvedPath = resolvedPath.ToLowerInvariant();
|
||||
ResolvePath(GamePaths.First());
|
||||
|
||||
return IsFileSwap;
|
||||
var success = IsFileSwap;
|
||||
if (!success)
|
||||
{
|
||||
Logger.Warn("FileSwap Failed verification: " + GamePaths.First());
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
public FileReplacementDto ToFileReplacementDto()
|
||||
|
||||
Reference in New Issue
Block a user