mirror of
https://github.com/MeowCraftMC/CrystalConnector
synced 2025-05-22 02:43:00 +00:00
✨ 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>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user