From b3dd5a8eeee5d8b7dc8216d08ded0ca8ed70986f Mon Sep 17 00:00:00 2001 From: Bohicatv Date: Tue, 17 Mar 2026 19:16:58 -0700 Subject: [PATCH] adds pooledreflist for chat users --- Projects/UOContent/Engines/Chat/ChatUser.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Projects/UOContent/Engines/Chat/ChatUser.cs b/Projects/UOContent/Engines/Chat/ChatUser.cs index cb52b5772..bd9b91950 100644 --- a/Projects/UOContent/Engines/Chat/ChatUser.cs +++ b/Projects/UOContent/Engines/Chat/ChatUser.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Server.Collections; namespace Server.Engines.Chat { @@ -127,9 +128,16 @@ namespace Server.Engines.Chat return; } + using var ignoringUsers = new PooledRefList(); + for (var i = 0; i < user.Ignoring.Count; ++i) { - user.Ignoring[i].RemoveIgnored(user); + ignoringUsers.Add(user.Ignoring[i]); + } + + for (var i = 0; i < ignoringUsers.Count; i++) + { + ignoringUsers[i].RemoveIgnored(user); } if (_Users.Remove(user)) @@ -172,6 +180,8 @@ namespace Server.Engines.Chat ChatCommand command, ChatUser initiator = null, string param1 = null, string param2 = null ) { + using var usersToProcess = new PooledRefList(); + for (var i = 0; i < _Users.Count; ++i) { var user = _Users[i]; @@ -183,9 +193,14 @@ namespace Server.Engines.Chat if (user.CheckOnline()) { - ChatSystem.SendCommandTo(user.Mobile, command, param1, param2); + usersToProcess.Add(user); } } + + for (var i = 0; i < usersToProcess.Count; i++) + { + ChatSystem.SendCommandTo(usersToProcess[i].Mobile, command, param1, param2); + } } } }