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; }
|
2023-02-08 23:53:42 +00:00
|
|
|
|
public int MaxMessageLength { get; private set; }
|
2022-08-30 15:00:58 +00:00
|
|
|
|
|
2023-02-08 23:53:42 +00:00
|
|
|
|
public AuthSuccessPacket(
|
|
|
|
|
ChatUser user,
|
|
|
|
|
ChatChannel channel,
|
2023-02-16 21:25:41 +00:00
|
|
|
|
ChatConnection connection,
|
2023-02-08 23:53:42 +00:00
|
|
|
|
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));
|
2023-02-08 23:53:42 +00:00
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|