1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 03:07:26 +08:00
Commit Graph

3038 Commits

Author SHA1 Message Date
Bartłomiej Dach
c3e9f5184f
Fix SoloScoreInfo not copying over legacy score ID when converting to ScoreInfo 2023-10-26 15:09:34 +02:00
Bartłomiej Dach
900530080f
Make SoloScoreInfo implement IScoreInfo 2023-10-26 14:58:35 +02:00
Bartłomiej Dach
ca4b09f8ef
Merge branch 'master' into score-encoding-cleanup 2023-10-26 09:04:05 +02:00
Dean Herbert
e081fa48a2
Fix various other inspections 2023-10-17 17:48:51 +09:00
Bartłomiej Dach
e2192806e4
Use ID rather than SoloScoreID
The latter is apparently not going to be a thing anymore.
2023-10-16 12:02:55 +02:00
Bartłomiej Dach
fb2293821a
Allow watching replay from multi/playlist results screens 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
d5a733d244
Use solo score ID as OnlineID when converting from MultiplayerScore 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
b144cfd55c
Add LegacyOnlineID handling to places that definitely need it
Mostly places that can interact with imported replays.

There are other places that use the online ID as a sort tiebreaker, or
to check presence of a score on results screens, but they should
probably still continue to only use `OnlineID`, since all scores with a
legacy online ID should have an online ID, but the converse is not
generally true.
2023-10-16 11:20:02 +02:00
Dean Herbert
fc1287b4c6
Reword xmldoc on invite method to better describe what is happening 2023-10-12 18:25:20 +09:00
Dean Herbert
56e27f1c27
Merge branch 'master' into multiplayer-invites 2023-10-12 18:17:15 +09:00
Dean Herbert
e48c4fa430
Add missing ConfigureAwait calls 2023-10-12 18:15:15 +09:00
Dean Herbert
a591af2b97
Fix too many tasks in lookupRoom method 2023-10-12 18:11:04 +09:00
Dean Herbert
5f62c225bf
Ad localisation (and adjust messaging) of invite failures 2023-10-12 18:07:03 +09:00
Dean Herbert
361d70f68a
Rename callback to match standards 2023-10-12 17:59:47 +09:00
Dean Herbert
d2aa601912
Allow localisation of the invite notification 2023-10-12 17:59:08 +09:00
Dean Herbert
a1a9bb75b7
Remove unnecessary schedule logic 2023-10-12 17:55:58 +09:00
Dean Herbert
cde4fad610
Simplify async lookup logic in Invited handling 2023-10-12 17:55:14 +09:00
Dean Herbert
c78b5112c6
Fix OAuth refresh attempt when no network available causing full logout (part 2)
This time for `SocketException`s. I seem to recall looking at this and
deciding there was a reason to not catch socket exceptions, but on
revisiting it seems sane to do so.

This covers a fail case like reported:

```
2023-10-06 03:24:17 [verbose]: Request to https://lazer.ppy.sh/oauth/token failed with System.Net.Http.HttpRequestException: No such host is known. (lazer.ppy.sh:443)
2023-10-06 03:24:17 [verbose]: ---> System.Net.Sockets.SocketException (11001): No such host is known.
2023-10-06 03:24:17 [verbose]: at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
```

Closes https://github.com/ppy/osu/issues/24890 (again).
2023-10-06 18:24:22 +09:00
Marvin Schürz
0726ccb988 Fix formatting 2023-10-04 08:32:18 +02:00
Marvin Schürz
74ed3bc4ff Rename loadRoom to lookupRoom 2023-10-04 08:31:50 +02:00
Marvin Schürz
bfeafd6f70 Fix formatting 2023-10-04 08:30:48 +02:00
Marvin Schürz
5469d134cb Add missing parameter description to docs. 2023-10-04 00:28:01 +02:00
Marvin Schürz
267d1ee7d4 Handle cases when player cannot be invited. 2023-10-03 22:08:14 +02:00
Marvin Schürz
8e73dbc894 Load api room before displaying notification 2023-10-03 01:22:25 +02:00
Marvin Schürz
3879775219 Add room name to invite notification 2023-10-02 23:20:24 +02:00
Marvin Schürz
e81695bcac Display avatar in invitation notification 2023-10-02 23:10:51 +02:00
Marvin Schürz
574dc67a9e Add Invited task to multiplayer client 2023-10-02 22:53:28 +02:00
Marvin Schürz
d19cdbdefb Add InvitePlayer method to multiplayer server 2023-10-02 22:31:47 +02:00
Bartłomiej Dach
8215c4cb0e
Merge branch 'master' into mods-stable-ordering 2023-09-28 18:30:56 +02:00
Dean Herbert
7d74d84e6c Display mod icons using stable ordering
In discussion with nanaya, we likely want this now that we're adding the
ability for some icons to be extended. Historically mod icons have been
displayed in a stable but arbitrary order (based on their position in
the `Mods` enum).

