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);
else
{
var label = new RichTextLabel();
- label.SetMessage(FormattedMessage.FromMarkup("[bold]???[/bold]"));
+ label.SetMessage(FormattedMessage.FromMarkupOrThrow("[bold]???[/bold]"));
hBox.AddChild(label);
}
if (!_actionBlocker.CanSpeak(source) && !ignoreActionBlocker)
return;
- var message = TransformSpeech(source, FormattedMessage.RemoveMarkup(originalMessage));
+ var message = TransformSpeech(source, originalMessage);
if (message.Length == 0)
return;
// 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)
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>