sharp-chat/SharpChat/Packet/UserConnectPacket.cs

47 lines
1.6 KiB
C#
Raw Normal View History

2022-08-30 15:00:58 +00:00
using System;
namespace SharpChat.Packet {
public class UserConnectPacket : ServerPacket {
private readonly DateTimeOffset Joined;
private readonly long UserId;
private readonly string UserName;
private readonly ChatColour UserColour;
private readonly int UserRank;
private readonly ChatUserPermissions UserPerms;
2022-08-30 15:00:58 +00:00
public UserConnectPacket(
DateTimeOffset joined,
long userId,
string userName,
ChatColour userColour,
int userRank,
ChatUserPermissions userPerms
) {
2022-08-30 15:00:58 +00:00
Joined = joined;
UserId = userId;
UserName = userName ?? throw new ArgumentNullException(nameof(userName));
UserColour = userColour;
UserRank = userRank;
UserPerms = userPerms;
2022-08-30 15:00:58 +00:00
}
2024-05-10 15:24:43 +00:00
public override string Pack() {
2024-05-10 17:28:52 +00:00
return string.Format(
"1\t{0}\t{1}\t{2}\t{3}\t{4} {5} {6} {7} {8}\t{9}",
Joined.ToUnixTimeSeconds(),
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,
2024-05-10 17:28:52 +00:00
SequenceId
);
2022-08-30 15:00:58 +00:00
}
}
}