38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
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<IUser> users)
|
|
: base(sender, BotArguments.USER_LIST_ALL, false, MakeUserList(requester, users)) { }
|
|
|
|
public UserListResponsePacket(IUser sender, IChannel channel, IUser requester, IEnumerable<IUser> users)
|
|
: this(sender, channel.Name, requester, users) { }
|
|
|
|
public UserListResponsePacket(IUser sender, string channelName, IUser requester, IEnumerable<IUser> users)
|
|
: base(sender, BotArguments.USER_LIST_CHANNEL, false, channelName, MakeUserList(requester, users)) { }
|
|
|
|
private static string MakeUserList(IUser requester, IEnumerable<IUser> users) {
|
|
StringBuilder sb = new();
|
|
|
|
foreach(IUser user in users) {
|
|
sb.Append(@"<a href=""javascript:void(0);"" onclick=""UI.InsertChatText(this.innerHTML);""");
|
|
|
|
if(user == requester)
|
|
sb.Append(@" style=""font-weight: bold;""");
|
|
|
|
sb.Append('>');
|
|
sb.Append(user.GetDisplayName());
|
|
sb.Append(@"</a>, ");
|
|
}
|
|
|
|
if(sb.Length > 2)
|
|
sb.Length -= 2;
|
|
|
|
return sb.ToString();
|
|
}
|
|
}
|
|
}
|