using SharpChat.Channels; using SharpChat.Protocol.SockChat.Users; using SharpChat.Users; using System.Collections.Generic; using System.Text; namespace SharpChat.Protocol.SockChat.Packets { public class UserListResponsePacket : BotResponsePacket { public UserListResponsePacket(IUser sender, IUser requester, IEnumerable users) : base(sender, BotArguments.USER_LIST_ALL, false, MakeUserList(requester, users)) { } public UserListResponsePacket(IUser sender, IChannel channel, IUser requester, IEnumerable users) : this(sender, channel.Name, requester, users) { } public UserListResponsePacket(IUser sender, string channelName, IUser requester, IEnumerable users) : base(sender, BotArguments.USER_LIST_CHANNEL, false, channelName, MakeUserList(requester, users)) { } private static string MakeUserList(IUser requester, IEnumerable users) { StringBuilder sb = new(); foreach(IUser user in users) { sb.Append(@"'); sb.Append(user.GetDisplayName()); sb.Append(@", "); } if(sb.Length > 2) sb.Length -= 2; return sb.ToString(); } } }