1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 18:10:04 +08:00
Commit Graph

53 Commits

Author SHA1 Message Date
Dean Herbert
dea7f2308c Fix participant panels potentially keeping a reference to an old user
If a user leave and then rejoins a multiplayer match while another user
is not at the lobby screen, there is a potential the `ParticipantPanel`
tracking the user will not correctly be recreated to reference the new
instance of the `MultiplayerUser`.

This happens because the `OnRoomUpdated` call is scheduled, which means
it is not running in the background, coupled with the local logic that
relies on `IEquatable(MultiplayerRoomUser)` (which in turn falls back to
a UserID comparison).

Changing this to a reference comparison is the easiest way to resolve
this. Whether we change the `IEquatable` implementation is up for
discussion.

Closes https://github.com/ppy/osu/issues/15970.
2021-12-07 17:24:04 +09:00
Bartłomiej Dach
53a6ef22ce
Add null check to resolve inspection 2021-12-04 14:55:35 +01:00
Dean Herbert
e75e209053 Cache and consume IRulesetStore where feasible 2021-12-03 18:16:01 +09:00
Dan Balasescu
459e819a5d Update todo 2021-11-16 00:50:23 +09:00
Dan Balasescu
07a7b4bcdc Merge branch 'master' into multi-queueing-modes 2021-11-11 22:19:30 +09:00
Bartłomiej Dach
9664b9a97c
Fix being able to switch own team by clicking other players' team indicators 2021-11-11 09:01:50 +01:00
Dean Herbert
328c72c358 Fix TeamDisplay not showing after changing to team versus 2021-11-10 13:44:31 +09:00
Dean Herbert
52c740b377 Add failing test showing team display display failure 2021-11-10 13:44:31 +09:00
smoogipoo
f076b72fbe Merge branch 'master' into multi-queueing-modes 2021-10-29 10:48:16 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
smoogipoo
db87e42d47 Remove beatmap/ruleset/etc from MultiplayerRoomSettings 2021-10-22 16:48:28 +09:00
5ln
3529f34c98
Multi: Hide mods when spectating or Beatmap isn't Locally Available.
Signed-off-by: 5ln <xnafumie@gmail.com>
2021-10-18 02:01:50 +08:00
Dean Herbert
7fe0eefb78 Add inline comment regarding team switch sample logic
Feels a bit convoluted without this. Don't really have a better
suggestion for now so a comment will do.
2021-09-13 14:12:19 +09:00
Jamie Taylor
217ca754ae
Add sound for team swaps 2021-09-08 13:45:05 +09:00
Jamie Taylor
e341f471b0
Add lobby sfx for join/leave/kick/ready/unready events 2021-08-26 15:29:22 +09:00
Salman Ahmed
7fe6f6dd14 Fix kick button action asserting and using User.User.ID rather than User.UserID 2021-08-16 09:47:23 +03:00
Salman Ahmed
79cd062784 Let TeamDisplay take the full MultiplayerRoomUser rather than the underlying User 2021-08-16 09:47:23 +03:00
Dean Herbert
d6352637d6 Also add tooltip and context menu item 2021-08-11 17:45:34 +09:00
Dean Herbert
bb51ebd0ef Don't show button on self 2021-08-11 17:42:46 +09:00
Dean Herbert
7aab8c32ec Add kick button and hook up logic 2021-08-11 17:31:54 +09:00
Dean Herbert
aa320c70a7 Improve show/hide animation and add more padding around the crown 2021-08-03 23:42:37 +09:00
Dean Herbert
b8e878ccc9 Add the ability to change team by clicking current team colour
Definitely not the final UX, but it's what people are used to and easy
to implement, so it'll do for now.
2021-08-03 23:42:37 +09:00
Dean Herbert
5e59b1325c Add team display to participant list 2021-08-03 23:42:37 +09:00
Dean Herbert
7774344f0e Remove "Unranked" text from ModDisplay 2021-06-09 13:45:09 +09:00
smoogipoo
d197a7f6f5 Rename multiplayer client classes 2021-05-20 15:39:45 +09:00
Dean Herbert
a55e62188e Change state icon to binoculars so the eye isn't staring at me 2021-04-08 15:54:58 +09:00
smoogipoo
c744f77cfa Add participant panel state 2021-04-07 16:40:24 +09:00
Salman Ahmed
e14a59f272 Fix creating ruleset instances per LINQ select 2021-02-18 15:26:59 +03:00
Salman Ahmed
a845e96b7a Replace Ranks.Global completely with a GlobalRank property 2021-02-17 08:52:04 +03:00
Salman Ahmed
0e7f52b5cc Always use JSON property global_rank for global ranks instead 2021-02-16 07:33:16 +03:00
Salman Ahmed
5b4999e8af Update user statistics retrieval with API changes 2021-02-16 07:33:13 +03:00
Salman Ahmed
d15ffff9a5 Simplifiy user statistics retrieval to one-time on deserialization 2021-02-16 04:48:36 +03:00
Salman Ahmed
a1496cd8f3 Remove necessity of using CurrentModeRank as a fallback 2021-02-16 04:48:36 +03:00
Salman Ahmed
90aa6256d7 Merge branch 'master' into multiplayer-participant-rank 2021-02-16 04:44:57 +03:00
Salman Ahmed
d101add159 Display user global rank for selected ruleset in participants panel 2021-02-08 21:25:50 +03:00
smoogipoo
a08c51f213 Remove duplicate code 2021-02-08 19:23:10 +09:00
Dean Herbert
34a1918d03
Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-06 00:27:55 +09:00
smoogipoo
95ad7ea8f7 Fix mods on participant panels flashing when changed 2021-02-05 18:44:33 +09:00
Dean Herbert
1b6a052798 Refactor logic to suck a bit less 2021-02-05 15:46:03 +09:00
Dean Herbert
d1f9aa52a4 Inline variable 2021-02-05 15:33:48 +09:00
Dean Herbert
9e9e382bee Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-05 15:27:17 +09:00
smoogipoo
2e85ce5b82 Rename UserMods -> Mods for MultiplayerRoomUser 2021-02-05 12:40:16 +09:00
smoogipoo
173e20938c Revert changes to ModDisplay 2021-02-02 13:49:58 +09:00
smoogipoo
9c4c47599f Merge branch 'master' into freemods 2021-02-01 19:28:10 +09:00
smoogipoo
3a906a89fc Pin mod position in participant panels 2021-02-01 18:27:15 +09:00
smoogipoo
f538963607 Extra mods -> user mods 2021-02-01 17:57:32 +09:00
smoogipoo
ac2a995041 Add user and panel states 2021-02-01 17:54:56 +09:00
Dean Herbert
a61444690e Remove all usage of CatchUnobservedExceptions
This should no longer be required with the recent framework side change
that stops a game from crashing on unobserved exceptions
(https://github.com/ppy/osu-framework/pull/4171).
2021-01-29 16:32:29 +09:00
Salman Ahmed
6deb10e075 Add UI state display for each client's beatmap availability 2021-01-18 11:10:02 +03:00
Dean Herbert
046a76cb1d Allow null users to still be displayed in the participant list
The fix here is correcting the access of `user.Country`. The deicision
to have null users display is because this is the best we can do (if
osu-web could not resolve the user). We still want the users in the
lobby to be aware of this user's presence, rather than hiding them from
view.

osu-stable does a similar thing, showing these users as `[Loading]`. I
decided to go with blank names instead because having *any* text there
causes confusion. We can iterate on this in future design updates.
2020-12-28 15:03:44 +09:00