using System; namespace SharpChat.Packet { public class ChatMessageAddPacket : ServerPacket { public DateTimeOffset Created { get; } public long UserId { get; } public string Text { get; } public bool IsAction { get; } public bool IsPrivate { get; } public ChatMessageAddPacket( long msgId, DateTimeOffset created, long userId, string text, bool isAction, bool isPrivate ) : base(msgId) { Created = created; UserId = userId < 0 ? -1 : userId; Text = text; IsAction = isAction; IsPrivate = isPrivate; } public override string Pack() { string body = Text.Replace("<", "<").Replace(">", ">").Replace("\n", "
").Replace("\t", " "); if(IsAction) body = string.Format("{0}", body); return string.Format( "2\t{0}\t{1}\t{2}\t{3}\t{4}{5}{6}{7}{8}", Created.ToUnixTimeSeconds(), UserId, body, SequenceId, 1, IsAction ? 1 : 0, 0, IsAction ? 0 : 1, IsPrivate ? 1 : 0 ); } } }