using System.Text; namespace SharpChat.SockChat.S2CPackets; public class UserChannelJoinS2CPacket( long msgId, string userId, string userName, ColourInheritable userColour, int userRank, UserPermissions userPerms ) : S2CPacket { public string Pack() { StringBuilder sb = new(); sb.Append("5\t0\t"); sb.Append(userId); sb.Append('\t'); sb.Append(userName); sb.Append('\t'); sb.Append(userColour); sb.Append('\t'); sb.Append(userRank); sb.Append(' '); sb.Append(userPerms.HasFlag(UserPermissions.KickUser) ? '1' : '0'); sb.Append(' '); sb.Append(userPerms.HasFlag(UserPermissions.ViewLogs) ? '1' : '0'); sb.Append(' '); sb.Append(userPerms.HasFlag(UserPermissions.SetOwnNickname) ? '1' : '0'); sb.Append(' '); sb.Append(userPerms.HasFlag(UserPermissions.CreateChannel) ? (userPerms.HasFlag(UserPermissions.SetChannelPermanent) ? '2' : '1') : '0'); sb.Append('\t'); sb.Append(msgId); return sb.ToString(); } }