From 421d6484889b051b123239986a5e3b0175798f15 Mon Sep 17 00:00:00 2001 From: Lucca Faria Ferri Date: Sun, 22 Jan 2023 10:50:48 -0800 Subject: [PATCH] Broadcast and server-wide whisper to PlayerManager --- .../BGS-Server/Battle/PlayerManager.cs | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/DiIiS-NA/BGS-Server/Battle/PlayerManager.cs b/src/DiIiS-NA/BGS-Server/Battle/PlayerManager.cs index 1175cae..cab6cde 100644 --- a/src/DiIiS-NA/BGS-Server/Battle/PlayerManager.cs +++ b/src/DiIiS-NA/BGS-Server/Battle/PlayerManager.cs @@ -28,12 +28,29 @@ namespace DiIiS_NA.LoginServer.Battle OnlinePlayers.Add(client); } - public static BattleClient GetClientbyCID(ulong cid) + public static BattleClient GetClientByCID(ulong cid) { - foreach (var bc in OnlinePlayers) - if (bc.CID == cid) - return bc; - return null; + return OnlinePlayers.FirstOrDefault(bc => bc.CID == cid); + } + + public static void SendWhisper(string message) + { + Broadcast(client => + { + client.SendServerWhisper(message); + }); + } + + public static void Broadcast(Action action, Func predicate) + { + foreach (var client in OnlinePlayers.Where(predicate)) + action(client); + } + + public static void Broadcast(Action action) + { + foreach (var client in OnlinePlayers) + action(client); } public static void PlayerDisconnected(BattleClient client)