From bbfaa93332a0e8c4f777aed4203912b957cf5282 Mon Sep 17 00:00:00 2001 From: Eve <85962933+obvEve@users.noreply.github.com> Date: Tue, 28 Apr 2026 21:54:23 +0200 Subject: [PATCH 1/2] Optimize: Avoid GroupBy when unnessary --- .../Features/UserSettings/CustomSetting.cs | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/SecretAPI/Features/UserSettings/CustomSetting.cs b/SecretAPI/Features/UserSettings/CustomSetting.cs index 556e9d7..c06972d 100644 --- a/SecretAPI/Features/UserSettings/CustomSetting.cs +++ b/SecretAPI/Features/UserSettings/CustomSetting.cs @@ -300,20 +300,26 @@ public static void SendSettingsToPlayer(Player player, int? version = null) playerSettings.Add(playerSpecific); } - List ordered = ListPool.Shared.Rent(); - foreach (IGrouping grouping in playerSettings.GroupBy(static setting => setting.Header)) + if (playerSettings.Count != 0) { - ordered.Add(grouping.Key.Base); - ordered.AddRange(grouping.Select(static setting => setting.Base)); - } + List ordered = ListPool.Shared.Rent(); + foreach (IGrouping grouping in playerSettings.GroupBy(static setting => setting.Header)) + { + ordered.Add(grouping.Key.Base); + ordered.AddRange(grouping.Select(static setting => setting.Base)); + } - if (ServerSpecificSettingsSync.DefinedSettings != null) ordered.AddRange(ServerSpecificSettingsSync.DefinedSettings); - ServerSpecificSettingsSync.SendToPlayer(player.ReferenceHub, ordered.ToArray(), version); + ServerSpecificSettingsSync.SendToPlayer(player.ReferenceHub, ordered.ToArray(), version); + ListPool.Shared.Return(ordered); + } + else + { + ServerSpecificSettingsSync.SendToPlayer(player.ReferenceHub, ServerSpecificSettingsSync.DefinedSettings, version); + } ListPool.Shared.Return(playerSettings); - ListPool.Shared.Return(ordered); } /// From 8d986a36391b27ad464c6ee0f715affbad11b2d9 Mon Sep 17 00:00:00 2001 From: Eve <85962933+obvEve@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:26:56 +0200 Subject: [PATCH 2/2] optimize: Remove unncessary harmony patch --- SecretAPI/Features/Effects/CustomPlayerEffect.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/SecretAPI/Features/Effects/CustomPlayerEffect.cs b/SecretAPI/Features/Effects/CustomPlayerEffect.cs index 0e63469..5b77bec 100644 --- a/SecretAPI/Features/Effects/CustomPlayerEffect.cs +++ b/SecretAPI/Features/Effects/CustomPlayerEffect.cs @@ -36,7 +36,6 @@ public abstract class CustomPlayerEffect : StatusEffectBase [CallOnLoad] internal static void Initialize() { - SecretApi.Harmony.PatchCategory(nameof(CustomPlayerEffect), SecretApi.Assembly); EffectsToRegister.Add(typeof(Energized)); EffectsToRegister.Add(typeof(Depleted));