sharp-chat/SharpChat.SockChat/PacketsS2C/UserDisconnectLogS2CPacket.cs

39 lines
1.2 KiB
C#

using System;
namespace SharpChat.SockChat.PacketsS2C {
public class UserDisconnectLogS2CPacket : ISockChatS2CPacket {
private readonly long MessageId;
private readonly DateTimeOffset TimeStamp;
private readonly string UserName;
private readonly UserDisconnectReason Reason;
public UserDisconnectLogS2CPacket(
long messageId,
DateTimeOffset timeStamp,
string userName,
UserDisconnectReason reason
) {
MessageId = messageId;
TimeStamp = timeStamp;
UserName = userName;
Reason = reason;
}
public string Pack() {
return string.Format(
"7\t1\t{0}\t-1\tChatBot\tinherit\t\t0\f{1}\f{2}\t{3}\t0\t10010",
TimeStamp.ToUnixTimeSeconds(),
Reason switch {
UserDisconnectReason.Leave => "leave",
UserDisconnectReason.TimeOut => "timeout",
UserDisconnectReason.Kicked => "kick",
UserDisconnectReason.Flood => "flood",
_ => "leave",
},
UserName,
MessageId
);
}
}
}