[feat] Sockets, i guess mm hmm

# Conflicts:
#	Content.Server/Administration/Systems/BwoinkSystem.cs
#	Content.Server/Chat/Managers/ChatManager.cs
#	Content.Server/Entry/EntryPoint.cs
#	Content.Server/GameTicking/GameTicker.RoundFlow.cs
#	Content.Server/IoC/ServerContentIoC.cs
#	Content.Server/RoundEnd/RoundEndSystem.cs
#	Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs
#	Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs
#	Content.Shared/CCVar/CCVars.cs
This commit is contained in:
rhailrake
2023-04-27 06:01:05 +06:00
committed by Remuchi
parent eeec02119d
commit aca6843c0a
26 changed files with 1175 additions and 81 deletions

View File

@@ -6,6 +6,7 @@ using Content.Server.Administration.Managers;
using Content.Server.Administration.Systems;
using Content.Server.MoMMI;
using Content.Server.Preferences.Managers;
using Content.Server.UtkaIntegration;
using Content.Server.White.Sponsors;
using Content.Shared.Administration;
using Content.Shared.CCVar;
@@ -49,6 +50,7 @@ namespace Content.Server.Chat.Managers
/// WD-EDIT
[Dependency] private readonly SponsorsManager _sponsorsManager = default!;
[Dependency] private readonly UtkaTCPWrapper _utkaSocketWrapper = default!;
/// WD-EDIT
/// <summary>
@@ -170,7 +172,7 @@ namespace Content.Server.Chat.Managers
public void SendHookOOC(string sender, string message)
{
if (!_oocEnabled && _configurationManager.GetCVar(CCVars.DisablingOOCDisablesRelay))
if (_configurationManager.GetCVar(CCVars.DisableHookedOOC))
{
return;
}
@@ -179,6 +181,28 @@ namespace Content.Server.Chat.Managers
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Hook OOC from {sender}: {message}");
}
//WD-EDIT
public void SendHookAdminChat(string sender, string message)
{
var admins = _adminManager.ActiveAdmins;
var wrappedMessage = Loc.GetString("chat-manager-send-admin-chat-wrap-message",
("adminChannelName", Loc.GetString("chat-manager-admin-discord-channel-name")),
("playerName", sender), ("message", FormattedMessage.EscapeText(message)));
ChatMessageToMany(ChatChannel.Admin, message, wrappedMessage, EntityUid.Invalid, false, true, admins.Select(p => p.ConnectedClient));
var asayEventMessage = new UtkaChatEventMessage()
{
Command = "asay",
Ckey = sender,
Message = message
};
_utkaSocketWrapper.SendMessageToAll(asayEventMessage);
}
//WD-EDIT
#endregion
#region Public OOC Chat API
@@ -254,6 +278,17 @@ namespace Content.Server.Chat.Managers
ChatMessageToAll(ChatChannel.OOC, message, wrappedMessage, EntityUid.Invalid, hideChat: false, recordReplay: true, colorOverride: colorOverride, author: player.UserId);
_mommiLink.SendOOCMessage(player.Name, message);
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"OOC from {player:Player}: {message}");
//WD-EDIT
var toUtkaMessage = new UtkaChatEventMessage()
{
Command = "ooc",
Ckey = player.Name,
Message = message,
};
_utkaSocketWrapper.SendMessageToAll(toUtkaMessage);
//WD-EDIT
}
private void SendAdminChat(ICommonSession player, string message)
@@ -284,6 +319,17 @@ namespace Content.Server.Chat.Managers
}
_adminLogger.Add(LogType.Chat, $"Admin chat from {player:Player}: {message}");
//WD-EDIT
var asayEventMessage = new UtkaChatEventMessage()
{
Command = "asay",
Ckey = player.Name,
Message = message
};
_utkaSocketWrapper.SendMessageToAll(asayEventMessage);
//WD-EDIT
}
#endregion

View File

@@ -21,6 +21,7 @@ namespace Content.Server.Chat.Managers
void TrySendOOCMessage(ICommonSession player, string message, OOCChatType type);
void SendHookOOC(string sender, string message);
void SendHookAdminChat(string sender, string message); // WD-EDIT
void SendAdminAnnouncement(string message);
void SendAdminAlert(string message);
void SendAdminAlert(EntityUid player, string message);

View File

@@ -8,6 +8,7 @@ using Content.Server.Speech.Components;
using Content.Server.Speech.EntitySystems;
using Content.Server.Station.Components;
using Content.Server.Station.Systems;
using Content.Server.UtkaIntegration;
using Content.Shared.ActionBlocker;
using Content.Shared.CCVar;
using Content.Shared.Chat;
@@ -56,6 +57,10 @@ public sealed partial class ChatSystem : SharedChatSystem
[Dependency] private readonly SharedInteractionSystem _interactionSystem = default!;
[Dependency] private readonly ReplacementAccentSystem _wordreplacement = default!;
//WD-EDIT
[Dependency] private readonly UtkaTCPWrapper _utkaSockets = default!;
//WD-EDIT
public const int VoiceRange = 10; // how far voice goes in world units
public const int WhisperClearRange = 2; // how far whisper goes while still being understandable, in world units
public const int WhisperMuffledRange = 5; // how far whisper goes at all, in world units
@@ -571,6 +576,28 @@ public sealed partial class ChatSystem : SharedChatSystem
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Emote from {ToPrettyString(source):user} as {name}: {action}");
else
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Emote from {ToPrettyString(source):user}: {action}");
//WD-EDIT
string ckey = string.Empty;
if (TryComp<ActorComponent>(source, out var actorComponent))
{
ckey = actorComponent.PlayerSession.Name;
}
if(string.IsNullOrEmpty(ckey)) return;
var utkaEmoteEvent = new UtkaChatMeEvent()
{
Ckey = ckey,
Message = action,
CharacterName = MetaData(source).EntityName
};
_utkaSockets.SendMessageToAll(utkaEmoteEvent);
//WD-EDIT
}
// ReSharper disable once InconsistentNaming