This change aims to make them stable across lazer scores (where they are
stored based on .. the order the user selected them).
2023-09-28 16:48:09 +09:00
Dean Herbert
1246f15186 Don't show extended information where it duplicates already visible information 2023-09-27 19:29:03 +09:00
Dean Herbert
3c62521e69 Fix OAuth refresh attempt when no network available causing full logout 2023-09-24 10:50:07 +09:00
Bartłomiej Dach
0ffb906741
Merge pull request #24831 from peppy/update-deps
Update all dependencies (except for Moq)
2023-09-19 07:50:27 +02:00
Bartłomiej Dach
d3cc6dbaa0
Fix link protocol allowlist allowing too much 2023-09-18 09:20:24 +02:00
Dean Herbert
56b5f52e83 Update all dependencies (except for Moq) 2023-09-16 15:37:31 +09:00
Lukynka CZE
9b8fdcbcdc somehow accidentally removed backslashes 2023-09-14 17:55:53 +02:00
Lukynka CZE
66751ef5bb add regex 2023-09-14 17:46:29 +02:00
Bartłomiej Dach
691c08ebde
Update spectator server development endpoint URLs
With the way `dev.ppy.sh` was previously configured, the `osu-web`
`/multiplayer` routes and `osu-server-spectator` `/multiplayer` routes
would conflict with each other, with the `osu-server-spectator` route
taking precedence. This would mean that some `osu-web` pages would just
straight up not be available on dev.

To counteract this, the `osu-server-spectator` routes are now exposed
under `https://dev.ppy.sh/signalr/`. This PR updates the client-side
configuration to use these new routes.
2023-09-05 10:30:12 +02:00
Bartłomiej Dach
99d5ff9efb
Switch download requests to new API endpoint
This API endpoint is intended for usage with the entire `solo_scores`
machinery and ID schema, rather than the legacy `*_scores_high` ID
schema. It also supports automagically falling back to downloading
legacy replays if a stable-imported score is requested for download
(internally this happens via `legacy_score_id` in the `data` json).

This change will allow replays to be downloaded, but it will still not
yield 100% correct behaviour, as there is further work to be done in
that respect. The download tracker is expecting score hashes to arrive
from web to verify the integrity of the incoming download, but the API
does not expose such a facility right now; we will have to decide as to
whether we want to add one web-side, or whether we want to disable the
checking client-side.
2023-08-28 13:50:52 +02:00
Bartłomiej Dach
142abe1fd0
Make highlight messages important in order to trigger window flash 2023-08-22 09:01:32 +02:00
tsrk
96c58c86ea
refactor: make flashing available in Notifications
This will be used in `NotificationOverlay` when a `Notification` is posted.
2023-08-21 23:36:54 +02:00
tsrk
bdac052631
refactor(MessageNotifier): apply changes required by framework 2023-08-21 15:29:41 +02:00
tsrk
548e6dc23b
feat(MessageNotifier): flash window on PM or mention 2023-08-19 03:04:09 +02:00
Dean Herbert
6001f7e5c7 Rename "dummy" local user to something more descriptive
This created weird cases in logs which are very hard to understand. The
one which really got me was this:

```
[runtime] 2023-08-13 07:48:27 [verbose]: Invalidating working beatmap cache for unknown artist - unknown title (Dummy)
```

