From a9f36e6592a86e81dd30631af5dcc89aa61e38f8 Mon Sep 17 00:00:00 2001 From: Simon <63975668+Simyon264@users.noreply.github.com> Date: Sun, 25 May 2025 00:11:01 +0200 Subject: [PATCH] Fix admin chat relay sending to every player online (#37795) --- Content.Server/Chat/Managers/ChatManager.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Content.Server/Chat/Managers/ChatManager.cs b/Content.Server/Chat/Managers/ChatManager.cs index f8eedd5404..c62a10ada3 100644 --- a/Content.Server/Chat/Managers/ChatManager.cs +++ b/Content.Server/Chat/Managers/ChatManager.cs @@ -201,8 +201,23 @@ internal sealed partial class ChatManager : IChatManager public void SendHookAdmin(string sender, string message) { + var clients = _adminManager.ActiveAdmins.Select(p => p.Channel); + var wrappedMessage = Loc.GetString("chat-manager-send-hook-admin-wrap-message", ("senderName", sender), ("message", FormattedMessage.EscapeText(message))); - ChatMessageToAll(ChatChannel.AdminChat, message, wrappedMessage, source: EntityUid.Invalid, hideChat: false, recordReplay: false); + foreach (var client in clients) + { + ChatMessageToOne( + ChatChannel.AdminChat, + message, + wrappedMessage, + source: EntityUid.Invalid, + hideChat: false, + client: client, + recordReplay: false, + audioPath: _netConfigManager.GetClientCVar(client, CCVars.AdminChatSoundPath), + audioVolume: _netConfigManager.GetClientCVar(client, CCVars.AdminChatSoundVolume)); + } + _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Hook admin from {sender}: {message}"); }