diff --git a/back/src/Controller/IoSocketController.ts b/back/src/Controller/IoSocketController.ts index a2ffc815..d3410a13 100644 --- a/back/src/Controller/IoSocketController.ts +++ b/back/src/Controller/IoSocketController.ts @@ -281,12 +281,23 @@ export class IoSocketController { this.Worlds.set(messageUserPosition.roomId, world); } - //join world let world : World|undefined = this.Worlds.get(messageUserPosition.roomId); + + if(world) { + // Dispatch groups position to newly connected user + world.getGroups().forEach((group: Group) => { + Client.emit(SockerIoEvent.GROUP_CREATE_UPDATE, { + position: group.getPosition(), + groupId: group.getId() + }); + }); + //join world world.join(messageUserPosition); this.Worlds.set(messageUserPosition.roomId, world); } + + } /** diff --git a/back/src/Model/World.ts b/back/src/Model/World.ts index 180740b2..72bf029c 100644 --- a/back/src/Model/World.ts +++ b/back/src/Model/World.ts @@ -43,6 +43,10 @@ export class World { this.groupDeletedCallback = groupDeletedCallback; } + public getGroups(): Group[] { + return this.groups; + } + public join(userPosition: MessageUserPosition): void { this.users.set(userPosition.userId, { id: userPosition.userId,