optimize hash computation

This commit is contained in:
rootdarkarchon
2023-03-27 11:37:39 +02:00
parent 1aa0563fc0
commit 4cabc39e45
4 changed files with 57 additions and 32 deletions

View File

@@ -45,22 +45,10 @@ public class Pair
public CharacterData? LastReceivedCharacterData { get; set; }
public string? PlayerName => CachedPlayer?.PlayerName ?? string.Empty;
public string GetPlayerNameHash()
{
try
{
return CachedPlayer?.PlayerNameHash ?? string.Empty;
}
catch (Exception ex)
{
_logger.LogWarning(ex, "Error accessing PlayerNameHash, recreating CachedPlayer");
RecreateCachedPlayer();
}
return string.Empty;
}
public UserData UserData => UserPair?.User ?? GroupPair.First().Value.User;
public UserPairDto? UserPair { get; set; }
private CachedPlayer? CachedPlayer { get; set; }
public void AddContextMenu(GameObjectContextMenuOpenArgs args)
@@ -118,6 +106,21 @@ public class Pair
return _serverConfigurationManager.GetNoteForUid(UserData.UID);
}
public string GetPlayerNameHash()
{
try
{
return CachedPlayer?.PlayerNameHash ?? string.Empty;
}
catch (Exception ex)
{
_logger.LogWarning(ex, "Error accessing PlayerNameHash, recreating CachedPlayer");
RecreateCachedPlayer();
}
return string.Empty;
}
public bool HasAnyConnection()
{
return UserPair != null || GroupPair.Any();
@@ -203,14 +206,14 @@ public class Pair
if (disableAnimations || disableSounds)
{
_logger.LogTrace("Data cleaned up: Animations disabled: {disableAnimations}, Sounds disabled: {disableSounds}", disableAnimations, disableSounds);
foreach (var kvp in data.FileReplacements)
foreach (var objectKind in data.FileReplacements.Select(k => k.Key))
{
if (disableSounds)
data.FileReplacements[kvp.Key] = data.FileReplacements[kvp.Key]
data.FileReplacements[objectKind] = data.FileReplacements[objectKind]
.Where(f => !f.GamePaths.Any(p => p.EndsWith("scd", StringComparison.OrdinalIgnoreCase)))
.ToList();
if (disableAnimations)
data.FileReplacements[kvp.Key] = data.FileReplacements[kvp.Key]
data.FileReplacements[objectKind] = data.FileReplacements[objectKind]
.Where(f => !f.GamePaths.Any(p => p.EndsWith("tmb", StringComparison.OrdinalIgnoreCase) || p.EndsWith("pap", StringComparison.OrdinalIgnoreCase)))
.ToList();
}