namespace SharpChat.SockChat.PacketsS2C { public class UserChannelJoinS2CPacket : ISockChatS2CPacket { private readonly long MessageId; private readonly long UserId; private readonly string UserName; private readonly Colour UserColour; private readonly int UserRank; private readonly UserPermissions UserPerms; public UserChannelJoinS2CPacket( long userId, string userName, Colour userColour, int userRank, UserPermissions userPerms ) { MessageId = SharpId.Next(); UserId = userId; UserName = userName; UserColour = userColour; UserRank = userRank; UserPerms = userPerms; } public string Pack() { return string.Format( "5\t0\t{0}\t{1}\t{2}\t{3} {4} {5} {6} {7}\t{8}", UserId, UserName, UserColour, UserRank, UserPerms.HasFlag(UserPermissions.KickUser) ? 1 : 0, UserPerms.HasFlag(UserPermissions.ViewLogs) ? 1 : 0, UserPerms.HasFlag(UserPermissions.SetOwnNickname) ? 1 : 0, UserPerms.HasFlag(UserPermissions.CreateChannel) ? ( UserPerms.HasFlag(UserPermissions.SetChannelPermanent) ? 2 : 1 ) : 0, MessageId ); } } }