From a1b67bc505e2e937401a9f320e8920c5fa2b2772 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Wed, 19 Jan 2022 13:35:31 +1100 Subject: [PATCH] Chat adminlogs (#6209) --- Content.Server/Chat/Managers/ChatManager.cs | 35 +++++++++++++++++++++ Content.Server/Entry/EntryPoint.cs | 5 ++- Content.Shared.Database/LogType.cs | 1 + 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/Content.Server/Chat/Managers/ChatManager.cs b/Content.Server/Chat/Managers/ChatManager.cs index 09aeb75338..0424d519c6 100644 --- a/Content.Server/Chat/Managers/ChatManager.cs +++ b/Content.Server/Chat/Managers/ChatManager.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using Content.Server.Administration.Logs; using Content.Server.Administration.Managers; using Content.Server.Ghost.Components; using Content.Server.Headset; @@ -13,6 +14,7 @@ using Content.Shared.ActionBlocker; using Content.Shared.Administration; using Content.Shared.CCVar; using Content.Shared.Chat; +using Content.Shared.Database; using Content.Shared.Inventory; using Content.Shared.Popups; using Robust.Server.GameObjects; @@ -56,6 +58,8 @@ namespace Content.Server.Chat.Managers [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly IRobustRandom _random = default!; + private AdminLogSystem _logs = default!; + /// /// The maximum length a player-sent message can be sent /// @@ -73,6 +77,7 @@ namespace Content.Server.Chat.Managers public void Initialize() { + _logs = EntitySystem.Get(); _netManager.RegisterNetMessage(); _configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true); @@ -82,18 +87,24 @@ namespace Content.Server.Chat.Managers private void OnOocEnabledChanged(bool val) { + if (_oocEnabled == val) return; + _oocEnabled = val; DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-ooc-chat-enabled-message" : "chat-manager-ooc-chat-disabled-message")); } private void OnLoocEnabledChanged(bool val) { + if (_loocEnabled == val) return; + _loocEnabled = val; DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-looc-chat-enabled-message" : "chat-manager-looc-chat-disabled-message")); } private void OnAdminOocEnabledChanged(bool val) { + if (_adminOocEnabled == val) return; + _adminOocEnabled = val; DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-admin-ooc-chat-enabled-message" : "chat-manager-admin-ooc-chat-disabled-message")); } @@ -103,6 +114,8 @@ namespace Content.Server.Chat.Managers var messageWrap = Loc.GetString("chat-manager-server-wrap-message"); NetMessageToAll(ChatChannel.Server, message, messageWrap); Logger.InfoS("SERVER", message); + + _logs.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}"); } public void DispatchStationAnnouncement(string message, string sender = "CentComm", bool playDefaultSound = true) @@ -113,6 +126,8 @@ namespace Content.Server.Chat.Managers { SoundSystem.Play(Filter.Broadcast(), "/Audio/Announcements/announce.ogg", AudioParams.Default.WithVolume(-2f)); } + + _logs.Add(LogType.Chat, LogImpact.Low, $"Station Announcement from {sender}: {message}"); } public void DispatchServerMessage(IPlayerSession player, string message) @@ -123,6 +138,8 @@ namespace Content.Server.Chat.Managers msg.Message = message; msg.MessageWrap = messageWrap; _netManager.ServerSendMessage(msg, player.ConnectedClient); + + _logs.Add(LogType.Chat, LogImpact.Low, $"Server message from {player:Player}: {message}"); } public void TrySpeak(EntityUid source, string message, bool isWhisper = false, IConsoleShell? shell = null, IPlayerSession? player = null) @@ -197,6 +214,8 @@ namespace Content.Server.Chat.Managers { NetMessageToOne(ChatChannel.Local, message, messageWrap, source, hideChat, session.ConnectedClient); } + + _logs.Add(LogType.Chat, LogImpact.Low, $"Say from {_entManager.ToPrettyString(source):user}: {message}"); } public void EntityWhisper(EntityUid source, string message, bool hideChat=false) @@ -252,6 +271,8 @@ namespace Content.Server.Chat.Managers NetMessageToOne(ChatChannel.Whisper, obfuscatedMessage, messageWrap, source, hideChat, session.ConnectedClient); } } + + _logs.Add(LogType.Chat, LogImpact.Low, $"Whisper from {_entManager.ToPrettyString(source):user}: {message}"); } public void EntityMe(EntityUid source, string action) @@ -278,6 +299,8 @@ namespace Content.Server.Chat.Managers { NetMessageToOne(ChatChannel.Emotes, action, messageWrap, source, true, session.ConnectedClient); } + + _logs.Add(LogType.Chat, LogImpact.Low, $"Emote from {_entManager.ToPrettyString(source):user}: {action}"); } public void SendLOOC(IPlayerSession player, string message) @@ -320,6 +343,8 @@ namespace Content.Server.Chat.Managers msg.Message = message; msg.MessageWrap = Loc.GetString("chat-manager-entity-looc-wrap-message", ("entityName", Name: _entManager.GetComponent(entity).EntityName)); _netManager.ServerSendToMany(msg, clients); + + _logs.Add(LogType.Chat, LogImpact.Low, $"LOOC from {player:Player}: {message}"); } public void SendOOC(IPlayerSession player, string message) @@ -364,6 +389,7 @@ namespace Content.Server.Chat.Managers _netManager.ServerSendToAll(msg); _mommiLink.SendOOCMessage(player.Name, message); + _logs.Add(LogType.Chat, LogImpact.Low, $"OOC from {player:Player}: {message}"); } public void SendDeadChat(IPlayerSession player, string message) @@ -391,6 +417,8 @@ namespace Content.Server.Chat.Managers ("playerName", (playerName))); msg.SenderEntity = player.AttachedEntity.GetValueOrDefault(); _netManager.ServerSendToMany(msg, clients.ToList()); + + _logs.Add(LogType.Chat, LogImpact.Low, $"Dead chat from {player:Player}: {message}"); } public void SendAdminDeadChat(IPlayerSession player, string message) @@ -413,6 +441,8 @@ namespace Content.Server.Chat.Managers ("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")), ("userName", player.ConnectedClient.UserName)); _netManager.ServerSendToMany(msg, clients.ToList()); + + _logs.Add(LogType.Chat, LogImpact.Low, $"Admin dead chat from {player:Player}: {message}"); } private IEnumerable GetDeadChatClients() @@ -445,6 +475,8 @@ namespace Content.Server.Chat.Managers ("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")), ("playerName", player.Name)); _netManager.ServerSendToMany(msg, clients.ToList()); + + _logs.Add(LogType.Chat, $"Admin chat from {player:Player}: {message}"); } public void SendAdminAnnouncement(string message) @@ -461,6 +493,8 @@ namespace Content.Server.Chat.Managers ("adminChannelName", Loc.GetString("chat-manager-admin-channel-name"))); _netManager.ServerSendToMany(msg, clients.ToList()); + + _logs.Add(LogType.Chat, LogImpact.Low, $"Admin announcement from {message}: {message}"); } public void SendHookOOC(string sender, string message) @@ -468,6 +502,7 @@ namespace Content.Server.Chat.Managers message = FormattedMessage.EscapeText(message); var messageWrap = Loc.GetString("chat-manager-send-hook-ooc-wrap-message", ("senderName", sender)); NetMessageToAll(ChatChannel.OOC, message, messageWrap); + _logs.Add(LogType.Chat, LogImpact.Low, $"Hook OOC from {sender}: {message}"); } public void RegisterChatTransform(TransformChat handler) diff --git a/Content.Server/Entry/EntryPoint.cs b/Content.Server/Entry/EntryPoint.cs index 7a513b634d..75dad2ddfa 100644 --- a/Content.Server/Entry/EntryPoint.cs +++ b/Content.Server/Entry/EntryPoint.cs @@ -75,9 +75,6 @@ namespace Content.Server.Entry _euiManager = IoCManager.Resolve(); _voteManager = IoCManager.Resolve(); - IoCManager.Resolve().Initialize(); - IoCManager.Resolve().Initialize(); - var playerManager = IoCManager.Resolve(); var logManager = IoCManager.Resolve(); @@ -97,6 +94,8 @@ namespace Content.Server.Entry { base.PostInit(); + IoCManager.Resolve().Initialize(); + IoCManager.Resolve().Initialize(); var configManager = IoCManager.Resolve(); var resourceManager = IoCManager.Resolve(); var dest = configManager.GetCVar(CCVars.DestinationFile); diff --git a/Content.Shared.Database/LogType.cs b/Content.Shared.Database/LogType.cs index 80e3eb0609..e60a9381d4 100644 --- a/Content.Shared.Database/LogType.cs +++ b/Content.Shared.Database/LogType.cs @@ -62,4 +62,5 @@ public enum LogType AtmosRatioChanged = 58, Emitter = 59, GhostRoleTaken = 60, + Chat = 61, }