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,
}