potentially fix pet transient file removal
This commit is contained in:
@@ -92,8 +92,7 @@ public sealed class TransientResourceManager : DisposableMediatorSubscriberBase
|
|||||||
int removedPaths = 0;
|
int removedPaths = 0;
|
||||||
foreach (var replacement in fileReplacement.Where(p => !p.HasFileReplacement).SelectMany(p => p.GamePaths).ToList())
|
foreach (var replacement in fileReplacement.Where(p => !p.HasFileReplacement).SelectMany(p => p.GamePaths).ToList())
|
||||||
{
|
{
|
||||||
removedPaths++;
|
removedPaths += PlayerConfig.RemovePath(replacement, objectKind);
|
||||||
PlayerConfig.RemovePath(replacement);
|
|
||||||
value.Remove(replacement);
|
value.Remove(replacement);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +171,7 @@ public sealed class TransientResourceManager : DisposableMediatorSubscriberBase
|
|||||||
resources.RemoveWhere(f => string.Equals(path, f, StringComparison.Ordinal));
|
resources.RemoveWhere(f => string.Equals(path, f, StringComparison.Ordinal));
|
||||||
if (objectKind == ObjectKind.Player)
|
if (objectKind == ObjectKind.Player)
|
||||||
{
|
{
|
||||||
PlayerConfig.RemovePath(path);
|
PlayerConfig.RemovePath(path, objectKind);
|
||||||
Logger.LogTrace("Saving transient.json from {method}", nameof(RemoveTransientResource));
|
Logger.LogTrace("Saving transient.json from {method}", nameof(RemoveTransientResource));
|
||||||
_configurationService.Save();
|
_configurationService.Save();
|
||||||
}
|
}
|
||||||
@@ -219,7 +218,7 @@ public sealed class TransientResourceManager : DisposableMediatorSubscriberBase
|
|||||||
foreach (var file in semiset.Where(p => list.Contains(p, StringComparer.OrdinalIgnoreCase)))
|
foreach (var file in semiset.Where(p => list.Contains(p, StringComparer.OrdinalIgnoreCase)))
|
||||||
{
|
{
|
||||||
Logger.LogTrace("Removing From SemiTransient: {file}", file);
|
Logger.LogTrace("Removing From SemiTransient: {file}", file);
|
||||||
PlayerConfig.RemovePath(file);
|
PlayerConfig.RemovePath(file, objectKind);
|
||||||
}
|
}
|
||||||
|
|
||||||
int removed = semiset.RemoveWhere(p => list.Contains(p, StringComparer.OrdinalIgnoreCase));
|
int removed = semiset.RemoveWhere(p => list.Contains(p, StringComparer.OrdinalIgnoreCase));
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
namespace MareSynchronos.MareConfiguration.Configurations;
|
using MareSynchronos.API.Data.Enum;
|
||||||
|
|
||||||
|
namespace MareSynchronos.MareConfiguration.Configurations;
|
||||||
|
|
||||||
public class TransientConfig : IMareConfiguration
|
public class TransientConfig : IMareConfiguration
|
||||||
{
|
{
|
||||||
@@ -35,13 +37,25 @@ public class TransientConfig : IMareConfiguration
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemovePath(string gamePath)
|
public int RemovePath(string gamePath, ObjectKind objectKind)
|
||||||
{
|
{
|
||||||
GlobalPersistentCache.Remove(gamePath);
|
int removedEntries = 0;
|
||||||
foreach (var kvp in JobSpecificCache)
|
if (objectKind == ObjectKind.Player)
|
||||||
{
|
{
|
||||||
kvp.Value.Remove(gamePath);
|
if (GlobalPersistentCache.Remove(gamePath)) removedEntries++;
|
||||||
|
foreach (var kvp in JobSpecificCache)
|
||||||
|
{
|
||||||
|
if (kvp.Value.Remove(gamePath)) removedEntries++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (objectKind == ObjectKind.Pet)
|
||||||
|
{
|
||||||
|
foreach (var kvp in JobSpecificPetCache)
|
||||||
|
{
|
||||||
|
if (kvp.Value.Remove(gamePath)) removedEntries++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return removedEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddOrElevate(uint jobId, string gamePath)
|
public void AddOrElevate(uint jobId, string gamePath)
|
||||||
|
|||||||
Reference in New Issue
Block a user