using System; using System.Collections.Generic; using System.Text; namespace SharpChat.Packet { public class UserUpdatePacket : ServerPacket { public ChatUser User { get; private set; } public string PreviousName { get; private set; } public UserUpdatePacket(ChatUser user, string previousName = null) { User = user ?? throw new ArgumentNullException(nameof(user)); PreviousName = previousName; } public override IEnumerable 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.LegacyName); 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(); } } }