Which looks like a dummy working beatmap was invalidated, but it turns
out that's just the local user which was populated when creating a new
local beatmap.
2023-08-16 13:52:27 +09:00
Dean Herbert
d11e56b8bb Add common Export string and use in editor 2023-07-23 14:03:50 +09:00
Bartłomiej Dach
cef0dd1d61
Merge pull request #24190 from novialriptide/emoji-fix
Replace emoji unicode with `[emoji]`
2023-07-13 22:05:12 +02:00
Andrew Hong
ea6704ca1d Move parsing 2023-07-13 04:41:53 -04:00
Andrew Hong
3d17a03dc6 Emojis now represented as "[emoji]" 2023-07-13 03:52:22 -04:00
Andrew Hong
d62cfc1616 Parse emoji to an empty string 2023-07-12 20:24:09 -04:00
Andrew Hong
b05ba8c501 Remove unused code 2023-07-12 06:32:33 -04:00
Andrew Hong
b3b6df6e30 Remove emoji regex 2023-07-12 06:19:48 -04:00
Susko3
2dcd790442 Resolve Clipboard via DI 2023-07-11 11:42:31 +02:00
Bartłomiej Dach
91e286560e
Fix search being broken in channel listing "channel" 2023-07-09 21:51:08 +02:00
Bartłomiej Dach
d135b3f6f5
Add message length limit field to API response 2023-07-09 21:27:33 +02:00
Dean Herbert
0049f3fed4
Merge branch 'master' into more-notification-sounds 2023-07-07 16:39:31 +09:00
Dean Herbert
d72765b6f8
Merge pull request #24114 from peppy/editor-save-local-score-management
Ensure scores always have the correct linked `BeatmapInfo`
2023-07-07 15:40:54 +09:00
Jamie Taylor
fdb572fdea
Add more/different notification sounds 2023-07-07 01:51:57 +09:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Dean Herbert
d74b1e148d Make ScoreInfo.BeatmapInfo nullable 2023-07-04 14:50:34 +09:00
Bartłomiej Dach
21f758947d
Merge branch 'master' into availability-fixes 2023-07-02 20:38:37 +02:00
Bastian Pedersen
ea87000539 Localise chat related notifications 2023-06-28 21:11:56 +02:00
Dean Herbert
5d209b3ffc Change default availability in MultiplayerRoomUser to Unknown 2023-06-28 16:38:20 +09:00
Dean Herbert
fec086aec8 Fix OnlinePlayBeatmapAvailabilityTracker not passing through Unknown state 2023-06-28 16:02:46 +09:00
Dean Herbert
664a2b2255 Force a beatmap availability state change when selected item is changed 2023-06-28 16:02:46 +09:00
Dean Herbert
1abce098b4 Apply nullability to login form related classes 2023-06-26 13:26:07 +09:00
Dean Herbert
372cef3c0a Merge branch 'master' into ui-login-spacing-fix 2023-06-26 13:24:26 +09:00
Dean Herbert
ac0c988d49 Fix weirdly named test method and add xmldoc 2023-06-26 13:21:29 +09:00
Dean Herbert
55ab27c5b6
Merge pull request #24022 from frenzibyte/fix-open-user-profile-argument
Fix `OpenUserProfile` links having multiple argument types
2023-06-26 13:13:05 +09:00
Joseph Madamba
25c9bf4061
Improve and refactor LoginPanel test scene to use LoginOverlay 2023-06-25 11:39:32 -07:00
Salman Ahmed
9a5f033a0f Change OpenUserProfile argument type to always use IUser 2023-06-24 18:12:35 +03:00
Bartłomiej Dach
e273c223a8
Fix some more missed CI inspections 2023-06-24 17:11:38 +02:00
Bartłomiej Dach
e3a89a6273
Fix remaining obvious CI inspections 2023-06-24 16:07:01 +02:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Bartłomiej Dach
1672608a87
Document why things were done in DummyAPIAccess 2023-06-22 23:08:30 +02:00
Liam DeVoe
21bed336c6 adjust DummyAPIAccess to more closely match APIAccess
wrt logging in and out
2023-06-22 16:01:12 -04:00
Joseph Madamba
9ae864c219
Fix beatmap info length tooltip not showing actual drain length 2023-06-17 15:00:32 -07:00
Bartłomiej Dach
287229efd5
Fix code quality inspection 2023-06-09 14:25:53 +02:00
Dean Herbert
4685ba83e1 Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00
Salman Ahmed
9f842ccdc0 Supply Accept-Language header in API requests 2023-06-08 02:59:34 +03:00
Salman Ahmed
ab790ec96a Expose currently selected language from IAPIProvider 2023-06-08 02:59:34 +03:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Bartłomiej Dach
a9d4556647
Merge branch 'master' into update-multiplayer-room-diff-range 2023-06-03 16:50:09 +02:00
Dean Herbert
df662afbd5 Pass ScoreProcessorStatistics to FrameHeader, rather than the full processor 2023-05-29 20:00:42 +09:00
Dean Herbert
7a5349d747 Remove constructor from MultiplayerPlaylistItem which is only used in tests 2023-05-25 20:09:40 +09:00
Dan Balasescu
fee3d43596 Merge branch 'master' into scorev2 2023-05-23 19:07:54 +09:00
Dan Balasescu
e1feeded12 Change statistics type, remove overridability 2023-05-23 15:36:34 +09:00
Bartłomiej Dach
a677d87d39
Touch up inline comments 2023-05-20 19:29:59 +02:00
Dan Balasescu
6c6f8621c1 Add score processor statistics to replay header 2023-05-19 16:29:24 +09:00
Dan Balasescu
035d0d5c9c Fix multiplayer leaderboard not working 2023-05-19 13:16:57 +09:00
Dan Balasescu
808818768b Add TotalScore to replay frame headers 2023-05-18 20:08:49 +09:00
Dimmitsaras
7ac6688a0f Chat message notifications always play on unfocused window 2023-05-17 18:34:39 +03:00
timiimit
83ceb3457f Add xmldoc comment 2023-05-15 07:36:15 +02:00
timiimit
cb8d5f459f Remove bad comment 2023-05-15 07:36:15 +02:00
timiimit
86a834fb56 Fix TODO comment 2023-05-14 12:20:16 +02:00
timiimit
5d68701321 Copy StarRange when creating PlaylistItem 2023-05-14 12:08:37 +02:00
timiimit
f1f30b94a6 Add StarRating Property 2023-05-14 11:05:47 +02:00
Dan Balasescu
3c3c812ed6 Initial implementation of ScoreV2 2023-05-09 19:33:33 +09:00
Bartłomiej Dach
65b4b198a4
Merge branch 'master' into export 2023-05-06 20:12:53 +02:00
Dean Herbert
b28d7b1a92 Fix non-block namespace 2023-05-03 18:51:02 +09:00
cdwcgt
26f2d9047d code style fix 2023-03-23 01:11:44 +09:00
cdwcgt
8518d15b8d use endpoint 2023-03-23 01:00:38 +09:00
cdwcgt
e84e011d5d Merge branch 'master' into export 2023-02-17 22:15:19 +09:00
Joseph Madamba
afb66d8af4 Make user activity class names more specific 2023-02-12 12:32:17 -08:00
Bartłomiej Dach
ebf469272f
Merge pull request #22544 from peppy/fix-change-join-leave-loop
Attempt to fix channel join / leave loop
2023-02-11 12:26:26 +01:00
Dean Herbert
4f7d26b776 Actually apply new parameter 2023-02-10 18:29:39 +09:00
Joseph Madamba
3b5d573db1 Display tournament banner on user profile 2023-02-08 17:16:09 -08:00
Dean Herbert
ee65c65893 Attempt to fix channel join / leave loop
I don't have a solid way to repro the issue, but this should hopefully
help in resolving it. Either way, I think this change brings more
correct behaviour (if a websocket message comes through that we have
left the channel, I don't believe we should be sending a request to
leave that channel again).
2023-02-08 11:31:30 +09:00
Dean Herbert
f7c4199a77
Merge pull request #22262 from Joehuu/chat-mention-user
Add ability to easily mention users in chat by right clicking username
2023-01-18 13:30:02 +09:00
Bartłomiej Dach
f5459909f9
Merge branch 'master' into comment-editor-3 2023-01-17 21:31:08 +01:00
Joseph Madamba
97bd76efc6 Add ability to easily mention users in chat by right clicking username 2023-01-17 10:01:07 -08:00
Dean Herbert
26cd70f2bf Always use production (non-experimental) endpoints for tournament client 2023-01-17 18:46:06 +09:00
Bartłomiej Dach
bf58fe21ce
Merge branch 'master' into beatmap-set-converted-beatmaps 2023-01-16 20:46:41 +01:00
Joseph Madamba
85c1932851 Mark Converts as nullable 2023-01-15 12:46:41 -08:00
Salman Ahmed
13c1b8f5a4 Fix intermittent failure in tests with restarting player instances 2023-01-15 16:06:06 +03:00
Joseph Madamba
e7ab543799 Add ability to view converted beatmaps on beatmap set overlay 2023-01-14 10:26:21 -08:00
ansel
fbb674d8e9 Rename parent comment id field 2023-01-14 20:15:19 +03:00
ansel
e9995410e8 Merge branch 'master' into comment-editor-3 2023-01-14 02:32:06 +03:00
StanR
660bf748d5 Fix GroupBadge crashing on null group colour 2023-01-14 02:23:08 +03:00
Dean Herbert
a7327b02a2 Add API level support for error message and redirect during registration flow 2023-01-13 15:32:53 +09:00
Dean Herbert
5658c3a123 Enable NRT on account creation classes 2023-01-13 15:29:25 +09:00
Salman Ahmed
115cb0d297 Fix channel manager test scene not waiting for notifications client connection 2023-01-12 23:14:23 +03:00
StanR
5441c02a1a Implement user group badges 2023-01-11 07:11:38 +03:00
Salman Ahmed
98390ea2a8 Fix condition flipped 2023-01-09 21:33:08 +03:00
Dean Herbert
22d0b34623 Remove flag causing intiialisation to only run once ever 2023-01-09 16:38:37 +09:00
Dean Herbert
13c3d2c254 Fix retry loop for channel initialisation resulting in request pile-up
Closes #22060.
2023-01-09 16:15:31 +09:00
Bartłomiej Dach
9b68932eb4
Merge branch 'master' into beatmap-info-nominators 2023-01-08 14:35:07 +01:00
Joseph Madamba
9d32fde592 Mark current nominations and related users as nullable 2023-01-07 11:04:42 -08:00
Joseph Madamba
0f6735564e Move and rename nomination response model to singular 2023-01-07 10:54:48 -08:00
ansel
58bf7349ee Fix request 2023-01-07 02:59:32 +03:00
ansel
768a33bb64 Add request class 2023-01-06 23:31:19 +03:00
Salman Ahmed
e449d8dda0 Fix friends list duplicating on connection failure 2023-01-06 22:39:46 +03:00
Joseph Madamba
7f970f3cd8 Display nominators on beatmap set overlay 2023-01-06 11:33:39 -08:00
Dean Herbert
464f251c0c
Merge branch 'master' into beatmap-set-link-genre-language 2023-01-06 17:09:06 +08:00
Dean Herbert
96e81e7f41 Switch on NRT and add IEquatable to GetScoresRequest 2023-01-04 01:41:21 +08:00
Bartłomiej Dach
2698d58c46
Merge branch 'master' into remember-chat-textbox-per-channel 2023-01-01 17:29:38 +01:00
Joseph Madamba
70dbb8edac Fix stand alone chat display textbox not binding to local channel 2022-12-29 01:37:37 -08:00
Joseph Madamba
c326745f96 Save / sync chat text box messages per channel 2022-12-28 16:09:40 -08:00
Dean Herbert
ea8beffa61
Merge pull request #21871 from bdach/solo-statistics-watcher-reliability
Improve reliability of solo statistics watcher
2022-12-28 21:05:38 +08:00
Bartłomiej Dach
3c0b8af8f1
Allow unsubscribing from solo statistics updates
This is more of a safety item. To avoid potential duplicate key in
dictionary errors (and also avoid being slightly memory-leaky), allow
`SoloStatisticsWatcher` consumers to dispose of the subscriptions they
take out.
2022-12-28 08:07:48 +01:00
Bartłomiej Dach
a0a26b1e8c
Ignore statistics update subscriptions with invalid score ID
If score submission fails, the score will not receive a correct online
ID from web, but will still be passed on to the solo statistics watcher
on the results screen. This could lead to the watcher subscribing to
changes with score ID equal to the default of -1. If this happened more
than once, that would cause a crash due to duplicate keys in the
`callbacks` dictionary.

