1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 00:45:43 +08:00
Commit Graph

35568 Commits

Author SHA1 Message Date
Dean Herbert
c35454081c Add sound when players change ready state 2020-12-24 17:17:45 +09:00
Dean Herbert
43370d7021
Merge pull request #11273 from bdach/duplicate-user-in-mp-room
Improve reliability of handling user joined messages
2020-12-24 14:31:44 +09:00
Dean Herbert
b29a5e2073
Merge pull request #11270 from bdach/better-error-handling
Improve error handling at realtime room settings screen
2020-12-24 13:23:49 +09:00
Dean Herbert
15cef44351
Merge pull request #11275 from peppy/safer-user-ids
Send multiplayer user IDs via ctor for better thread safety
2020-12-24 12:20:48 +09:00
Dean Herbert
1ac93d4eeb
Merge pull request #11268 from bdach/fix-room-song-select-stuck
Fix realtime multiplayer song select getting stuck after selecting invalid beatmap
2020-12-24 11:26:07 +09:00
Dean Herbert
547c71bdaf
Merge pull request #11274 from bdach/create-match-button
Split create game buttons for timeshift and realtime multiplayer
2020-12-24 11:07:36 +09:00
Dean Herbert
d6dadd12fa Send multiplayer user IDs via ctor for better thread safety 2020-12-24 10:39:15 +09:00
Bartłomiej Dach
414f886b02 Split timeshift & multiplayer "create" buttons
Multiplayer button gets new, different "Create match" text, and disable
logic in case of a dropped connection to the multiplayer server.
2020-12-23 22:03:57 +01:00
Bartłomiej Dach
c13acb609a Move out sizing logic to multiplayer screen 2020-12-23 22:03:30 +01:00
Bartłomiej Dach
05d9f23762 Move out create room button to separate class 2020-12-23 22:03:30 +01:00
Bartłomiej Dach
a71496bc4e Sanity check received user joined messages
While test failures fixed in 9843da5 were a shortcoming of the test,
they exposed a potential vulnerable point of the multiplayer client
logic. In case of unreliable message delivery it is not unreasonable
that duplicate messages might arrive, in which case the same scenario
that failed in the tests could crash the game.

