1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-13 03:57:24 +08:00
Commit Graph

22502 Commits

Author SHA1 Message Date
Dean Herbert
afab35a31a Fix missing copy implementation in LegacySampleControlPiont 2021-01-05 13:41:31 +09:00
Dean Herbert
6b8e1913ee Fix dependency not always available due to nested LoadComponentAsync call 2021-01-05 13:27:45 +09:00
Dean Herbert
caa88c6100 Use CreateCopy instead of Clone interface
I was going for conformity by using the IClonable interface, but it
doesn't look like we use it anywhere else in the project.
2021-01-05 13:13:52 +09:00
KyeKiller
77e660e426 Should pass all checks again now. 2021-01-04 22:11:52 +00:00
KyeKiller
1234d0fa04 Applied all tooltips to the right 2021-01-04 22:01:12 +00:00
kyekiller
254698d9a2
Merge branch 'master' into master 2021-01-04 21:07:12 +00:00
KyeKiller
0e42d415c1 Hit another oopie 2021-01-04 21:05:28 +00:00
KyeKiller
3468df840b Moved tooltip to the left to stop the overflow 2021-01-04 21:04:30 +00:00
KyeKiller
73f5e5aaf9 Moved "ToolbarSocialButton" back 2021-01-04 21:03:51 +00:00
KyeKiller
2e2b3ab5d4 Should remove codeFactor error 2021-01-04 17:26:42 +00:00
KyeKiller
2d1b52be0d Moved "ToolbarSocialButton"
This will remove it from coming off the screen.
2021-01-04 17:21:31 +00:00
Dean Herbert
deb1ad7bca
Merge branch 'master' into disable-repeat-multi-actions 2021-01-04 23:38:29 +09:00
Dean Herbert
3b08faa0ea Fix RemoveBlockingOverlay causing transform mutation from disposal threads 2021-01-04 17:49:11 +09:00
Dean Herbert
b7dd54847f Move resolved usage of WorkingBeatmap in editor components as local as possible to avoid misuse 2021-01-04 16:56:37 +09:00
Dean Herbert
7fdf876b4c Fix editor timing screen mutating the WorkingBeatmap instead of EditorBeatmap 2021-01-04 16:38:15 +09:00
Dean Herbert
b4a779108e Ensure working beatmap is reloaded on exiting the editor 2021-01-04 16:37:49 +09:00
Dean Herbert
ba4e411422 Clone and copy ControlPointInfo when retrieving a playable beatmap 2021-01-04 16:37:07 +09:00
Salman Ahmed
485a57776b Fix hasBeatmap potentially checking on outdated DeletePending value 2021-01-04 10:28:41 +03:00
Salman Ahmed
ea38b00b29 Schedule all calls to updateBeatmapState() 2021-01-04 10:27:08 +03:00
Dean Herbert
9e0c490141 Remove unused using 2021-01-04 15:40:22 +09:00
Dean Herbert
20d04d6933 Fix Storyboard's FirstEventTime not finding the true earliest event 2021-01-04 15:16:01 +09:00
Salman Ahmed
445a4bd01c Re-query beatmap info on database changes 2021-01-04 09:00:16 +03:00
Salman Ahmed
ca5f2bcd4c Revert database-side changes 2021-01-04 08:50:30 +03:00
Salman Ahmed
1463ff2886 Remove unnecessary using directive 2021-01-04 08:12:31 +03:00
Salman Ahmed
738c94d193 Update soft-deletion logic to use model store's consumable items instead 2021-01-04 07:47:08 +03:00
Dean Herbert
53e6a349bb Fix incorrect initial conditional
Turns out this wasn't actually required.
2021-01-03 22:44:32 +09:00
Dean Herbert
efb71713ef Fix null condition inhibiting deselection events 2021-01-03 22:43:02 +09:00
Bartłomiej Dach
9e4a925ab1 Clarify & cleanup comments some 2021-01-03 13:44:29 +01:00
Bartłomiej Dach
a3e29b9154 Rename parameters for readability 2021-01-03 13:25:44 +01:00
Dean Herbert
2501707d7d Copy values using Bind to also copy defaults 2021-01-03 20:45:03 +09:00
LavaDesu
7c9f345cd2
Use better naming for DiscordRichPresenceMode 2021-01-03 16:46:25 +07:00
Dean Herbert
6ad1b7767e
Update osu.Game/Online/API/APIMod.cs
Co-authored-by: Salman Ahmed <slmanarendo1950@gmail.com>
2021-01-03 17:04:16 +09:00
Dean Herbert
99fa0e25dc Switch back to FirstOrDefault to allow for weird testing logic to pass 2021-01-03 16:46:24 +09:00
Dean Herbert
29dbb1cc0d Add internal pathway for ensuring correct application of bindable mods 2021-01-03 15:48:28 +09:00
Dean Herbert
23e216fa0b Simplify some default value checks (we are sure the return is an IBindable) 2021-01-03 15:47:15 +09:00
Dean Herbert
1a44338124 Use SingleOrDefault for added safety when looking up mod acronyms 2021-01-03 15:38:30 +09:00
Dean Herbert
a6d4992997 Ensure SelectionChanged events are only sent once when selection is null 2021-01-03 12:53:25 +09:00
LavaDesu
2e5c67be3f
Add ability to toggle discord rich presence
There are 3 modes: enabled, limited, and disabled.

