using System.Text; namespace SharpChat.S2CPackets { public class ContextUsersS2CPacket(IEnumerable<ChatUser> users) : S2CPacket { public IEnumerable<ChatUser> Users { get; private set; } = users?.Where(u => u != null) ?? throw new ArgumentNullException(nameof(users)); public IEnumerable<string> Pack() { StringBuilder sb = new(); sb.Append('7'); sb.Append('\t'); sb.Append('0'); sb.Append('\t'); sb.Append(Users.Count()); foreach(ChatUser user in Users) { sb.Append('\t'); sb.Append(user.Pack()); sb.Append('\t'); sb.Append('1'); // visibility flag } yield return sb.ToString(); } } }