Fix admin chat relay sending to every player online (#37795)

This commit is contained in:
Simon
2025-05-25 00:11:01 +02:00
committed by GitHub
parent ec3edb7264
commit a9f36e6592

View File

@@ -201,8 +201,23 @@ internal sealed partial class ChatManager : IChatManager
public void SendHookAdmin(string sender, string message) 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))); 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}"); _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Hook admin from {sender}: {message}");
} }