using System; using System.Text; namespace SharpChat.SockChat.PacketsS2C { public class WhoChannelResponseS2CPacket : ISockChatS2CPacket { private readonly long MessageId; private readonly DateTimeOffset TimeStamp; private readonly string ChannelName; private readonly string[] Users; private readonly string SelfName; public WhoChannelResponseS2CPacket(string channelName, string[] users, string selfName) { MessageId = SharpId.Next(); TimeStamp = DateTimeOffset.UtcNow; ChannelName = channelName; Users = users; SelfName = selfName; } public string Pack() { StringBuilder sb = new(); sb.AppendFormat( "2\t{0}\t-1\t0\fwhochan\f{1}\f", TimeStamp.ToUnixTimeSeconds(), SockChatUtility.SanitiseChannelName(ChannelName) ); foreach(string userName in Users) { sb.Append(@"{0}, ", userName); } if(Users.Length > 0) sb.Length -= 2; sb.AppendFormat("\t{0}\t10010", MessageId); return sb.ToString(); } } }