Chat adminlogs (#6209)
This commit is contained in:
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Content.Server.Administration.Logs;
|
||||||
using Content.Server.Administration.Managers;
|
using Content.Server.Administration.Managers;
|
||||||
using Content.Server.Ghost.Components;
|
using Content.Server.Ghost.Components;
|
||||||
using Content.Server.Headset;
|
using Content.Server.Headset;
|
||||||
@@ -13,6 +14,7 @@ using Content.Shared.ActionBlocker;
|
|||||||
using Content.Shared.Administration;
|
using Content.Shared.Administration;
|
||||||
using Content.Shared.CCVar;
|
using Content.Shared.CCVar;
|
||||||
using Content.Shared.Chat;
|
using Content.Shared.Chat;
|
||||||
|
using Content.Shared.Database;
|
||||||
using Content.Shared.Inventory;
|
using Content.Shared.Inventory;
|
||||||
using Content.Shared.Popups;
|
using Content.Shared.Popups;
|
||||||
using Robust.Server.GameObjects;
|
using Robust.Server.GameObjects;
|
||||||
@@ -56,6 +58,8 @@ namespace Content.Server.Chat.Managers
|
|||||||
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
||||||
[Dependency] private readonly IRobustRandom _random = default!;
|
[Dependency] private readonly IRobustRandom _random = default!;
|
||||||
|
|
||||||
|
private AdminLogSystem _logs = default!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The maximum length a player-sent message can be sent
|
/// The maximum length a player-sent message can be sent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -73,6 +77,7 @@ namespace Content.Server.Chat.Managers
|
|||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
|
_logs = EntitySystem.Get<AdminLogSystem>();
|
||||||
_netManager.RegisterNetMessage<MsgChatMessage>();
|
_netManager.RegisterNetMessage<MsgChatMessage>();
|
||||||
|
|
||||||
_configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true);
|
_configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true);
|
||||||
@@ -82,18 +87,24 @@ namespace Content.Server.Chat.Managers
|
|||||||
|
|
||||||
private void OnOocEnabledChanged(bool val)
|
private void OnOocEnabledChanged(bool val)
|
||||||
{
|
{
|
||||||
|
if (_oocEnabled == val) return;
|
||||||
|
|
||||||
_oocEnabled = val;
|
_oocEnabled = val;
|
||||||
DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-ooc-chat-enabled-message" : "chat-manager-ooc-chat-disabled-message"));
|
DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-ooc-chat-enabled-message" : "chat-manager-ooc-chat-disabled-message"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnLoocEnabledChanged(bool val)
|
private void OnLoocEnabledChanged(bool val)
|
||||||
{
|
{
|
||||||
|
if (_loocEnabled == val) return;
|
||||||
|
|
||||||
_loocEnabled = val;
|
_loocEnabled = val;
|
||||||
DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-looc-chat-enabled-message" : "chat-manager-looc-chat-disabled-message"));
|
DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-looc-chat-enabled-message" : "chat-manager-looc-chat-disabled-message"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnAdminOocEnabledChanged(bool val)
|
private void OnAdminOocEnabledChanged(bool val)
|
||||||
{
|
{
|
||||||
|
if (_adminOocEnabled == val) return;
|
||||||
|
|
||||||
_adminOocEnabled = val;
|
_adminOocEnabled = val;
|
||||||
DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-admin-ooc-chat-enabled-message" : "chat-manager-admin-ooc-chat-disabled-message"));
|
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");
|
var messageWrap = Loc.GetString("chat-manager-server-wrap-message");
|
||||||
NetMessageToAll(ChatChannel.Server, message, messageWrap);
|
NetMessageToAll(ChatChannel.Server, message, messageWrap);
|
||||||
Logger.InfoS("SERVER", message);
|
Logger.InfoS("SERVER", message);
|
||||||
|
|
||||||
|
_logs.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DispatchStationAnnouncement(string message, string sender = "CentComm", bool playDefaultSound = true)
|
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));
|
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)
|
public void DispatchServerMessage(IPlayerSession player, string message)
|
||||||
@@ -123,6 +138,8 @@ namespace Content.Server.Chat.Managers
|
|||||||
msg.Message = message;
|
msg.Message = message;
|
||||||
msg.MessageWrap = messageWrap;
|
msg.MessageWrap = messageWrap;
|
||||||
_netManager.ServerSendMessage(msg, player.ConnectedClient);
|
_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)
|
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);
|
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)
|
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);
|
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)
|
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);
|
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)
|
public void SendLOOC(IPlayerSession player, string message)
|
||||||
@@ -320,6 +343,8 @@ namespace Content.Server.Chat.Managers
|
|||||||
msg.Message = message;
|
msg.Message = message;
|
||||||
msg.MessageWrap = Loc.GetString("chat-manager-entity-looc-wrap-message", ("entityName", Name: _entManager.GetComponent<MetaDataComponent>(entity).EntityName));
|
msg.MessageWrap = Loc.GetString("chat-manager-entity-looc-wrap-message", ("entityName", Name: _entManager.GetComponent<MetaDataComponent>(entity).EntityName));
|
||||||
_netManager.ServerSendToMany(msg, clients);
|
_netManager.ServerSendToMany(msg, clients);
|
||||||
|
|
||||||
|
_logs.Add(LogType.Chat, LogImpact.Low, $"LOOC from {player:Player}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendOOC(IPlayerSession player, string message)
|
public void SendOOC(IPlayerSession player, string message)
|
||||||
@@ -364,6 +389,7 @@ namespace Content.Server.Chat.Managers
|
|||||||
_netManager.ServerSendToAll(msg);
|
_netManager.ServerSendToAll(msg);
|
||||||
|
|
||||||
_mommiLink.SendOOCMessage(player.Name, message);
|
_mommiLink.SendOOCMessage(player.Name, message);
|
||||||
|
_logs.Add(LogType.Chat, LogImpact.Low, $"OOC from {player:Player}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendDeadChat(IPlayerSession player, string message)
|
public void SendDeadChat(IPlayerSession player, string message)
|
||||||
@@ -391,6 +417,8 @@ namespace Content.Server.Chat.Managers
|
|||||||
("playerName", (playerName)));
|
("playerName", (playerName)));
|
||||||
msg.SenderEntity = player.AttachedEntity.GetValueOrDefault();
|
msg.SenderEntity = player.AttachedEntity.GetValueOrDefault();
|
||||||
_netManager.ServerSendToMany(msg, clients.ToList());
|
_netManager.ServerSendToMany(msg, clients.ToList());
|
||||||
|
|
||||||
|
_logs.Add(LogType.Chat, LogImpact.Low, $"Dead chat from {player:Player}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAdminDeadChat(IPlayerSession player, string 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")),
|
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")),
|
||||||
("userName", player.ConnectedClient.UserName));
|
("userName", player.ConnectedClient.UserName));
|
||||||
_netManager.ServerSendToMany(msg, clients.ToList());
|
_netManager.ServerSendToMany(msg, clients.ToList());
|
||||||
|
|
||||||
|
_logs.Add(LogType.Chat, LogImpact.Low, $"Admin dead chat from {player:Player}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<INetChannel> GetDeadChatClients()
|
private IEnumerable<INetChannel> GetDeadChatClients()
|
||||||
@@ -445,6 +475,8 @@ namespace Content.Server.Chat.Managers
|
|||||||
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")),
|
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")),
|
||||||
("playerName", player.Name));
|
("playerName", player.Name));
|
||||||
_netManager.ServerSendToMany(msg, clients.ToList());
|
_netManager.ServerSendToMany(msg, clients.ToList());
|
||||||
|
|
||||||
|
_logs.Add(LogType.Chat, $"Admin chat from {player:Player}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAdminAnnouncement(string message)
|
public void SendAdminAnnouncement(string message)
|
||||||
@@ -461,6 +493,8 @@ namespace Content.Server.Chat.Managers
|
|||||||
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")));
|
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")));
|
||||||
|
|
||||||
_netManager.ServerSendToMany(msg, clients.ToList());
|
_netManager.ServerSendToMany(msg, clients.ToList());
|
||||||
|
|
||||||
|
_logs.Add(LogType.Chat, LogImpact.Low, $"Admin announcement from {message}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendHookOOC(string sender, string message)
|
public void SendHookOOC(string sender, string message)
|
||||||
@@ -468,6 +502,7 @@ namespace Content.Server.Chat.Managers
|
|||||||
message = FormattedMessage.EscapeText(message);
|
message = FormattedMessage.EscapeText(message);
|
||||||
var messageWrap = Loc.GetString("chat-manager-send-hook-ooc-wrap-message", ("senderName", sender));
|
var messageWrap = Loc.GetString("chat-manager-send-hook-ooc-wrap-message", ("senderName", sender));
|
||||||
NetMessageToAll(ChatChannel.OOC, message, messageWrap);
|
NetMessageToAll(ChatChannel.OOC, message, messageWrap);
|
||||||
|
_logs.Add(LogType.Chat, LogImpact.Low, $"Hook OOC from {sender}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegisterChatTransform(TransformChat handler)
|
public void RegisterChatTransform(TransformChat handler)
|
||||||
|
|||||||
@@ -75,9 +75,6 @@ namespace Content.Server.Entry
|
|||||||
_euiManager = IoCManager.Resolve<EuiManager>();
|
_euiManager = IoCManager.Resolve<EuiManager>();
|
||||||
_voteManager = IoCManager.Resolve<IVoteManager>();
|
_voteManager = IoCManager.Resolve<IVoteManager>();
|
||||||
|
|
||||||
IoCManager.Resolve<IChatSanitizationManager>().Initialize();
|
|
||||||
IoCManager.Resolve<IChatManager>().Initialize();
|
|
||||||
|
|
||||||
var playerManager = IoCManager.Resolve<IPlayerManager>();
|
var playerManager = IoCManager.Resolve<IPlayerManager>();
|
||||||
|
|
||||||
var logManager = IoCManager.Resolve<ILogManager>();
|
var logManager = IoCManager.Resolve<ILogManager>();
|
||||||
@@ -97,6 +94,8 @@ namespace Content.Server.Entry
|
|||||||
{
|
{
|
||||||
base.PostInit();
|
base.PostInit();
|
||||||
|
|
||||||
|
IoCManager.Resolve<IChatSanitizationManager>().Initialize();
|
||||||
|
IoCManager.Resolve<IChatManager>().Initialize();
|
||||||
var configManager = IoCManager.Resolve<IConfigurationManager>();
|
var configManager = IoCManager.Resolve<IConfigurationManager>();
|
||||||
var resourceManager = IoCManager.Resolve<IResourceManager>();
|
var resourceManager = IoCManager.Resolve<IResourceManager>();
|
||||||
var dest = configManager.GetCVar(CCVars.DestinationFile);
|
var dest = configManager.GetCVar(CCVars.DestinationFile);
|
||||||
|
|||||||
@@ -62,4 +62,5 @@ public enum LogType
|
|||||||
AtmosRatioChanged = 58,
|
AtmosRatioChanged = 58,
|
||||||
Emitter = 59,
|
Emitter = 59,
|
||||||
GhostRoleTaken = 60,
|
GhostRoleTaken = 60,
|
||||||
|
Chat = 61,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user