From fba83f0602957ff15ca322e0fe4d2e52701973cb Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Mon, 27 Mar 2023 15:56:25 +0200 Subject: [PATCH] gotta go fast(er) --- MareSynchronos/PlayerData/Pairs/OnlinePlayerManager.cs | 1 - MareSynchronos/PlayerData/Pairs/PairManager.cs | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/MareSynchronos/PlayerData/Pairs/OnlinePlayerManager.cs b/MareSynchronos/PlayerData/Pairs/OnlinePlayerManager.cs index caf9b0d..6868ec4 100644 --- a/MareSynchronos/PlayerData/Pairs/OnlinePlayerManager.cs +++ b/MareSynchronos/PlayerData/Pairs/OnlinePlayerManager.cs @@ -5,7 +5,6 @@ using MareSynchronos.Utils; using MareSynchronos.WebAPI; using MareSynchronos.WebAPI.Files; using Microsoft.Extensions.Logging; -using System.Linq; namespace MareSynchronos.PlayerData.Pairs; diff --git a/MareSynchronos/PlayerData/Pairs/PairManager.cs b/MareSynchronos/PlayerData/Pairs/PairManager.cs index cc26d3d..d95d756 100644 --- a/MareSynchronos/PlayerData/Pairs/PairManager.cs +++ b/MareSynchronos/PlayerData/Pairs/PairManager.cs @@ -93,11 +93,12 @@ public sealed class PairManager : DisposableMediatorSubscriberBase public List<(PlayerCharacter Character, Pair? Pair)> FindAllPairs(List playerCharacters) { - return playerCharacters.Select(p => + var indexedPairs = new Dictionary(StringComparer.Ordinal); + foreach (var pair in _allClientPairs.Values) { - var hash = p.GetHash256(); - return (p, _allClientPairs.Values.FirstOrDefault(f => string.Equals(hash, f.GetPlayerNameHash()))); - }).ToList(); + indexedPairs[pair.GetPlayerNameHash()] = pair; + } + return playerCharacters.Select(p => (p, indexedPairs.TryGetValue(p.GetHash256(), out var pair) ? pair : null)).ToList(); } public Pair? FindPair(PlayerCharacter? pChar)