1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-18 20:13:02 +08:00
Commit Graph

1875 Commits

Author SHA1 Message Date
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