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)); 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); } ///