using System; using System.Collections.Generic; using System.Text; namespace SharpChat.Packet { public class UserUpdatePacket(ChatUser user, string previousName = "") : ServerPacket { public ChatUser User { get; private set; } = user ?? throw new ArgumentNullException(nameof(user)); public override IEnumerable<string> Pack() { StringBuilder sb = new(); bool isSilent = string.IsNullOrEmpty(previousName); if(!isSilent) { sb.Append('2'); sb.Append('\t'); sb.Append(DateTimeOffset.Now.ToUnixTimeSeconds()); sb.Append("\t-1\t0\fnick\f"); sb.Append(previousName); sb.Append('\f'); sb.Append(User.LegacyNameWithStatus); sb.Append('\t'); sb.Append(SequenceId); sb.Append("\t10010"); yield return sb.ToString(); sb.Clear(); } sb.Append("10"); sb.Append('\t'); sb.Append(User.Pack()); yield return sb.ToString(); } } }