41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
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
|
|
);
|
|
}
|
|
}
|
|
}
|