using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SharpChat.Packet { public class BanListPacket : ServerPacket { public IEnumerable Bans { get; private set; } public BanListPacket(IEnumerable bans) { Bans = bans ?? throw new ArgumentNullException(nameof(bans)); } public override IEnumerable Pack() { StringBuilder sb = new StringBuilder(); sb.Append('2'); sb.Append('\t'); sb.Append(DateTimeOffset.Now.ToUnixTimeSeconds()); sb.Append("\t-1\t0\fbanlist\f"); foreach (IBan ban in Bans) sb.AppendFormat(@"{0}, ", ban); if (Bans.Any()) sb.Length -= 2; sb.Append('\t'); sb.Append(SequenceId); sb.Append("\t10010"); return new[] { sb.ToString() }; } } }