sharp-chat/SharpChat/Packet/AuthSuccessPacket.cs

41 lines
1.5 KiB
C#
Raw Normal View History

2022-08-30 15:00:58 +00:00
using System;
namespace SharpChat.Packet {
public class AuthSuccessPacket : ServerPacket {
public ChatUser User { get; private set; }
public ChatChannel Channel { get; private set; }
2023-02-16 21:25:41 +00:00
public ChatConnection Connection { get; private set; }
public int MaxMessageLength { get; private set; }
2022-08-30 15:00:58 +00:00
public AuthSuccessPacket(
ChatUser user,
ChatChannel channel,
2023-02-16 21:25:41 +00:00
ChatConnection connection,
int maxMsgLength
) {
2022-08-30 15:00:58 +00:00
User = user ?? throw new ArgumentNullException(nameof(user));
Channel = channel ?? throw new ArgumentNullException(nameof(channel));
2023-02-16 21:25:41 +00:00
Connection = connection ?? throw new ArgumentNullException(nameof(connection));
MaxMessageLength = maxMsgLength;
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\ty\t{0}\t{1}\t{2}\t{3} {4} {5} {6} {7}\t{8}\t{9}",
User.UserId,
User.LegacyNameWithStatus,
User.Colour,
User.Rank,
User.Can(ChatUserPermissions.KickUser) ? 1 : 0,
User.Can(ChatUserPermissions.ViewLogs) ? 1 : 0,
User.Can(ChatUserPermissions.SetOwnNickname) ? 1 : 0,
User.Can(ChatUserPermissions.CreateChannel | ChatUserPermissions.SetChannelPermanent, true) ? 2 : (
User.Can(ChatUserPermissions.CreateChannel) ? 1 : 0
),
Channel.Name,
MaxMessageLength
);
2022-08-30 15:00:58 +00:00
}
}
}