using System; namespace SharpChat.Packet { public class UserUpdatePacket : ServerPacket { private readonly long UserId; private readonly string UserName; private readonly ChatColour UserColour; private readonly int UserRank; private readonly ChatUserPermissions UserPerms; public UserUpdatePacket( long userId, string userName, ChatColour userColour, int userRank, ChatUserPermissions userPerms ) { UserId = userId; UserName = userName ?? throw new ArgumentNullException(nameof(userName)); UserColour = userColour; UserRank = userRank; UserPerms = userPerms; } public override string Pack() { return string.Format( "10\t{0}\t{1}\t{2}\t{3} {4} {5} {6} {7}", UserId, UserName, UserColour, UserRank, UserPerms.HasFlag(ChatUserPermissions.KickUser) ? 1 : 0, UserPerms.HasFlag(ChatUserPermissions.ViewLogs) ? 1 : 0, UserPerms.HasFlag(ChatUserPermissions.SetOwnNickname) ? 1 : 0, UserPerms.HasFlag(ChatUserPermissions.CreateChannel) ? ( UserPerms.HasFlag(ChatUserPermissions.SetChannelPermanent) ? 2 : 1 ) : 0 ); } } }