Dean Herbert
dde09d409b
Merge branch 'master' into chat-silences
2022-11-12 21:00:56 +09:00
Dean Herbert
19876ca0fb
Merge branch 'master' into websocket-chat-2
2022-11-11 23:53:42 +09:00
Dan Balasescu
6ac19615fa
Fix test failure
2022-11-11 14:55:41 +09:00
Dan Balasescu
fdca3c2d1c
Rename method for consistency
2022-11-07 14:35:42 +09:00
Dan Balasescu
67e99b5344
Lookup channels before calling HandleJoinedChannel()
2022-11-07 14:34:55 +09:00
Joseph Madamba
b977fc8181
Use autosize instead of max width on fixed width timestamps
2022-11-06 19:28:01 -08:00
Dan Balasescu
f931bdc5ff
Fix channel lookup not considering missing ids
2022-11-07 12:25:23 +09:00
Dan Balasescu
cd8402df72
Print event type to logs
2022-11-07 12:11:50 +09:00
Dan Balasescu
cf03001c83
Better handling for joining channels with only ID
2022-11-07 11:52:07 +09:00
Dan Balasescu
e3adf5a985
Handle channel parts
2022-11-07 11:36:55 +09:00
maromalo
b7ef9b176d
Make score type consistent
2022-11-06 19:59:27 -03:00
Dan Balasescu
d426977f03
Handle channel joins
2022-11-04 20:11:42 +09:00
Dan Balasescu
f12ada9d92
Fix chat connecting too early
2022-11-04 19:36:24 +09:00
Dan Balasescu
1d2818dc70
Reschedule ack request on completion
2022-11-04 19:02:26 +09:00
Dan Balasescu
66bbe34116
Move polling clients to osu.Game.Tests namespace
2022-11-04 18:52:57 +09:00
Dan Balasescu
fa18b5f701
Construct notifications client inside ChannelManager
2022-11-04 18:51:00 +09:00
Dan Balasescu
72745656e7
Remove StartChat()/chat enablement
2022-11-04 18:48:34 +09:00
Dan Balasescu
58396d49dc
Fix handling of local echo deduplication
2022-11-04 18:44:22 +09:00
Salman Ahmed
ac8fb4f9b2
Fix beatmap cards still potentially showing twice in listing
2022-11-04 03:23:34 +03:00
Dean Herbert
e6c45b8ab5
Merge branch 'master' into comment-report
2022-11-03 15:35:42 +09:00
Dean Herbert
4f8e912f06
Fix APINotification
parsing failing
2022-11-02 17:53:19 +09:00
Dan Balasescu
063a8bdf9e
Remove messages from silenced users
2022-11-02 17:13:14 +09:00
Dan Balasescu
f688ed12d0
Add test for removing chat messages
2022-11-02 17:00:47 +09:00
Dean Herbert
2b04e852be
Merge branch 'master' into websocket-chat-2
2022-11-02 14:56:13 +09:00
Dan Balasescu
30800c9252
Add/adjust xmldocs
2022-11-02 13:16:34 +09:00
Dan Balasescu
3816152c9d
Merge branch 'socket-client' into websocket-chat-2
2022-11-02 11:49:57 +09:00
Dan Balasescu
e59c8b7d24
Use IDisposable instead
2022-11-02 11:49:04 +09:00
Dan Balasescu
c9108ce41b
Rename StartAsync -> ConnectAsync
2022-11-02 11:44:16 +09:00
Dan Balasescu
46d1713e28
Rename Socket* -> PersistentEndpoint*
2022-11-02 11:43:22 +09:00
Dan Balasescu
8ac2075c61
Fix possible threading issues
...
Not really sure of the best way to handle this in general. It could be
argued that this should be a `Component` type and the bindable bound in
`LoadComplete()`...
2022-11-02 10:04:25 +09:00
Dan Balasescu
5b25ef5f2f
Construct notifications client via IAPIProvider
2022-11-01 21:34:34 +09:00
Dean Herbert
17f482bfc3
Merge branch 'master' into websocket-chat-2
2022-10-31 16:11:58 +09:00
Dean Herbert
8a37649097
Merge branch 'master' into socket-client
2022-10-31 16:00:14 +09:00
Dan Balasescu
d3173ab1bd
Remove weird cast
2022-10-28 18:54:34 +09:00
Dan Balasescu
ab78cde2d4
Fix crossthread mutations
2022-10-28 18:37:43 +09:00
Dan Balasescu
169bcc2654
Use polling connector in tests
2022-10-28 18:08:08 +09:00
Dan Balasescu
527b1d9db1
Generalise + add polling-style for usage in tests
2022-10-28 17:53:28 +09:00
Dan Balasescu
efa8256911
Use more verbatim strings
2022-10-28 16:32:17 +09:00
Dan Balasescu
2f731f86ba
Adjust ChannelManager to use notifications client
2022-10-28 16:28:58 +09:00
Dan Balasescu
33bb1212d1
Add notifications websocket + chat implementation
2022-10-28 16:28:58 +09:00
Dan Balasescu
b3219526a5
Populate beatmap ruleset in SoloScoreInfo.ToScoreInfo()
2022-10-28 14:42:45 +09:00
Dean Herbert
dcff8a193c
Use better method of forcing serialisation
2022-10-28 01:26:10 +09:00
Dean Herbert
3c4ba6e9fc
Fix SoloScoreInfo.Rank
not being serialised if rank is D
2022-10-27 19:02:32 +09:00
Dan Balasescu
6cca3a3dc8
Add new API requests
2022-10-27 14:55:24 +09:00
Dan Balasescu
4127aaa988
Extract general elements from HubClientConnector into SocketClientConnector
2022-10-27 14:37:10 +09:00
Dean Herbert
af84f708b7
Avoid serialising some more properties of SoloScoreInfo
unless present
2022-10-21 19:30:35 +09:00
ansel
e1785f73a2
Make report's comment not optional
2022-10-16 20:14:05 +03:00
Feodor0090
fb046e31c1
Merge branch 'master' into comment-report
2022-10-14 16:57:23 +03:00
ansel
7251d41deb
Add request class
2022-10-14 16:15:28 +03:00
Dan Balasescu
525f98c158
Fix max combo missing from playlists results screen
2022-10-14 18:01:54 +09:00
Dean Herbert
47fe4eb0bd
Merge branch 'master' into comment-deletion
2022-10-12 15:48:26 +09:00
Dean Herbert
74db42394a
Silence unobserved exceptions in BeginPlayingInternal
...
Closes #20526 .
2022-10-05 14:31:13 +09:00
ansel
7645fe20f5
Merge branch 'master' into comment-deletion
2022-09-28 17:55:22 +03:00
ansel
58d9509ce6
Apply NRT to Comment
2022-09-27 22:45:05 +03:00
ansel
5282c8b8c6
Fix CQ
2022-09-27 19:40:18 +03:00
ansel
5da7cb5397
Make comment ID public for test
2022-09-27 19:02:18 +03:00
ansel
1721b8e47a
Add request class
2022-09-27 16:25:26 +03:00
Dan Balasescu
1811647e34
Make room requests handler handle GetBeatmapRequest
2022-09-27 20:30:41 +09:00
Dean Herbert
de6709d12c
Fix rank_history
serialisation order dependence
...
```csharp
[network] 2022-09-26 18:18:39 [verbose]: Processing response from https://dev.ppy.sh/api/v2/me/ failed with Newtonsoft.Json.JsonSerializationException: Error setting value to 'rankHistory' on 'osu.Game.Online.API.Requests.Responses.APIUser'.
[network] 2022-09-26 18:18:39 [verbose]: ---> System.NullReferenceException: Object reference not set to an instance of an object.
[network] 2022-09-26 18:18:39 [verbose]: at osu.Game.Online.API.Requests.Responses.APIUser.set_rankHistory(APIRankHistory
value) in /tmp/osu/osu.Game/Online/API/Requests/Responses/APIUser.cs:line 231
```
2022-09-27 12:46:17 +09:00
Dean Herbert
a1297af441
Apply NRT to base Leaderboard
classes
2022-09-26 16:12:47 +09:00
Dean Herbert
32d56fe3a9
Use request cancellation and IsDisposed
guard instead of more Schedule
2022-09-26 16:02:33 +09:00
Dean Herbert
37e2579244
Fix reversed checks
2022-09-22 20:35:26 +09:00
Dan Balasescu
7508592789
Clean up some checks
2022-09-22 19:56:24 +09:00
Dean Herbert
29c4d06d36
Merge branch 'fix-gameplay-leaderboard-layout' into gameplay-leaderboards
2022-09-21 14:58:58 +09:00
Dean Herbert
8837618ab1
Merge pull request #20342 from smoogipoo/server-shutdown-countdown
...
Implement server shutdown countdown + notification
2022-09-20 20:51:16 +09:00
Dan Balasescu
d777afc454
Remove countdown at under 5 seconds
2022-09-20 19:55:44 +09:00
Dean Herbert
68c040175a
Ensure Leaderboard.Scores
is updated immediately via request flow
2022-09-20 17:02:57 +09:00
Dan Balasescu
b84f716c22
Display seconds when hours>0 to be more lively
2022-09-20 16:02:31 +09:00
Dan Balasescu
ef29987f36
Remove FinalNotification
2022-09-20 15:54:18 +09:00
Dan Balasescu
700000b583
Use custom notification with timer
2022-09-20 15:54:18 +09:00
Salman Ahmed
9a10ecb378
Clarify purpose of APIUserScoreAggregate
2022-09-17 19:37:30 +03:00
Dean Herbert
a1d830e47f
Fix formatting
2022-09-17 22:22:56 +09:00
vegguid
0bfe967452
moved BindValueChanged to LoadComplete
2022-09-17 12:58:23 +02:00
vegguid
288cc7b201
Fixed Leaderboard tooltip not following time format setting
2022-09-16 21:36:17 +02:00
Dan Balasescu
92b2417d4c
Post notification when room joined
2022-09-16 21:10:11 +09:00
Dan Balasescu
433bb5ae24
Add ServerShuttingDownCountdown
2022-09-16 19:56:52 +09:00
Dean Herbert
4c4fdfd153
Provide scores directly to Player
instance rather than relying on DI
2022-09-16 18:15:17 +09:00
Dean Herbert
0227eddda1
Merge branch 'master' into gameplay-leaderboards
2022-09-16 15:44:58 +09:00
Dean Herbert
21ac3fd88b
Catch any unobserved exceptions during beatmap metadata harvesting
...
The process will retry when a connection is successful, so this doesn't
need to be as loud as it was.
Addresses https://github.com/ppy/osu/discussions/20331 .
2022-09-16 14:00:06 +09:00
Dean Herbert
581a4d2d6d
Use APIBeatmap
for realm migration requiring ShortName
mapping
2022-09-15 16:58:58 +09:00
Dean Herbert
6d167070f8
Add back DI leaderboard retrieval via bindable pathway
2022-09-13 18:45:11 +09:00
Dean Herbert
cb6d02ec3a
Merge pull request #19066 from andy840119/remove-the-nullable-disable-in-the-ruleset
...
Remove the nullable disable annotation in the ruleset class
2022-09-12 19:07:23 +09:00
Dan Balasescu
31225066a1
Merge pull request #19308 from frenzibyte/top-rank-badge-order
...
Fix best rank badge not handling legacy scores properly
2022-09-12 16:20:21 +09:00
Dan Balasescu
1eb2c74e57
Fix countdown serialisation
2022-09-11 18:50:51 +09:00
andy840119
1398a7e11e
Property should accept the nullable state.
2022-09-10 10:46:40 +08:00
Salman Ahmed
dd10a06e3d
Merge branch 'master' into top-rank-badge-order
2022-09-09 19:38:44 +03:00
Dan Balasescu
ba2ef424d4
Turn score ids into ulong
s
2022-09-09 11:46:06 +09:00
Dan Balasescu
4fc03998a1
Merge pull request #20189 from peppy/fix-playlist-item-download-button-visibility
...
Fix playlist items showing download button briefly during initial display
2022-09-08 19:47:35 +09:00
Dean Herbert
13d9b2188b
Merge pull request #20145 from smoogipoo/multiple-countdowns
...
Implement support for multiple active countdowns in multiplayer
2022-09-08 19:15:30 +09:00
Dean Herbert
0de220c45c
Change IsExclusive
default value to true
2022-09-08 17:54:29 +09:00
Dean Herbert
ed81297611
Fix playlist items showing download button briefly during initial local presence checks
2022-09-08 17:10:45 +09:00
Dan Balasescu
b2f30fbf8c
Add countdown exclusivity
2022-09-05 20:13:23 +09:00
Dan Balasescu
2923c10cd8
Rewrite rooms to store multiple active countdowns
...
Update test to the new structure
2022-09-05 19:03:26 +09:00
Dan Balasescu
b10026993a
Don't serialise has_replay
2022-09-02 16:41:53 +09:00
Dan Balasescu
a277431266
Add has_replay and legacy_score_id to SoloScoreInfo
2022-09-01 21:10:38 +09:00
Dan Balasescu
d70208fcf1
Default to off
2022-09-01 14:14:22 +09:00
Dan Balasescu
b5ec7d06dd
Add auto-skip setting
...
Default to auto skip
2022-08-31 20:24:06 +09:00
Dean Herbert
09aa3e065d
Move colouring to full icon content rather than background
2022-08-30 18:06:48 +09:00
Dan Balasescu
799c015bff
Add LegacyTotalScore to SoloScoreInfo
2022-08-30 15:50:19 +09:00
Dean Herbert
b9d9bf3004
Merge pull request #19938 from frenzibyte/fix-multi-spectator-results-screen
...
Fix multi-spectator potentially getting stuck for passed players
2022-08-26 21:53:17 +09:00
Salman Ahmed
6840e906e7
watchedUsers
-> watchedUsersRefCounts
2022-08-25 09:50:52 +03:00
Salman Ahmed
146cc62f00
Merge branch 'master' into maximum-statistics-2
2022-08-25 08:18:44 +03:00
Dean Herbert
6a0d23cf96
Nest dialog class and apply NRT
2022-08-24 17:39:22 +09:00
Dan Balasescu
f70af779a4
Add maximum statistics to ScoreInfo/SoloScoreInfo
2022-08-24 17:28:41 +09:00
Andrew Hong
ec5fd7ac1d
Remove possible 'System.NullReferenceException'
2022-08-24 03:42:16 -04:00
Andrew Hong
b24513038c
Add popupdialog button to copy url
2022-08-24 03:35:19 -04:00
Salman Ahmed
7e5086c8d7
Fix spectator client not handling multiple watch calls properly
2022-08-24 10:02:21 +03:00
Dean Herbert
058d67f8e8
Merge pull request #19695 from naoei/ruleset-localization
...
Change most ruleset-accessible string types to Localisable strings
2022-08-22 16:13:23 +09:00
Nao
189a407cb1
Merge branch 'master' into ruleset-localization
2022-08-20 21:39:10 -04:00
Dean Herbert
a1e849c4db
Ensure that DummyAPIAccess
runs all queued tasks on disposal
2022-08-20 16:22:35 +09:00
Dean Herbert
c3c44c19cd
Use CompositeComponent
in various locations
2022-08-19 20:43:15 +09:00
Nao
c940f5abcb
Merge branch 'master' into ruleset-localization
2022-08-14 15:17:44 -04:00
naoei
45e9eda9e7
Localise hit result name
2022-08-14 14:57:02 -04:00
Dean Herbert
865d63f768
Refactor APIAccess
main loop to read better
2022-08-11 15:43:39 +09:00
Dean Herbert
47196b19a5
Stop setting Online
state in handleRequest
...
This is already handled amicably by the `Failing` -> `Connecting` flow.
Having this set in `handleRequest` throws things off, potentially
leading to the `Online` state change before the user has been populated.
2022-08-11 14:36:30 +09:00
Dean Herbert
7ec67c28b9
Set Online
state sooner in connection process
...
This isn't really required as such, but feels more correct. There was no
reason for it to wait for the friend population to complete before
deeming things to be "online".
2022-08-11 14:35:56 +09:00
Dean Herbert
e5b534bb26
Add thread safety to APIAccess.LocalUser
2022-08-11 12:45:26 +09:00
Dan Balasescu
888c4c8e08
Merge pull request #19662 from peppy/startup-correct-username
...
Use a placeholder user with the correct username during login process
2022-08-10 13:09:37 +09:00
Dan Balasescu
4107049b08
Fix host room status showing ended after playing
2022-08-09 21:43:10 +09:00
Dean Herbert
4a312d5658
Use a placeholder user with the correct username during connecting process
...
This allows for various components (like gameplay) to obtain a correct
username even if the API is not yet in a connected state. The most
common case is during startup, where a connection may not have been
established yet, but the user's username was restored from their config
file.
By making the change, local scores will now have the correct username
(although avatar etc. will be missing, which I think it fine) even if
the API is not yet connected. Previously, they would show up as "Guest".
2022-08-09 17:13:09 +09:00
Dean Herbert
f9d0cc3c4e
Change APIAccess.IsLoggedIn
to also return true
when connecting
...
All usages of this are made with the intention of showing data when an
api is going to eventually become available. In the case of a login
failure, components are also able to display a correct state.
With this change, it makes online components display in a more correct
state during startup or initial logging in phase.
2022-08-09 17:11:44 +09:00
Dean Herbert
0537c471dc
Merge pull request #19582 from smoogipoo/apimod-json-cleanup
...
Don't serialise empty mod settings
2022-08-08 11:49:08 +09:00
Dan Balasescu
0de00e9b3f
Don't serialise empty mod settings
2022-08-05 14:00:53 +09:00
Dan Balasescu
2d9da07eb6
Trim zero values from hit statistics
2022-08-04 19:27:50 +09:00
Dan Balasescu
8ff7770a71
Omit irrelevant data from SoloScoreInfo serialisation
2022-08-04 19:11:39 +09:00
Dean Herbert
fd09155990
Revert blocking call when sending spectator frames
...
There are a lot of these requests, and we don't really care about
waiting on them to finish sending. This may have negatively affected
send performance for users with very high latency.
Reverts part of 0533249d11
.
Addresses concerns in https://github.com/ppy/osu/discussions/19429#discussioncomment-3276400 .
2022-07-29 12:24:54 +09:00
Salman Ahmed
1b6ebcfd87
Remove SubmittableScore
and replace with SoloScoreInfo
extension method
2022-07-25 13:43:43 +03:00
Salman Ahmed
d04df19c7e
Remove APIScore
and replace its final usage
2022-07-25 13:13:46 +03:00
Salman Ahmed
e0266b0d81
Reword comment slightly
2022-07-25 04:39:14 +03:00
Salman Ahmed
f5a5887669
Fix players potentially not displaying in spectator after restart
2022-07-25 04:21:53 +03:00
Salman Ahmed
727fe76b60
Fix TopLocalRank
hacking around presence to hide on null rank
...
Fixed this here because that blocks `Schedule` from running, and I don't
want to add another override to the `IsPresent` flag.
2022-07-23 09:22:22 +03:00
Dean Herbert
62133fa069
Merge pull request #19246 from frenzibyte/fix-wiki-navigation
...
Fix wiki overlay not handling path redirection properly
2022-07-20 20:08:11 +09:00
Dan Balasescu
f9c02c34b6
Merge branch 'master' into beatmap-update-online-flow
2022-07-20 15:15:51 +09:00
Salman Ahmed
e7f35701db
Add failing test case
2022-07-20 09:06:11 +03:00
Dean Herbert
07874efa7f
Set last online update to actual value provided by data source
2022-07-19 19:39:51 +09:00
Dean Herbert
cd39f444ef
Expose event from OnlineMetadataClient
rather than calling BeatmapUpdater
directly
2022-07-19 17:57:01 +09:00
Dean Herbert
12e5bc3f3d
Fix BeginPlayingInternal
firing actual errors when beatmap not available online
2022-07-19 17:14:57 +09:00
Dean Herbert
2716bd41d9
Use more correct json casing in APIScoresCollection
...
osu-web API is already returning both of these casings for backwards
compatibility, but the former will be removed at some point.
e540276721/app/Http/Controllers/BeatmapsController.php (L314-L315)
2022-07-19 15:34:17 +09:00
Dan Balasescu
c07f78409e
Merge pull request #19189 from peppy/peform-actions-after-reconnect
...
Fix creating multiplayer game during server migration not joining new room correctly
2022-07-19 14:46:29 +09:00
Bartłomiej Dach
6f37487528
Replace calls to defective Humanizer methods with correct version
2022-07-18 22:34:58 +02:00
Salman Ahmed
2befcfedbb
Merge branch 'master' into fix-multiplayer-participant-panel-null-ruleset
2022-07-18 12:24:47 +03:00
Salman Ahmed
b5c7d07ba8
Merge branch 'master' into fix-user-profile-overlay
2022-07-18 10:27:33 +03:00
Dean Herbert
933a41554b
Merge pull request #19187 from peppy/fix-reconnect-new-spectator-session
...
Fix spectator client not correctly reconnecting after shutdown
2022-07-18 16:25:04 +09:00
Dean Herbert
a7f19cc796
Merge pull request #19137 from frenzibyte/country-enum
...
Replace `Country` class with enumeration
2022-07-18 16:12:24 +09:00
Salman Ahmed
045602b27d
Merge branch 'master' into fix-reconnect-new-spectator-session
2022-07-18 09:55:19 +03:00
Salman Ahmed
84c1c26a7f
Merge branch 'master' into fix-user-profile-overlay
2022-07-18 09:45:25 +03:00
Salman Ahmed
1b302910b1
Merge branch 'master' into fix-reconnect-new-spectator-session
2022-07-18 09:30:29 +03:00
Dean Herbert
21bf7ee448
Turn on nullability in ParticipantPanel
2022-07-18 15:27:55 +09:00
Salman Ahmed
018da74fe8
Replace default
with CountryCode.Unknown
2022-07-18 08:54:35 +03:00
Salman Ahmed
05d692bd55
Move Country
to end of class
2022-07-18 08:43:41 +03:00