mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-15 05:04:15 +01:00
51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
|
|
namespace Dalamud.Game.Chat.SeStringHandling.Payloads
|
|
{
|
|
public class RawPayload : Payload
|
|
{
|
|
public override PayloadType Type => PayloadType.Unknown;
|
|
|
|
public byte ChunkType { get; private set; }
|
|
public byte[] Data { get; private set; }
|
|
|
|
public RawPayload(byte chunkType)
|
|
{
|
|
ChunkType = chunkType;
|
|
}
|
|
|
|
public override void Resolve()
|
|
{
|
|
// nothing to do
|
|
}
|
|
|
|
public override byte[] Encode()
|
|
{
|
|
var chunkLen = Data.Length + 1;
|
|
|
|
var bytes = new List<byte>()
|
|
{
|
|
START_BYTE,
|
|
ChunkType,
|
|
(byte)chunkLen
|
|
};
|
|
bytes.AddRange(Data);
|
|
|
|
bytes.Add(END_BYTE);
|
|
|
|
return bytes.ToArray();
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{Type} - Chunk type: {ChunkType:X}, Data: {BitConverter.ToString(Data).Replace("-", " ")}";
|
|
}
|
|
|
|
protected override void ProcessChunkImpl(BinaryReader reader, long endOfStream)
|
|
{
|
|
Data = reader.ReadBytes((int)(endOfStream - reader.BaseStream.Position + 1));
|
|
}
|
|
}
|
|
}
|