The limited mode hides identifiable information such as username, rank, and
(if participating in one) multiplayer lobby name.
2021-01-03 10:37:28 +07:00
Dean Herbert
caa5109e3a Add precautionary null checks to update methods in SongSelect 2021-01-03 12:18:35 +09:00
Dean Herbert
8511112e28
Merge pull request #11380 from bdach/unobserved-exceptions-pt-2
Catch multiplayer client-related unobserved exceptions better
2021-01-02 23:36:49 +09:00
Dean Herbert
e2de5bb8f9 Fix the beatmap carousel not returning to centre correctly after resizing window 2021-01-02 22:05:41 +09:00
Bartłomiej Dach
9ab1091281
Merge branch 'master' into fix-signalr-reconnect 2021-01-02 13:18:02 +01:00
Dean Herbert
72a6ca7755 Allow signalr to retry connecting when connection is closed without an exception 2021-01-02 16:47:00 +09:00
Bartłomiej Dach
30cebe7579 Merge branch 'dependabot/nuget/Microsoft.AspNetCore.SignalR.Client-3.1.10' into dependency-updates 2021-01-01 21:25:10 +01:00
dependabot-preview[bot]
652b0ccd8f
Bump Microsoft.AspNetCore.SignalR.Client from 3.1.9 to 3.1.10
Bumps [Microsoft.AspNetCore.SignalR.Client](https://github.com/aspnet/AspNetCore) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/aspnet/AspNetCore/releases)
- [Commits](https://github.com/aspnet/AspNetCore/compare/v3.1.9...v3.1.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-01 17:54:11 +00:00
dependabot-preview[bot]
7441cfd94e
Bump Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson
Bumps [Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson](https://github.com/aspnet/AspNetCore) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/aspnet/AspNetCore/releases)
- [Commits](https://github.com/aspnet/AspNetCore/compare/v3.1.9...v3.1.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-01 17:53:29 +00:00
Salman Ahmed
988f9b98a1 Split button mods updating to private method 2021-01-01 16:16:00 +03:00
Salman Ahmed
c1a1e3acc5 Revert drive-by changes 2021-01-01 15:40:40 +03:00
Salman Ahmed
a031c8e0b6
Apply documentation suggestions
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-01 15:34:09 +03:00
Salman Ahmed
2ce9599957 Copy selected mods properties into overlay's buttons 2021-01-01 03:47:13 +03:00
Salman Ahmed
b4df2d6d43 Add method for copying properties from another mod 2021-01-01 03:46:09 +03:00
Bartłomiej Dach
1e02f450a6
Merge branch 'master' into move-health-meter 2020-12-31 13:59:37 +01:00
mcendu
17abe90c27 move SkinnableHealthDisplay
Similar components are in osu.Game.Screens.Play.HUD while this is not
2020-12-31 20:23:13 +08:00
Bartłomiej Dach
7d9a61fbc1 Handle unobserved exceptions from ready button properly 2020-12-31 11:57:13 +01:00
Bartłomiej Dach
2d279350ad Catch multiplayer client-related unobserved exceptions better
Silencing an exception from a task continuation requires accessing
`task.Exception` in any way, which was not done previously if
`logOnError` was false.

To resolve without having to worry whether the compiler will optimise
away a useless access or now, just always log, but switch the logging
level. The unimportant errors will be logged as debug and therefore
essentially silenced on release builds (but could still be potentially
useful in debugging).
2020-12-31 11:39:42 +01:00
Bartłomiej Dach
1b1447eb35 Merge branch 'master' into fix-perform-from-menu-nullref 2020-12-31 10:33:05 +01:00
Bartłomiej Dach
00c6703c51 Inline complete method as well
For better guarantees that `finalAction` is actually called on the same
screen that `checkCanComplete()` was (uses result of one
`getCurrentScreen()` call throughout instead of calling multiple times).
2020-12-31 10:27:42 +01:00
Dean Herbert
f9196ae976 Fix PerformFromMenuRunner failing if CurrentScreen is null 2020-12-31 16:36:20 +09:00
Dean Herbert
6ebb267c66
Merge pull request #11346 from bdach/fix-changelog-regression
Fix changelog header staying dimmed after build show
2020-12-31 16:15:25 +09:00
Bartłomiej Dach
f800448c87 Move game start logic to a higher level 2020-12-30 18:15:48 +01:00
Bartłomiej Dach
d34609b98e Rename On{ToggleReady -> ReadyClick} 2020-12-30 16:29:36 +01:00
Bartłomiej Dach
dd87478690 Add helper IsHost property to Client 2020-12-30 16:29:19 +01:00
Bartłomiej Dach
59f2017a13 Move BindValueChanged subscriptions to LoadComplete 2020-12-30 16:22:11 +01:00
Dean Herbert
497d644a19 Move thread safety / locking logic from MultiplayerRoom 2020-12-30 20:24:50 +09:00
Dean Herbert
6596e3c5e8
Merge branch 'master' into fix-changelog-regression 2020-12-30 01:34:18 +09:00
Dean Herbert
3920dac8af Merge branch 'master' into fix-error-spam-on-disconnection 2020-12-30 00:55:37 +09:00
Dean Herbert
3552034ffe Update framework 2020-12-30 00:55:27 +09:00
Bartłomiej Dach
05f212eb3c Merge branch 'master' into remove-multiplayer-selection-poller 2020-12-29 12:51:33 +01:00
Bartłomiej Dach
4a85ee1374 Merge branch 'master' into improve-failing-api-ux 2020-12-29 11:01:36 +01:00
Bartłomiej Dach
361d215ab4 Reword notification messages to match new logic 2020-12-29 10:56:59 +01:00
Bartłomiej Dach
5d23199233 Trim redundant IsLoggedIn checks 2020-12-29 10:56:29 +01:00
Bartłomiej Dach
cafa241ef3 Fix ready-up button getting stuck if server operation fails 2020-12-29 09:44:30 +01:00
Dean Herbert
6bbd0ecfac Remove unused lock object 2020-12-29 17:39:00 +09:00
Bartłomiej Dach
e9b0652359 Move ready-up operation logic again to client
To salvage ready up button tests.
2020-12-29 09:16:02 +01:00
Dean Herbert
906a9b79b5 Show an error when forcefully exiting online play due to API failure 2020-12-29 16:47:36 +09:00
Dean Herbert
4d04e0dee7 Disallow entering the playlists/multiplayer screens if API is failing 2020-12-29 16:25:51 +09:00
Dean Herbert
03b78d1c4b Handle SocketExceptions and HttpRequestExceptions more silently
These can occur when a network connection is completely unavailable (ie.
host resolution failures are occurring). Currently these would appear as
important errors which spammed the notification overlay every retry
forever, while no network connection is available.

I also took this opportunity to remove a lot of `bool` passing which was
no longer in use (previously the fail count / retry process was
different to what we have today).
2020-12-29 16:22:11 +09:00
Bartłomiej Dach
db52255bbe Adjust tracker usages to match new API 2020-12-29 08:20:43 +01:00
Bartłomiej Dach
f59ba799d3 Adjust operation tracker implementation 2020-12-29 07:54:27 +01:00
Bartłomiej Dach
9ff2140232 Move ready-up logic to match sub-screen 2020-12-29 07:52:15 +01:00
Bartłomiej Dach
903dca875e Make localUser a client property 2020-12-29 07:46:22 +01:00
Bartłomiej Dach
f68e4fc88f Merge branch 'master' into disable-repeat-multi-actions 2020-12-29 07:42:20 +01:00
Dean Herbert
2cb84c5111 Fix error message being shown to user on multiplayer disconnection when not in room 2020-12-29 15:19:52 +09:00
Dean Herbert
45c578b857 Remove selection polling from multiplayer
Looks like this was just copy-paste without any thought into whether it
should exist. It really shouldn't exist.

This is a thing for the playlists system because the *whole system*
there relies on polling the web API to get updated information. In the
case of mutliplayer, we hand off all communications to the realtime
server at the point of joining the rooms.

The argument that this was there to do faster polling on the selection
isn't valid since the polling times were the same for both cases.

Closes #11348.
2020-12-29 15:10:09 +09:00
Dean Herbert
f31a0e455a Minor xmldoc rewording 2020-12-29 14:29:40 +09:00
Dean Herbert
e3a41f6118 Rename variable to make more sense
It needs to be explicitly stated that the users in this list are related
to the *joined* room. Especially since it's sharing its variable name
with `SpectatorStreamingClient` where it has the opposite meaning (is a
list of *globally* playing players).
2020-12-29 14:27:35 +09:00
Dean Herbert
6aeb7ece66 Tidy up update state code, naming, xmldoc 2020-12-29 14:25:08 +09:00
Bartłomiej Dach
540dec2e7c Allow null tracker in lounge screen for tests 2020-12-28 22:54:52 +01:00
Bartłomiej Dach
6dc0f6af50 Disable setting apply button for duration of operation 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
af66e45311 Disable create room button after triggering join 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
47ab7c9fd6 Disable ready button after host click 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
9e6994166c Add helper to track ongoing operations in UI 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
a014d0ec18 Use PlayingUsers when constructing player directly 2020-12-28 19:27:56 +01:00
Bartłomiej Dach
1d311a6680 Change PlayingUsers population logic to match expectations 2020-12-28 19:27:56 +01:00
Bartłomiej Dach
d2301068b6 Fix changelog header staying dimmed after build show 2020-12-28 16:35:33 +01:00
Dean Herbert
9155671557
Merge pull request #11341 from peppy/fix-leaderboard-user-handling
Fix incorrect null handling in GameplayLeaderboard
2020-12-28 22:44:55 +09:00
Dean Herbert
2e88036f39
Merge pull request #11342 from bdach/fix-beatmap-not-reverting
Fix user changes in multi song select not reverting on exit without confirmation
2020-12-28 21:56:07 +09:00
Bartłomiej Dach
a376a23ed7
Merge branch 'master' into fix-leaderboard-user-handling 2020-12-28 13:43:53 +01:00
Bartłomiej Dach
a9822800fc Add more null hinting in GameplayLeaderboard 2020-12-28 13:00:05 +01:00
Bartłomiej Dach
f16b516e58 Revert user changes if no selection was made 2020-12-28 12:35:17 +01:00
Dean Herbert
447a55ce11 Fix incorrect null handling in GameplayLeaderboard 2020-12-28 20:16:53 +09:00
Bartłomiej Dach
20ae84a466
Merge branch 'master' into fix-user-lookup-failure-crashes 2020-12-28 12:15:06 +01:00
Dean Herbert
545dcac4ec Add null hinting on UserLookupCache query method 2020-12-28 20:13:24 +09:00
Dean Herbert
5ca9a6a980 Add xmldoc on UserLookupCache's lookup method 2020-12-28 20:05:48 +09:00
Dean Herbert
2e3537e966 Update framework 2020-12-28 16:52:54 +09: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
Dean Herbert
4d61c143db Fix lookup cache throwing a null reference if no matches were successful 2020-12-28 15:03:44 +09:00
Dean Herbert
69fab7de77
Merge pull request #11307 from bdach/fix-account-creation-overlay-after-logout
Fix account creation overlay not showing up the first time after a log-out
2020-12-28 11:52:48 +09:00
Dean Herbert
1b7c72f03b
Merge branch 'master' into changelog-refactor 2020-12-28 11:00:14 +09:00
Bartłomiej Dach
2ff49f4758 Merge branch 'master' into fix-quit-user-showing-in-leaderboard 2020-12-27 13:02:40 +01:00
Bartłomiej Dach
f75dccc9e4 Explicitly use discard in value changed callback 2020-12-27 13:00:27 +01:00
Bartłomiej Dach
6b6b1514e2 Rename method to be less misleading
As it doesn't only change colour, but also width.
2020-12-27 12:58:37 +01:00
Dean Herbert
3b5260fd67
Merge branch 'master' into fix-gameplay-leaderboard-clickable-avatars 2020-12-27 19:00:38 +09:00
Dean Herbert
1b34f2115f Remove dignostics using 2020-12-27 16:57:23 +09:00
Dean Herbert
d14a8d24b5 Remove assert for now 2020-12-27 16:42:20 +09:00
Dean Herbert
fa0576f47f Move quit colour change implementation to updateColour for better coverage 2020-12-27 13:40:02 +09:00
Bartłomiej Dach
15948de2f0 Fix gameplay leaderboard avatars being clickable 2020-12-26 14:35:14 +01:00
Bartłomiej Dach
8ec7970b6a Move load-complete fade specification inside 2020-12-26 14:35:14 +01:00
Bartłomiej Dach
e8f96b2401 Bring back DrawableAvatar as a simple sprite 2020-12-26 14:35:14 +01:00
Bartłomiej Dach
0b42b4b955 Rename {Drawable -> Clickable}Avatar 2020-12-26 14:35:11 +01:00
Bartłomiej Dach
a1af749b4b
Merge branch 'master' into patch/11310 2020-12-26 13:19:13 +01:00
Bartłomiej Dach
b059b5d616 Merge branch 'master' into fix-ready-button-crash 2020-12-26 12:41:47 +01:00
Dean Herbert
b9d725ab49 Don't copy spotlight category 2020-12-26 20:13:28 +09:00
Bartłomiej Dach
04d54c40db Allow all StatefulMultiplayerClient schedules to run inline
Fixes test failures due to not allowing to do so, therefore inverting
execution order in some cases - for example, calling

        JoinRoom(room);
        LeaveRoom();

on the update thread would invert execution order due to the first being
unscheduled but the second being scheduled.
2020-12-26 12:04:10 +01:00
Bartłomiej Dach
dae27fefe4 Run user list copy inline if possible
`getRoomUsers()` was not safe to call from the update thread, as
evidenced by the test failures. This was due to the fact that the added
reset event could never actually be set from within the method, as the
wait was blocking the scheduled set from ever proceeding.

Resolve by allowing the scheduled copy & set to run inline if on the
update thread already.
2020-12-26 12:03:03 +01:00
Dean Herbert
71dcbeaf7c Mark user as quit visually on the leaderboard 2020-12-26 12:11:09 +09:00
Dean Herbert
116acc2b5e Add flow for marking user as quit for further handling 2020-12-26 11:35:51 +09:00
Dean Herbert
ff57562956 Fix multiplayer leaderboard not unsubscribing from quit users 2020-12-26 11:35:31 +09:00
Neuheit
e7339d6959 fix(osu.Game): Ensure Category property is copied in Room. 2020-12-25 21:07:33 -05:00
Dean Herbert
fe1bbb1cac Don't fail if the local user is not present in room users when updating ready button state 2020-12-26 10:49:22 +09:00
Dean Herbert
f9900720d5 Rename OnRoomChanged to OnRoomUpdated to avoid confusion 2020-12-26 10:49:02 +09:00
Dean Herbert
5ce5b6cec0 Fix non-safe thread access to room users on room join 2020-12-26 10:25:16 +09:00
Dean Herbert
e0198c36ae Fix user population happening in single file 2020-12-26 09:48:13 +09:00
Bartłomiej Dach
0aedc720f2 Extract changelog entry component 2020-12-25 21:06:03 +01:00
Bartłomiej Dach
3ac618778f Handle all changelog entry types correctly 2020-12-25 21:06:03 +01:00
Bartłomiej Dach
5f43299d37 Fix tests failing due to base logic firing
It turns out that the changelog code was semi-intentionally relying on
the request to get release streams to be slow to initially show the
listing of all streams.

Locally suppress the base tab control logic to fix this.
2020-12-25 21:06:03 +01:00
Bartłomiej Dach
0bd9f68cbd Refactor update stream colour mapping code 2020-12-25 21:06:03 +01:00
Bartłomiej Dach
2e4b1b95c2 Rename {Multiplayer -> OnlinePlay}BackgroundSprite 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
ed4b8482b6 Rename {Multiplayer -> OnlinePlay}Composite 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
4c43a67b68 Rename I{Multiplayer -> OnlinePlay}SubScreen 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
e5064ee930 Rename {Multiplayer -> OnlinePlay}SubScreen 2020-12-25 17:02:35 +01:00
Bartłomiej Dach
eb0f125fef Rename {Multiplayer -> OnlinePlay}SubScreenStack 2020-12-25 17:00:31 +01:00
Bartłomiej Dach
4caf75850b Rename {Multiplayer -> OnlinePlay}Screen 2020-12-25 17:00:00 +01:00
Bartłomiej Dach
83fb7c7a1a Re-namespace all files in OnlinePlay directory 2020-12-25 16:50:09 +01:00
Bartłomiej Dach
e797e5ce7a Rename Multi directory to OnlinePlay 2020-12-25 16:50:02 +01:00
Dean Herbert
9de1a67e03 Move PlaylistsResultsScreen to correct namespace 2020-12-25 23:47:32 +09:00
Dean Herbert
836d1491d0 PlaylistsMultiplayer -> Playlists 2020-12-25 23:47:18 +09:00
Dean Herbert
8a36eab060 Move missed file from Play namespace 2020-12-25 23:42:02 +09:00
Bartłomiej Dach
0d8fb83d0a Ensure account creation overlay is shown after logout
Scheduling the entire API state change callback caused the scheduled
hide to fire the first time the user attempted to display the account
creation overlay after a logout, because the drawable wasn't present
before that (so its scheduler wasn't running).

It is not theoretically safe to run `Hide()` unscheduled at its present
call site (as the value change callbacks are fired on the background
API thread). This could also be fixed by setting `AlwaysPresent = true`,
but that's a pretty ugly and unperformant change to make in general.
2020-12-25 15:40:39 +01:00
Dean Herbert
e421b6d34e Update some missed variables 2020-12-25 23:36:09 +09:00