]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix admin chat relay sending to every player online (#37795)
authorSimon <63975668+Simyon264@users.noreply.github.com>
Sat, 24 May 2025 22:11:01 +0000 (00:11 +0200)
committerGitHub <noreply@github.com>
Sat, 24 May 2025 22:11:01 +0000 (00:11 +0200)
Content.Server/Chat/Managers/ChatManager.cs

index f8eedd5404283cfd2861716e72b729de47c976bb..c62a10ada362c995e4394bd56c8d1f639c856bbf 100644 (file)
@@ -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}");
     }