Remove StoredChatMessage (#12623)
This commit is contained in:
@@ -2,9 +2,35 @@ using JetBrains.Annotations;
|
||||
using Lidgren.Network;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
using System.IO;
|
||||
|
||||
namespace Content.Shared.Chat
|
||||
{
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class ChatMessage
|
||||
{
|
||||
public ChatChannel Channel;
|
||||
public string Message;
|
||||
public string WrappedMessage;
|
||||
public EntityUid SenderEntity;
|
||||
public bool HideChat;
|
||||
public Color? MessageColorOverride;
|
||||
|
||||
[NonSerialized]
|
||||
public bool Read;
|
||||
|
||||
public ChatMessage(ChatChannel channel, string message, string wrappedMessage, EntityUid source, bool hideChat = false, Color? colorOverride = null)
|
||||
{
|
||||
Channel = channel;
|
||||
Message = message;
|
||||
WrappedMessage = wrappedMessage;
|
||||
SenderEntity = source;
|
||||
HideChat = hideChat;
|
||||
MessageColorOverride = colorOverride;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sent from server to client to notify the client about a new chat message.
|
||||
/// </summary>
|
||||
@@ -13,73 +39,21 @@ namespace Content.Shared.Chat
|
||||
{
|
||||
public override MsgGroups MsgGroup => MsgGroups.Command;
|
||||
|
||||
/// <summary>
|
||||
/// The channel the message is on. This can also change whether certain params are used.
|
||||
/// </summary>
|
||||
public ChatChannel Channel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The actual message contents.
|
||||
/// </summary>
|
||||
public string Message { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Modified message with some wrapping text. E.g. 'Joe says: "HELP!"'
|
||||
/// </summary>
|
||||
public string WrappedMessage { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// The sending entity.
|
||||
/// Only applies to <see cref="ChatChannel.Local"/>, <see cref="ChatChannel.Dead"/> and <see cref="ChatChannel.Emotes"/>.
|
||||
/// </summary>
|
||||
public EntityUid SenderEntity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The override color of the message
|
||||
/// </summary>
|
||||
public Color MessageColorOverride { get; set; } = Color.Transparent;
|
||||
|
||||
public bool HideChat { get; set; }
|
||||
|
||||
public ChatMessage Message = default!;
|
||||
|
||||
public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
|
||||
{
|
||||
Channel = (ChatChannel) buffer.ReadInt16();
|
||||
Message = buffer.ReadString();
|
||||
WrappedMessage = buffer.ReadString();
|
||||
|
||||
switch (Channel)
|
||||
{
|
||||
case ChatChannel.Local:
|
||||
case ChatChannel.Whisper:
|
||||
case ChatChannel.Dead:
|
||||
case ChatChannel.Admin:
|
||||
case ChatChannel.Emotes:
|
||||
SenderEntity = buffer.ReadEntityUid();
|
||||
break;
|
||||
}
|
||||
MessageColorOverride = buffer.ReadColor();
|
||||
HideChat = buffer.ReadBoolean();
|
||||
var length = buffer.ReadVariableInt32();
|
||||
using var stream = buffer.ReadAlignedMemory(length);
|
||||
serializer.DeserializeDirect(stream, out Message);
|
||||
}
|
||||
|
||||
public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer)
|
||||
{
|
||||
buffer.Write((short)Channel);
|
||||
buffer.Write(Message);
|
||||
buffer.Write(WrappedMessage);
|
||||
|
||||
switch (Channel)
|
||||
{
|
||||
case ChatChannel.Local:
|
||||
case ChatChannel.Whisper:
|
||||
case ChatChannel.Dead:
|
||||
case ChatChannel.Admin:
|
||||
case ChatChannel.Emotes:
|
||||
buffer.Write(SenderEntity);
|
||||
break;
|
||||
}
|
||||
buffer.Write(MessageColorOverride);
|
||||
buffer.Write(HideChat);
|
||||
var stream = new MemoryStream();
|
||||
serializer.SerializeDirect(stream, Message);
|
||||
buffer.WriteVariableInt32((int) stream.Length);
|
||||
buffer.Write(stream.AsSpan());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user