diff --git a/QSB/SaveSync/Messages/RequestGameStateMessage.cs b/QSB/SaveSync/Messages/RequestGameStateMessage.cs index 42a24547..1fca7032 100644 --- a/QSB/SaveSync/Messages/RequestGameStateMessage.cs +++ b/QSB/SaveSync/Messages/RequestGameStateMessage.cs @@ -2,6 +2,7 @@ using QSB.Messaging; using QSB.Player; using QSB.Utility; +using QSB.WorldSync; namespace QSB.SaveSync.Messages; @@ -13,27 +14,28 @@ internal class RequestGameStateMessage : QSBMessage public RequestGameStateMessage() => To = 0; public override void OnReceiveRemote() => Delay.RunFramesLater(100, () => - { - if (!QSBPlayerManager.PlayerExists(From)) + Delay.RunWhen(() => QSBWorldSync.AllObjectsReady, () => { - // player was kicked - return; - } + if (!QSBPlayerManager.PlayerExists(From)) + { + // player was kicked + return; + } - new GameStateMessage(From).Send(); + new GameStateMessage(From).Send(); - var gameSave = PlayerData._currentGameSave; + var gameSave = PlayerData._currentGameSave; - var factSaves = gameSave.shipLogFactSaves; - foreach (var item in factSaves) - { - new ShipLogFactSaveMessage(item.Value).Send(); - } + var factSaves = gameSave.shipLogFactSaves; + foreach (var item in factSaves) + { + new ShipLogFactSaveMessage(item.Value).Send(); + } - var dictConditions = gameSave.dictConditions; - foreach (var item in dictConditions) - { - new PersistentConditionMessage(item.Key, item.Value).Send(); - } - }); -} \ No newline at end of file + var dictConditions = gameSave.dictConditions; + foreach (var item in dictConditions) + { + new PersistentConditionMessage(item.Key, item.Value).Send(); + } + })); +}