Skip to content

Commit 54f71f0

Browse files
committed
fix: Fixed buffered messages not being consumed on first connect
1 parent cb2b911 commit 54f71f0

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

MLAPI/Messaging/InternalMessageHandler.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,21 @@ void DelayedSpawnAction(Stream continuationStream)
286286

287287
NetworkedObject netObject = SpawnManager.CreateLocalNetworkedObject(softSync, instanceId, prefabHash, parentNetworkId, pos, rot);
288288
SpawnManager.SpawnNetworkedObjectLocally(netObject, networkId, softSync, isPlayerObject, ownerId, continuationStream, false, 0, true, false);
289+
290+
Queue<BufferManager.BufferedMessage> bufferQueue = BufferManager.ConsumeBuffersForNetworkId(networkId);
291+
292+
// Apply buffered messages
293+
if (bufferQueue != null)
294+
{
295+
while (bufferQueue.Count > 0)
296+
{
297+
BufferManager.BufferedMessage message = bufferQueue.Dequeue();
298+
299+
NetworkingManager.Singleton.HandleIncomingData(message.sender, message.channelName, new ArraySegment<byte>(message.payload.GetBuffer(), (int)message.payload.Position, (int)message.payload.Length), message.receiveTime, false);
300+
301+
BufferManager.RecycleConsumedBufferedMessage(message);
302+
}
303+
}
289304
}
290305

291306
NetworkingManager.Singleton.IsConnectedClient = true;

0 commit comments

Comments
 (0)