1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-19 14:53:05 +08:00
Commit Graph

2655 Commits

Author SHA1 Message Date
Dean Herbert
6dd684588a Merge branch 'master' into playlist-show-invalid-beatmaps 2021-11-16 17:25:33 +09:00
Dean Herbert
aa188d5a52 Add ability for playlist items to be marked as invalid 2021-11-16 17:01:24 +09:00
Dan Balasescu
ddf2fade1a
Merge branch 'master' into playlist-item-iruleset 2021-11-16 16:19:10 +09:00
Dan Balasescu
c8038df509 Fix CI inspections 2021-11-16 16:06:30 +09:00
Dan Balasescu
00f0321f25 Add nullable equality comparers 2021-11-16 15:44:47 +09:00
Dan Balasescu
29d0d5badf Rename QueueModes -> QueueMode 2021-11-16 14:53:10 +09:00
Dan Balasescu
01f3649d75 Rename variables for readability 2021-11-16 14:44:47 +09:00
Dan Balasescu
f414877d00 Rename UserID -> OwnerID 2021-11-16 14:37:54 +09:00
Dean Herbert
71fef241df Fix recursive equality call on APIBeatmap and APIBeatmapSet 2021-11-16 14:13:47 +09:00
Dan Balasescu
9076519710 Give MultiplayerRoom a playlist, remove RequestAllPlaylistItems() 2021-11-16 14:13:43 +09:00
Dean Herbert
9207b87b76 Add back interface equality but limit to only matching types 2021-11-16 12:35:18 +09:00
Dan Balasescu
f0593115b2 Remove RemovePlaylistItem() server method for the time being 2021-11-16 12:08:53 +09:00
Dan Balasescu
f743a3647f Rename APIPlaylistItem -> MultiplayerPlaylistItem 2021-11-15 23:14:27 +09:00
Dean Herbert
5489b19c57 Update PlaylistItem to use IRulesetInfo 2021-11-15 16:13:03 +09:00
Dean Herbert
611b9fe942 Remove now unused implementations of interface equality 2021-11-15 14:50:09 +09:00
Dean Herbert
285b161da7 Update other usages of online ID comparisons to use new extension method 2021-11-15 14:44:08 +09:00
Dan Balasescu
ce47f456ec Change API for retrieving playlist items on join 2021-11-13 04:42:14 +09:00
Dan Balasescu
dbc23e224f Fix further test failures 2021-11-13 03:34:45 +09:00
Dan Balasescu
25202316cc Add user id to APIPlaylistItem 2021-11-13 00:23:35 +09:00
Dan Balasescu
3b24ec3643 Merge branch 'master' into multi-queueing-modes 2021-11-12 22:16:04 +09:00
Dean Herbert
9f7e2750a5 Merge branch 'master' into beatmap-collection-inteface-types 2021-11-12 19:41:29 +09:00
Dean Herbert
54cd1158a4 Add IBeatmapSetInfo equality support 2021-11-12 18:16:36 +09:00
Dean Herbert
a67e156883 Add IBeatmapInfo equality support 2021-11-12 18:11:33 +09:00
Dean Herbert
692e846acd Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
Dean Herbert
6a098a8634 Rename BeatmapInfo.OnlineBeatmapID to OnlineID to match interface 2021-11-12 17:46:24 +09:00
Dan Balasescu
07a7b4bcdc Merge branch 'master' into multi-queueing-modes 2021-11-11 22:19:30 +09:00
Dean Herbert
98fa253e1e Replace usage of TypeNameHandling.All with custom type converter 2021-11-11 14:04:19 +09:00
Dean Herbert
16418ac2ab Remove outdated comments 2021-11-11 14:02:12 +09:00
Dan Balasescu
1bc6a58528 Fix RoomUpdated() not invoked on item changes 2021-11-10 21:23:18 +09:00
Dan Balasescu
78793d8624 Update interface to remove items 2021-11-10 19:58:25 +09:00
Dan Balasescu
71f3a64165 Fix APIPlaylistItem serialisation 2021-11-10 18:25:14 +09:00
smoogipoo
35a5182ebf Merge branch 'master' into multi-queueing-modes 2021-11-10 15:01:13 +09:00
Bartłomiej Dach
5cb533004d
Add test coverage for favourite button 2021-11-08 11:53:53 +01:00
smoogipoo
c716051530 Merge branch 'master' into multi-queueing-modes 2021-11-08 19:19:50 +09:00
Dean Herbert
8b85c2c8de
Merge pull request #15491 from peppy/remove-stupid-weak-reference-bindable-events
Revert weird event flow in model manager/importers
2021-11-08 15:19:58 +09:00
Dan Balasescu
b5a6fd3f00
Merge pull request #15517 from peppy/fix-beatmap-wedge-user-display
Fix `LinkFlowContainer` not creating user links supporting full `IUser` specification
2021-11-08 15:06:28 +09:00
Dean Herbert
a2dfb5fd8c
Merge pull request #15513 from bdach/beatmap-card/statistics
Add statistics display to beatmap card
2021-11-08 14:45:56 +09:00
Dean Herbert
6b6dd93e9e Fix LinkFlowContainer not creating user links supporting full IUser specification 2021-11-08 14:17:47 +09:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-08 13:35:49 +09:00
Dean Herbert
1589b50d6e Merge branch 'master' into beatmap-card/statistics 2021-11-08 13:28:31 +09:00
Bartłomiej Dach
c0b5b0e909
Add new statistic types to online info 2021-11-07 21:33:41 +01:00
Dean Herbert
0ecf5f201c Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09:00
Dean Herbert
96ef210a4d Fix backward state set 2021-11-06 16:45:55 +09:00
Dean Herbert
bc17446055 Merge branch 'master' into user-lookup-by-username-cleanup 2021-11-06 14:38:30 +09:00
Dean Herbert
2881ce0f5a Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-06 14:08:39 +09:00
Dean Herbert
9a7c75508e Merge branch 'master' into user-class-cleanup 2021-11-05 19:56:18 +09:00
Dean Herbert
54f72d68ca Revert weird event flow in model manager/importers 2021-11-05 19:12:49 +09:00
Dean Herbert
6c385ccd29 Move second generic to abstract model downloader rather than interface type 2021-11-05 17:37:05 +09:00
smoogipoo
aee0f39c80 Merge branch 'master' into multi-queueing-modes 2021-11-05 16:06:41 +09:00
smoogipoo
7bbb2a7a67 Fix post-merge issues 2021-11-05 15:57:32 +09:00
smoogipoo
e6deb0c873 Merge branch 'master' into multi-queueing-modes 2021-11-05 15:57:25 +09:00
Dean Herbert
f2700b0a6d Expose bot state via interface 2021-11-05 13:40:44 +09:00
Dean Herbert
ead64282dd Split out a couple more nested classes 2021-11-05 13:40:44 +09:00
Dean Herbert
86540d1fb6 Update existing usages of Author as string to access Username directly 2021-11-04 18:57:54 +09:00
Dean Herbert
b9983add15 Rename User to APIUser and move to correct namespace 2021-11-04 18:21:31 +09:00
Dean Herbert
eb17d897a3 Finally, remove the To* methods as they have no usages 2021-11-04 17:09:53 +09:00
Dean Herbert
7bab487621 Remove usage of ToBeatmapInfo in APIScoreInfo.CreateScoreInfo 2021-11-04 17:09:53 +09:00
Dean Herbert
8f459e6ce8 Fix APIBeatmapSet.Beatmaps being IEnumerable, causing stupid issues 2021-11-04 16:44:17 +09:00
Dean Herbert
9c926e5514 Remove BeatmapSetInfo.OnlineInfo and all usages 2021-11-04 15:23:04 +09:00
Dean Herbert
0ab50f1cc9 Add inline comment explaining why we are manually populating beatmap.BeatmapSet 2021-11-04 13:45:59 +09:00
Dean Herbert
9f9c960fe3 Revert PlaylistItem.APIBeatmap to be private 2021-11-04 13:36:32 +09:00
Dean Herbert
05f1fd4bc9 Remove unnecessary properties and parameters 2021-11-04 13:33:54 +09:00
Dean Herbert
3453160a8b Change PlaylistItem.Beatmap to be an IBeatmapInfo 2021-11-04 13:16:56 +09:00
Dean Herbert
1d8e253112 Expose PlaylistItem.APIBeatmap for now 2021-11-04 11:53:26 +09:00
Dean Herbert
d85224d7ad Merge branch 'master' into localisable-text-flow 2021-11-03 17:09:46 +09:00
Bartłomiej Dach
195a141625
Fix score tracker not tracking non-online scores correctly 2021-11-02 22:51:25 +01:00
Bartłomiej Dach
11de924704
Use LocalisableStrings where possible to leverage localisable text flow 2021-11-02 21:42:02 +01:00
Dean Herbert
fe9b8f3274
Merge pull request #15432 from peppy/fix-beatmap-availability-potentially-wrong
Fix multiplayer potentially getting incorrect beatmap availability state after changing beatmaps
2021-11-03 04:54:22 +09:00
Dean Herbert
a97e5fbd89
Merge pull request #15431 from peppy/fix-unauth-api-requests
Fix unauthenticated API requests no longer working
2021-11-03 04:35:48 +09:00
Dean Herbert
85037dfb70 Fix multiplayer potentially getting incorrect beatmap availability state after changing beatmaps 2021-11-03 04:32:21 +09:00
Dean Herbert
f67f42dc5b
Merge pull request #15430 from bdach/fix-multi-submission
Fix multiplayer score submission not working
2021-11-03 04:10:23 +09:00
Dean Herbert
51e92e1b2d Check for null/empty instead 2021-11-03 04:09:31 +09:00
Dean Herbert
8d0b32981f Fix unauthenticated API requests no longer working 2021-11-03 03:30:15 +09:00
Bartłomiej Dach
c028275d6c
Fix multiplayer score submission not working 2021-11-02 19:16:44 +01:00
Dean Herbert
c85a4dca28 Fix crash when attempting to view global leaderboards 2021-11-03 02:47:33 +09:00
Dean Herbert
135df0e190 Avoid adding null users to RecentParticipants 2021-11-02 17:13:37 +09:00
Dean Herbert
b0bd39fc49 Fix multiplayer room participants display not updating as new users join/leave
Can add tests on request, but not sure the code around this area is here
to stay permanently. Should be pretty low risk.

