mirror of
https://github.com/MeowCraftMC/CrystalConnector
synced 2025-05-22 02:43:00 +00:00
53 lines
1.2 KiB
C#
53 lines
1.2 KiB
C#
using CrystalConnector.Protocol.Entities;
|
|
using CrystalConnector.Protocol.Messages;
|
|
using CrystalConnector.Protocol.Utilities;
|
|
using Google.Protobuf;
|
|
|
|
namespace CrystalConnector.Protocol.Packets.S2C;
|
|
|
|
public class ForwardPacket : IPacket
|
|
{
|
|
public string Publisher { get; set; }
|
|
public NamespacedId Channel { get; set; }
|
|
public string Payload { get; set; }
|
|
|
|
public ForwardPacket(string publisher, NamespacedId channel, string payload)
|
|
{
|
|
Publisher = publisher;
|
|
Channel = channel;
|
|
Payload = payload;
|
|
}
|
|
|
|
public ForwardPacket(byte[] bytes)
|
|
{
|
|
Read(bytes);
|
|
}
|
|
|
|
public ForwardPacket()
|
|
{
|
|
}
|
|
|
|
public void Read(byte[] bytes)
|
|
{
|
|
var message = Forward.Parser.ParseFrom(bytes);
|
|
Publisher = message.Publisher;
|
|
Channel = message.Channel.ToId();
|
|
Payload = message.Payload;
|
|
}
|
|
|
|
public byte[] Write()
|
|
{
|
|
var message = new Forward
|
|
{
|
|
Publisher = Publisher,
|
|
Channel = new NamespacedName
|
|
{
|
|
Namespace = Channel.Namespace,
|
|
Name = Channel.Name
|
|
},
|
|
Payload = Payload
|
|
};
|
|
|
|
return message.ToByteArray();
|
|
}
|
|
} |