Chat now sends formatted messages to allow more complex messages.

This commit is contained in:
Pieter-Jan Briers
2021-02-28 18:51:30 +01:00
parent 11c42f1d59
commit cb8d7730ad
3 changed files with 33 additions and 2 deletions

View File

@@ -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

View File

@@ -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)
{

View File

@@ -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<ListeningSystem>();
listeners.PingListeners(source, message);
message = FormattedMessage.EscapeText(message);
var msg = _netManager.CreateNetMessage<MsgChatMessage>();
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<MsgChatMessage>();
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<MsgChatMessage>();
@@ -273,6 +282,8 @@ namespace Content.Server.Chat
return;
}
message = FormattedMessage.EscapeText(message);
var clients = GetDeadChatClients();
var msg = _netManager.CreateNetMessage<MsgChatMessage>();
@@ -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<MsgChatMessage>();
@@ -313,6 +326,8 @@ namespace Content.Server.Chat
{
var clients = _adminManager.ActiveAdmins.Select(p => p.ConnectedClient);
message = FormattedMessage.EscapeText(message);
var msg = _netManager.CreateNetMessage<MsgChatMessage>();
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<MsgChatMessage>();
msg.Channel = ChatChannel.OOC;
msg.Message = message;