To ensure that is not the case, explicitly screen each new joined user
against the room user list, to ensure that duplicates do not show up.
`UserLeft` is already tolerant in that respect (if a user is requested
to be removed twice by the server, the second removal just won't do
anything).
2020-12-23 21:00:49 +01:00
Bartłomiej Dach
47020c8887 Add failing test cases 2020-12-23 21:00:47 +01:00
Bartłomiej Dach
9843da59f4 Fix intermittent test fail due to duplicate user
`TestSceneRealtimeReadyButton` was manually adding `API.LocalUser`,
which wasn't actually needed. The base `RealtimeMultiplayerTestScene` by
default creates a new room as `API.LocalUser`, therefore automatically
adding that user to the room - and as such there is no need to add them
manually unless the `joinRoom` ctor param is specified as `false`.
2020-12-23 20:29:17 +01:00
Bartłomiej Dach
152df2ad84
Merge branch 'master' into better-error-handling 2020-12-23 18:13:50 +01:00
Bartłomiej Dach
e7a91b3dca
Merge branch 'master' into fix-room-song-select-stuck 2020-12-23 18:13:27 +01:00
Bartłomiej Dach
3087aba5bc
Merge pull request #11266 from peppy/fix-hard-crash-on-signal-r-exceptions 2020-12-23 18:12:43 +01:00
Bartłomiej Dach
b1fb906773 Merge branch 'master' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 17:37:49 +01:00
Bartłomiej Dach
2549039362
Merge pull request #11265 from peppy/fix-multiplayer-server-disconnection-flow 2020-12-23 17:35:53 +01:00
Bartłomiej Dach
e4959489b7 Improve user-facing error messages in room settings 2020-12-23 17:10:53 +01:00
Bartłomiej Dach
3b0bf11366 Fix JoinRoom failing to return canceled token
As it turns out, `Task.FromCanceled` expects to receive an already
cancelled `CancellationToken`, which `CancellationToken.None` is not.
2020-12-23 17:01:01 +01:00
Bartłomiej Dach
6c421b873d
Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 16:55:22 +01:00
Bartłomiej Dach
980e85ce25 Refactor player exit logic to convey intention better 2020-12-23 16:16:24 +01:00
Dean Herbert
4296f61d6c Tidy up event flow of change settings call 2020-12-23 22:39:14 +09:00
Dean Herbert
60be1bedc9
Merge pull request #11254 from frenzibyte/fix-multi-songselect-looping
Fix beatmap track not looping on multiplayer song selects
2020-12-23 22:35:11 +09:00
Bartłomiej Dach
c5692a5d6a Re-enable carousel selection after error 2020-12-23 14:19:30 +01:00
Bartłomiej Dach
582b0d2a74 Revert logic to be closer to original
Note the reversal of the order of operations in `endHandlingTrack()`
(done for extra safety, to ensure no more value changed events can be
fired at the point of cancelling looping).
2020-12-23 13:47:28 +01:00
Bartłomiej Dach
74f0c50d82 Merge branch 'fix-multiplayer-server-disconnection-flow' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 13:31:36 +01:00
Bartłomiej Dach
c839892a4c Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 11:57:43 +01:00
Bartłomiej Dach
94e4928c4b Bring back accidentally-removed license header 2020-12-23 11:27:15 +01:00
Bartłomiej Dach
2b818f149d
Merge pull request #11253 from peppy/realtime-leaderboard 2020-12-23 10:31:44 +01:00
Bartłomiej Dach
64095307de
Merge branch 'master' into realtime-leaderboard 2020-12-23 09:56:47 +01:00
Dean Herbert
0ddcab574f Rename method to avoid weird code analysis rule 2020-12-23 17:14:58 +09:00
Dean Herbert
7cc38f03d1 Use extension method in all call sites of fire-and-forget async usage 2020-12-23 17:10:34 +09:00
Dean Herbert
1864da00e6 Add extension method to handle cases of fire-and-forget async usage 2020-12-23 17:10:02 +09:00
Dean Herbert
c3c3364d39 Simplify error handling of JoinRoom call 2020-12-23 16:56:57 +09:00
Dean Herbert
d27b83d678 More correctly handle fire-and-forget async call 2020-12-23 16:51:11 +09:00
Dean Herbert
91021eb8c4 Remove unused using 2020-12-23 16:49:17 +09:00
Dean Herbert
d7279dab40
Merge pull request #11226 from peppy/fix-legacy-skin-texture-loader-store
Fix incorrectly provided texture loader store to skins
2020-12-23 16:41:01 +09:00
Dean Herbert
f5d27b40a8 Standardise flow for aborting realtime player exit to avoid double-exit call 2020-12-23 16:35:39 +09:00
Dean Herbert
569c4092ef Move notification to stateful client so it is only shown to the user from one location 2020-12-23 16:35:39 +09:00
Dean Herbert
a1d42dc4a0 Don't allow creating or joining a room when not connected to server 2020-12-23 16:35:39 +09:00
Dean Herbert
12df3056e6 Ensure appropriate screens handle exiting when the server gets disconnected
I would have liked for this to be handled via the `OnRoomChanged` event
flow, but this isn't present in RealtimeMatchSubScreen due to
inheritence woes.
2020-12-23 16:35:39 +09:00
Dean Herbert
00d50150de Ensure the current room is left at a mutliplayer client level on client disconnection 2020-12-23 16:35:39 +09:00
Salman Ahmed
286884421d Apply track looping and play on track change 2020-12-23 08:47:34 +03:00
Dean Herbert
b632e44bac
Merge pull request #11256 from frenzibyte/disallow-joining-ended-realtime-room
Disallow joining ended rooms in realtime multiplayer
2020-12-23 14:30:00 +09:00
Dean Herbert
be427a4ec0 Fix realtime leaderboard showing accuracy based on final base score, not rolling 2020-12-23 14:20:35 +09:00
Dean Herbert
45dcd3242d Add comment explaining why things are done where they are 2020-12-23 13:57:48 +09:00
Salman Ahmed
3aa2b22838 Add early check for room status before joining 2020-12-23 05:52:10 +03:00
Salman Ahmed
7751ef4f3e Revert previous logic of join guarding 2020-12-23 05:50:15 +03:00
Bartłomiej Dach
fa94703b9b
Merge pull request #8759 from LittleEndu/present-recommended 2020-12-23 00:09:47 +01:00