- Closes https://github.com/ppy/osu/issues/14788.
2021-11-02 17:13:37 +09:00
Dean Herbert
3a5aed1182 Ensure APIScoreInfo.Mods is non-null 2021-11-01 22:59:12 +09:00
Dean Herbert
caa9d8997b Merge branch 'master' into score-refactor/less-create-score-info 2021-11-01 22:59:11 +09:00
Bartłomiej Dach
5dcff7d8b7
Merge branch 'master' into score-refactor/less-create-score-info 2021-11-01 11:41:20 +01:00
Dan Balasescu
95b1f5830d
Merge branch 'master' into beatmap-refactor/beatmap-overlays 2021-11-01 19:32:07 +09:00
Dan Balasescu
8c38698506
Merge pull request #15363 from peppy/beatmap-refactor/get-and-present
Update `GetScoreRequest` and `PresentBeatmap` to accept interface types
2021-11-01 19:28:28 +09:00
smoogipoo
65b920e4c1 Merge branch 'master' into multi-queueing-modes 2021-11-01 18:37:16 +09:00
Dan Balasescu
65d2b54ef6
Merge pull request #15387 from bdach/fix-score-download-tracker
Fix incorrect state transition in score download tracker
2021-11-01 18:36:35 +09:00
Dean Herbert
b21e0e7efb Merge branch 'beatmap-refactor/get-and-present' into beatmap-refactor/beatmap-overlays 2021-11-01 18:07:51 +09:00
Dean Herbert
602fe372c2 Merge branch 'score-refactor/isolated-serialisation' into beatmap-refactor/get-and-present 2021-11-01 18:06:53 +09:00
Bartłomiej Dach
cd4681496a
Fix incorrect state transition in score download tracker 2021-11-01 09:35:02 +01:00
Dean Herbert
722e0d50bb Fix BeatmapInfo not being correctly populated in CreateScoreInfo call 2021-11-01 15:54:39 +09:00
Dean Herbert
b98faf6159 Merge branch 'master' into score-refactor/isolated-serialisation 2021-11-01 15:49:25 +09:00
smoogipoo
94dce3f92a Remove whitespace 2021-11-01 15:43:19 +09:00
Dean Herbert
227963047a Fix hash validity check function returning incorrect results after soft deleting a beatmap
The soft-deleted one would potentially match before the newly imported
copy, resulting in a false-positive hash mismatch.
2021-11-01 15:15:45 +09:00
Dean Herbert
708b57348d Change loose api ordering requirement to throw instead 2021-11-01 13:22:16 +09:00
Dean Herbert
269a8df0ec Fix HasReplay not being corrrectly implemented by APIScoreInfo 2021-11-01 13:20:37 +09:00
Dean Herbert
19feae4a8e
Merge branch 'master' into beatmap-refactor/download-tracker 2021-11-01 13:15:36 +09:00
Bartłomiej Dach
8053b2c320
Merge branch 'master' into score-refactor/isolated-serialisation 2021-10-30 15:07:34 +02:00
Dean Herbert
5311fe2d02
Merge branch 'master' into beatmap-refactor/beatmap-overlays 2021-10-29 22:37:29 +09:00
Dean Herbert
a16c8f1ebc Update all beatmap overlay views to use APIBeatmap/APIBeatmapSet 2021-10-29 18:50:55 +09:00
Dean Herbert
b8ee7e05f4 Expose more pieces of APIBeatmap for testing purposes 2021-10-29 18:35:27 +09:00
Dean Herbert
8ad33d43d0 Merge branch 'beatmap-refactor/get-and-present' into beatmap-refactor/beatmap-overlays 2021-10-29 18:01:17 +09:00
Dean Herbert
b5834044e0 Update GetScoreRequest to support requests with interface types 2021-10-29 17:43:39 +09:00
smoogipoo
2408011c81 Don't replace identical playlist items 2021-10-29 16:44:51 +09:00
smoogipoo
f732c44265 Fix broken equality comparer 2021-10-29 16:23:10 +09:00
smoogipoo
42dfb341da Fix PlaylistItemChanged() not updating current item 2021-10-29 15:44:42 +09:00
Dean Herbert
17a83f701a Store mods as APIMods for the time being 2021-10-29 15:13:49 +09:00
Dean Herbert
06b6bcfd29 Add xmldoc for CreateScoreInfo function for now
I don't actually know how temporary this one is going to be. The usages
are quite deep - ie. converting to a `ScoreInfo` to get a calculated
total score for ordering purposes.
2021-10-29 14:51:07 +09:00
Dean Herbert
f68d6dbc8f Update score submission serialisation tests to use SubmittableScore 2021-10-29 14:32:31 +09:00
Dean Herbert
cd7bd935f6 Remove Statistics from interface until we figure how to properly deserialise 2021-10-29 14:18:10 +09:00
Dean Herbert
3f030cebf4 Remove local score copying in GetScoresRequest to allow APIScoreInfo.Beatmap to be APIBeatmap 2021-10-29 14:14:25 +09:00
Dean Herbert
54073d8a1e Isolate score submissions model and remove serialisation from ScoreInfo 2021-10-29 14:13:43 +09:00
Dean Herbert
1944c255a7 Implement score interfaces 2021-10-29 13:49:30 +09:00
Dean Herbert
817369903a Rename API score classes 2021-10-29 13:40:56 +09:00
Bartłomiej Dach
6f863ca204
Adjust game-side text flow containers to part-based model 2021-10-29 06:34:08 +02:00
Dean Herbert
f3811edb0b Add inline comment explaining usage of RequiresChildrenUpdate override 2021-10-29 11:57:54 +09:00
Dean Herbert
dc44734db2 Simplify null check in ScoreDownloadTracker and remove unnecessary ID check 2021-10-29 11:56:17 +09:00
Dean Herbert
75a088d4f4 Fix variable name mismatch 2021-10-29 11:54:42 +09:00
Dean Herbert
748003b016 Simplify Manager null check to a single pre-check 2021-10-29 11:54:19 +09:00
Dean Herbert
3b095e1626 Merge branch 'master' into beatmap-refactor/download-tracker 2021-10-29 11:50:54 +09:00
smoogipoo
f076b72fbe Merge branch 'master' into multi-queueing-modes 2021-10-29 10:48:16 +09:00
Dan Balasescu
44ba4419a2
Merge branch 'master' into beatmap-refactor/tournament 2021-10-28 15:25:34 +09:00
Dean Herbert
290f583ae0 Fix incorrect initial state 2021-10-28 00:59:48 +09:00
Dean Herbert
746d6a4c16 Fix some oversights and test failures 2021-10-27 23:42:27 +09:00
Dean Herbert
dd06c617b1 Update OnlinePlayBeatmapAvailabilityTracker in line with new download tracker
The structure here has changed a bit - rather than deriving from the
donwload tracker I moved the additional logic into the callbacks. I
think this feels better?
2021-10-27 21:00:46 +09:00
Dean Herbert
6339064dbd Remove old versions of DownloadTrackingComposite 2021-10-27 21:00:46 +09:00
Dean Herbert
692db9a9ec Remove unnecessary verification flow from score download tracking 2021-10-27 21:00:46 +09:00
Dean Herbert
9015ac6ba8 Implement new version of download tracker 2021-10-27 21:00:46 +09:00
Dean Herbert
db6343c44c Correctly redirect BPM from API to interface 2021-10-27 17:09:51 +09:00
Dean Herbert
40d963fc8a Allow setting of APIBeatmap.Length (and don't serialise twice) 2021-10-27 16:44:21 +09:00
Dean Herbert
95837990f3 Apply some second-pass inspections that appeared after previous changes 2021-10-27 13:09:30 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dan Balasescu
f687ed8599
Merge pull request #15283 from peppy/test-api-beatmap-set
Add ability to make test `APIBeatmapSet`s from test scenes
2021-10-26 15:34:19 +09:00
Dan Balasescu
efe6763226
Merge branch 'master' into move-online-beatmap-metrics 2021-10-26 14:24:40 +09:00
Dan Balasescu
676e7ff2a6
Merge pull request #15287 from peppy/get-beatmap-request-via-interface
Allow API beatmap requests using interface type
2021-10-26 13:50:46 +09:00
Dean Herbert
d7ac94038a Update GetBeatmapRequest to use AddParameter 2021-10-26 12:05:31 +09:00
Bartłomiej Dach
a49a1f41cb
Merge branch 'master' into move-online-beatmap-metrics 2021-10-25 20:33:49 +02:00
Dean Herbert
b65d199f6a Fix incorrect length when calling APIBeatmap.ToBeatmapInfo 2021-10-25 17:01:47 +09:00
Dean Herbert
6adb0f068b Fix multiple issues with json serialisation of online info (causing tournament failures) 2021-10-25 16:52:50 +09:00
Dean Herbert
67ef1c40e6 Allow API beatmap requests using interface type 2021-10-25 15:59:40 +09:00
Dean Herbert
2c308f3008 Rename BeatmapMetrics to APIFailTimes 2021-10-25 15:34:41 +09:00
Dean Herbert
20baae9094 Move online metrics out of BeatmapInfo model 2021-10-25 15:32:18 +09:00
Dean Herbert
045dd94a6e Move online metrics out of BeatmapSetInfo model 2021-10-25 15:12:39 +09:00
Dean Herbert
19312435d0 Add ability to make test APIBeatmaps from test scenes
Allow tests to create a sample `APIBeatmapSet`

One step towards removing calls to `ToBeatmap` / `ToBeatmapSet`.
2021-10-25 14:18:13 +09:00
smoogipoo
7d910ebb57 Add SignalR binding for PlaylistItemChanged 2021-10-22 22:37:08 +09:00
smoogipoo
76eff7f6b1 Fix incorrect indexing 2021-10-22 21:57:29 +09:00
Dean Herbert
c701579c69 Refactor BeatmapMetadataContainer and usages to use interface types 2021-10-22 21:38:50 +09:00
smoogipoo
6775151c30 Add Expired bool to APIPlaylistItem 2021-10-22 21:36:36 +09:00
Dean Herbert
28d8820976
Merge pull request #15224 from peppy/no-more-beatmap-metadata-base
Remove `BeatmapMetadata` base class from API classes
2021-10-22 21:07:29 +09:00
smoogipoo
ec02e16c81 Add playlist item change event 2021-10-22 20:53:45 +09:00
smoogipoo
4e6a02bde9 Fix missing QueueMode copies 2021-10-22 20:14:04 +09:00
smoogipoo
db87e42d47 Remove beatmap/ruleset/etc from MultiplayerRoomSettings 2021-10-22 16:48:28 +09:00
Dean Herbert
ea473428e8 Fix incorrect length mapping in APIBeatmap 2021-10-22 15:54:40 +09:00
Dean Herbert
de33b2f45a Return set metadata if available before falling back to empty object 2021-10-22 15:00:31 +09:00
smoogipoo
a1c9b56083 Rename modes 2021-10-22 12:55:37 +09:00
Dean Herbert
fb7cf35481 Remove BeatmapMetadata base class from APIBeatmap 2021-10-21 21:48:14 +09:00
Dean Herbert
6dd54a417f Remove BeatmapMetadata base class from APIBeatmapSet 2021-10-21 21:32:07 +09:00
Dean Herbert
c580ec865f APIBeatmapSet.Covers is never null 2021-10-21 19:34:01 +09:00
Dean Herbert
0fe0b5dc09 APIBeatmap implements IBeatmapInfo 2021-10-21 19:14:31 +09:00
Dean Herbert
40a176e86e APIBeatmapSet implements IBeatmapSetInfo 2021-10-21 19:14:19 +09:00
Dan Balasescu
8ae05ee8f7
Merge branch 'master' into online-info-as-interface 2021-10-21 17:14:57 +09:00
smoogipoo
f41cf822b0 Rename request 2021-10-21 17:02:11 +09:00
Dean Herbert
0706ad70fb Move BeatmapSetOnlineInfo to an interface type 2021-10-21 16:58:42 +09:00
Dean Herbert
a5c155bc87 Remove APIPlaylistBeatmap subclass 2021-10-21 16:43:46 +09:00
smoogipoo
691e414acb Add request to add a new playlist item 2021-10-20 21:08:58 +09:00
smoogipoo
67090fc598 Re-namespace enum 2021-10-20 20:52:16 +09:00
smoogipoo
599867a3b1 Add implementation to settings overlay 2021-10-20 20:29:06 +09:00
smoogipoo
0b8edb0812 Add english descriptions 2021-10-20 17:50:02 +09:00
smoogipoo
116ce09e49 Merge branch 'master' into multi-queueing-modes 2021-10-20 17:27:25 +09:00
smoogipoo
ea9c070e59 Add setting for queue mode 2021-10-20 14:51:59 +09:00
Dean Herbert
ad112cbbc5 Fix intendation in a way it doesn't regress with older inspectcode 2021-10-18 14:28:29 +09:00
Dean Herbert
6d6eed61aa Fix new indentation inspections 2021-10-18 14:00:35 +09:00
smoogipoo
6f89e30f56 Add QueueingMode to MultiplayerRoomSettings 2021-10-15 20:17:19 +09:00
smoogipoo
80dfd11c90 Remove unnecessary extra task
Further testing shows continuations also run before the .Wait() returns.
2021-10-15 13:28:02 +09:00
smoogipoo
e6ee360511 Fix intermittent multiplayer tests 2021-10-15 00:10:39 +09:00
smoogipoo
2784ba1423 Add queueing modes 2021-10-14 16:34:23 +09:00
smoogipoo
fdf7142711 Remove Room.Position 2021-10-13 21:24:54 +09:00
Gagah Pangeran Rosfatiputra
47c7701e47
handle changelog link in message formatter 2021-10-12 09:57:47 +07:00
Gagah Pangeran Rosfatiputra
e0c54e3207
add OpenChangelog link action 2021-10-12 09:37:11 +07:00
Dean Herbert
3803f2f462 Fix leaderboard potentially displaying the wrong scores
Closes #14762.

This class is ugly. I think the whole process should be clened up once
we have correctly-scheduled `SynchronizationContext`s. There's not much
saving it as long as all these interdispersed `Schedule`s around
required.
2021-10-06 16:07:29 +09:00
Dan Balasescu
9491e5a547
Merge pull request #14954 from peppy/rename-result-response
Rename `APIRequest.Result` to `Response`
2021-10-06 10:52:33 +09:00
Dean Herbert
c23acb8f05
Merge pull request #14967 from bdach/fix-accidental-json-property-rename
Fix "most played beatmap" request breakage after property rename
2021-10-06 05:00:12 +09:00
Bartłomiej Dach
baa8baaa1e
Fix "most played beatmap" request breakage after property rename 2021-10-05 21:17:19 +02:00
Bartłomiej Dach
12da27cde7
Add test coverage for loading process on channel join 2021-10-05 20:52:40 +02:00
Dean Herbert
b41fa41c85 Rename APIRequest.Result to Response 2021-10-05 14:28:56 +09:00
Dean Herbert
853cf6feaa Rename last remaining BeatmapInfo Beatmap usage 2021-10-04 17:35:53 +09:00
Dan Balasescu
5937a93e2d
Merge pull request #14949 from peppy/login-error-display
Show login failure messages on login form
2021-10-04 17:23:11 +09:00
Dean Herbert
3a0b7ba8ff Add fallback to use Message when Hint is not available 2021-10-04 16:18:55 +09:00
smoogipoo
69c2b7dc59 Merge branch 'master' into rename-beatmap-info-beatmap-fields 2021-10-04 16:03:22 +09:00
Dan Balasescu
aa1bfc16d2
Merge pull request #14929 from peppy/gameplay-state
Replace `GameplayBeatmap` with `GameplayState`
2021-10-04 15:56:44 +09:00
Dean Herbert
266b4c7124 Expose login errors from IAPIProvider and show on the login form 2021-10-04 15:40:24 +09:00
Dean Herbert
5aaafce597 Make AuthenticateWithLogin throw instead of return a bool success status 2021-10-04 15:40:00 +09:00
Dean Herbert
ec61c3c5ee Rename all remaining cases 2021-10-03 00:55:29 +09:00
Dean Herbert
32afd3f426 Replace all basic usages 2021-10-02 02:22:23 +09:00
Dean Herbert
3e3b9bc963 Split out IModelDownloader and also split apart ScoreManager 2021-09-30 18:25:20 +09:00
Dean Herbert
8acfefed1b
Merge pull request #14741 from smoogipoo/fix-lounge-beatmaps-counter
Fix incorrect beatmap count and SR range in multi lounge
2021-09-15 18:51:52 +09:00
smoogipoo
f54d554d30 Extract removal to method 2021-09-15 17:03:28 +09:00
smoogipoo
b807c161b4 Remove now-unused DI params 2021-09-14 17:25:57 +09:00
smoogipoo
6cffbee592 Fix random/target mods not working in spectator 2021-09-14 17:22:58 +09:00
Dan Balasescu
d9b4fae4e5
Merge branch 'master' into chat-command 2021-09-13 13:32:44 +09:00
Bartłomiej Dach
c4627bed6d
Print username in case of generic network failure too 2021-09-12 12:56:36 +02:00
rednir
e511c2ef2b
add comment 2021-09-12 08:50:53 +01:00
Davran Dilshat
1b264a2dd0 make user lookup string public 2021-09-11 16:22:29 +01:00
Davran Dilshat
c166f1a06a change error message based on exception message 2021-09-11 14:18:09 +01:00
Dan Balasescu
f4b1d8b9d1
Merge pull request #14704 from peppy/modicon-imod-support
Update `LeaderboardModSelector` to avoid creating mod instances
2021-09-10 16:43:32 +09:00
Davran Dilshat
acb181ff2b rename alreadyJoinedChannel -> privateChannel 2021-09-10 08:15:43 +01:00
rednir
5ec615c783
display user in error message
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-09-10 08:02:15 +01:00
rednir
84c152e7b6
break when already found user
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-09-10 08:01:38 +01:00
Dean Herbert
309460e505
Merge pull request #14675 from ekrctb/featured-artist-markers
Add featured artist markers to beatmap listing and overlay
2021-09-10 14:30:33 +09:00
Dean Herbert
28e9329136 Update LeaderboardModSelector to avoid creating mod instances 2021-09-10 12:43:21 +09:00
Dean Herbert
76e877f160 Disable APIMod/Mod cross equality support 2021-09-10 11:24:56 +09:00
Dean Herbert
cf633973a9 Refactor exposed mod retrieval methods for better safety 2021-09-10 11:09:13 +09:00
Dean Herbert
ce6b022a90 Remove unused IMod specification from APIMod 2021-09-10 10:59:30 +09:00
Dean Herbert
2edb851008 Add ability to lookup mod from a type specification 2021-09-09 16:50:59 +09:00
Dean Herbert
4d0530ca9d Add new methods to ruleset for quicker mod lookups 2021-09-09 16:46:14 +09:00
Dean Herbert
e66d76d26e Avoid settings copy if there are no settings 2021-09-09 15:43:55 +09:00
ekrctb
7543f9dfb0 Add featured artist track ID online info 2021-09-08 12:21:24 +09:00
Davran Dilshat
255f8a9769 add alias "/msg" (also a command in stable) 2021-09-07 17:25:47 +01:00
Davran Dilshat
b1c89f7618 ignore case when search for already joined channel 2021-09-07 17:22:59 +01:00
Davran Dilshat
be9540e535 fix "key" having wrong url parameter name 2021-09-07 17:17:10 +01:00
rednir
f209222812
Merge branch 'master' into chat-command 2021-09-07 17:09:46 +01:00
Davran Dilshat
f54d5675db check if user joined requested channel already 2021-09-07 17:06:12 +01:00
Dean Herbert
c43ac8c946
Merge pull request #14660 from ekrctb/search-featured-artists
Add "featured artists" filter to beatmap listing
2021-09-07 20:58:13 +09:00
Dean Herbert
92f59c10f5 Remove redundant this. in assignment 2021-09-07 17:45:39 +09:00
Dean Herbert
1aa95de530 Merge branch 'master' into score-ordering 2021-09-07 17:45:38 +09:00
Dean Herbert
d922210d2f Fix TestSceneDeleteLocalScore not properly comparing post-delete scores 2021-09-07 16:46:27 +09:00
ekrctb
b6c80f04b0 Add "featured artists" filter to beatmap search 2021-09-07 16:44:45 +09:00
Dean Herbert
1c4a3c584a Use correct lookup type to ensure username based lookups always prefer username 2021-09-06 15:04:27 +09:00
Davran Dilshat
5c385e84ea wrong command name in query message 2021-09-05 21:20:19 +01:00
Davran Dilshat
cb6cee9aea add /query as alias of /chat 2021-09-05 21:10:08 +01:00
Davran Dilshat
59ca69e41f add /chat command 2021-09-05 18:16:57 +01:00
Davran Dilshat
b1a995e0bb revert changes 2021-09-05 15:49:48 +01:00
Davran Dilshat
e78dc1bb4c more code quality :/ 2021-09-05 15:27:28 +01:00
Davran Dilshat
e409f2dc6d add xmldoc 2021-09-05 10:42:38 +01:00
Davran Dilshat
9aa1564e0d revert ChannelManager changes 2021-09-05 10:19:04 +01:00
Davran Dilshat
ea3be927d7 convert to method group 2021-09-04 20:02:10 +01:00
Davran Dilshat
4c006333e0 add /chat command 2021-09-04 19:42:14 +01:00
smoogipoo
999386da29 Cleanup 2021-08-31 21:47:49 +09:00
smoogipoo
bfcadcc4ac Revert some changes 2021-08-31 19:18:01 +09:00
rednir
8104b15874
remove braces
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-08-30 13:23:33 +01:00
smoogipoo
4ebb11472d Update Leaderboard to reorder scores based on scoring mode 2021-08-30 19:34:34 +09:00
Davran Dilshat
90c313e2ad add methods to get a user from their username 2021-08-29 19:19:55 +01:00
Dean Herbert
e1ab3434ed Add ability to handle user join/leave/kick events in MultiplayerComposites 2021-08-25 14:37:14 +09:00
Bartłomiej Dach
e503182a8d
Merge branch 'master' into activity-on-multiplayer-screens 2021-08-24 18:50:55 +02:00
Dean Herbert
8cd972a9fe Merge branch 'master' into pinned-comment 2021-08-24 14:37:31 +09:00
smoogipoo
956c1cc216 Merge branch 'master' into activity-on-multiplayer-screens 2021-08-24 12:33:34 +09:00
Endrik Tombak
058d2d2a49 Use nekodex's regex from osu-web 2021-08-20 23:01:06 +03:00
Endrik Tombak
8745fe9e34 Change editor timestamp regex to not match non-editor ones 2021-08-20 22:32:04 +03:00
Dan Balasescu
54bc532f0d
Merge branch 'master' into fix-messagepack-union 2021-08-20 16:01:04 +09:00
Dan Balasescu
dcff30ed6e
Merge branch 'master' into fix-login-as-guest 2021-08-20 14:06:28 +09:00
Dean Herbert
da8eba9996 Return early to avoid updating state and failure count in fail cases 2021-08-20 12:11:41 +09:00
Dan Balasescu
c95bf735fe
Merge branch 'master' into multiplayer-chat 2021-08-20 11:54:42 +09:00
Dean Herbert
a6b7ca1a4c Ensure all request failures are correctly handled during login 2021-08-19 19:55:14 +09:00
Dean Herbert
bc025efce5 Add commenting regarding workaround to avoid potential omission in the future 2021-08-19 17:42:44 +09:00
Dean Herbert
2b5a42e063 Add missing union specification for MatchUserRequest 2021-08-19 17:42:26 +09:00
Dean Herbert
f95c6f0de5 Switch multiplayer back to messagepack 2021-08-19 17:42:13 +09:00
Dean Herbert
fa01e4fad2 Add workaround for SignalR union serialisation 2021-08-19 17:41:50 +09:00
smoogipoo
1fd746524d Remove realtime room category, fix end-date showing for realtime 2021-08-19 16:09:28 +09:00
Dean Herbert
1faf789f0e Allow expanding chat using key binding even when it is hidden 2021-08-18 18:25:21 +09:00
Dan Balasescu
eaf7bd72fc
Merge branch 'master' into multiplayer-chat 2021-08-17 20:08:01 +09:00
Dean Herbert
8a1651e830 Reorganise methods in PollingComponent 2021-08-17 17:04:32 +09:00
Dean Herbert
b82f92d7b8 Adjust background colours of textbox in chat display 2021-08-17 16:16:49 +09:00
Dean Herbert
35b9f84c00 Expose StandAloneChatDisplay.Textbox 2021-08-17 16:16:49 +09:00
smoogipoo
6320768a67 Merge branch 'master' into multi-polling-request-refactor 2021-08-17 08:44:56 +09:00
smoogipoo
08d347f10b Merge branch 'master' into multi-polling-request-refactor 2021-08-16 13:12:08 +09:00
Nathan Alo
cc3468b4ab apply suggestions
- make `UserActivity.InGame` and derive that to `InSoloGame` and `InMultiplayerGame`
- rename `SoloGame` to `InSoloGame`
- rename `MultiplayerGame` to `InMultiplayerGame`
2021-08-16 06:32:33 +08:00
Opelkuh
7d7c5c06f0 Fix code formatting 2021-08-15 16:02:25 +02:00
Opelkuh
2f9f1ba862 Add test for ChannelManager.MarkChannelAsRead 2021-08-15 15:44:23 +02:00
Opelkuh
7d6f7ac75e Fix mark channel as read error 2021-08-15 02:57:11 +02:00
Bartłomiej Dach
498462dfd0
Fix room null-check racing against async schedule 2021-08-14 17:44:41 +02:00
Dean Herbert
b8c63eb1cb Merge branch 'master' into multiplayer-kick-support-events 2021-08-14 14:08:34 +09:00
smoogipoo
1fcb1cdb10 Add todo 2021-08-13 22:01:47 +09:00
Gagah Pangeran Rosfatiputra
480d5ffa5d
add pinned comment to users setter in comment bundle 2021-08-13 19:40:37 +07:00
smoogipoo
8910781bcd Move listing polling component to LoungeSubScreen 2021-08-13 17:39:09 +09:00
Gagah Pangeran Rosfatiputra
39b13efdd5
add pinned comments property in comment bundle 2021-08-13 13:13:28 +07:00
Gagah Pangeran Rosfatiputra
0901333ef3
add pinned property in comment 2021-08-13 12:57:29 +07:00
Dean Herbert
5f3ceaf0ad
Merge branch 'master' into lounge-redesign 2021-08-12 16:31:14 +09:00
Dean Herbert
9b21ebd6d0 Add client side handling on incoming kick 2021-08-11 19:56:06 +09:00
Dean Herbert
d9a4f018e6 Add event flow for receiving kick commands 2021-08-11 19:56:06 +09:00
smoogipoo
0f5bea235c Merge branch 'master' into lounge-redesign 2021-08-11 18:15:34 +09:00
Dean Herbert
e8ad0fba75 Add required server methods for kicking users 2021-08-11 17:20:41 +09:00
Dan Balasescu
b8748a86c5
Merge pull request #14204 from peppy/fix-null-ref-online-tracking-component
Fix potential null reference in online status resolution in multiplayer match
2021-08-10 18:36:13 +09:00
Dean Herbert
b121d95400 Avoid potential null reference exception in OnlinePlayBeatmapAvailabilityTracker 2021-08-10 17:37:24 +09:00
Dean Herbert
2b9168157d Fix CurrentMatchPlayingItem not being reset on leaving a multiplayer room 2021-08-10 16:53:03 +09:00
Dean Herbert
ea6e441dec Simplify method of marking players as playing in test scenes 2021-08-09 19:21:22 +09:00
Dean Herbert
0b76460043 Merge branch 'master' into lounge-redesign 2021-08-09 16:28:28 +09:00
Dean Herbert
8dc167ac9a Set default MultiplayerRoomSettings type to something that isn't playlists 2021-08-06 18:56:01 +09:00
smoogipoo
0246e6f850 Merge branch 'master' into lounge-redesign 2021-08-05 19:55:15 +09:00
smoogipoo
94aa5fbca7 Fix doubled json property (runtime error) 2021-08-05 16:31:34 +09:00
smoogipoo
fbf89493ad Merge branch 'master' into lounge-redesign 2021-08-04 19:53:55 +09:00
Dean Herbert
666007b2f9
Merge branch 'master' into multiplayer-team-vs-team-selection 2021-08-04 13:54:11 +09:00
Dean Herbert
401835a3d8 Add missing event glue 2021-08-04 13:13:47 +09:00
Dean Herbert
75426f84f1 Fire initial match user states in TestMultiplayerClient 2021-08-03 23:42:37 +09:00
Dean Herbert
b956d32587 Add the ability to change multiplayer game type 2021-08-03 23:42:37 +09:00
Dean Herbert
e11b815b82 Serialise type as snake_case 2021-08-03 23:13:39 +09:00
smoogipoo
1b6b7ce343 Merge branch 'master' into lounge-redesign 2021-08-03 20:02:31 +09:00
Dean Herbert
70da58323a Drop MatchRuleset terminology completely 2021-08-03 15:45:17 +09:00
Dean Herbert
66427127f0 Update naming in line with discussion 2021-08-03 15:09:03 +09:00
Dean Herbert
a42762e351 Merge branch 'multiplayer-rename-game-type' into multiplayer-match-rulesets 2021-08-03 14:55:51 +09:00
Dean Herbert
ee102e3755 Fix incorrectly overwritten ReferenceLoopHandling setting 2021-08-03 14:55:20 +09:00
Dean Herbert
5ac3abac99 Add missing forceScheduled parameter 2021-08-03 14:53:04 +09:00
Dean Herbert
556962a3d8
Add missing xmldoc comment
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-08-03 14:50:56 +09:00
Dean Herbert
2564c0c3df Rename GameType to MatchType and make enum instead of class 2021-08-03 14:46:31 +09:00
Dean Herbert
d93421b9b8 Expose a default TeamVs room state so it can be consumed by tests 2021-08-02 18:50:22 +09:00
Dean Herbert
c7274355a4 Remove abstract definitions from multiplayer states for now 2021-08-02 18:50:22 +09:00
Dean Herbert
617ff40de7 Add the ability to not use MessagePack when creating a HubConnector 2021-08-02 18:50:22 +09:00
Dean Herbert
1cd967b351 Add signalr json type handling specification 2021-08-02 18:50:22 +09:00
Dean Herbert
4cf2c6188d Add union attributes for derived class deserialisation 2021-08-02 18:50:22 +09:00
Dean Herbert
ce92a47ec6 Add silly event handling hookups 2021-08-02 18:50:22 +09:00
Dean Herbert
359eb9c4ec Add new event flow for match ruleset state handling
I'm totally not happy with how this is done, but don't have the energy
to rewrite everything just now.
2021-08-02 18:50:22 +09:00
Dean Herbert
035dfd071f Add missing nullable specifications 2021-08-02 18:47:26 +09:00
Dean Herbert
d17b2b3268 Add boilerplate for server events 2021-08-02 18:47:26 +09:00
Dean Herbert
1d645d4ca9 Mark base classes non-abstract to fix messagepack serialisation 2021-08-02 18:47:26 +09:00
Dean Herbert
1c125eef12 Make Users an IList for more flexibility server-side 2021-08-02 18:47:26 +09:00
Dean Herbert
9d1e95caf0 Add flow for sending match ruleset specific messages to the server 2021-08-02 18:47:26 +09:00
Dean Herbert
e8338f2711 Add basic class structure for match rulesets and required state 2021-08-02 17:14:49 +09:00
Jamie Taylor
c1d8a7e2ad
Add and use 'Submit' select sample variant for particular components 2021-07-30 21:35:28 +09:00
Dean Herbert
185ea776f5 Fix incorrect authorisation loss exception handling with recent changes 2021-07-30 18:11:40 +09:00
Dean Herbert
3a5324c947 Fix aborting an APIRequest potentially resulting in incorrect success 2021-07-29 13:01:52 +09:00
Dan Balasescu
2a94fc214f
Merge pull request #14046 from peppy/fix-rapid-reconnection
Fix `HubClientConnector` reconnecting with no delay on server-triggered error
2021-07-29 01:52:21 +09:00
Dean Herbert
cd2a1af6de Fix HubClientConnector reconnecting with no delay on server-triggered error 2021-07-28 20:46:02 +09:00
Dean Herbert
1ed4fdd5f5 Avoid deserialisation JSON request content when error is not present (or not relevant) 2021-07-28 20:13:40 +09:00
Dean Herbert
bb3747ffc9 Fix beatmap search requests double-escaping
Closes #14008.
2021-07-25 17:06:40 +09:00
Dan Balasescu
ce30bd8cc7
Merge pull request #14003 from Game4all/localise-profile-overlay-header-stats
Localise profile overlay numeric statistics
2021-07-25 12:20:38 +09:00
Dean Herbert
48120faeb2 Fix inability to join a multiplayer room which has no password 2021-07-24 19:21:16 +09:00
Lucas A
ff3d38de6f Localise accuracy display. 2021-07-23 22:37:08 +02:00
Dean Herbert
17168b8137 Fix authentication loss not handled correctly
This handles the case where on initial API connection, the server
responds with an `Unauthorized` response. It doesn't perform this same
checking/handling on every API request, which is probably what we want
eventually.

Opting to not address the full issue because I know this is going to be
a long one (see
05c50c0f6c/osu.Game/Online/API/APIAccess.cs (L233)).
2021-07-23 19:03:19 +09:00
Bartłomiej Dach
6dbdfcc70c
Fix room password not being percent-encoded in join request 2021-07-22 23:11:58 +02:00
Dean Herbert
57e5f5575a Fix derived API request types firing success when they shouldn't
The usual case of `virtual`/`override` being dangerous when logic is
added to the base implementation. As such, I've removed this completely.
2021-07-22 14:23:27 +09:00
Dan Balasescu
747c475b95
Merge pull request #13932 from peppy/fix-multiple-request-completion-states
Fix API request potentially firing failed events after completion
2021-07-21 15:11:03 +09:00
Bartłomiej Dach
1e634d9db0
Adjust user beatmap sections on profile overlay to match web 2021-07-20 21:55:17 +02:00
smoogipoo
b7c2d6b1ab Merge branch 'master' into add-password-support 2021-07-19 22:23:09 +09:00
smoogipoo
0a43e54dfc Fix request failing due to parameters 2021-07-19 21:24:22 +09:00
smoogipoo
a001e4aa16 Fix web request failing if password is null 2021-07-19 20:57:16 +09:00
Dean Herbert
80c2b1449b Fix API request potentially firing failed events after completion
Specifically, `Cancel()` calls were not thread safe. Due to a series of
events, `ListPollingComponent` could call `Cancel` from a non-update
thread, leading to a race condition where both a `Success` and `Fail`
event can be fired.

This is intended to be the simplest fix possible, locking and guarding
specifically on the callbacks. Further work could be done in the future
to improve the flow surrounding `pendingFailure`, potentially reducing
redundant work and cleaning up the code, but that's not happening here.

Closes https://github.com/ppy/osu/issues/13632.
2021-07-19 20:27:01 +09:00
smoogipoo
2eec524f27 Fix password not copied from multiplayer client 2021-07-19 20:20:08 +09:00
smoogipoo
2515785f93 Use room password to fill settings textbox 2021-07-19 20:03:32 +09:00
smoogipoo
063f14da98 Update test room manager to not return passwords 2021-07-19 20:03:27 +09:00
Dean Herbert
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00
Dean Herbert
125bd36ab1 Send password in request ctor directly 2021-07-13 14:27:07 +09:00
Dean Herbert
c5319c06c2 Add password attributes to CopyFrom to make testing work better 2021-07-12 18:54:07 +09:00
Dean Herbert
9f9d7f9125 Add remaining pieces of password flow (for osu-web join request) 2021-07-12 18:22:52 +09:00
Dean Herbert
f35d55c32f Fix HasPassword not being in sync with Password value for client-side rooms 2021-07-12 15:49:19 +09:00
Dean Herbert
08c40938db Add support for updating a room's password 2021-07-12 15:49:19 +09:00
Dean Herbert
5148069efe Update signatures in line with no-overload methods (unsupported by signalr) 2021-07-12 15:49:19 +09:00
Dean Herbert
2ca11d458a Add password to room settings and multiplayer lounge interface 2021-07-12 15:49:19 +09:00
Dean Herbert
6a74fde082 Add has_password flag and region post only parameters 2021-07-12 15:49:19 +09:00
Dean Herbert
4fd6f2101c Add password textbox input 2021-07-12 15:49:19 +09:00
Dean Herbert
0db316d644 Add password scaffolding 2021-07-12 15:49:19 +09:00
smoogipoo
ac26374a93 Merge branch 'master' into lounge-redesign 2021-07-12 13:54:42 +09:00
Jamie Taylor
2eb12a59b7
Rename function to be more accurate 2021-07-09 11:16:47 +09:00
Jamie Taylor
546f55d341
Change profile section expansion to use dropdown sounds 2021-07-08 20:23:11 +09:00
smoogipoo
14b6949456 Shorten room status messages 2021-07-07 14:47:24 +09:00
PercyDan54
e1c646b9b2
Remove redundant arguments 2021-07-05 23:52:39 +08:00
Dean Herbert
31dbc7798b Merge branch 'master' into linkify-metadata 2021-07-01 19:41:33 +09:00
smoogipoo
ca0eaab8e2 Add test 2021-06-29 16:30:46 +09:00
smoogipoo
7a86686f40 Make nullable 2021-06-29 16:30:40 +09:00
smoogipoo
9132c42f87 Fix actions posted to the wrong channel 2021-06-29 15:58:07 +09:00
Bartłomiej Dach
50c27d2635 Update usages of IHasTooltip in line with framework localisation changes 2021-06-25 19:10:04 +02:00
Joseph Madamba
6fda5e569a Fix beatmap discussion links wrongly leading to beatmap page 2021-06-20 21:37:00 -07:00
Dean Herbert
9495f87f04 Remove redundant NotNull attributes in nullable classes 2021-06-17 16:07:32 +09:00
Dean Herbert
fc442713bb Debounce schedule at base class 2021-06-14 14:26:40 +09:00
Dean Herbert
8dd48d48f6 Add support for song select leaderboard to handle newly imported scores 2021-06-14 14:20:23 +09:00
Dean Herbert
26312bf60a
Merge branch 'master' into chat-mention 2021-06-11 20:03:44 +09:00
Dean Herbert
8eab7df955 Move BindCollectionChanged out of async load 2021-06-11 17:51:58 +09:00
Dean Herbert
20759657de Rename configuration variables and refactor lots more 2021-06-11 16:37:31 +09:00
Dean Herbert
3d645608eb Remove nullability of DI dependencies and fix incorrect load order 2021-06-11 16:28:53 +09:00
Dean Herbert
139401a04a Inline and refactor overly verbose MessageNotifier code 2021-06-11 16:27:31 +09:00
Dean Herbert
061e3d7f26 Move legacy ScoreInfo to be completely based on presence of classic mod 2021-06-08 18:00:09 +09:00
Craftplacer
4925a7d59e
Minor code quality changes 2021-06-05 15:57:14 +02:00
Craftplacer
5e44329e0b
Add DummyAPIAccess request handler
Make CreateChannelRequest.channel public
2021-06-05 14:43:26 +02:00
Craftplacer
ce4bcda803
Use separate method for fetching channel objects
Resolves a pull request review
2021-06-05 14:02:48 +02:00
Craftplacer
39c3b08fc7
Merge remote-tracking branch 'upstream/master' into chat-mention 2021-06-05 11:18:06 +02:00
Craftplacer
b746fe7c03
Fix binding order 2021-06-05 11:03:49 +02:00
Bartłomiej Dach
5f5f3a8c5c General comment cleanups 2021-06-03 14:20:52 +02:00
Bartłomiej Dach
b2cc2a51ec Rename method to be less misleading
Would rather avoid variations of Equals/Equal/IsEqual. There's not
really much equality involved as the types are different.
2021-06-03 14:13:01 +02:00
Bartłomiej Dach
e8c2483f19 Use standard list instead of bindable list
No reason to use a bindable list there, as `CollectionChanged` was never
subscribed to.
2021-06-03 14:09:52 +02:00
Bartłomiej Dach
8193691cbc Invert condition to reduce nesting 2021-06-03 14:09:52 +02:00
Dean Herbert
a6cc37eb3b Mark fields readonly 2021-06-03 14:56:21 +09:00
Dean Herbert
4a5d8215f3
Merge branch 'master' into keyboard_shortcuts 2021-06-03 14:47:40 +09:00
Dean Herbert
1f8abcdf6c Merge branch 'master' into fix-relative-link-resolution 2021-06-01 16:49:02 +09:00
Dean Herbert
dce24e3d4d
Merge pull request #12950 from gagahpangeran/osu-wiki-overlay
Initial implementation of Wiki Overlay
2021-06-01 15:20:56 +09:00
Dean Herbert
a9f4bc6285 Never return a null argument
Enable nullable
2021-06-01 14:11:17 +09:00
Dean Herbert
111bfd4d88 Fix relative URLs having a null argument after resolution to LinkDetails 2021-06-01 13:50:20 +09:00
smoogipoo
bca8a9ea53 Fix HandleFrame crashing when not playing 2021-05-31 10:02:02 +09:00
Craftplacer
b3ac67675e
Merge branch 'chat-mention' of github.com:Craftplacer/osu into chat-mention 2021-05-27 21:59:51 +02:00
Craftplacer
13b2b7c148
Fix formatting 2021-05-27 21:58:54 +02:00
Craftplacer
0b17af81f1
Use Contains instead of IndexOf
Co-authored-by: Berkan Diler <b.diler@gmx.de>
2021-05-27 09:48:30 +00:00
Dean Herbert
aa23c4a4b9
Merge branch 'master' into keyboard_shortcuts 2021-05-27 16:30:34 +09:00
Craftplacer
a679efac1c
Reduce duplicate notification code by making a base class 2021-05-27 01:00:26 +02:00
Craftplacer
cf39e58ce7
Subscribe to CollectionChanged before binding to JoinedChannels 2021-05-27 01:00:08 +02:00
Craftplacer
d47370bac9
Locally bind to LocalUser 2021-05-27 00:59:29 +02:00
Gagah Pangeran Rosfatiputra
905364b5fe
add url as argument for link action external 2021-05-26 19:34:34 +07:00
Dean Herbert
52ca2f4797 Merge branch 'master' into chat-mention 2021-05-26 16:00:26 +09:00
Dean Herbert
20f890cfd0
Merge branch 'master' into fix-spectator-playing-state-5 2021-05-21 16:49:22 +09:00
Dean Herbert
1c560a9490
Merge pull request #12869 from EVAST9919/sidebar
Add sidebar to news overlay
2021-05-21 16:21:18 +09:00
smoogipoo
7c59fb37f1 Move check into callback 2021-05-21 16:00:58 +09:00
smoogipoo
36aa186c6e Merge branch 'thread-safe-spectator-client' 2021-05-21 16:00:24 +09:00
smoogipoo
7f712a4d04 Fix EndPlaying potentially doing cross-thread mutation 2021-05-21 15:57:39 +09:00
smoogipoo
2fdf8aa1aa Add update thread assertions 2021-05-21 15:57:31 +09:00
smoogipoo
895eb14c5a Forcefully end playing to fix test failures 2021-05-21 14:09:30 +09:00
Andrei Zavatski
bd80cf656a Merge remote-tracking branch 'refs/remotes/ppy/master' into sidebar 2021-05-20 15:41:08 +03:00
smoogipoo
e3284b976d Merge branch 'thread-safe-spectator-client' into fix-spectator-playing-state-5 2021-05-20 19:46:26 +09:00
smoogipoo
06c99e8c7c Fix race due to StopWatchingUser() being called asynchronously 2021-05-20 19:45:31 +09:00
smoogipoo
7ee81669f7 Remove bind helpers from SpectatorClient 2021-05-20 19:27:43 +09:00
smoogipoo
b515fe3cb1 Fix playing user state not removed on stop watching 2021-05-20 19:20:09 +09:00
smoogipoo
89b4f69588 Expose playing user states as bindable dictionary 2021-05-20 19:19:39 +09:00
smoogipoo
2896da499d Merge branch 'restructure-spectator-client' into thread-safe-spectator-client 2021-05-20 18:53:54 +09:00
smoogipoo
a74405d0ed Merge branch 'master' into restructure-spectator-client 2021-05-20 18:53:42 +09:00
smoogipoo
10597f7e6a Remove locking from SpectatorClient 2021-05-20 18:37:27 +09:00
smoogipoo
6eff8d513e Annotate nullables 2021-05-20 17:51:09 +09:00
smoogipoo
df80531a0a Split online connectivity into OnlineSpectatorClient 2021-05-20 16:30:56 +09:00
smoogipoo
6beeb7f7c4 Rename SpectatorStreamingClient -> SpectatorClient 2021-05-20 15:55:07 +09:00
smoogipoo
d197a7f6f5 Rename multiplayer client classes 2021-05-20 15:39:45 +09:00
Dean Herbert
9267d23dc2 Make year nullable rather than defaulting to zero 2021-05-20 15:23:49 +09:00
Andrei Zavatski
16ffedde8a Add year parameter to GetNewsRequest 2021-05-19 15:17:57 +03:00
Andrei Zavatski
24af86689f Merge remote-tracking branch 'refs/remotes/ppy/master' into news-sidebar-new 2021-05-18 22:18:52 +03:00
smoogipoo
5f94b3bdac Remove legacy playlist item ID handling 2021-05-18 21:03:59 +09:00
smoogipoo
e3b8d8ee18 Add support for overlay-coloured links 2021-05-17 16:58:54 +09:00
Gagah Pangeran Rosfatiputra
f2de28814a
add and handle OpenWiki link action 2021-05-17 00:43:59 +07:00
Andrei Zavatski
881d82ccb6 Merge remote-tracking branch 'refs/remotes/ppy/master' into news-sidebar-new 2021-05-15 19:08:48 +03:00
Bartłomiej Dach
5b2b701915 Ignore possible null in GetResponseString()
A null there indicates a deserialisation error and therefore due to the
catch block immediately succeeding the changed line everything will
continue to work as intended.
2021-05-15 00:09:34 +02:00
Bartłomiej Dach
aaa7c7eb05 Handle null case explicitly in SpectatorState.Equals()
Uses the usual pattern of two `ReferenceEquals` checks against `this`
and `null` before proceeding to inspect field values. Doing this causes
the compiler to infer that at the point that field values are checked,
`other` can no longer viably be `null`.
2021-05-14 23:58:07 +02:00
Andrei Zavatski
13a956f6fc Merge remote-tracking branch 'refs/remotes/ppy/master' into news-sidebar-new 2021-05-12 20:08:17 +03:00
smoogipoo
f4c96b2675 Only update playing user states when users are watched 2021-05-12 13:10:59 +09:00
smoogipoo
ad11818868 Remove watched users on stop watching 2021-05-12 13:05:02 +09:00
smoogipoo
10a4a5decb Merge branch 'master' into multiplayer-spectator-screen 2021-05-11 17:33:09 +09:00
Andrei Zavatski
4b97224932 Implement NewsSideBar component 2021-05-10 09:53:52 +03:00
Bartłomiej Dach
fe86ee629e Fix temp files from beatmap listing imports not being cleaned up
As reported in #12718, it turns out that temporary files from beatmap
set downloads performed via the beatmap listing overlay could remain in
the user's filesystem even after the download has concluded.

The reason for the issue is a failure in component integration.
In the case of online downloads, files are first downloaded to a
temporary directory (`C:/Temp` or `/tmp`), with a randomly generated
filename, which ends in an extension of `.tmp`.

On the other side, `ArchiveModelManager`s have a `ShouldDeleteArchive()`
method, which determines whether a file should be deleted after
importing. At the time of writing, in the case of beatmap imports the
file is only automatically cleaned up if the extension of the file is
equal to `.osz`, which was not the case for temporary files.

As it turns out, `APIDownloadRequest` has a facility for adjusting the
file's extension, via the protected `FileExtension` property. Therefore,
use it in the case of `DownloadBeatmapSetRequest` to specify `.osz`,
which then will make sure that the `ShouldDeleteArchive()` check in
`BeatmapManager` picks it up for clean-up.
2021-05-08 17:09:14 +02:00
smoogipoo
f8f9cf9412 Merge branch 'fix-initial-playingusers' into multiplayer-spectator-screen 2021-04-22 23:25:25 +09:00
smoogipoo
f593d9e42c Fix playing users not being updated on room join 2021-04-22 23:23:43 +09:00
smoogipoo
6df23f1301 Merge branch 'master' into multiplayer-spectator-screen 2021-04-22 20:29:24 +09:00
Dan Balasescu
b774f5b72b
Merge pull request #12526 from peppy/fix-system-message-ordering
Fix system messages always being displayed above standard messages
2021-04-22 18:51:25 +09:00
Dean Herbert
3befb49ea9 Fix system messages always being displayed above standard messages
Closes https://github.com/ppy/osu/issues/12509.
2021-04-22 14:52:01 +09:00
smoogipoo
4cc3321d54 Fix potential doubling of events 2021-04-20 21:20:08 +09:00
Gagah Pangeran Rosfatiputra
d4013bd885
add GetWikiRequest 2021-04-20 16:40:30 +07:00
Gagah Pangeran Rosfatiputra
f3555ad08c
add APIWikiPage response 2021-04-20 16:12:32 +07:00
smoogipoo
c50b526ba0 Remove local state dictionary from SpectatorScreen 2021-04-19 16:48:55 +09:00
smoogipoo
83716ddb08 Rename currentUserStates -> playingUserStates 2021-04-19 16:07:00 +09:00
smoogipoo
de9e37857e Lock around playingUsers 2021-04-19 16:06:40 +09:00
smoogipoo
5885c24e00 Clear current user states on disconnect 2021-04-19 16:00:56 +09:00
smoogipoo
65a6f9f8a4 Merge branch 'fix-initial-spectator-state-callback' into multiplayer-spectator-screen 2021-04-16 18:26:46 +09:00
smoogipoo
ca74f413cd Change to explicit method instead 2021-04-16 17:31:02 +09:00
smoogipoo
5652490d61 Fix OnUserBeganPlaying not being invoked if already watching 2021-04-16 14:11:55 +09:00
smoogipoo
56e1bffdfd Populate initial user states 2021-04-13 23:57:16 +09:00
smoogipoo
5b53a2b211 Merge branch 'master' into multiplayer-spectator-screen 2021-04-13 20:07:56 +09:00
Salman Ahmed
92fab653e1 Take current mod settings value into account on equality comparsion 2021-04-12 20:51:13 +03:00
Salman Ahmed
fbd5195738 Extract mod setting value handling to utils class 2021-04-12 03:37:03 +03:00
Salman Ahmed
18fb9f5ac9
Merge branch 'master' into mod-using-reference-equality 2021-04-11 19:48:55 +03:00
smoogipoo
6eddc6c59e Enable spectating multiplayer matches 2021-04-09 21:03:50 +09:00
Dean Herbert
51fee79ef1 Fix scores not being accepted due to missing ruleset ID 2021-04-09 15:18:02 +09:00
Dean Herbert
24ae5b9169 Fix slightly incorrect solo score submission routes 2021-04-08 23:15:08 +09:00
smoogipoo
2791d454d2 Don't send spectating user state yet 2021-04-07 22:21:22 +09:00
smoogipoo
99bee73ac1 Merge branch 'master' into add-spectate-button-and-state 2021-04-07 22:07:52 +09:00
smoogipoo
56c13148f1 Fix typo in class name 2021-04-07 16:45:10 +09:00
smoogipoo
6de91d7b6b Add spectate button + test 2021-04-06 21:37:27 +09:00
smoogipoo
d5ba77b2c2 Add spectating user state 2021-04-06 21:22:28 +09:00
Dan Balasescu
ba3689b5b9
Merge pull request #12269 from PercyDan54/beatmap-details
Use OnlineViewContainer for BeatmapDetails
2021-04-06 17:52:32 +09:00
Dean Herbert
933c4010da Allow creating OnlineViewContainers with no placeholder button 2021-04-06 16:17:20 +09:00
PercyDan54
d4724f4494
Fix crash 2021-04-04 09:44:45 +08:00
smoogipoo
e1aa927827 Add dropdown option to export score 2021-04-02 13:20:15 +09:00
Dean Herbert
0a889fafc4 Don't send progress updates when not in a downloading state
This is mostly just a sanity/debounce check.
2021-03-26 14:04:40 +09:00
Dean Herbert
17a0b19ee7 Always set progress before updating download state
Without doing so, a state change may read from an old progress value.
2021-03-26 14:04:10 +09:00
Max Hübner
aa2c1ee85e Add new beatmap search filter row "General" 2021-03-25 23:20:10 +01:00
Dean Herbert
5267fb74c4 Add submission requests 2021-03-23 18:18:49 +09:00
Dean Herbert
aeff9bd853 Add return bool to HandleRequest to better trigger failures 2021-03-23 18:17:29 +09:00
Dean Herbert
ce452565f4 Avoid firing any kind of failures after success 2021-03-23 17:50:31 +09:00
Dean Herbert
f5ba746ae5 Fail all API requests sent to DummyAPIAccess
Until now, API requests sent to dummy API were just lost in the void. In most cases this somehow worked as expected, but any logic which is waiting on a request to finish will potentially never get a response.

Going forward, I'm not 100% sure that every `Wait` on a web response will have local timeout logic (I think there is a certain amount of assumption that this is being managed for us by `APIAccess`), so I've made this change to better handle such cases going forward. Now, rather than nothing happening, requests will trigger a failure via the existing exception logic rather than silently pretending the request never arrived.
2021-03-23 17:37:45 +09:00
Dean Herbert
58c60100b4 Fix APIScoreToken's data type not matching server side 2021-03-23 14:04:47 +09:00
smoogipoo
7fa5fd5647 Update usages of config with framework changes 2021-03-17 16:10:16 +09:00
Dan Balasescu
ff2327ffac
Merge branch 'master' into configure-await-false 2021-03-08 22:24:29 +09:00
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Dean Herbert
765cc5cf37 Remove iOS multiplayer blocking code 2021-03-08 14:35:22 +09:00
smoogipoo
7adb33f40e Fix beatmap getting nulled due to failing web request 2021-03-01 17:24:54 +09:00
Dean Herbert
254f9bb58b Show API human readable error message when chat posting fails
Closes #11902.
2021-02-26 13:38:00 +09:00
Dean Herbert
9ed8d902f7 Fix requests being indefinitely queued when user is offline 2021-02-24 19:57:42 +09:00
Dean Herbert
664d243003 Disable multiplayer/spectator on iOS until it can be supported again 2021-02-23 15:22:46 +09:00
smoogipoo
d985b8ab2a Increase beatmapset download timeout 2021-02-22 17:14:39 +09:00
Dean Herbert
a2aec6bcdc
Merge pull request #11808 from smoogipoo/multiplayer-no-playlist-mangling
Rework multiplayer playlist handling to support multiple items
2021-02-19 14:33:53 +09:00
smoogipoo
c0e0bd4f42 Add compatibility with old server build 2021-02-19 13:57:04 +09:00
smoogipoo
183a481a34 Refactor playlist update to remove .Contains() check 2021-02-19 13:32:32 +09:00
Dean Herbert
71316bbee5 Allow using OnlineViewContainer without deriving it 2021-02-18 17:45:58 +09:00
smoogipoo
56e9e10ff5 Make server authoritative in playlist item id 2021-02-18 15:30:31 +09:00
smoogipoo
8930ff4465 Merge branch 'master' into multiplayer-no-playlist-mangling 2021-02-17 19:29:01 +09:00
smoogipoo
70a995919c Update comments 2021-02-17 17:58:24 +09:00
smoogipoo
0d1149911c Don't display expired playlist items 2021-02-17 17:33:10 +09:00
smoogipoo
fb0e9d6760 Add played property to playlist item 2021-02-17 16:58:32 +09:00
Dean Herbert
86faa7f465
Merge pull request #11798 from smoogipoo/multiplayer-long-types
Use long type where required in multiplayer
2021-02-17 15:50:12 +09:00
smoogipoo
9a7b6ebe50 Fix missed occurrence 2021-02-17 14:30:52 +09:00
smoogipoo
f61b8e6154 Change to long 2021-02-16 21:32:38 +09:00
smoogipoo
100097d78f Fix playlist not being handled correctly for non-joined cases 2021-02-16 21:32:35 +09:00
smoogipoo
379393fe10 Merge branch 'multiplayer-long-types' into multiplayer-no-playlist-mangling 2021-02-16 19:37:55 +09:00
smoogipoo
3e802531d3 Use long type where required in multiplayer 2021-02-16 19:34:01 +09:00
smoogipoo
3ff9e14e35 Make StatefulMultiplayerClient control current playlist item 2021-02-16 18:56:13 +09:00
Dean Herbert
02417697e9 Display remaining attempts for playlist rooms with room-level attempt limits 2021-02-16 13:32:14 +09:00
Dan Balasescu
6641f4d5a9
Merge branch 'master' into hub-send-version-hash 2021-02-15 21:12:46 +09:00
Dean Herbert
3562fddc27 Add missing nullability flag on CreateAccount return value 2021-02-15 17:02:07 +09:00
Dean Herbert
55d5d8d5be Send version hash on hub connection 2021-02-15 16:51:40 +09:00
Dean Herbert
9ad38ab20e Move HubClientConnector retrieval to IAPIProvider 2021-02-15 16:43:56 +09:00
Dan Balasescu
34e600464b
Merge branch 'master' into abstract-hub-connection 2021-02-15 13:53:54 +09:00
Dan Balasescu
dad6e7e825
Merge pull request #11755 from peppy/fix-message-formatter-domain
Fix MessageFormatter not working for custom endpoints
2021-02-12 16:01:55 +09:00
Dean Herbert
3799493536 Add test coverage of int match failures 2021-02-12 15:25:00 +09:00
Dean Herbert
bb9123eecd Better handle fallback scenarios for beatmap links 2021-02-12 15:17:54 +09:00
Dean Herbert
1c5aaf3832 Add back default value 2021-02-12 15:03:53 +09:00
Dean Herbert
6a42d312f6 Match using EndsWith to ignore protocol (and allow http) 2021-02-12 14:59:56 +09:00
Dean Herbert
33c9ecac8a Fix MessageFormatter not working for custom endpoints 2021-02-12 14:54:19 +09:00
Salman Ahmed
f4a7ec57e9 Remove unused using 2021-02-11 13:00:18 +03:00
Salman Ahmed
37e3d95c35 Slight reword in ConfigureConnection's xmldoc 2021-02-11 12:39:06 +03:00
Salman Ahmed
d3c1b47592 Replace nullable API with null connector instead 2021-02-11 12:34:39 +03:00
Salman Ahmed
18acd7f080
Apply documentation suggestions
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-02-11 10:51:04 +03:00
Salman Ahmed
5fb99fdc52 Rename some members and extract connection closure to separate method 2021-02-11 10:49:16 +03:00
Salman Ahmed
0c5e66205b Merge branch 'master' into abstract-hub-connection 2021-02-11 02:14:22 +03:00
smoogipoo
07b661e28c Add Messagepack support for serialising unknown bindable types 2021-02-10 23:44:06 +09:00
Dan Balasescu
92599aa02b
Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-09 21:06:09 +09:00
Dean Herbert
04c243386b Fix initial state transfer regressing 2021-02-09 16:02:56 +09:00
Salman Ahmed
f04d6d5e5e Update hub clients with changes to connecotr 2021-02-09 08:02:32 +03:00
Salman Ahmed
848b81e952 Remove necessity of making hub client connector a component 2021-02-09 07:53:22 +03:00
Salman Ahmed
71e564d399 Revert clients to be Components 2021-02-09 07:46:00 +03:00
Salman Ahmed
f76f92515e Clean up spectator streaming client with new hub connector 2021-02-09 02:15:56 +03:00
Salman Ahmed
28b815ffe1 Clean up multiplayer client with new hub connector 2021-02-09 02:13:09 +03:00
Salman Ahmed
af345ea5db Add a SignalR hub client connector component 2021-02-09 01:52:35 +03:00
smoogipoo
d8c53e34ae Fix missing using 2021-02-08 19:42:17 +09:00
Dean Herbert
5fbed05d04
Merge pull request #11551 from smoogipoo/fix-leave-room-race-2
Fix client potentially not leaving a room on exiting multiplayer
2021-02-08 19:23:14 +09:00
smoogipoo
6e34e7d750 Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-08 19:08:53 +09:00
smoogipoo
fb8e31a303 Fix incorrect connection building due to bad merges 2021-02-08 17:52:03 +09:00
smoogipoo
da85fb372d Merge branch 'master' into fix-multiplayer-client-connection-reliability 2021-02-08 13:43:24 +09:00
Dean Herbert
dad32da415 Add rate limiting on sending download progress updates 2021-02-05 17:34:05 +09:00
Dean Herbert
110458612d Avoid handling null playlist items when updating avaialability display 2021-02-05 17:19:23 +09:00
Dean Herbert
9e9e382bee Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-05 15:27:17 +09:00
Dean Herbert
c5fa818630 Actually handle case of failing to achieve lock on SemaphoreSlim 2021-02-05 14:08:13 +09:00
Dean Herbert
cd67fe1091 Merge branch 'master' into fix-multiplayer-client-connection-reliability 2021-02-05 14:04:57 +09:00
Dean Herbert
9258836f10
Merge pull request #11641 from smoogipoo/freemods
Add support for optional per-user mods in multiplayer (aka freemod)
2021-02-05 13:59:30 +09:00
smoogipoo
2e85ce5b82 Rename UserMods -> Mods for MultiplayerRoomUser 2021-02-05 12:40:16 +09:00
smoogipoo
85e63afcb4 Rename Mods -> RequiredMods 2021-02-05 12:36:25 +09:00
Dan Balasescu
a71d6a4c97
Merge branch 'master' into multiplayer-beatmap-tracker 2021-02-05 12:25:36 +09:00
smoogipoo
a2fdba3e51 Rename to OnlinePlayBeatmapAvailabilityTracker 2021-02-05 12:24:38 +09:00
Salman Ahmed
d62bbbb762
Enhance documentation
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-02-05 00:38:56 +03:00
smoogipoo
cf5233c6ab Merge branch 'master' into freemods 2021-02-05 00:27:14 +09:00
Dean Herbert
76cfeae7e9 Add support for Bindable int in config 2021-02-04 15:10:56 +09:00
Salman Ahmed
db3f9e7cbe Apply documentation suggestion 2021-02-04 02:20:18 +03:00
Dean Herbert
e3d323989c Switch to SignalR 5.0 and implement using better API 2021-02-03 22:04:14 +09:00
smoogipoo
65d45ec74c Unschedule cancellation 2021-02-03 20:50:22 +09:00
Dean Herbert
1380717ebb Use PrimitiveObjectFormatter to simplify code 2021-02-03 20:19:27 +09:00
Dean Herbert
d3f056f188 Add missing licence header 2021-02-03 20:06:25 +09:00
Dean Herbert
75f1ebd5f9 Add custom resolver for mod settings dictionary 2021-02-03 19:46:47 +09:00
Salman Ahmed
62d0036c81 Fix using private constructor on MessagePack object 2021-02-02 17:45:11 +03:00
smoogipoo
97247b7a67 Fix unset key 2021-02-01 19:59:18 +09:00
smoogipoo
9c4c47599f Merge branch 'master' into freemods 2021-02-01 19:28:10 +09:00
smoogipoo
89a42d60fb General cleanup 2021-02-01 18:50:32 +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
1d8de2f718 Rename class to better match purpose 2021-02-01 17:32:54 +09:00
Dean Herbert
fabb0eeb29 Add signalr messagepack key attribute 2021-02-01 17:27:14 +09:00
Dean Herbert
c73a05d0b5
Merge branch 'master' into multiplayer-beatmap-tracker 2021-02-01 17:24:24 +09:00
Bartłomiej Dach
c3ba92f057 Set canceled result in scheduleAsync
Was holding up the task completion source, and in consequence,
potentially the entire task chain.
2021-01-30 16:13:50 +01:00
Bartłomiej Dach
9ab1ad25eb Merge branch 'master' into fix-leave-room-race-2 2021-01-30 13:41:04 +01:00
smoogipoo
ab9a3e6dd0 Pass allowed mods and consume on server callback 2021-01-29 18:21:22 +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
Bartłomiej Dach
386f9f7842 Fix typos in comments 2021-01-28 22:36:07 +01:00
Dean Herbert
90a82f986b Fallback to using json for signalr communication if JIT is unavailable 2021-01-28 16:20:19 +09:00
smoogipoo
c408b46a21 Add AllowedMods to MultiplayerRoomSettings model 2021-01-27 22:25:14 +09:00
Dan Balasescu
7d06af916c
Merge branch 'master' into add-messagepack 2021-01-27 13:00:46 +09:00
Bartłomiej Dach
4d4d97661e Fix connection loop always getting a cancelled token 2021-01-26 21:26:50 +01:00
smoogipoo
248989b3eb wip 2021-01-27 01:20:50 +09:00
smoogipoo
085115cba5 Make threading even more thread safe 2021-01-26 22:49:01 +09:00
Dean Herbert
b573c96c07 Move disconnect logic inside connection loop to ensure previous connection is disposed 2021-01-26 18:59:42 +09:00
Dean Herbert
15885c17af Remove unused usings 2021-01-26 18:07:43 +09:00
Dean Herbert
20cfa991bf Switch clients to MessagePack mode 2021-01-26 17:41:21 +09:00
Dean Herbert
9537090d28 Setup all spectator model classes for MessagePack 2021-01-26 16:39:35 +09:00
Dean Herbert
e4fc604163 Setup all multiplayer model classes for MessagePack support 2021-01-26 16:26:03 +09:00
Salman Ahmed
c317d60169 Add offline test scene for beatmap listing overlay 2021-01-26 00:03:20 +03:00
smoogipoo
bb44fcfe31 Prevent some data races 2021-01-25 21:01:39 +09:00
smoogipoo
964976f604 Use a task chain and fix potential misordering of events 2021-01-25 21:01:39 +09:00
Dean Herbert
0f09a7feb9 Avoid semaphore potentially getting held forever 2021-01-25 17:17:04 +09:00
Dean Herbert
994fb2667d Call DisposeAsync instead of StopAsync 2021-01-25 17:11:04 +09:00
Dean Herbert
c05ae3497a Make connect/disconnect private 2021-01-25 17:02:24 +09:00
Dean Herbert
d24d236468 Make OperationCanceledException throwing behaviour consistent 2021-01-22 14:34:58 +09:00
Dean Herbert
9f89b4e6d7 Rewrite connection logic to better handle failure cases
The main goal here is to ensure the connection is built each connection
attempt. Previously, the access token would never be updated, leading to
outdated tokens failing repeatedly (in the connection retry loop) and
never being able to establish a new connection as a result.

Due to threading considerations, this isn't as simple as I would hope it
to be. I'm open to proposals as to a better way of handling this.

Also, keep in mind that this logic will need to be abstracted and
(re)used in `SpectatorClient` as well. I've intentionally not done that
yet until we agree that this is a good direction forward.
2021-01-22 14:25:23 +09:00
Dean Herbert
e6980688f6 Leave the multiplayer channel when leaving multiplayer 2021-01-21 15:42:23 +09:00
Dan Balasescu
76e1f6e57b
Fix locking on incorrect object
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-21 12:45:44 +09:00
smoogipoo
6b139d4cf3 Reset task post-execution 2021-01-20 20:27:58 +09:00
smoogipoo
e005a1cc9f Remove unnecessary condition blocking the part 2021-01-20 20:16:34 +09:00
smoogipoo
5261c01849 Tie JoinRoom() and PartRoom() together 2021-01-20 19:43:42 +09:00
Salman Ahmed
63b4c529a6 Add xmldoc explaining what the multiplayer beatmap tracker is for 2021-01-19 11:59:07 +03:00
Salman Ahmed
5a64abee64 Inline with above method 2021-01-19 11:59:07 +03:00
Salman Ahmed
63ca9de7e4
Rewerite beatmap term properly
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-18 23:00:07 +03:00
Salman Ahmed
5e476fa189 Enforce one missed property back to single-floating type 2021-01-18 22:07:25 +03:00
Salman Ahmed
25f511fd5b Remove unnecessary full querying 2021-01-18 21:34:24 +03:00
Salman Ahmed
dc91cebce9 Merge branch 'master' into multiplayer-beatmap-tracker 2021-01-18 19:15:45 +03:00
Salman Ahmed
88abee705b Add missing event mapping for user beatmap availability change 2021-01-18 10:49:02 +03:00
Salman Ahmed
b6a37c1c15 Make TriggerSuccess(filename) protected and expose in test instead 2021-01-17 22:10:30 +03:00
Salman Ahmed
ccef50e2a2 Log important message if user imported bad-checksum beatmap 2021-01-17 22:10:30 +03:00
Salman Ahmed
0425a659a8 Add null-permissive operator to manager back 2021-01-17 21:19:55 +03:00
Salman Ahmed
d93a853dfd Enforce float type in the download progress path instead 2021-01-17 21:16:48 +03:00
Dean Herbert
5e0fcc4a6c
Merge pull request #11473 from frenzibyte/explicit-search-control
Add "explicit maps" search filter control to beatmap listing
2021-01-17 23:27:15 +09:00
Dean Herbert
5fd644fc57 Unify variable names 2021-01-17 22:42:48 +09:00
Bartłomiej Dach
eb53e32792 Use task completion source for room join flow
On Android, users were unable to join or create multiplayer rooms. The
root cause of that was that the both the wait and set of the
`ManualResetEvent` in `getRoomUsers` occurred on the same thread, which
created a chicken-and-egg situation - the set could not proceed until
the wait had actually completed.

Resolve by substituting the `ManualResetEvent` for a
`TaskCompletionSource` to achieve a promise-style task, which the
previous code was a crude approximation of anyway.

Closes #11385.
2021-01-17 14:40:22 +01:00
Dean Herbert
addd463d26
Merge branch 'master' into explicit-search-control 2021-01-17 21:44:25 +09:00
Dean Herbert
edb6d3907b
Merge pull request #11472 from frenzibyte/explicit-beatmap-markers
Add explicit content markers to beatmap panels and overlay
2021-01-17 21:44:10 +09:00
Salman Ahmed
adb2605d5d Enforce double type in the download progress path
Wasn't sure where to exactly put this, or whether to split it, but it's very small change to worry about, so I guess it's fine being here
2021-01-17 00:12:14 +03:00
Salman Ahmed
23c7afa573 Expose method for setting progress of archive download request 2021-01-17 00:05:51 +03:00
Salman Ahmed
4778686dc4 Expose method for triggering filename-backed success in APIDownloadRequest
Exactly like in `APIRequest<T>`
2021-01-17 00:01:11 +03:00
Salman Ahmed
da9c23f347 Add beatmap availability tracker component for multiplayer 2021-01-17 00:01:11 +03:00