Communications Console: The ECSining (#8374)

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Veritius
2022-06-03 21:37:35 +10:00
committed by GitHub
parent c6d20e6ccf
commit 237cb3d0b4
33 changed files with 608 additions and 249 deletions

View File

@@ -3,13 +3,14 @@ using Content.Server.Administration.Logs;
using Content.Server.Administration.Managers;
using Content.Server.MoMMI;
using Content.Server.Preferences.Managers;
using Content.Server.Station.Systems;
using Content.Shared.Administration;
using Content.Shared.CCVar;
using Content.Shared.Chat;
using Content.Shared.Database;
using Robust.Server.Player;
using Robust.Shared.Audio;
using Robust.Shared.Configuration;
using Robust.Shared.Map;
using Robust.Shared.Network;
using Robust.Shared.Player;
using Robust.Shared.Utility;
@@ -35,6 +36,10 @@ namespace Content.Server.Chat.Managers
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
[Dependency] private readonly IServerPreferencesManager _preferencesManager = default!;
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
private StationSystem _stationSystem = default!;
/// <summary>
/// The maximum length a player-sent message can be sent
@@ -46,6 +51,7 @@ namespace Content.Server.Chat.Managers
public void Initialize()
{
_stationSystem = _entityManager.EntitySysManager.GetEntitySystem<StationSystem>();
_netManager.RegisterNetMessage<MsgChatMessage>();
_configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true);
@@ -79,18 +85,6 @@ namespace Content.Server.Chat.Managers
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}");
}
public void DispatchStationAnnouncement(string message, string sender = "Central Command", bool playDefaultSound = true, Color? colorOverride = null)
{
var messageWrap = Loc.GetString("chat-manager-sender-announcement-wrap-message", ("sender", sender));
ChatMessageToAll(ChatChannel.Radio, message, messageWrap, colorOverride);
if (playDefaultSound)
{
SoundSystem.Play(Filter.Broadcast(), "/Audio/Announcements/announce.ogg", AudioParams.Default.WithVolume(-2f));
}
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Station Announcement from {sender}: {message}");
}
public void DispatchServerMessage(IPlayerSession player, string message)
{
var messageWrap = Loc.GetString("chat-manager-server-wrap-message");
@@ -235,6 +229,20 @@ namespace Content.Server.Chat.Managers
_netManager.ServerSendToMany(msg, clients);
}
public void ChatMessageToManyFiltered(Filter filter, ChatChannel channel, string message, string messageWrap, EntityUid source,
bool hideChat, Color? colorOverride = null)
{
if (!filter.Recipients.Any()) return;
var clients = new List<INetChannel>();
foreach (var recipient in filter.Recipients)
{
clients.Add(recipient.ConnectedClient);
}
ChatMessageToMany(channel, message, messageWrap, source, hideChat, clients);
}
public void ChatMessageToAll(ChatChannel channel, string message, string messageWrap, Color? colorOverride = null)
{
var msg = new MsgChatMessage();