Make chat & examine systems use FormattedMessage.EscapeText() (#28431)

This commit is contained in:
Leon Friedrich 2024-06-01 08:05:34 +12:00 committed by null
parent 1a53fbb682
commit 6427cc560e
No known key found for this signature in database
GPG Key ID: 212F05528FD678BE
3 changed files with 15 additions and 6 deletions

View File

@ -239,9 +239,7 @@ namespace Content.Client.Examine
if (knowTarget)
{
// TODO: FormattedMessage.RemoveMarkupPermissive
// var itemName = FormattedMessage.RemoveMarkupPermissive(Identity.Name(target, EntityManager, player));
var itemName = FormattedMessage.FromMarkupPermissive(Identity.Name(target, EntityManager, player)).ToString();
var itemName = FormattedMessage.EscapeText(Identity.Name(target, EntityManager, player));
var labelMessage = FormattedMessage.FromMarkupPermissive($"[bold]{itemName}[/bold]");
var label = new RichTextLabel();
label.SetMessage(labelMessage);
@ -250,7 +248,7 @@ namespace Content.Client.Examine
else
{
var label = new RichTextLabel();
label.SetMessage(FormattedMessage.FromMarkup("[bold]???[/bold]"));
label.SetMessage(FormattedMessage.FromMarkupOrThrow("[bold]???[/bold]"));
hBox.AddChild(label);
}

View File

@ -388,7 +388,7 @@ public sealed partial class ChatSystem : SharedChatSystem
if (!_actionBlocker.CanSpeak(source) && !ignoreActionBlocker)
return;
var message = TransformSpeech(source, FormattedMessage.RemoveMarkup(originalMessage));
var message = TransformSpeech(source, originalMessage);
if (message.Length == 0)
return;
@ -427,7 +427,7 @@ public sealed partial class ChatSystem : SharedChatSystem
// To avoid logging any messages sent by entities that are not players, like vendors, cloning, etc.
// Also doesn't log if hideLog is true.
if (!HasComp<ActorComponent>(source) || hideLog == true)
if (!HasComp<ActorComponent>(source) || hideLog)
return;
if (originalMessage == message)

View File

@ -11,8 +11,19 @@ namespace Content.Shared.Chat
public sealed class ChatMessage
{
public ChatChannel Channel;
/// <summary>
/// This is the text spoken by the entity, after accents and such were applied.
/// This should have <see cref="FormattedMessage.EscapeText"/> applied before using it in any rich text box.
/// </summary>
public string Message;
/// <summary>
/// This is the <see cref="Message"/> but with special characters escaped and wrapped in some rich text
/// formatting tags.
/// </summary>
public string WrappedMessage;
public NetEntity SenderEntity;
/// <summary>