Commit Graph

413 Commits

Author SHA1 Message Date
David Négrier
6540f15c5b
Refactoring Woka management (#1810)
* Wrap websockets with HyperExpress

* Add endpoints on pusher to resolve wokas

* getting textures urls from pusher

* Adding OpenAPI documentation for the pusher.

The pusher now exposes a "/openapi" endpoint and a "/swagger-ui/" endpoint.

* revert FRONT_URL

* playerTextures metadata is being loaded via Phaser.Loader

* fetch textures every time character or customize scene is open

* Heavy changes: refactoring the pusher to always send the textures (and the front to accept them)

* Sending character layer details to admin

* Cleaning commented code

* Fixing regex

* Fix woka endpoints on pusher

* Change error wording on pusher

* Working on integration of the woka-list with the new admin endpoint.

* Switching from "name" to "id" in texture object + using zod for woka/list validation

* Add position on default woka data

* Remove async on pusher option method

* Fix woka list url

* add options for /register

* Fxiing loading the Woka list

* Actually returning something in logout-callback

* Copying messages to back too

* remove customize button if no body parts are available (#1952)

* remove customize button if no body parts are available

* remove unused position field from PlayerTexturesCollection interface

* removed unused label field

* fix LocalUser test

* little PlayerTextures class refactor

* Fixing linting

* Fixing missing Openapi packages in prod

* Fixing back build

Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>

* Add returns on pusher endpoints

Co-authored-by: Alexis Faizeau <a.faizeau@workadventu.re>
Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: Piotr Hanusiak <wacneg@gmail.com>
2022-03-11 17:02:58 +01:00
David Négrier
d3862a3afd
Better e2e tests (#1959)
* Adding a timeout to wait for old map to be correctly loaded

* Adding an exception for E2E tests to load a local map as if it was remote.
2022-03-11 10:29:42 +01:00
David Négrier
12d6d9a50d Disabling completely routes if admin token not configured 2022-01-27 18:38:33 +01:00
Alexis Faizeau
cd566e43a7 Change group radius management 2022-01-14 11:53:33 +01:00
David Négrier
6bd9a998f9 Removing unused messages 2022-01-03 16:26:52 +01:00
David Négrier
d6e8bd522f Fixing issue if group was deleted when out of bounds. 2021-12-24 14:07:29 +01:00
David Négrier
05bedf0c22 Adding an "out-of-bounds" notion for a group.
This allows hiding a group when some players are out of the radius but the group still exists because of the "follow" feature.
2021-12-24 13:21:44 +01:00
David Négrier
368a115b4c Merge branch 'develop' of github.com:thecodingmachine/workadventure into feat/follow-woka 2021-12-23 16:04:59 +01:00
David Négrier
3e91a79078 Upgrading eslint 2021-12-23 15:33:19 +01:00
David Négrier
220c9433d1 Updating back component to Typescript 4.5 2021-12-23 14:26:49 +01:00
David Négrier
35463930a0 Sending color outline on connect 2021-12-23 10:22:19 +01:00
David Négrier
482ba9690a Sharing outline color changes in real time 2021-12-22 18:34:36 +01:00
PizZaKatZe
f2e37b8cff Clean up now unused function in group model 2021-12-20 16:49:41 +01:00
PizZaKatZe
329f721998
Update back/src/Model/Group.ts
Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>
2021-12-20 16:46:16 +01:00
Alban Bruder
d185c0ee24 fix code styling 2021-12-20 15:14:49 +01:00
Alban Bruder
4ffcebb2e4 Use specified type in admin message 2021-12-20 13:53:54 +01:00
PizZaKatZe
5c385c520a Cleanup; pretty 2021-12-18 11:45:17 +01:00
David Négrier
c96b65549f Performing proper cleanup when a user leaves 2021-12-18 11:34:20 +01:00
David Négrier
cd805fab31 Refactoring following code to make a distinction beween followed and following users.
Also, moving sending messages to the User class.
2021-12-18 11:34:20 +01:00
David Négrier
fd9cb09de6 Checking if a user should leave a group when someone moves in the group every time.
This fixes a long standing issue.
2021-12-18 11:34:20 +01:00
David Négrier
44ff9e30d5 Using id instead of name to identify other Wokas 2021-12-18 11:34:20 +01:00
PizZaKatZe
ab994183e5 Fix not following users getting "stuck" in groups 2021-12-16 21:26:30 +01:00
PizZaKatZe
2bd71790b5 Use user IDs instead of names 2021-12-15 18:42:24 +01:00
PizZaKatZe
e528682403 Use User.group instead of iterating over groups
Thanks @moufmouf for pointing this out.
2021-12-15 18:42:24 +01:00
PizZaKatZe
7bff782f7f Improve follow abort message; avoid having to change it in backend 2021-12-15 18:42:24 +01:00
PizZaKatZe
c2f5501236 Do not leave group when following is active 2021-12-15 18:42:24 +01:00
PizZaKatZe
0a410d289d Implement follow request / confirmation UI 2021-12-15 18:42:22 +01:00
PizZaKatZe
d6ef60a3d8 Send request to group members only 2021-12-15 18:41:37 +01:00
PizZaKatZe
1fca99c0d1 Send follow me request to all players 2021-12-15 18:41:36 +01:00
David Négrier
0a705eadf9
Merge pull request #1616 from Waclaw-I/feature-camera-zone-focus
Focusable zones
2021-12-14 15:43:45 +01:00
David Négrier
8a96ff8ee4
Merge pull request #1614 from ValdoTR/user-room-token
Added the user-room token created from admin when we access a room
2021-12-13 17:50:49 +01:00
Hanusiak Piotr
e97fd1d38c Merge branch 'develop' into feature-camera-zone-focus 2021-12-07 13:20:15 +01:00
David Négrier
b9840cfa3d Fix CI 2021-12-06 18:34:09 +01:00
Hanusiak Piotr
3d3ca45921 ran prettier for back 2021-12-06 11:37:55 +01:00
Hanusiak Piotr
eb95e2e483 detecting zoe enter and leave events 2021-12-04 17:11:49 +01:00
David Négrier
6427d85c24 Fixing warning in lint 2021-12-03 18:29:36 +01:00
David Négrier
bf830a67cb Fixing debug controller in back 2021-12-03 09:23:31 +01:00
Valdo Romao
dd79f7d0f4 Added the user-room token created from admin when we access a room 2021-12-01 15:50:14 +00:00
David Négrier
94959e2e91 Merge branch 'develop' of github.com:thecodingmachine/workadventure into HotFixCleanTokenParamUrl
# Conflicts:
#	back/src/Services/Logger.ts
2021-11-24 17:03:29 +01:00
David Négrier
d1122d75ec Fixing CI 2021-11-24 16:59:22 +01:00
David Négrier
6e6cdc7bde
Revert "Improving log messages" 2021-11-24 16:20:07 +01:00
David Négrier
a1107bd20e Merge branch 'develop' of github.com:thecodingmachine/workadventure into improve_logging 2021-11-24 15:36:35 +01:00
David Négrier
a82f4e1813 Adding end-to-end tests
The first test is testing a tricky cache scenario with the back when testing variables.
The end-to-end package used is testcafe.
2021-11-23 15:43:34 +01:00
David Négrier
d8ecae64f0 Moving lastLoad initialization before we start loading to avoid loading several times 2021-11-23 09:34:39 +01:00
David Négrier
82a1a5fc1e Retry loading map on variable error
If the back is getting an error (because the user has no right to set a variable),
instead of failing directly, let's try to reload the map (maybe we have cached a wrong version of the map).
2021-11-22 18:43:56 +01:00
Alexis Faizeau
6a195be814 Implement logger on back 2021-11-08 17:44:57 +01:00
Alexis Faizeau
c573e9fbaf Implement no floating promises on eslint rules 2021-11-08 14:45:25 +01:00
David Négrier
6c6a7e6fe4 Improving log messages
Signed-off-by: David Négrier <d.negrier@thecodingmachine.com>
2021-11-08 14:30:54 +01:00
Kharhamel
5255847452 FIX: if a conversion group move to another user, this user will be added to the group 2021-10-08 11:02:58 +02:00
David Négrier
05646718a9 Fix disconnects after 5 minutes in Chrome
This commit increases idle timeout for websocket connection

Issue: after 5 minutes of inactive tab (hidden tab) in Chrome, WorkAdventure was disconnected.

I believe Google was going in "intensive throttling" mode (see  https://developer.chrome.com/blog/timer-throttling-in-chrome-88/#intensive-throttling)
This means setTimeouts are run only once per minute.

And I believe the "keep alive" must be implemented with a "setTimeout" (one way or another even if I can't find a trace of this in the code). This would mean that the browser would send keep alive requests only once per minute.
But the pusher is configured to shut the connection after 30 seconds of idle activity.

Therefore, the pusher disconnects inactive Chrome tabs. By raising the Pusher idle timer to 2 minutes, we give a chance to Chrome to send a ping to the server in time (since Chrome won't send more than 1 ping per minute).
2021-09-10 18:30:36 +02:00