diff --git a/Dalamud/Game/Text/SeStringHandling/Payload.cs b/Dalamud/Game/Text/SeStringHandling/Payload.cs index 7131a88a7..3eb1cf317 100644 --- a/Dalamud/Game/Text/SeStringHandling/Payload.cs +++ b/Dalamud/Game/Text/SeStringHandling/Payload.cs @@ -208,7 +208,7 @@ public abstract partial class Payload } payload ??= new RawPayload((byte)chunkType); - payload.DecodeImpl(reader, reader.BaseStream.Position + chunkLen - 1); + payload.DecodeImpl(reader, reader.BaseStream.Position + chunkLen); // read through the rest of the packet var readBytes = (uint)(reader.BaseStream.Position - packetStart); diff --git a/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs b/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs index a7e41cbc6..02a7c113e 100644 --- a/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs +++ b/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs @@ -95,14 +95,12 @@ public class RawPayload : Payload /// protected override byte[] EncodeImpl() { - var chunkLen = this.data.Length + 1; - var bytes = new List() { START_BYTE, this.chunkType, - (byte)chunkLen, }; + bytes.AddRange(MakeInteger((uint)this.data.Length)); // chunkLen bytes.AddRange(this.data); bytes.Add(END_BYTE); @@ -113,6 +111,6 @@ public class RawPayload : Payload /// protected override void DecodeImpl(BinaryReader reader, long endOfStream) { - this.data = reader.ReadBytes((int)(endOfStream - reader.BaseStream.Position + 1)); + this.data = reader.ReadBytes((int)(endOfStream - reader.BaseStream.Position)); } }