diff --git a/Ragon/Sources/Rooms/Room.cs b/Ragon/Sources/Rooms/Room.cs index 4373c0f..70bb9df 100755 --- a/Ragon/Sources/Rooms/Room.cs +++ b/Ragon/Sources/Rooms/Room.cs @@ -180,10 +180,10 @@ namespace Ragon.Core return; Span payloadRaw = stackalloc byte[_serializer.Size]; - ReadOnlySpan payload = payloadRaw; var payloadData = _serializer.ReadData(_serializer.Size); payloadData.CopyTo(payloadRaw); + ReadOnlySpan payload = payloadRaw; if (_plugin.InternalHandle(peerId, entityId, evntId, ref payload)) return; @@ -200,13 +200,20 @@ namespace Ragon.Core case RagonOperation.REPLICATE_EVENT: { var evntId = _serializer.ReadUShort(); - var payload = _serializer.ReadData(_serializer.Size); + + Span payloadRaw = stackalloc byte[_serializer.Size]; + var payloadData = _serializer.ReadData(_serializer.Size); + payloadData.CopyTo(payloadRaw); + + ReadOnlySpan payload = payloadRaw; if (_plugin.InternalHandle(peerId, evntId, ref payload)) return; _serializer.Clear(); _serializer.WriteOperation(RagonOperation.REPLICATE_EVENT); _serializer.WriteUShort(evntId); + _serializer.WriteData(ref payload); + var sendData = _serializer.ToArray(); Broadcast(_readyPlayers, sendData, DeliveryType.Reliable); break;