From d706ffd998430a9772a43b8965b6d937fe2baa59 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Fri, 28 Jan 2022 21:17:59 -0800 Subject: [PATCH] check _cts before building/removing world objects --- QSB/WorldSync/QSBWorldSync.cs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/QSB/WorldSync/QSBWorldSync.cs b/QSB/WorldSync/QSBWorldSync.cs index c3d03985..19853cde 100644 --- a/QSB/WorldSync/QSBWorldSync.cs +++ b/QSB/WorldSync/QSBWorldSync.cs @@ -33,6 +33,11 @@ namespace QSB.WorldSync public static async UniTaskVoid BuildWorldObjects(OWScene scene) { + if (_cts != null) + { + return; + } + _cts = new CancellationTokenSource(); if (!PlayerTransformSync.LocalInstance) @@ -79,13 +84,20 @@ namespace QSB.WorldSync public static void RemoveWorldObjects() { - _cts?.Cancel(); - _cts?.Dispose(); - _managerTasks.Clear(); - _objectTasks.Clear(); + if (_cts == null) + { + return; + } + + _cts.Cancel(); + _cts.Dispose(); + _cts = null; GameReset(); + _managerTasks.Clear(); + _objectTasks.Clear(); + foreach (var item in WorldObjects) { item.Try("removing", item.OnRemoval);