Files
秋 雨落 84f4e3543c ✨ V2 (#1)
* 🚧 WIP v2.

Signed-off-by: 秋雨落 <i@rain.cx>

* 🚧 WIP v2 * 2.

Signed-off-by: 秋雨落 <i@rain.cx>

* ✨ It works?

Signed-off-by: 秋雨落 <i@rain.cx>

* ✨ Publish to nexus.

Signed-off-by: 秋雨落 <i@rain.cx>

---------

Signed-off-by: 秋雨落 <i@rain.cx>
2024-01-10 09:52:50 +08:00

53 lines
1.3 KiB
C#

using CrystalConnector.Protocol.Messages;
using Google.Protobuf;
namespace CrystalConnector.Protocol.Packets.C2S;
public class AuthenticatePacket : IPacket
{
public NamespacedName ClientId { get; set; }
public string ClientName { get; set; }
public string Key { get; set; }
public List<Channel> Channels { get; } = [];
public AuthenticatePacket(NamespacedName clientId, string clientName, string key, List<Channel> channels)
{
ClientId = clientId;
ClientName = clientName;
Key = key;
Channels.AddRange(channels);
}
public AuthenticatePacket(byte[] bytes)
{
Read(bytes);
}
public AuthenticatePacket()
{
}
public void Read(byte[] bytes)
{
var message = Authenticate.Parser.ParseFrom(bytes);
ClientId = message.ClientId;
ClientName = message.ClientName;
Key = message.SecretKey;
Channels.AddRange(message.Channels);
}
public byte[] Write()
{
var message = new Authenticate
{
ClientId = ClientId,
ClientName = ClientName,
SecretKey = Key
};
message.Channels.AddRange(Channels);
return message.ToByteArray();
}
}