diff --git a/libs/replication b/libs/replication index 203cb79..c90f4ce 160000 --- a/libs/replication +++ b/libs/replication @@ -1 +1 @@ -Subproject commit 203cb797c079f7196e015bce9fc08de4b541bd2e +Subproject commit c90f4ce33d706005ac81cdd2d2f710167104df4d diff --git a/operators.py b/operators.py index 8be6fda..5b82a0e 100644 --- a/operators.py +++ b/operators.py @@ -79,15 +79,15 @@ class SessionStartOperator(bpy.types.Operator): supported_bl_types.append(_type.bl_id) bpy_factory.register_type( - _type.bl_class, - _type.bl_rep_class, - timer=_type.bl_delay_refresh, - automatic=True) + _type.bl_class, + _type.bl_rep_class, + timer=_type.bl_delay_refresh, + automatic=True) if _type.bl_delay_apply > 0: delayables.append(delayable.ApplyTimer( - timout=_type.bl_delay_apply, - target_type=_type.bl_rep_class)) + timout=_type.bl_delay_apply, + target_type=_type.bl_rep_class)) client = Session(factory=bpy_factory) @@ -98,14 +98,21 @@ class SessionStartOperator(bpy.types.Operator): port=settings.port ) settings.is_admin = True - if settings.init_scene: - init_supported_datablocks(supported_bl_types) else: client.connect( id=settings.username, address=settings.ip, port=settings.port ) + + if client.state == 0: + self.report( + {'ERROR'}, + "A session is already hosted on this address") + return {"CANCELLED"} + + if settings.init_scene and settings.is_admin: + init_supported_datablocks(supported_bl_types) usr = presence.User( username=settings.username, @@ -128,7 +135,9 @@ class SessionStartOperator(bpy.types.Operator): for d in delayables: d.register() - + self.report( + {'INFO'}, + "connexion on tcp://{}:{}".format(settings.ip,settings.port)) return {"FINISHED"} @@ -155,7 +164,6 @@ class SessionStopOperator(bpy.types.Operator): presence.renderer.stop() - return {"FINISHED"}