Closes #21837.
2022-12-28 07:54:01 +01:00
Bartłomiej Dach
e9d32fca18
Fix various failures in initial statistics fetch
- If the local user is restricted, then attempting to fetch their data
  from the `/users` endpoint would result in an empty response.

- Even if the user was successfully fetched, their `RulesetsStatistics`
  may not be populated (and instead be `null`). Curiously this was not
  picked up by static analysis until the first issue was fixed.

Closes #21839.
2022-12-28 07:31:36 +01:00
Dean Herbert
0d78bc2248 Fix osu.ppy.sh links no longer opening in-game
Addresses https://github.com/ppy/osu/discussions/21838.
2022-12-28 06:42:35 +08:00
Dean Herbert
b3e44f20bc Use new lazer API endpoint
This is a temporary change to target the new experimental/next deploy.
The main change that should result from this is having the user profile
show the pp^next values from the new domain.
2022-12-27 17:20:40 +08:00
Bartłomiej Dach
cb2b0d4178
Remove redundant type specs 2022-12-26 23:12:53 +01:00
Berkan Diler
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
Dean Herbert
209d44746a
Merge pull request #21762 from bdach/score-stats-updates
Add solo statistics watcher component to deliver incremental global user statistics updates
2022-12-24 21:30:34 +08:00
Bartłomiej Dach
78c47a3695
Add callback to dictionary rather than overwrite
Attempting to overwrite will henceforth throw an exception.
2022-12-24 13:45:04 +01:00
Bartłomiej Dach
6c4ca387e0
Fix wrong handling of missing ruleset statistics 2022-12-24 13:44:11 +01:00
Bartłomiej Dach
3c26016b61
Ensure latest stats are cleared on successful profile fetch 2022-12-24 13:44:08 +01:00
Bartłomiej Dach
fd9110a61e
Fix solo statistics watcher firing requests for invalid user with id 1
Can happen during login flow (see `APIAccess.attemptConnect()`).
2022-12-24 13:44:05 +01:00