diff --git a/multi_user/delayable.py b/multi_user/delayable.py index 89a3293..91f06ee 100644 --- a/multi_user/delayable.py +++ b/multi_user/delayable.py @@ -108,7 +108,10 @@ class DynamicRightSelectTimer(Timer): node = operators.client.get(uuid=obj) if node and node.owner == RP_COMMON: - recursive = node.data['instance_type'] != 'COLLECTION' + recursive = True + if node.data and 'instance_type' in node.data.keys(): + recursive = node.data['instance_type'] != 'COLLECTION' + operators.client.change_owner( node.uuid, settings.username, @@ -126,7 +129,9 @@ class DynamicRightSelectTimer(Timer): node = operators.client.get(uuid=obj) if node and (node.owner == settings.username or node.owner == RP_COMMON): - recursive = node.data['instance_type'] != 'COLLECTION' + recursive = True + if node.data and 'instance_type' in node.data.keys(): + recursive = node.data['instance_type'] != 'COLLECTION' operators.client.change_owner( node.uuid, RP_COMMON, diff --git a/multi_user/operators.py b/multi_user/operators.py index 38a5d8a..67c2923 100644 --- a/multi_user/operators.py +++ b/multi_user/operators.py @@ -129,10 +129,11 @@ class SessionStartOperator(bpy.types.Operator): client.commit(settings.user_uuid) if settings.init_scene and self.host: - scene_uuid = client.add(bpy.context.scene) + for scene in bpy.data.scenes: + scene_uuid = client.add(scene) - # for node in client.list(): - client.commit(scene_uuid) + # for node in client.list(): + client.commit(scene_uuid) delayables.append(delayable.ClientUpdate( client_uuid=settings.user_uuid)) delayables.append(delayable.DrawClient())