diff --git a/Content.Client/Chat/ChatBox.cs b/Content.Client/Chat/ChatBox.cs index 7c4c650752..b4f3e9ad52 100644 --- a/Content.Client/Chat/ChatBox.cs +++ b/Content.Client/Chat/ChatBox.cs @@ -154,6 +154,20 @@ namespace Content.Client.Chat Contents.AddMessage(formatted); } + public void AddLine(FormattedMessage message, Color color) + { + if (Disposed) + { + return; + } + + var formatted = new FormattedMessage(3); + formatted.PushColor(color); + formatted.AddMessage(message); + formatted.Pop(); + Contents.AddMessage(formatted); + } + private void Input_OnTextEntered(LineEdit.LineEditEventArgs args) { // We set it there to true so it's set to false by TextSubmitted.Invoke if necessary diff --git a/Content.Client/Chat/ChatManager.cs b/Content.Client/Chat/ChatManager.cs index 2b02428b45..d720c75ea1 100644 --- a/Content.Client/Chat/ChatManager.cs +++ b/Content.Client/Chat/ChatManager.cs @@ -222,7 +222,7 @@ namespace Content.Client.Chat }; } - _currentChatBox?.AddLine(messageText, message.Channel, color); + _currentChatBox?.AddLine(FormattedMessage.FromMarkup(messageText), color); } private void OnChatBoxTextSubmitted(ChatBox chatBox, string text) @@ -422,7 +422,7 @@ namespace Content.Client.Chat return; } - var messages = SplitMessage(msg.Message); + var messages = SplitMessage(FormattedMessage.RemoveMarkup(msg.Message)); foreach (var message in messages) { diff --git a/Content.Server/Chat/ChatManager.cs b/Content.Server/Chat/ChatManager.cs index 9a107d1568..0787dee570 100644 --- a/Content.Server/Chat/ChatManager.cs +++ b/Content.Server/Chat/ChatManager.cs @@ -22,6 +22,7 @@ using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Log; using Robust.Shared.Network; +using Robust.Shared.Utility; using static Content.Server.Interfaces.Chat.IChatManager; namespace Content.Server.Chat @@ -170,6 +171,8 @@ namespace Content.Server.Chat var listeners = EntitySystem.Get(); listeners.PingListeners(source, message); + message = FormattedMessage.EscapeText(message); + var msg = _netManager.CreateNetMessage(); msg.Channel = ChatChannel.Local; msg.Message = message; @@ -198,6 +201,8 @@ namespace Content.Server.Chat return; } + action = FormattedMessage.EscapeText(action); + var pos = source.Transform.Coordinates; var clients = _playerManager.GetPlayersInRange(pos, VoiceRange).Select(p => p.ConnectedClient); @@ -230,6 +235,8 @@ namespace Content.Server.Chat return; } + message = FormattedMessage.EscapeText(message); + var msg = _netManager.CreateNetMessage(); msg.Channel = ChatChannel.OOC; msg.Message = message; @@ -254,6 +261,8 @@ namespace Content.Server.Chat return; } + message = FormattedMessage.EscapeText(message); + var clients = GetDeadChatClients(); var msg = _netManager.CreateNetMessage(); @@ -273,6 +282,8 @@ namespace Content.Server.Chat return; } + message = FormattedMessage.EscapeText(message); + var clients = GetDeadChatClients(); var msg = _netManager.CreateNetMessage(); @@ -299,6 +310,8 @@ namespace Content.Server.Chat return; } + message = FormattedMessage.EscapeText(message); + var clients = _adminManager.ActiveAdmins.Select(p => p.ConnectedClient); var msg = _netManager.CreateNetMessage(); @@ -313,6 +326,8 @@ namespace Content.Server.Chat { var clients = _adminManager.ActiveAdmins.Select(p => p.ConnectedClient); + message = FormattedMessage.EscapeText(message); + var msg = _netManager.CreateNetMessage(); msg.Channel = ChatChannel.AdminChat; @@ -324,6 +339,8 @@ namespace Content.Server.Chat public void SendHookOOC(string sender, string message) { + message = FormattedMessage.EscapeText(message); + var msg = _netManager.CreateNetMessage(); msg.Channel = ChatChannel.OOC; msg.Message = message;