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 Component
s
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
Salman Ahmed
7ad8b167cc
Add overridable method for checking local availability of current model
2021-01-17 00:01:11 +03:00
Salman Ahmed
04d17aadfa
Add overridable method for verifying models in database
2021-01-17 00:01:11 +03:00
Salman Ahmed
d9034eab26
Make model manager in DownloadTrackingComposite
protected
2021-01-16 22:54:54 +03:00
Dan Balasescu
67b5ebadf5
Merge branch 'master' into fix-is-connected-thread-safety
2021-01-15 12:56:21 +09:00
Salman Ahmed
95acc457aa
Fix stupid mistake
...
fuck.
2021-01-13 22:35:21 +03:00
Salman Ahmed
560b1e970c
Merge branch 'master' into user-beatmap-downloading-states
2021-01-13 22:31:31 +03:00
Salman Ahmed
1f12b2bd09
Rename download state Downloaded
to Importing
2021-01-13 18:04:53 +03:00
Salman Ahmed
a5f99ed8e6
Merge branch 'explicit-beatmap-markers' into explicit-search-control
2021-01-13 12:53:57 +03:00
Salman Ahmed
e8daea91d2
Add online beatmap "explicit content" property
2021-01-13 12:13:14 +03:00
Dean Herbert
7298adc9d9
Fix non-threadsafe usage of MultiplayerClient.IsConnected
2021-01-12 19:04:16 +09:00
Salman Ahmed
249be461d5
Add "explicit maps" search filter control
2021-01-12 11:09:55 +03:00
Bartłomiej Dach
0d5fbb15ac
Fix up code comments
...
Default value restated in xmldoc was snipped because it's made redundant
by the initialiser and possibly bound to be outdated at some point.
2021-01-11 20:31:52 +01:00
Salman Ahmed
90fb67b377
Update code in-line with decided direction
2021-01-11 20:52:24 +03:00
Salman Ahmed
2286e3679f
Downloaded -> Importing
2021-01-11 08:21:07 +03:00
Salman Ahmed
a8dfa5e2a9
Rename typo'd method
2021-01-11 08:04:00 +03:00
Salman Ahmed
e99310b59c
Add JsonConstructor attribute
2021-01-11 08:02:57 +03:00
Dean Herbert
deb1ad7bca
Merge branch 'master' into disable-repeat-multi-actions
2021-01-04 23:38:29 +09:00
Salman Ahmed
839f5a7570
Ensure clients don't blow up when given user isn't in room
2021-01-03 18:36:37 +03:00
Salman Ahmed
c8423d1c46
Make constructors design more pleasent to eyes
2021-01-03 18:36:05 +03:00
Salman Ahmed
152e9ecccf
Make BeatmapAvailability
class in-line with other online data structures
2021-01-03 18:36:05 +03: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
Salman Ahmed
dfa8be9173
Add beatmap availability change state & event methods
2021-01-03 05:48:49 +03:00
Salman Ahmed
09e5e2629a
Add user beatmap availability property
2021-01-03 05:48:49 +03:00
Salman Ahmed
8bb84570df
Introduce beatmap availability structure
2021-01-03 05:48:49 +03: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
dee694fd50
Merge branch 'master' into mod-using-reference-equality
2020-12-30 19:39:22 +01:00
Bartłomiej Dach
f800448c87
Move game start logic to a higher level
2020-12-30 18:15:48 +01:00
Bartłomiej Dach
dd87478690
Add helper IsHost property to Client
2020-12-30 16:29:19 +01:00
Dean Herbert
497d644a19
Move thread safety / locking logic from MultiplayerRoom
2020-12-30 20:24:50 +09:00
Dean Herbert
3920dac8af
Merge branch 'master' into fix-error-spam-on-disconnection
2020-12-30 00:55:37 +09: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
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
903dca875e
Make localUser a client property
2020-12-29 07:46:22 +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
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
1d311a6680
Change PlayingUsers population logic to match expectations
2020-12-28 19:27:56 +01:00
Salman Ahmed
41b79d938b
Fix wrong checks..
2020-12-28 15:30:52 +03:00
Salman Ahmed
5efcdbd431
Fix IMod now using reference equality as well
2020-12-28 15:19:28 +03:00
Dean Herbert
1b7c72f03b
Merge branch 'master' into changelog-refactor
2020-12-28 11:00:14 +09:00
Dean Herbert
3b5260fd67
Merge branch 'master' into fix-gameplay-leaderboard-clickable-avatars
2020-12-27 19:00:38 +09:00
Salman Ahmed
43f8f3638a
Fix mod using reference equality unless casted to IMod
2020-12-27 02:42:13 +03: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
Neuheit
e7339d6959
fix(osu.Game): Ensure Category property is copied in Room.
2020-12-25 21:07:33 -05: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
0bd9f68cbd
Refactor update stream colour mapping code
2020-12-25 21:06:03 +01:00
Bartłomiej Dach
83fb7c7a1a
Re-namespace all files in OnlinePlay directory
2020-12-25 16:50:09 +01:00
Dean Herbert
2d7f9bf290
Revert RoomCategory naming change to avoid json deserialization failures
2020-12-25 23:34:29 +09:00
Dean Herbert
e49dce2c86
Fix some missed renames
2020-12-25 15:34:13 +09:00
Dean Herbert
5d4b73baa5
RealtimeMultiplayer -> Multiplayer
2020-12-25 14:10:59 +09:00
Dean Herbert
a1384942b1
Timeshift -> Playlists at a code level
2020-12-25 13:11:21 +09:00
Dean Herbert
3d28a0ccef
Merge pull request #11271 from peppy/dev-server
...
Prefer connecting to dev server when running in DEBUG
2020-12-24 23:01:19 +09:00
Bartłomiej Dach
d5c348b568
Remove explicit public access modifier from interface
2020-12-24 13:44:46 +01:00
Dean Herbert
66a23c22e5
Fix various tests failing due to dependence on specific online data
2020-12-24 21:28:24 +09:00
Bartłomiej Dach
4fb2610c82
Merge branch 'master' into frame-bundle-accuracy
2020-12-24 11:20:06 +01:00
Dean Herbert
323da82477
Add website root URL and update most links to use it
...
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
Dean Herbert
eb795a2127
Move all endpoint information to a configuration class
2020-12-24 17:58:38 +09:00
Dean Herbert
1f80f01b53
Add accuracy to frame bundle header
2020-12-24 14:46:52 +09:00
Dean Herbert
43370d7021
Merge pull request #11273 from bdach/duplicate-user-in-mp-room
...
Improve reliability of handling user joined messages
2020-12-24 14:31:44 +09:00
Dean Herbert
b29a5e2073
Merge pull request #11270 from bdach/better-error-handling
...
Improve error handling at realtime room settings screen
2020-12-24 13:23:49 +09:00
Bartłomiej Dach
a71496bc4e
Sanity check received user joined messages
...
While test failures fixed in 9843da5
were a shortcoming of the test,
they exposed a potential vulnerable point of the multiplayer client
logic. In case of unreliable message delivery it is not unreasonable
that duplicate messages might arrive, in which case the same scenario
that failed in the tests could crash the game.
To ensure that is not the case, explicitly screen each new joined user
against the room user list, to ensure that duplicates do not show up.
`UserLeft` is already tolerant in that respect (if a user is requested
to be removed twice by the server, the second removal just won't do
anything).
2020-12-23 21:00:49 +01:00
Dean Herbert
e89583d732
Prefer connecting to dev server when running in DEBUG
2020-12-24 01:33:19 +09:00
Bartłomiej Dach
3b0bf11366
Fix JoinRoom failing to return canceled token
...
As it turns out, `Task.FromCanceled` expects to receive an already
cancelled `CancellationToken`, which `CancellationToken.None` is not.
2020-12-23 17:01:01 +01:00
Dean Herbert
4296f61d6c
Tidy up event flow of change settings call
2020-12-23 22:39:14 +09:00
Bartłomiej Dach
94e4928c4b
Bring back accidentally-removed license header
2020-12-23 11:27:15 +01:00
Dean Herbert
0ddcab574f
Rename method to avoid weird code analysis rule
2020-12-23 17:14:58 +09:00
Dean Herbert
7cc38f03d1
Use extension method in all call sites of fire-and-forget async usage
2020-12-23 17:10:34 +09:00
Dean Herbert
569c4092ef
Move notification to stateful client so it is only shown to the user from one location
2020-12-23 16:35:39 +09:00
Dean Herbert
00d50150de
Ensure the current room is left at a mutliplayer client level on client disconnection
2020-12-23 16:35:39 +09:00
Bartłomiej Dach
08d87ccb1e
Merge branch 'master' into present-recommended
2020-12-22 23:36:13 +01:00
Dean Herbert
12876d7fb6
Add very basic error handling on ChangeSettings calls
2020-12-22 16:50:30 +09:00
Dean Herbert
3f966386ed
Fix compile time failure due to potentially null connection
2020-12-22 15:15:32 +09:00
Dean Herbert
d229fbba6e
Merge branch 'master' into present-recommended
2020-12-22 13:52:29 +09:00
smoogipoo
c07b2d89e6
Merge branch 'master' into realtime-multiplayer-2
2020-12-21 18:44:03 +09:00
Dean Herbert
3e3d5b2e37
Merge pull request #11235 from smoogipoo/fix-apibeatmapset-deserialisation
...
Fix metadata lost in beatmapset deserialisation
2020-12-21 18:03:30 +09:00
Dean Herbert
44af32dc47
Merge pull request #11234 from smoogipoo/fix-category-serialisation
...
Fix room category being serialised as int
2020-12-21 18:03:10 +09:00
Dean Herbert
5ec64c0348
Merge pull request #11232 from smoogipoo/participant-count-serialisation
...
Make participant count non-nullable
2020-12-21 17:34:01 +09:00
smoogipoo
93cac000e5
Merge branch 'fix-apibeatmapset-deserialisation' into realtime-multiplayer-2
2020-12-21 17:16:28 +09:00
smoogipoo
eb46c9ce9b
Fix metadata lost in beatmapset deserialisation
2020-12-21 17:11:30 +09:00
smoogipoo
04af072da7
Merge branch 'fix-category-serialisation' into realtime-multiplayer-2
2020-12-21 16:57:22 +09:00
smoogipoo
e23d81bfc6
Use enum property
2020-12-21 16:56:45 +09:00
smoogipoo
a021aaf546
Fix room category being serialised as ints
2020-12-21 16:42:21 +09:00
smoogipoo
5d73359bd7
Make participant count non-nullable
2020-12-21 16:35:19 +09:00
smoogipoo
64a32723f3
One more case
2020-12-21 16:23:42 +09:00
smoogipoo
14ea49a14d
Merge branch 'nullable-endsat' into realtime-multiplayer-2
2020-12-21 16:22:16 +09:00
smoogipoo
a59124dd93
Make room duration/endsat nullable
2020-12-21 16:18:39 +09:00
Angela Zhang
74bd2f41e6
Style fixes
2020-12-20 13:51:39 -06:00
Angela Zhang
7d326c7f24
Review changes + added tests
2020-12-20 13:18:00 -06:00
Bartłomiej Dach
bcd140b8df
Merge branch 'master' into realtime-ready-button
2020-12-20 18:20:57 +01:00
smoogipoo
b31f4e9e85
Merge branch 'stateful-multiplayer-client' into realtime-multiplayer-2
2020-12-21 00:41:42 +09:00
smoogipoo
a893360c0e
Reword comment
2020-12-21 00:41:14 +09:00
smoogipoo
536df074a9
Don't attempt to re-map existing beatmap/ruleset (for testing)
2020-12-21 00:02:49 +09:00
smoogipoo
1d7d8bd6fc
Hook up a realtime multiplayer client
2020-12-20 23:26:31 +09:00
smoogipoo
fdfe3c2b36
Merge branch 'realtime-ready-button' into realtime-multiplayer-2
2020-12-20 23:11:06 +09:00
smoogipoo
4ada0e17c0
Merge branch 'abstract-room-manager' into stateful-multiplayer-client
2020-12-20 23:10:05 +09:00
smoogipoo
9d13a5b06a
Fix potential cross-thread list access
2020-12-20 22:53:07 +09:00
smoogipoo
f876a329b1
Fire-and-forget leave-room request
2020-12-20 22:51:33 +09:00
smoogipoo
45107280a0
Make TimeBetweenPolls into a bindable
2020-12-20 18:34:54 +09:00
smoogipoo
0cf078562d
Split method up and remove nested scheduling
2020-12-20 18:30:00 +09:00
smoogipoo
508f73d949
Fix up comment
2020-12-20 18:25:54 +09:00
smoogipoo
8b1f5ff492
Only instantiate ruleset once
2020-12-20 18:25:23 +09:00
smoogipoo
724e4b83fe
Fix nullability and remove early check
2020-12-20 18:21:03 +09:00
Bartłomiej Dach
d392e0f27e
Extract shared rank-formatting helper
2020-12-19 15:04:22 +01:00
smoogipoo
2fc5561b7e
Add handling for GetRoomRequest()
2020-12-19 01:22:52 +09:00
smoogipoo
c6555c53cc
Add a testable realtime room manager
2020-12-19 01:17:24 +09:00
smoogipoo
9ceb090f04
Fix ambiguous reference
2020-12-19 00:53:06 +09:00
smoogipoo
ab9158c306
Add a stateful multiplayer client
2020-12-19 00:53:06 +09:00
Dean Herbert
9618f512d7
Merge pull request #11190 from frenzibyte/api-friends-list
...
Add global friends list to API providers
2020-12-18 16:44:29 +09:00
Dean Herbert
a749dca20b
Remove left over using statement
2020-12-18 15:43:15 +09:00
Dean Herbert
99b670627a
Remove unused placeholder friend in DummyAPI implementation
2020-12-18 15:25:12 +09:00
Dean Herbert
57c5d45c02
Standardise and extract common connection failure handling logic
2020-12-18 15:19:38 +09:00
Dean Herbert
d36169f697
Move friend request to a more understandable place in connection flow
2020-12-18 15:16:48 +09:00
Dean Herbert
206bf3713e
Make IAPIProvider read-only bindables into IBindables
2020-12-18 15:16:36 +09:00
Angela Zhang
45482e8709
Whitespace fixes
2020-12-17 18:43:39 -06:00
Salman Ahmed
8a01e567a1
Fix API potentially getting stuck in connecting state
2020-12-18 03:06:28 +03:00
Angela Zhang
454c7538c0
CI Style Fixes
2020-12-17 17:59:36 -06:00
Angela Zhang
d8864473b2
Merge branch 'keyboard_shortcuts' into jcramos/ctrl_shift_t
2020-12-17 16:56:44 -06:00
Angela Zhang
71a082110a
Making style changes + supports reopening PM chats
2020-12-17 16:56:34 -06:00
Bartłomiej Dach
569caa9500
Merge branch 'master' into add-bundle-header
2020-12-17 20:55:24 +01:00
Dean Herbert
bb586f3175
Merge pull request #11193 from smoogipoo/add-multiplayer-beatmap-checksum
...
Add beatmap checksum to MultiplayerRoomSettings
2020-12-17 23:55:38 +09:00
smoogipoo
c15bb6b928
Add beatmap hash to MultiplayerRoomSettings
2020-12-17 22:04:24 +09:00
Salman Ahmed
5d180753fa
Complete connection once friends list is succesfully fetched
2020-12-17 13:44:30 +03:00
Salman Ahmed
78ce6f1cd2
Add friends list to API providers
2020-12-17 13:30:55 +03:00
Dean Herbert
fe76a00621
Merge branch 'master' into add-bundle-header
2020-12-17 16:13:40 +09:00
Joseph-Ramos-CMU
b37a983fbf
Formatting fixes
...
Fixed some formatting issues to comply with InspectCode.
2020-12-16 12:56:36 -05:00
Joseph-Ramos-CMU
2f8a085adf
Reworked reopening last tab to no longer use recursion
...
A reviewer of the pull request was concerned about recursion. I changed
the code to be iterative.
2020-12-16 12:04:07 -05:00
Joseph-Ramos-CMU
7b169c4f62
Changed internal closedChannel list to store channels names instead of channel objects
...
This is for efficiency purposes; it's more efficient to just store
the names than store the whole object.
2020-12-16 10:13:50 -05:00
smoogipoo
9571157841
Use ints for userid parameters
2020-12-16 20:04:36 +09:00
Dean Herbert
72d296f412
Add received timestamp and basic xmldoc for header class
2020-12-16 16:19:53 +09:00
Dean Herbert
84a0770789
Change frame header to use dictionary for compatibility
2020-12-16 15:35:46 +09:00
Dean Herbert
88b3bf06e8
Merge branch 'master' into add-bundle-header
2020-12-16 13:40:15 +09:00
Dean Herbert
ef57ae6f40
Merge pull request #11127 from peppy/realtime-multiplayer
...
Add client-side models and interfaces required for multiplayer
2020-12-16 13:22:01 +09:00
smoogipoo
31fe28b8b3
Remove IStatefulMultiplayerClient
2020-12-16 12:32:53 +09:00
smoogipoo
4cd290af11
Split server interfaces
2020-12-16 12:31:11 +09:00
Angela Zhang
456c0751fd
Merge pull request #8 from angelaz1/jcramos/ctrl_shift_t
...
Ctrl+Shift+t Chat Shortcut
2020-12-15 16:54:11 -06:00
Joseph-Ramos-CMU
bd2765ecc4
Fixed style concerns
2020-12-14 13:23:43 -05:00
Dean Herbert
0d9c1cb5d3
Fix issues with data serialisation
2020-12-14 18:41:24 +09:00
Dean Herbert
64a2526678
Add header class and basic flow for propagating data updates
2020-12-14 17:33:23 +09:00
Joseph-Ramos-CMU
3301f532ee
Additional formatting
...
Ran the dotnet format as well as the .\InspectCode.ps1 tools, and
fixed the style issues they found.
2020-12-13 23:27:48 -05:00
Joseph-Ramos-CMU
08a2cdaf8d
Minor formatting changes
2020-12-13 21:02:35 -05:00
Joseph-Ramos-CMU
2863187b16
Changing behvaior for channels that have already been reopened
...
Ctrl+Shift+t will now skip trying to reopen any channels that are
already open, and will instead attempt to open the next still-closed channel.
2020-12-13 20:46:02 -05:00
Joseph-Ramos-CMU
5481ba43c7
Fixed a bug where Ctrl+Shift+t shortcut was using the wrong list
...
The JoinLastClosedChannel code was using the joinedChannels list instead
of the closedChannels list. Fixing this bug made the Ctrl+Shift+t
shortuct work as expected.
2020-12-13 14:14:57 -05:00
Joseph-Ramos-CMU
2d98da0d61
Untested Ctrl+Shift+T shortcut prototype
...
Added a list to the ChannelManager class that tracks
which tabs I closed. Works like a stack, where it adds to the end
every time I close a tab. Then added a function that uses
this list to open the last closed channel, and added a shortcut inside of ChatOverlay,
similar to how jmeng implemented shortcuts.
Code is currently untested.
2020-12-13 13:21:50 -05:00
Dean Herbert
aedb18b9f2
Make RulesetID non-nullable
2020-12-11 18:14:33 +09:00
Dean Herbert
d3b2e2b36e
Change locking method to better allow cross-thread locking
2020-12-11 14:43:39 +09:00
Dean Herbert
719b08b22f
Make room setting's BeatmapID non-nullable
2020-12-11 14:11:42 +09:00
Dean Herbert
c1c0b9a9db
Add realtime to room categories
2020-12-11 14:10:45 +09:00
Dean Herbert
3fb41a20b5
Add room name to settings
2020-12-11 13:27:52 +09:00
Dean Herbert
c8e3c7e77b
Add stateful client interface
2020-12-09 17:45:07 +09:00
Dean Herbert
bb97eae8b1
Update outdated exception references in xmldoc
2020-12-09 16:02:37 +09:00
Dean Herbert
1e08b298b8
Remove unnecessary exception type
2020-12-09 16:01:09 +09:00
Dean Herbert
578e5cb92e
Also make InvalidStateException serializable
2020-12-09 15:59:13 +09:00
Dean Herbert
ab00a15555
Add JsonConstructor specs to allow for correct deserialization of readonly fields
2020-12-09 15:05:57 +09:00
Dean Herbert
bef52af1da
Move client state class to server implementation
...
Never used by client.
2020-12-09 15:05:33 +09:00
Dean Herbert
e09715d71e
Add ToString implementation to MultiplayerRoom for easier debug
2020-12-09 14:47:26 +09:00
Dean Herbert
c92c2cbfc0
Change exceptions which should be returned to the user to HubException type
...
See
https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.signalr.hubexception?view=aspnetcore-5.0 .
2020-12-09 14:46:44 +09:00
Dean Herbert
48129c52d6
Change get-only property for now
2020-12-09 12:38:24 +09:00
Dean Herbert
427d41bab5
Add missing licence headers
2020-12-09 12:17:37 +09:00
Dean Herbert
0eb5b16454
Remove Empty() implementation for RoomSettings until otherwise necessary
2020-12-09 12:12:03 +09:00
Dean Herbert
1013749a83
Change user id type to int
2020-12-09 12:10:47 +09:00
Dean Herbert
fd4fa963ac
Standardise exception naming
2020-12-09 12:07:19 +09:00
Dean Herbert
2046cbe2d9
Add missing exceptions to server xmldoc
2020-12-09 12:05:50 +09:00
Dean Herbert
ff5150a14d
Fix typo in IMultiplayerClient xmldoc
2020-12-09 12:03:52 +09:00
Dean Herbert
02f5fda330
Add missing final newline in file
2020-12-08 21:15:10 +09:00
Dean Herbert
aa68ae4ff2
Change locking mechanism for multiplayer rooms to use using-disposal pattern
...
Was required to lock over `await` calls server-side.
2020-12-08 20:43:18 +09:00
Dean Herbert
d76fabedf9
Add note about LoadRequested only being sent to a subset of room users
2020-12-08 20:43:18 +09:00
Dean Herbert
021a116093
Add extra xmldoc covering the fact that MatchStarted is received by all users
2020-12-08 20:43:18 +09:00
Dean Herbert
df908f90b2
Add exception to be thrown when an operation is requested requiring host when not host
2020-12-08 20:43:18 +09:00
Dean Herbert
2433838d58
Add methods covering match start / end
2020-12-08 20:43:18 +09:00
Dean Herbert
2aedd82e27
Document room states and remove unnecessary WaitingForResults state
2020-12-08 20:43:18 +09:00
Dean Herbert
147db0abe2
Fix client naming and xmldoc
2020-12-08 20:43:18 +09:00
Dean Herbert
60550b73f7
Add missing states and xmldoc for all states' purposes
2020-12-08 20:43:18 +09:00
Dean Herbert
8eccfa476c
Add loading states
2020-12-08 20:43:18 +09:00
Dean Herbert
345352be67
Mark PerformUpdate as an instant handle method (doesn't really help with anything)
2020-12-08 20:43:18 +09:00
Dean Herbert
11a7057289
Add notification flow for user state changes in room
2020-12-08 20:43:18 +09:00
Dean Herbert
dbe048cdc6
Add client method for notifying about host changes
2020-12-08 20:43:18 +09:00
Dean Herbert
a4ca8d2998
Ensure multiplayer rooms are instantiated with a room ID
2020-12-08 20:43:18 +09:00
Dean Herbert
71de7ce0a3
Add missing methods to server interface
2020-12-08 20:43:18 +09:00
Dean Herbert
5f5c0d5533
Return room model when joining
2020-12-08 20:43:18 +09:00
Dean Herbert
5d2ca7fc39
Make remaining model classes nullable and serializable
2020-12-08 20:43:18 +09:00
Dean Herbert
2365d65610
Move business logic out of MultiplayerRoom
2020-12-08 20:43:18 +09:00
Dean Herbert
42b1e9d6a4
Add xmldoc coverage of MultiplayerRoom
2020-12-08 20:43:18 +09:00
Dean Herbert
4f449ba821
Rename idle state
2020-12-08 20:43:18 +09:00
Dean Herbert
5a231cef15
Add thread safety for external operations on MultiplayerRoom
2020-12-08 20:43:18 +09:00
Dean Herbert
327799c263
Rename multiplayer server file to match class
2020-12-08 20:43:18 +09:00
Dean Herbert
b3bdaaa7b5
Move exceptions to common code
2020-12-08 20:43:18 +09:00
Dean Herbert
e193f8214d
Remove unnecessary room id from leave room request
2020-12-08 20:43:18 +09:00
Dean Herbert
882ace6efe
Make MultiplayerRoomUser equatable
2020-12-08 20:43:18 +09:00
Dean Herbert
baf16cfbc3
Add room settings related model and event flow
2020-12-08 20:43:18 +09:00
Dean Herbert
6e5846d91b
Fix serialization failure due to missing set
2020-12-08 20:43:18 +09:00
Dean Herbert
ff52a5ddc6
Add callbacks for join/leave events to notify other room occupants
2020-12-08 20:43:18 +09:00
Dean Herbert
ca86524c92
Add locking on join/leave operations
2020-12-08 20:43:18 +09:00
Dean Herbert
fdf025942b
Ensure room is locked when mutating users
2020-12-08 20:43:18 +09:00
Dean Herbert
8ebdb5723b
Add models for users and rooms
2020-12-08 20:43:18 +09:00
Dean Herbert
f4ccbbd092
Add basic server implementation
2020-12-08 20:43:18 +09:00
Dean Herbert
daed27460c
Add simple user state class
2020-12-08 20:43:18 +09:00
Dean Herbert
be4a668e0b
Add basic structure for multiplayer state and model components
2020-12-08 20:43:18 +09:00
smoogipoo
f599427080
Implement TimeshiftFilterControl
2020-12-07 22:04:35 +09:00
Endrik Tombak
cbbcf36eaa
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
2020-12-03 19:38:32 +02:00
Dean Herbert
37d550f42a
Merge pull request #11035 from smoogipoo/add-playlist-length
2020-12-03 18:39:54 +09:00
Dean Herbert
3550e5b30f
Add length display to room screen as well
2020-12-03 16:42:06 +09:00
smoogipoo
d5dccbc3d7
Fix spectator not being thread-safe
2020-12-02 19:13:09 +09:00
Endrik Tombak
944f3480c2
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
...
Conflicts:
osu.Game/OsuGameBase.cs
osu.Game/Screens/Select/DifficultyRecommender.cs
osu.Game/Screens/Select/SongSelect.cs
2020-11-21 14:01:01 +02:00
Bartłomiej Dach
610ed99ae3
Add null checks to unguarded resolved-as-null fields
2020-11-14 14:52:58 +01:00
Dean Herbert
cfb42037cf
Refactor request string logic to avoid linq usage
2020-11-09 12:23:29 +09:00
Dean Herbert
893979b3de
Add exception if attempting to exceed the maximum supported lookup size for one request
2020-11-06 17:00:29 +09:00
Dean Herbert
db039da668
Add and consume multi-lookup API endpoint
2020-11-06 17:00:29 +09:00
Dean Herbert
aa252d562a
Rename top user request to make way for new type
2020-11-06 17:00:29 +09:00
Dean Herbert
1e1569eb53
Use int instead of long for user_id fields for now
2020-11-06 12:59:46 +09:00
Dean Herbert
a3c67aabe2
Merge branch 'master' into spectator-listing
2020-11-03 19:56:25 +09:00
Dean Herbert
ed30756c19
Add test coverage for new display (and remove live version for now)
2020-11-02 20:41:14 +09:00
Dean Herbert
a89aeaf1ce
Add very basic connection status logging for spectator streaming client
2020-11-02 17:32:10 +09:00
Bartłomiej Dach
23d9fa4dfa
Merge branch 'master' into spectator-replay-watcher
2020-11-01 15:53:37 +01:00
Bartłomiej Dach
5903c3be90
Fix inaccurate xmldoc
2020-11-01 14:39:10 +01:00
Dean Herbert
1db8dfd03e
Merge branch 'master' into seasonal-backgrounds
2020-10-30 22:53:51 +09:00
Max Hübner
f27ce7521d
Make "Sometimes" setting depend on season end date, rather than chance
2020-10-30 10:27:43 +01:00
Dean Herbert
87be7d162b
Merge branch 'master' into spectator-replay-watcher
2020-10-30 00:25:17 +09:00
Bartłomiej Dach
fa53549ed2
Mark request fields as possibly-null
2020-10-28 22:57:03 +01:00
Andrei Zavatski
5c2c5f2000
Use existing ScoreRank for rank filter
2020-10-28 23:35:08 +03:00
Andrei Zavatski
6fd3686c4d
Use IReadOnlyCollection instead of List in SearchBeatmapSetsRequest
2020-10-28 02:36:35 +03:00
Andrei Zavatski
c4efceceb2
Use char instead of sting for request parameter creation
2020-10-27 23:57:11 +03:00
Andrei Zavatski
008d1d697c
Implement filtering by rank achieved
2020-10-27 23:14:48 +03:00
Andrei Zavatski
1710b396e7
Implement BeatmapSearchMultipleSelectionFilterRow
2020-10-27 22:27:29 +03:00
Andrei Zavatski
1b40b56d41
Add ability to search by play criteria
2020-10-27 21:30:53 +03:00
Andrei Zavatski
742a96484b
Add ability to set extra parameters to SearchBeatmapSetsRequest
2020-10-27 20:13:18 +03:00
Dean Herbert
c1e7cd6e47
Stop replay playback when frames are starved
2020-10-27 18:58:37 +09:00
Dean Herbert
154ccf1b49
Expose events from streaming client
2020-10-27 18:58:37 +09:00
Dean Herbert
68719bb23d
Rename other variables to match
2020-10-27 10:59:24 +09:00
Bartłomiej Dach
7392876b5f
Fix mania crashing due to spectator client handling frames with unconverted beatmap
2020-10-27 00:35:25 +01:00
Dean Herbert
dfe07271de
Add very basic latency handling to spectator test
2020-10-26 16:31:39 +09:00
Dean Herbert
b86347dc81
Merge branch 'master' into spectator
2020-10-26 13:39:07 +09:00
Dean Herbert
9caa7ff64d
Remove debug endpoint
2020-10-26 13:38:05 +09:00
Dean Herbert
e20a986401
Add ruleset to state
2020-10-23 17:24:19 +09:00
Dean Herbert
e99cf369fa
Don't worry about EndPlaying being invoked when not playing
2020-10-23 13:33:23 +09:00
Dean Herbert
f11bcfcb8f
Remove unnecessary public specification in interface
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-10-23 10:03:33 +09:00
Max Hübner
09d49aa0f7
Add GetSeasonalBackgroundsRequest
2020-10-22 18:25:01 +02:00
Dean Herbert
54d666604b
Fix incorrect order of flag settings
2020-10-22 22:56:23 +09:00
Dean Herbert
9f2f8d8cc7
Fix missing licence headers
2020-10-22 19:41:10 +09:00
Dean Herbert
147d502da1
Fix initial play state not being kept locally if not connected
2020-10-22 19:30:07 +09:00
Dean Herbert
ee2513bf4b
Add batch sending
2020-10-22 19:17:19 +09:00
Dean Herbert
34e889e66e
Don't watch every user in normal gameplay (but allow so in test)
2020-10-22 18:38:03 +09:00
Dean Herbert
1ab6f41b3b
Add basic send and receive test
2020-10-22 18:10:27 +09:00
Dean Herbert
c834aa6051
Use APIMod for mod serialization
2020-10-22 17:48:15 +09:00
Dean Herbert
0611b30258
Drop webpack
2020-10-22 17:48:15 +09:00
Dean Herbert
05697dfe68
Add spectator state object support
2020-10-22 17:48:15 +09:00
Dean Herbert
2021945a8c
Add retry/error handling logic
2020-10-22 17:48:15 +09:00
Dean Herbert
4788b4a643
Expose oauth access token via api interface
2020-10-22 17:48:15 +09:00
Dean Herbert
175fd512b0
Send frames to streaming client from replay recorder
2020-10-22 17:48:15 +09:00
Dean Herbert
93db75bd41
Begin shaping the spectator streaming component
2020-10-22 17:48:15 +09:00
Dean Herbert
c6db832efa
Add xmldoc notes about thread safety of api bindables
2020-10-22 14:56:20 +09:00
Dean Herbert
db4dd3182b
Add xmldoc to spectator interfaces
2020-10-22 14:46:21 +09:00
Dean Herbert
b39a4da6bc
Add initial classes for spectator support
2020-10-22 14:46:21 +09:00
Dean Herbert
da573c7487
Remove unused usings
2020-10-22 14:44:10 +09:00
Dean Herbert
3fe6f77444
Fix cases of multiple bdl methods
2020-10-22 14:30:49 +09:00
Dean Herbert
9753dab93b
Remove IOnlineComponent and change existing components to use bindable flow
2020-10-22 14:19:12 +09:00
Dean Herbert
002ade51fc
Merge pull request #9816 from voidedWarranties/duplicate-multi-room
2020-10-19 19:02:03 +09:00
Dean Herbert
6d22f0e196
Use existing copy method and update xmldoc
2020-10-19 17:15:13 +09:00
Dean Herbert
61a43770bd
Merge branch 'master' into duplicate-multi-room
2020-10-19 16:58:45 +09:00
Dean Herbert
d6efa3069a
Merge branch 'master' into fix-login-placeholder-inheritance
2020-10-19 16:25:44 +09:00
Berkan Diler
fe3a23750c
Use char overloads for string methods
2020-10-16 11:52:29 +02:00
Dan Balasescu
73edb87363
Merge pull request #10303 from peppy/more-textbox-entry
...
Add textbox entry for speed multiplier and volume
2020-10-01 20:42:14 +09:00
Dean Herbert
61e62929ee
Apply changes in line with framework event logic update
2020-10-01 13:06:01 +09:00
smoogipoo
297168ecc4
Fix scores sometimes not being re-standardised correctly
2020-09-29 19:06:09 +09:00
Dean Herbert
ef44c7d063
Merge branch 'master' into score-recalc
2020-09-10 18:30:41 +09:00
smoogipoo
bbef7ff720
Fix leaderboard loading spinner disappearing too early
2020-09-09 20:19:07 +09:00
smoogipoo
37a659b2af
Refactor/add xmldocs
2020-09-09 17:36:47 +09:00
smoogipoo
117c7ec6b2
Merge branch 'master' into score-recalc
2020-09-09 14:38:36 +09:00
smoogipoo
bff652a26f
Persist nulls to the top score bindable
2020-09-02 14:29:46 +09:00
smoogipoo
9e3b809cab
Rename to user_score to match API
2020-09-01 15:42:47 +09:00
smoogipoo
d22de26afb
Add whitespace
2020-08-31 20:08:36 +09:00
smoogipoo
6ed191786f
Add support for position
2020-08-31 20:01:59 +09:00
smoogipoo
77698ec31e
Add support for showing own top score in timeshift
2020-08-31 19:54:57 +09:00
smoogipoo
d1ceb81797
Rename request
2020-08-31 19:54:41 +09:00
smoogipoo
ed74c39b55
Move UserTopScoreContainer into base leaderboard
2020-08-31 19:54:22 +09:00
smoogipoo
d7bbb362bf
Separate bindables
2020-08-28 22:51:19 +09:00
smoogipoo
1e5e5cae0c
Add support for standardised -> classic changes
2020-08-28 21:34:34 +09:00
smoogipoo
4d15f0fe52
Implement basic score recalculation
2020-08-28 19:16:46 +09:00
Poliwrath
97637bc747
remove new.ppy.sh from MessageFormatter
2020-08-26 02:50:02 -04:00
Joseph Madamba
4d6b52a0d6
Simply condition
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2020-08-17 23:08:51 -07:00
Joehu
e0383f6100
Change format of rank tooltip
2020-08-17 22:07:04 -07:00
Joehu
848f3bbf51
Show tooltip of leaderboard score rank when 1000 or higher
2020-08-17 21:09:55 -07:00
voidedWarranties
9e4b9188e1
Cache LoungeSubScreen, separate method, rename option
2020-08-15 13:06:16 -07:00
voidedWarranties
3a97ee4712
Context menu for duplicating multi rooms
2020-08-09 16:16:01 -07:00
Dean Herbert
4189e918a3
Merge branch 'master' into news
2020-08-03 14:16:45 +09:00
Dan Balasescu
d63f040477
Merge branch 'master' into multi-position
2020-07-31 23:10:25 +09:00
Dean Herbert
909b38a019
Merge branch 'master' into multi-pagination
2020-07-31 22:41:24 +09:00
smoogipoo
b361761d86
Add position display in contracted score panels
2020-07-31 22:02:25 +09:00
smoogipoo
f1e721e396
Rewrite test scene and add more tests
2020-07-31 21:39:50 +09:00
smoogipoo
2b77f99f56
Initialise some response parameters
2020-07-31 20:55:44 +09:00
smoogipoo
8e8a11bb72
Add APIRequest.TriggerFailure() for testing
2020-07-31 20:55:26 +09:00
smoogipoo
eadef53e68
Add more annotations
2020-07-31 17:43:40 +09:00
smoogipoo
88e179d8aa
Split out index-only response
2020-07-31 17:40:58 +09:00
Dean Herbert
9e6d562872
Send in initial score request instead
2020-07-29 13:18:40 +09:00
smoogipoo
ccc377ae6a
Remove unused enum
2020-07-28 21:45:12 +09:00
smoogipoo
db91d1de50
Use response params in next page request
2020-07-28 21:45:12 +09:00
Andrei Zavatski
b821d619b5
Merge remote-tracking branch 'refs/remotes/ppy/master' into news
2020-07-25 09:13:12 +03:00
smoogipoo
b7790de66f
Fix incorrect sort param
2020-07-22 20:24:48 +09:00
smoogipoo
568fb51ce2
Remove RoomPlaylistScores intermediate class
2020-07-22 20:24:42 +09:00
smoogipoo
f8401a76a2
Use show/index requests in results screen
2020-07-22 19:40:00 +09:00
smoogipoo
334fb7d475
Add additional params to index request
2020-07-22 18:54:41 +09:00
smoogipoo
c75955e381
Add responses to MultiplayerScore
2020-07-22 18:52:25 +09:00
smoogipoo
634efe31f8
Inherit ResponseWithCursor
2020-07-22 18:51:54 +09:00
smoogipoo
ec33a6ea87
Add additional responses
2020-07-22 18:47:40 +09:00
smoogipoo
d9633fee64
Rename request
2020-07-22 18:47:09 +09:00
smoogipoo
e423630b7c
Rename RoomScore -> MultiplayerScore
2020-07-22 18:37:00 +09:00
smoogipoo
0957c5f74c
Re-namespace multiplayer requests/responses
2020-07-22 18:34:04 +09:00
Andrei Zavatski
17c598568d
Merge remote-tracking branch 'refs/remotes/ppy/master' into news
2020-07-16 14:38:50 +03:00
Andrei Zavatski
3d9e174ae8
Make sort changes affect request result
2020-07-14 18:09:09 +03:00
Dean Herbert
7fe69bb199
Fix some web requests retrieving the user too early
2020-07-14 13:07:17 +09:00
Joehu
db6a9c9717
Move null check to menu item addition
2020-07-12 22:06:17 -07:00
Joehu
ac7252e152
Fix context menu not masking outside of leaderboard area
2020-07-12 22:04:00 -07:00
Joehu
9c039848bc
Simplify and add null check
2020-07-12 12:04:53 -07:00
Andrei Zavatski
3601a2d93f
Merge remote-tracking branch 'refs/remotes/ppy/master' into news
2020-07-12 14:45:48 +03:00
Joehu
25d2d9ba5c
Convert getMods reference to method group
2020-07-11 16:24:57 -07:00
Joehu
0d26ad9ddb
Fix user top score not having a context menu
2020-07-11 16:22:01 -07:00
Joehu
9b4bed2ab2
Add ability to select mods from a specific score
2020-07-11 16:02:47 -07:00
smoogipoo
fe585611e7
Fix + simplify web request
2020-07-10 19:54:09 +09:00
Dean Herbert
64e8dce1ad
Highlight spotlight rooms with a different colour
2020-07-10 19:38:33 +09:00
smoogipoo
926279e39b
Implement category dropdown for multiplayer
2020-07-10 17:26:42 +09:00
smoogipoo
1bcd673a55
Fix crash when switching rooms quickly
2020-07-10 12:09:34 +09:00
Andrei Zavatski
de4c22c709
Implement news api request
2020-07-08 17:58:09 +03:00
Andrei Zavatski
857a027a73
Parse HTML entities during APINewsPost deserialisation
2020-07-07 00:11:35 +03:00
Andrei Zavatski
68d9f9de46
Use DateTimeOffset
2020-07-06 23:55:20 +03:00
Andrei Zavatski
9dde101f12
Remove string prefixes
2020-07-06 23:53:27 +03:00
Andrei Zavatski
fdb7727e95
Rename NewsPost to APINewsPost
2020-07-06 07:28:44 +03:00
Andrei Zavatski
7550097eb6
Implement NewsCard
2020-07-06 07:27:53 +03:00
Andrei Zavatski
c18ca19c9d
Add NewsPost api response
2020-07-06 05:31:34 +03:00
smoogipoo
afa5b995f2
Merge branch 'fix-test-nullref' into timeshift-results-2
2020-06-11 14:05:05 +09:00
smoogipoo
ab10732a78
Remove usages of null-forgiving operator
2020-06-09 22:13:48 +09:00
smoogipoo
88aed1d504
Merge branch 'master' into update-inspectcode-version
2020-06-09 20:12:39 +09:00
smoogipoo
44dd7d65be
Fix duplicate scores showing
2020-06-09 18:21:37 +09:00
smoogipoo
7f05c16c9f
Merge branch 'master' into timeshift-results-2
2020-06-09 15:59:13 +09:00
Dan Balasescu
7f72f59307
Merge branch 'master' into fetch-private-chat-history
2020-06-09 14:42:29 +09:00
Dean Herbert
712fd6a944
Fetch existing private message channels on re-joining
2020-06-08 17:54:26 +09:00
smoogipoo
caf94df0d0
Merge branch 'master' into multiplayer-beatmap-checksum
2020-06-05 19:16:05 +09:00
Dean Herbert
f6d9f0597b
Add implicit join logic for multiplayer rooms
2020-06-03 21:28:29 +09:00
Dean Herbert
1ba3f0ac14
Fix chat history not being loaded for multiplayer matches
2020-06-03 17:31:55 +09:00
smoogipoo
8aa8d2c880
Resolve NREs
2020-06-03 16:59:37 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
smoogipoo
13622eff1f
Fix response value
2020-06-03 12:54:07 +09:00
Dean Herbert
93572fc17d
Merge branch 'master' into present-recommended
2020-06-03 12:31:23 +09:00
smoogipoo
1ccdfd7364
Pull playlist beatmap checksum from api
2020-06-02 14:03:13 +09:00
Andrei Zavatski
11057cd6a8
CI fix
2020-05-29 21:43:31 +03:00
Andrei Zavatski
affad47248
Fix genre/language search doesn't work
2020-05-29 19:44:53 +03:00
smoogipoo
0e28ded80f
Forward statistics
2020-05-28 22:09:11 +09:00
smoogipoo
d88bfa2080
Cache ruleset + fix possible nullrefs
2020-05-28 22:09:11 +09:00
smoogipoo
7ac08620b8
Add a user object for now
2020-05-28 22:09:11 +09:00
smoogipoo
f9c64d7be3
Implement creation of mods
2020-05-28 22:09:11 +09:00
smoogipoo
38502ba88c
Remove some unnecessary members
2020-05-28 22:09:11 +09:00
smoogipoo
ee59182989
Implement initial structure for room scores
2020-05-28 22:09:11 +09:00
Dean Herbert
f989f1aa00
Change event flow to avoid firing store delete events on update
2020-05-27 16:08:47 +09:00
Dean Herbert
052ad79fc6
Convert dangerous events to IBindables
2020-05-19 16:44:22 +09:00
Dean Herbert
facde2c8e1
Remove unnecessary generic specification on cursor
2020-05-14 16:01:07 +09:00
「空白」
43450b5485
Resolve remaining InspectCode issues
...
> CI should now pass build test
2020-05-14 01:57:03 +09:00
「空白」
5962dedd35
Reimplement cursor as part of WebRequest extensions
...
> Added WebRequestExtensions
> Moved Cursor request logic from SearchBeatmapSetsRequest
2020-05-13 05:04:39 +09:00
「空白」
cabf3a89b1
More robust cursor parsing solution
...
> Change cursor request to return last response's entire cursor structure
2020-05-13 03:44:57 +09:00
「空白」
e321494f15
Fix sort-by handling
...
> Add other cursor fields for paging different sortings
> Sorted as they show in GUI code-wise for more readability for now
2020-05-13 02:15:24 +09:00
「空白」
82190a07b8
Remove temporary comments
...
> Removes unnecessary xmldoc comments
2020-05-13 02:01:38 +09:00
「空白」
35e7cee458
Squash commits from private fork
...
Temporary comments left to-remove later
2020-05-12 03:18:47 +09:00
alex
0e2ccac33b
Add spaces to comments
2020-05-04 18:36:24 -07:00
Endrik Tombak
33a608fd15
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
...
Conflicts:
osu.Game/Screens/Select/SongSelect.cs
2020-05-01 11:06:20 +03:00
Dean Herbert
c73d45bc01
Reduce initial channel load overhead by only loading history on active channel
2020-04-29 15:23:28 +09:00
Endrik Tombak
657bf5ad86
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
2020-04-25 10:13:57 +03:00
Lucas A
e136ecec5f
Create ClickablePlaceholder and make of use it where applicable.
2020-04-23 14:01:47 +02:00
Lucas A
b1b3e01abd
Apply review suggestion.
2020-04-23 14:01:47 +02:00
Lucas A
ea29f7c344
Use an OsuAnimatedButton in LoginPlaceholder to get the correct animations.
2020-04-23 14:01:47 +02:00
Dean Herbert
1cec0575b7
Remove unused classes and replace overlay in game
2020-04-21 16:38:47 +09:00
Dean Herbert
c3b36d8f20
Merge pull request #7924 from EVAST9919/beatmap-listing-expanded
...
Implement sorting by genre and language in BeatmapListingOverlay
2020-04-21 16:34:59 +09:00
Dean Herbert
c2ed6491a9
Move and shorten enum names
2020-04-21 15:39:15 +09:00
Dean Herbert
801f02a3d7
Fix inline executions of APIRequest.Perform not getting result populated early enough
2020-04-20 17:48:02 +09:00
Dan Balasescu
477d519df3
Merge branch 'master' into beatmap-listing-expanded
2020-04-20 17:18:18 +09:00
Dean Herbert
07b8ef83c9
Add /np to help line
2020-04-19 22:15:07 +09:00
Dean Herbert
1dd471dfcc
Add /np (now playing) command support in chat
2020-04-19 15:13:25 +09:00
Endrik Tombak
90fa58b3b6
More testing
2020-04-17 19:57:39 +03:00
Dean Herbert
2ab4a7293e
Clean up enum sorting attribute code
2020-04-16 17:26:09 +09:00
Dean Herbert
c0a1aae63a
Merge branch 'master' into beatmap-listing-expanded
2020-04-15 13:26:16 +09:00
Dean Herbert
89d8063588
Add support for Perform/PerformAsync
2020-04-13 21:35:35 +09:00
Dean Herbert
1c8a71b284
Exception instead of assert
2020-04-13 21:24:47 +09:00
Dean Herbert
c96df97586
Add support for non-generic requests
2020-04-11 18:02:49 +09:00
Dean Herbert
415adecdf6
Add support for Result fetching
2020-04-11 18:02:43 +09:00
Dean Herbert
832822858c
Add basic request / response support
2020-04-11 17:48:23 +09:00
Andrei Zavatski
b6d8e487d2
Merge remote-tracking branch 'refs/remotes/ppy/master' into beatmap-listing-expanded
2020-04-09 19:18:59 +03:00
smoogipoo
ed3e0a01e1
Re-namespace into song select
2020-04-07 15:31:22 +09:00
smoogipoo
ed17a1c990
Improve visual display
2020-04-07 15:30:06 +09:00
smoogipoo
933314d724
Remove unnecessary method
2020-04-07 14:50:11 +09:00
smoogipoo
c46ea7bdef
Add disposal, prevent memory leaks
2020-04-07 14:49:24 +09:00
Santeri Nogelainen
da59baa779
Add line break
2020-04-04 22:42:13 +03:00
Santeri Nogelainen
163de36777
Merge remote-tracking branch 'upstream/master'
2020-04-04 22:29:15 +03:00
Santeri Nogelainen
1e8badb14a
Move all logic to TopLocalRank and remove CarouselBeatmapRank
2020-04-04 22:28:36 +03:00
Dean Herbert
812583a4cd
Remove stray newline
2020-03-30 16:17:42 +09:00
Dean Herbert
7ecce713bb
Keep provided IDs where possible if not online
2020-03-30 15:07:39 +09:00
Santeri Nogelainen
faa2b49be4
Fix namespace for CarouselBeatmapRank, make UpdateableRank in TopLocalRank readonly
2020-03-28 18:13:39 +02:00
Santeri Nogelainen
1c711147f3
Move all carousel rank logic into separate classes (TopLocalRank and CarouselBeatmapRank)
2020-03-28 17:22:01 +02:00
Dean Herbert
1b6342438f
Hide scrollbars in tournament chat display
2020-03-23 12:05:16 +09:00
unknown
2340142dc1
Merge branch 'master' of https://github.com/ppy/osu into linkify-metadata
2020-03-18 14:18:53 +08:00
smoogipoo
e586249db7
Expose GetRankName from DrawableRank
2020-03-17 16:25:51 +09:00
smoogipoo
d77b0acd90
Move rank colour to OsuColour
2020-03-17 16:25:41 +09:00
TheWildTree
acd280c855
Add System channel type and use it for the ChannelSelectorTab
2020-03-15 22:13:26 +01:00
Dan Balasescu
afcbc5b789
Merge branch 'master' into fix-cross-thread-operation
2020-03-11 12:45:18 +09:00
Dean Herbert
ed837d3115
Use framework extension method for FromHex
2020-03-11 10:18:41 +09:00
Dean Herbert
ad7cda8735
Fix download failures causing a non-safe drawable change
2020-03-10 20:11:06 +09:00
Dean Herbert
0102aaf32a
Move chat expand/contract logic local to tournament
2020-03-08 18:11:57 +09:00
Dean Herbert
aed52179f0
Fix weird reverse logic
2020-03-08 15:32:22 +09:00
Andrei Zavatski
c08e16d97f
Merge remote-tracking branch 'refs/remotes/ppy/master' into beatmap-listing-expanded
2020-03-06 01:27:51 +03:00
Dean Herbert
4294ed4b64
Better align fonts to weights
2020-03-04 11:45:19 +09:00
Dean Herbert
276f6da483
Merge branch 'master' into better-room-participants
2020-02-28 16:42:31 +09:00
smoogipoo
085968dd7f
Rename recent participants
2020-02-27 20:00:53 +09:00
smoogipoo
97c07281d8
Make ParticipantsList use the new participants property
2020-02-27 19:24:13 +09:00
smoogipoo
99442ec9c3
Implement single-room multiplayer room polling
2020-02-27 19:23:50 +09:00
smoogipoo
3f5c4633bc
Remove workarounds for CreateRoomRequest shortcomings
2020-02-27 16:41:00 +09:00
Dean Herbert
db1e5abad7
Merge pull request #7786 from EVAST9919/subcomments-alter-new
...
Add ability to load long comment trees in CommentsContainer
2020-02-21 21:18:33 +09:00
smoogipoo
db78b95228
Remove duplicated api request
2020-02-21 19:27:25 +09:00
smoogipoo
957b33b141
Fix included comment properties not being set correctly
2020-02-21 19:27:17 +09:00
smoogipoo
41c6d2f2e7
Merge remote-tracking branch 'origin/master' into subcomments-alter-new
2020-02-21 17:02:58 +09:00
smoogipoo
37e295e4be
Refactor orphaning to better follow osu-web specification
2020-02-21 17:02:48 +09:00
Dean Herbert
92f6f0207c
Rename LoadingAnimation to LoadingSpinner
2020-02-21 15:33:31 +09:00
Andrei Zavatski
20b49bea4b
Refactor SearchBeatmapSetsRequest
2020-02-21 01:49:03 +03:00
Andrei Zavatski
58903759f1
Implement enum attributes to set display order
2020-02-21 01:37:36 +03:00
Andrei Zavatski
d50cca6264
Minor enum adjustments for consistency
2020-02-21 01:05:20 +03:00
Andrei Zavatski
eeae0a5774
Fix typos
2020-02-21 00:56:33 +03:00
Andrei Zavatski
063a53017e
Implement Language filter
2020-02-20 17:56:49 +03:00
Andrei Zavatski
6b2ae67eaf
Implement Genre filter
2020-02-20 17:40:45 +03:00
Dean Herbert
5c16dbbea9
Merge pull request #7919 from smoogipoo/null-leaderboard-position
...
Support null leaderboard position
2020-02-20 16:27:24 +09:00
Dan Balasescu
474d0635cf
Merge pull request #7913 from TheWildTree/highlight-full-combo
...
Highlight max combo on beatmap leaderboards
2020-02-20 14:53:55 +09:00
smoogipoo
1a689231c2
Support null leaderboard position
2020-02-20 14:51:25 +09:00
Andrei Zavatski
7550685a61
DrawableErrorHandler -> NotFoundDrawable
2020-02-20 02:43:13 +03:00
TheWildTree
23c9782f50
Add maxCombo to APIBeatmap
2020-02-19 17:58:41 +01:00
Andrei Zavatski
255c8d3a13
Adjust SearchBeatmapSetsRequest for new usage
2020-02-19 17:33:48 +03:00
Andrei Zavatski
01202f09be
Expand SearchBeatmapSetsResponse
2020-02-19 17:32:43 +03:00
Andrei Zavatski
3bf3becdd6
Merge remote-tracking branch 'refs/remotes/ppy/master' into subcomments-alter-new
2020-02-18 13:27:08 +03:00
smoogipoo
c8b81bcf3c
Use equality comparison rather than hash set
2020-02-16 16:23:46 +09:00
smoogipoo
17e3470441
Replace hashcode override with local equality comparer
2020-02-16 00:23:52 +09:00
Dean Herbert
a51fdfb95e
Merge pull request #7839 from smoogipoo/match-subscreen-redesign
...
Redesign match subscreen to add playlist support
2020-02-15 21:11:39 +09:00
Dean Herbert
d0122b935e
Transfer metadata to ensure present on creating a new match
2020-02-15 19:40:59 +09:00
Andrei Zavatski
7cb11be810
Merge remote-tracking branch 'refs/remotes/ppy/master' into subcomments-alter-new
2020-02-14 20:55:51 +03:00
recapitalverb
7866c26f95
Make OsuConfigManager instances readonly
2020-02-14 22:18:56 +07:00
recapitalverb
7de7748607
Remove unnecessary nullability
2020-02-14 22:02:10 +07:00
recapitalverb
2bd2cd1d3f
Use OsuConfigManager from ctor instead
2020-02-14 21:59:33 +07:00
recapitalverb
c46d828716
Preserve permitNulls
2020-02-14 20:59:51 +07:00
recapitalverb
a7c2fd078f
Fix remaining cases
2020-02-14 20:27:21 +07:00
recapitalverb
c753cb46c5
Use [Resolved] wherever possible
2020-02-14 20:14:00 +07:00
Dean Herbert
a75715607b
Move drawable load to asynchronous context
2020-02-14 15:41:46 +09:00
Dean Herbert
720ceca78a
Final tidy-up pass
2020-02-14 15:38:47 +09:00
Dean Herbert
edf9cfc863
API can't be null on load
2020-02-14 15:36:06 +09:00
Dean Herbert
6f1cecd86f
Move LoadComplete up in method
2020-02-14 15:35:39 +09:00
Dean Herbert
7e6c194d4a
Add missing xmldoc
2020-02-14 15:34:46 +09:00
Dean Herbert
4d5abab2ee
Remove unnecessary content private storage
2020-02-14 15:29:50 +09:00
Dean Herbert
76cfe1f42c
Merge branch 'master' into online-container
2020-02-14 15:18:27 +09:00
Lucas A
049b0d93d1
Add back default content fade transitions
2020-02-13 21:40:25 +01:00
Lucas A
dac0148c94
Apply review suggestions.
2020-02-13 20:08:14 +01:00
Dean Herbert
e181a95c85
Remove unused using
2020-02-13 22:28:37 +09:00
Dean Herbert
4a04b434a9
Merge branch 'master' into remove-current-item
2020-02-13 21:41:23 +09:00
Dean Herbert
b9a296d3f9
Merge branch 'master' into remove-current-item
2020-02-13 19:34:15 +09:00
Dean Herbert
28ca1a5bcc
Merge branch 'master' into participants-bindable
2020-02-13 19:31:50 +09:00
smoogipoo
bc1c4f6b58
Add missing null-allowance
2020-02-13 19:04:23 +09:00
smoogipoo
bce9c8f3f3
Make room participants into a bindable list
2020-02-13 18:59:15 +09:00
smoogipoo
75bef15583
Remove "current" multiplayer room item
2020-02-13 18:48:28 +09:00
smoogipoo
91edadfe9d
Make playlist beatmap and ruleset into bindables
2020-02-13 18:12:47 +09:00
Andrei Zavatski
5201c1c87b
Use new algorithm for comments tree creation
2020-02-13 02:21:13 +03:00
Lucas A
b9e10cb498
Privatize ViewTarget
2020-02-11 18:10:46 +01:00
Andrei Zavatski
26afe0f31e
Add ability to load long comment trees in CommentsContainer
2020-02-10 15:43:11 +03:00
Lucas A
30e0a34e50
Wrap Content into a container for animating visibility.
2020-02-08 17:11:31 +01:00
Lucas A
7ca9f4dc20
Apply review suggestions
2020-02-08 17:11:31 +01:00
Lucas A
d3dc0b63ff
Remove string concatenation from ctor
2020-02-08 17:07:26 +01:00
Lucas A
6d51b344ab
Display a loading animation when the user is connecting
2020-02-08 17:07:20 +01:00
Craftplacer
1c1b5aa939
Merge branch 'chat-mention' of https://github.com/Craftplacer/osu into chat-mention
2020-02-08 10:45:41 +01:00
Craftplacer
41915df1f3
Change comment
2020-02-07 16:52:53 +01:00
Craftplacer
dd86443264
Make isMentioning static
2020-02-07 16:51:37 +01:00
Craftplacer
7cd228db07
Change notifyOnChat to notifyOnPM
2020-02-07 16:50:22 +01:00
Bartłomiej Dach
5875f2158c
Properly rename event handler
2020-02-05 19:20:16 +01:00
Craftplacer
9378b216e6
Lowercase the N inside channel_NewMessagesArrived
2020-02-05 19:01:51 +01:00
Andrei Zavatski
cb30f463fb
Update spotlight info based on selected one
2020-02-05 12:48:29 +03:00
Andrei Zavatski
37992e99f9
API implementation
2020-02-04 16:04:06 +03:00
recapitalverb
42060139f8
Merge branch 'master' into display-accuracy
2020-02-04 12:51:48 +07:00
Craftplacer
f16b90a152
Remove username data from PrivateMessageNotification
2020-02-03 23:56:23 +01:00
Craftplacer
4eedd82032
Don't unnecessarily expose properties
2020-02-03 23:03:27 +01:00
Andrei Zavatski
e531570352
Merge remote-tracking branch 'refs/remotes/ppy/master' into spotlights_api
2020-02-03 19:34:35 +03:00
recapitalverb
9898a926b2
Use ScoreInfo.DisplayAccuracy everywhere
2020-02-03 22:11:36 +07:00
unknown
2274d70dac
apply suggestions
2020-01-31 06:41:50 +08:00
unknown
c5995acfff
linkify metadata
2020-01-30 12:30:25 +08:00
Andrei Zavatski
d20c48d151
Resolve possible UserVotes issues
2020-01-30 00:53:05 +03:00
Andrei Zavatski
d1ead83c6c
Merge remote-tracking branch 'refs/remotes/ppy/master' into no-comments-placeholder
2020-01-30 00:48:43 +03:00
smoogipoo
76af8bea5d
Fix percentage-formatted displays containing a space
2020-01-29 19:51:24 +09:00
Andrei Zavatski
dc10e58b4f
Add tests for CommentsPage
2020-01-29 06:44:39 +03:00
Craftplacer
48231317d2
Make IsMentioning private
2020-01-29 02:07:08 +01:00
Craftplacer
5e91a3f0f8
Use IndexOf
2020-01-29 01:59:52 +01:00
Craftplacer
65644731e0
Make field readonly
2020-01-25 17:03:39 +01:00
Craftplacer
f9def83552
Make IsMentioning public to allow it to be used for testing
2020-01-25 16:44:45 +01:00
Craftplacer
e0ef672549
Use binded list
2020-01-25 16:43:51 +01:00
Craftplacer
00da45ead4
Matching strings instead of splitting
2020-01-25 14:40:53 +01:00
Craftplacer
158b969052
Remove XML doc from HandleMessages
2020-01-25 14:40:16 +01:00
Dean Herbert
7c62cc3ac3
Merge remote-tracking branch 'smoogipoo/void-mouse-up-returns' into update-framework
2020-01-22 22:57:52 +09:00
Dean Herbert
cbba708931
Merge branch 'master' into online-mod-settings
2020-01-22 22:15:41 +09:00
smoogipoo
03b61e4a5a
Throw exception rather than returning nulls
2020-01-22 20:00:36 +09:00
Craftplacer
c6f450f932
Resolve code analysis errors
2020-01-22 11:23:27 +01:00
Craftplacer
3d2625836a
Remove static from getWords method
2020-01-22 10:50:27 +01:00
Craftplacer
771155e882
No notification "debouncing"
2020-01-22 10:48:55 +01:00
Craftplacer
e4accb3344
Remove IsActive property
...
as it never really made sense to have it in the first place
2020-01-22 10:47:51 +01:00
Craftplacer
73d4b6a6be
Remove redundant lambda signature parentheses
...
:/
2020-01-22 00:53:49 +01:00
Craftplacer
d29694d788
Add additional comment to explain the code order
2020-01-22 00:41:46 +01:00
Craftplacer
88ea1138b6
Compile regex
2020-01-22 00:31:44 +01:00
Craftplacer
795051e256
Prevent channel duplicates
2020-01-22 00:29:12 +01:00
Craftplacer
5978e2c0e2
Redo how instances of PM notifications are removed
2020-01-22 00:28:59 +01:00
Craftplacer
699547e1a2
Also exclude last read message
2020-01-22 00:28:08 +01:00
Craftplacer
9fd494b057
Fix order where messages are checked in
2020-01-22 00:27:46 +01:00
Craftplacer
47a92a13b0
Change code comments
2020-01-22 00:13:07 +01:00
Craftplacer
4d6ff31134
Wrap getWords() with anyCaseInsensitive()
2020-01-21 23:43:21 +01:00
Craftplacer
63c8ae8211
Use IDs for checking against message author
2020-01-21 23:42:15 +01:00
smoogipoo
bfb056c612
Apply input method signature refactorings
2020-01-20 18:17:21 +09:00
Craftplacer
be2a88c8a5
Remove left over config entry
2020-01-19 18:40:17 +01:00
Craftplacer
7d1fc388ce
Resolve code quality errors
2020-01-19 18:34:48 +01:00
Craftplacer
4b871f61e3
Use Humanizer for counting PMs in text
2020-01-19 18:23:12 +01:00
Craftplacer
4feae82434
Split HandleMessages method
2020-01-19 17:55:17 +01:00
Craftplacer
86ecaf223d
Improve getWords()
2020-01-19 17:36:38 +01:00
Craftplacer
dd5478fe1f
Remove highlighted/mentioned words
2020-01-19 17:26:43 +01:00
Craftplacer
8a9c90c5e6
Resolve CA errors #2
2020-01-18 16:18:17 +01:00
Craftplacer
64fe9692ed
Resolve CA errors
2020-01-18 15:57:51 +01:00
Craftplacer
8ddd36596e
Revert useless changes varying from properties, naming changes etc.
2020-01-18 15:40:55 +01:00
Craftplacer
f55cf03bd0
Remove unnecessary changes after rework
2020-01-18 14:17:26 +01:00
Lucas A
e1f172e3f8
Fix CI issues
2020-01-17 19:29:42 +01:00
Lucas A
f00938971e
Apply review suggestions
2020-01-17 18:54:00 +01:00
Lucas A
0422b326ad
Add visual tests
2020-01-17 18:54:00 +01:00
smoogipoo
2187523bf3
Fix json web requests having incorrect user agents
2020-01-17 19:21:27 +09:00
smoogipoo
2bc7458abf
Add mod setting (de)serialization support
2020-01-17 13:27:47 +09:00
Craftplacer
5d244f48f7
Use instance list instead of exposing NotifcationOverlay's notifications
2020-01-17 00:00:10 +01:00
Craftplacer
2b5d541857
Merge remote-tracking branch 'upstream/master' into chat-mention
2020-01-16 23:15:39 +01:00
Craftplacer
1b53c0ff74
Remove populated property, and other changes
2020-01-16 23:15:30 +01:00
Dean Herbert
0d8b4e7c3e
Fix user agent missing in registration
2020-01-16 12:51:43 +09:00
smoogipoo
33993837b7
Remove participant count (not returned by API)
2020-01-14 14:41:38 +09:00
smoogipoo
7349c023d1
Cleanup spotlight selection
2020-01-14 14:01:51 +09:00
Dean Herbert
4ef30f6a05
Merge branch 'master' into spotlights_api
2020-01-13 12:36:13 +08:00
Dean Herbert
c190c68659
Add safety for channel with no messages
2020-01-13 12:22:44 +09:00
Lucas A
8f6c6ad77a
Fix class name not corresponding to filename
2020-01-12 17:43:44 +01:00
Craftplacer
8cc2d70df0
Reduce API calls by checking what message was last marked as read
2020-01-12 16:24:14 +01:00
Lucas A
e9a5298484
Allow setting the displayed text on LoginPlaceholder
2020-01-12 15:50:35 +01:00
Craftplacer
ccaf4e48a1
Remove using directive
2020-01-11 20:04:58 +01:00
Craftplacer
5d5c635b1b
Merge branch 'api-chat-read' of https://github.com/Craftplacer/osu into api-chat-read
2020-01-11 19:47:40 +01:00
Craftplacer
2ea1367a88
Remove message parameter and make it mark the entire channel as read
2020-01-11 19:47:35 +01:00
Craftplacer
7aac6deb71
Merge branch 'master' into api-chat-read
2020-01-11 19:18:50 +01:00
Craftplacer
f8a11e50b6
Remove redundant ToString() calls
...
as string interpolation does this automatically..
2020-01-11 18:00:34 +01:00
Craftplacer
d9c57baa89
Add test case for mismatch of channels
2020-01-11 17:48:03 +01:00
Craftplacer
50e357a799
Change method parameters, add detailed error message and method docs
2020-01-11 17:42:02 +01:00
Craftplacer
cd679707ed
Prevent channel duplicates
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-01-11 17:16:11 +01:00
Lucas A
e1eda89ea6
Implement OnlineContainer
2020-01-11 10:15:59 +01:00
Andrei Zavatski
9260ea9195
Apply suggestions
2020-01-10 20:46:35 +03:00
Andrei Zavatski
08fb68ddfe
Fix incorrect return type for spotlight request
2020-01-10 16:28:52 +03:00
Andrei Zavatski
f65f030e79
Implement GetSpotlightsRequest
2020-01-10 15:48:54 +03:00
Dean Herbert
ab9603b06a
Merge remote-tracking branch 'upstream/master' into #7146
2020-01-09 17:08:12 +08:00
Dean Herbert
d33a507d96
Implement a login placeholder ( #7438 )
...
Implement a login placeholder
2020-01-08 16:55:41 +08:00
Dean Herbert
6dd45e52ef
Move text definition inside class
2020-01-08 17:22:51 +09:00
Lucas A
7f92cefe10
Apply review suggestions
2020-01-07 19:06:47 +01:00
smoogipoo
4a7f5f98df
Cleanup methods/events
2020-01-06 17:20:09 +09:00
Lucas A
21e6351c53
Allow DI for LoginOverlay to resolve to null in non-graphical environments (fix tests)
2020-01-05 14:33:44 +01:00
Lucas A
3d747835dc
Fix CI issues
2020-01-04 21:09:40 +01:00
Lucas A
5fd5665467
Use implementation on song select leaderboards.
2020-01-04 19:59:25 +01:00
Lucas A
474b8fc8fd
Add LoginPlaceholder
2020-01-04 19:56:42 +01:00
Lucas A
3bd3ebad49
Move placeholders to a dedicated namespace
2020-01-04 19:56:34 +01:00
Craftplacer
cd91cc860d
Resolve "Redundant lambda signature parentheses"
2020-01-04 01:06:38 +01:00
Craftplacer
4f36bc0fd3
Add error log message for debugging
2020-01-04 00:49:35 +01:00
Craftplacer
8dbddfab55
Add HTTP method
2020-01-04 00:45:51 +01:00
Craftplacer
9b95ce1045
Change wrong values used to form target URL
...
Dumb mistake by me, C# used ToString() on these objects.
2020-01-04 00:45:02 +01:00
Willy Tu
e23c71be80
Update Resolved and Cached attribute issues
2020-01-03 11:34:26 -08:00
Craftplacer
51556a809d
Fix variables not being used inside target string
2020-01-02 17:20:33 +01:00
Craftplacer
7b71e56817
Initial commit
2020-01-02 17:07:28 +01:00
Roman Kapustin
e8bcb52612
Set UserAgent for API requests
2019-12-28 18:07:55 +03:00
Craftplacer
0d812bce9f
WIP changes for code review
2019-12-26 03:32:40 +01:00
Willy Tu
6abbd33b51
Fixed CI issues
2019-12-19 21:57:14 -08:00
Willy Tu
8ab26e8889
Update Tests with dependencies on LeaderboardScore. Added its dependency on DialogOverlay for the tests. Added test for deleting individual local score
2019-12-19 21:29:54 -08:00
Willy Tu
d4d4ddc624
Remove new line for CodeFactor
2019-12-18 22:42:26 -08:00
Willy Tu
643911ada9
Fix code format for CI
2019-12-18 22:41:07 -08:00
Willy Tu
ed07b779b1
Update to use score.ID identify local scores
2019-12-18 21:54:02 -08:00
Willy Tu
27163a5133
Removed unnecessary code for deleting individual local score.
2019-12-18 21:04:10 -08:00
Willy Tu
531ac16743
Update Scoreboard Refresh Method for deleting individual scores
2019-12-18 19:22:42 -08:00
Willy Tu
d1fcadc700
Merge branch 'master' of github.com:ppy/osu into #7146
2019-12-18 19:16:54 -08:00
Dean Herbert
756d847ad8
Fix user not getting an initial status
2019-12-18 14:07:03 +09:00
wltu
8aeef3f59a
Added refresh scoreboard upon deleting local score and formatted the code
2019-12-17 12:56:30 -08:00
wltu
bb2b1475cd
Merge branch 'master' of https://github.com/ppy/osu into #7146
2019-12-17 12:54:47 -08:00
Craftplacer
7bdfd2e23c
All copyright goes to peppy
2019-12-17 07:04:55 +01:00
Craftplacer
b6c31e7764
Remove ignore list, move code to MessageNotifier and add it to DI
...
This also adds countable private message notifications.
2019-12-17 06:59:27 +01:00
Huo Yaoyuan
40b43b85f1
CA1715: use prefix for generic parameters.
2019-12-17 13:00:25 +08:00
Huo Yaoyuan
61a6106e52
CA2200: don't explictly throw caught exception.
2019-12-17 13:00:23 +08:00
Huo Yaoyuan
d7b3578cc6
CA2201: throw correct exception type.
2019-12-17 13:00:02 +08:00
Willy Tu
bef9637fdf
Implemented delete local score individually. Currently does not refresh the score screen after the delete is compelete.
2019-12-16 19:25:28 -08:00
Craftplacer
15c25c571d
Merge remote-tracking branch 'upstream/master' into chat-mention
2019-12-16 00:59:06 +01:00
Craftplacer
e8180ab153
Add ToString() method to message for better debugging
2019-12-16 00:45:55 +01:00
Willy Tu
ad077042ba
Created ContextMenu for scores by adding OsuContextMenuContainer as a child of LeaderboardScore and a Drawable that extended the IHasContextMenu interface to the MenuContainer. Tried to the LeaderboardScore extend IHASContextMenu itself, but it is not working yet.
2019-12-15 02:18:12 -08:00
Dan Balasescu
e288706802
Merge branch 'master' into rankings-overlay-refactor
2019-12-11 19:09:29 +09:00
Dean Herbert
77b9989e11
Fix some weird private field names
2019-12-11 14:10:35 +09:00
Dean Herbert
55c938e5da
Fix bindable usage
2019-12-10 18:08:24 +09:00
Andrei Zavatski
69deb0ca96
Fix unavailable replays can be accessed via leaderboard
2019-12-09 07:19:55 +03:00
Andrei Zavatski
22863da360
Merge remote-tracking branch 'refs/remotes/ppy/master' into rankings-overlay-refactor
2019-12-05 09:29:37 +03:00
Dean Herbert
de413418c7
Remove redundant prefix
2019-12-05 14:50:12 +09:00
Dean Herbert
6e9157d59c
Standardise request/response handling
2019-12-05 14:29:48 +09:00
Dean Herbert
36224dca13
Fix multiplayer aggregate score inheriting from ScoreInfo
2019-12-05 01:45:28 +09:00
Dean Herbert
e2591f154b
Only parse statistics when not null
2019-12-03 16:16:46 +09:00
Dean Herbert
f0d49d0cdf
Decouple APILegacyScoreInfo from ScoreInfo
2019-12-03 15:31:11 +09:00
Dean Herbert
c49aeb08c4
Add API methods to perform requests out-of-queue
2019-11-29 20:03:14 +09:00
Andrei Zavatski
da01f0ee5a
Merge remote-tracking branch 'refs/remotes/ppy/master' into rankings-tables
2019-11-28 20:08:41 +03:00
Ganendra Afrasya
71a871d7d1
Add loved enum on BeatmapApproval
2019-11-28 21:59:57 +07:00
Andrei Zavatski
c546df8a80
Refactor API logic
2019-11-27 21:56:22 +03:00
Dean Herbert
4221a0126c
Merge branch 'master' into rankings-tables
2019-11-27 23:26:54 +09:00
Huo Yaoyuan
c0fe91a84c
Merge branch 'master' into sharpen
2019-11-26 18:21:50 +08:00
Dean Herbert
b85189f855
Merge remote-tracking branch 'upstream/master' into fix-spritetext-usage
2019-11-25 11:31:12 +09:00
Dean Herbert
45514ff660
Apply fixes
2019-11-25 11:30:55 +09:00
Dean Herbert
65d71b9442
Fix beatmap lookups failing for beatmaps with no local path
...
Turns out the underlying EscapeUriString doesn't like nulls
2019-11-23 20:55:42 +09:00
Dean Herbert
f079ebe857
Simplify beatmap lookup to use a single endpoint
2019-11-22 16:13:48 +09:00
Huo Yaoyuan
818553027b
Merge branch 'master' into sharpen
2019-11-21 23:42:46 +08:00
Dean Herbert
19dfbb0a45
Update obsolete usages
2019-11-21 10:55:31 +09:00
Huo Yaoyuan
374ef6ff83
Merge branch 'master' into sharpen
2019-11-20 17:30:58 +08:00
Huo Yaoyuan
f05b83d7d4
Use typeparamref.
2019-11-17 20:48:23 +08:00
Huo Yaoyuan
87d40cf8d0
Resolve equals usages.
2019-11-13 22:35:50 +08:00
Dean Herbert
f11ad7535d
Merge branch 'master' into rankings-tables
2019-11-13 15:39:13 +09:00
Dean Herbert
ce60f8262c
Merge branch 'master' into sharpen
2019-11-13 15:38:59 +09:00
Dean Herbert
61464c5c89
Fix potential nullref in unrelated test
2019-11-12 21:27:15 +09:00
Huo Yaoyuan
ca52d09e81
Enforce expression body for typical simple ones.
2019-11-12 19:56:37 +08:00
Huo Yaoyuan
bbeab6fa76
Use auto property.
2019-11-12 19:53:25 +08:00
Dean Herbert
58df6930b2
Get error message from server
2019-11-12 19:34:20 +09:00
Dean Herbert
f04d7f733f
Merge remote-tracking branch 'upstream/master' into favourite-beatmap
2019-11-12 19:19:29 +09:00
Dean Herbert
a83c3523ae
Merge branch 'master' into rankings-tables
2019-11-12 18:59:43 +09:00
Huo Yaoyuan
e9b8cbb516
Apply other styles.
2019-11-11 20:27:04 +08:00
Huo Yaoyuan
ccc8aa6fa4
Apply brace style.
2019-11-11 20:13:13 +08:00
iiSaLMaN
6ecea0e4c1
Fix DummyAPIAccess being potentially incorrect
2019-11-06 18:15:49 +03:00
Andrei Zavatski
0f53725005
Merge remote-tracking branch 'refs/remotes/ppy/master' into rankings-tables
2019-11-06 13:03:34 +03:00
Dan Balasescu
23ad516348
Merge branch 'master' into game-handles-links
2019-11-05 12:33:32 +09:00
Dean Herbert
1a7b803d4d
Change colour to green to match web implementation
2019-11-04 08:39:51 +09:00
Andrei Zavatski
2f703090ef
Update API with latest web changes
2019-11-01 21:49:50 +03:00
Andrei Zavatski
1e73cf1025
Merge remote-tracking branch 'refs/remotes/ppy/master' into rankings-tables
2019-11-01 21:14:09 +03:00
Ganendra Afrasya
ce3b34a768
Fix UserTopScoreContainer is also tinted
2019-11-01 23:00:55 +07:00
Ganendra Afrasya
d9a91100fb
Add tint to user's score container background
2019-11-01 22:47:23 +07:00
Dean Herbert
898520935e
Move link handling code to OsuGame
...
This allows for future calls from arguments / associations
2019-11-01 11:40:51 +09:00
Dean Herbert
d1c6e3f620
Add test for scroll to end when max history is exceeded
2019-10-29 14:32:52 +09:00
Dan Balasescu
c2f6cd9c24
Merge branch 'master' into comments-vote-pill
2019-10-25 19:19:44 +09:00
Bartłomiej Dach
661dfbefaf
Change containment check to overlap
...
Due to scenarios wherein a formatted link ended up as part of a larger
raw link after parsing, change the containment check to an overlap check
and add appropriate tests for these edge cases.
2019-10-25 00:42:58 +02:00
Bartłomiej Dach
cbd99cc767
Resolve link-in-link edge case
...
Testing with #6542 surfaced a crash scenario, caused by formatted links
that had URLs in the display text, for example
[mean example - https://osu.ppy.sh ](https://osu.ppy.sh )
In that case the outer Markdown link would get picked up once, and then
reduced to the link text when looking for other links, leading to it
being picked up again the second time when the raw link is found.
Add a check in the raw link parsing path that ensures that the found
URL is not a part of a bigger, pre-existing link.
2019-10-24 15:52:55 +02:00
Bartłomiej Dach
24b7160522
Add support for parsing Markdown inline links
...
Extend the Markdown parsing regex to allow parsing so-called inline
links. Within the parenthesis () part of the Markdown URL syntax,
introduce a new capturing group:
(
\s+ // whitespace between actual URL and inline title
(?<title> // start of "title" named group
"" // opening double quote (doubled inside @ string)
(
[^""] // any character but a double quote
| // or
(?<=\\) // the next character should be preceded by a \
"" // a double quote
)* // zero or more times
"" // closing double quote
)
)? // the whole group is optional
This allows for parsing the inline links as-provided by web. Correctness
is displayed by the passing tests.
2019-10-24 15:52:55 +02:00
Dean Herbert
40c202c394
Merge branch 'master' into comments-vote-pill
2019-10-23 15:41:54 +09:00
Dean Herbert
c3375071ad
Fix formatting issue
2019-10-23 00:26:47 +09:00
Dean Herbert
e9aa7f3218
Subclass and use yellow for stand-alone chat display
2019-10-23 00:24:19 +09:00
Andrei Zavatski
bb7af1e39c
Fix some margin/padding issues
2019-10-22 01:45:04 +03:00
Andrei Zavatski
d19041fa53
Implement DaySeparator class
2019-10-22 01:30:37 +03:00
Andrei Zavatski
9ee63a8c1a
Apply suggested changes
2019-10-17 16:28:32 +03:00
Andrei Zavatski
42cd4107a0
Implement CommentVoteRequest and adjust UI
2019-10-17 15:04:30 +03:00
Andrei Zavatski
38dcd42d08
Parse voted comments
2019-10-17 12:35:12 +03:00
Dean Herbert
4f356f3aeb
Merge branch 'master' into favourite-beatmap
2019-10-16 18:22:09 +09:00
Andrei Zavatski
96e31b9cca
Add support for deleted comments with message
2019-10-15 12:07:01 +03:00
Andrei Zavatski
eb5dad08aa
Remove initial filed
2019-10-15 11:25:58 +03:00
Andrei Zavatski
3c714dc013
APICommentsController -> CommentBundle
2019-10-15 11:20:06 +03:00
Andrei Zavatski
ad32d66365
CI fix
2019-10-15 01:10:23 +03:00
Andrei Zavatski
0fd6b0c852
Use linq expression to count deleted comments
2019-10-15 00:55:33 +03:00
Andrei Zavatski
09621f066e
Childs -> Children
2019-10-15 00:32:21 +03:00
Andrei Zavatski
0676c880b5
Simplify IsTopLevel and IsDeleted properties
2019-10-15 00:26:31 +03:00
Andrei Zavatski
d4843285db
CI fixes
2019-10-14 17:33:14 +03:00
Andrei Zavatski
a4ffd4798d
Fix escaped html strings not being unescaped
2019-10-14 17:02:48 +03:00
Andrei Zavatski
7cd3f5656d
Cleanups
2019-10-14 16:43:43 +03:00
Andrei Zavatski
27e3ffd293
Update dependencies
2019-10-13 11:23:49 +03:00
Andrei Zavatski
7f867562ca
Merge remote-tracking branch 'refs/remotes/ppy/master' into comments_api
2019-10-13 11:15:43 +03:00
Dean Herbert
475815df04
Update ranking display to handle new osu-web request format
2019-10-11 13:09:21 +09:00
Andrei Zavatski
f6b78ad661
Overall cleanups
2019-10-10 11:43:45 +03:00
Andrei Zavatski
107d39c3e9
Add DeletedChildsPlaceholder to the bottom of the comments container
2019-10-09 14:10:05 +03:00
Andrei Zavatski
7e3c97f496
Implement DeletedChildsPlaceholder component
2019-10-09 13:37:07 +03:00
Andrei Zavatski
b2bd78308d
Handle deleted comments
2019-10-09 12:18:49 +03:00
Andrei Zavatski
ad99a3236f
Handle edited comments
2019-10-09 11:32:17 +03:00
Andrei Zavatski
0a56b041fd
Implement ShowChildsButton
2019-10-09 11:07:56 +03:00
Andrei Zavatski
faef4d932d
Improve message parsing
2019-10-09 10:17:14 +03:00
Andrei Zavatski
29b0eacc82
Implement SortSelector component
2019-10-08 22:46:42 +03:00
Andrei Zavatski
4230b00110
Rename APIComments to APICommentsController
2019-10-08 19:22:23 +03:00
Andrei Zavatski
000e4a563c
Parse parent comments
2019-10-08 19:09:02 +03:00
Andrei Zavatski
451a7342ce
Parse child comments
2019-10-08 15:39:03 +03:00
Andrei Zavatski
801b5b474e
Add a User property to the comment for easy access
2019-10-08 13:45:13 +03:00
Andrei Zavatski
4b1a40daba
Implement temp fix to get the actual message
2019-10-08 13:31:49 +03:00
Andrei Zavatski
cc6bf2f173
Add IsDeleted property
2019-10-07 18:45:22 +03:00
Andrei Zavatski
aa8df0fa20
Hook up api and implement some visual comments representation
2019-10-07 18:26:07 +03:00
Andrei Zavatski
738580ec61
Add IsTopLevel property
2019-10-07 16:58:24 +03:00
Andrei Zavatski
76db200bd3
Implement GetCommentsRequest
2019-10-07 16:48:05 +03:00
Andrei Zavatski
2d707b2b65
Implement PostBeatmapFavouriteRequest
2019-10-07 15:36:23 +03:00
Andrei Zavatski
5274f69872
Merge remote-tracking branch 'refs/remotes/ppy/master' into rankings-tables
2019-10-02 13:00:29 +03:00
Dan Balasescu
b161aa22c3
Merge branch 'master' into simplify-exit-logic-of-screens
2019-10-02 18:13:57 +09:00
Ganendra Afrasya
b6dd610af8
Apply reviews
2019-10-01 23:18:03 +07:00
Joehu
5f700f2ae9
Simplify exit logic of screens with textboxes using back button receptor
2019-10-01 08:26:34 -07:00
Ganendra Afrasya
208b9a4eba
Add new virtual float for username to timestamp padding
2019-10-01 20:47:53 +07:00
Andrei Zavatski
2a395956aa
Merge dependencies
2019-09-27 19:00:17 +03:00
Dean Herbert
c83db94eb7
Use isolated storage/api
2019-09-25 15:00:08 +09:00
Andrei Zavatski
573da7b1e7
Implement ChangelogEntryType
2019-09-19 20:34:37 +03:00
Dean Herbert
e2f7d4bc62
Remove unnecessary ToMetric avoidance
2019-09-19 15:45:43 +09:00
Dean Herbert
098e89cb66
Improve state reset flow
2019-09-19 15:23:33 +09:00
Dean Herbert
4967ffd8e5
Move inside leaderboard
2019-09-19 14:52:31 +09:00
Dean Herbert
2e0a85c2f6
Merge remote-tracking branch 'upstream/master' into songselect-best-user-score
2019-09-19 12:57:30 +09:00
Joehu
77ac186cf8
Add spacing to mod icons on leaderboards
2019-09-11 16:08:01 -07:00
iiSaLMaN
a1c580f27e
Create "none selected" placeholder state
2019-09-05 05:56:21 +03:00
Bartłomiej Dach
08350a1aca
Add parenthesis handling to old link format
...
Allow users to put both balanced round parentheses, as well as
unbalanced escaped ones, in old style link text. The implementation
is the same as for Markdown and new style links, except for swapping
all instances of
\[\]
to
\(\)
for obvious reasons (different type of parenthesis requiring escaping).
Tests also included.
2019-09-04 00:21:27 +02:00
Bartłomiej Dach
f04add6d9e
Add bracket handling to Markdown link format
...
Allow users to put both balanced brackets, as well as unbalanced
escaped ones, in Markdown link text. The implementation is the exact
same as in the case of new format links.
For completion's sake, tests also included.
2019-09-04 00:07:00 +02:00
Bartłomiej Dach
24d4f0372c
Refactor link parsing regexes to use named groups
...
For the sake of readability, consistency and to make further changes
easier, introduce named groups (?<text>) and (?<url>) to all link
parsing regexes which have parts containing the desired link text
and (optionally) URL.
The introduction of the named groups additionally simplifies
handleMatches() and makes all calls to it consistent.
2019-09-04 00:06:52 +02:00
Bartłomiej Dach
a8f16503e2
Add backslash escaping to new link format
...
For users to be able to add square brackets inside of links using
the new format, the regular expression used for parsing those links
contained a balancing group, which can be used for matching pairs
of tokens (in this case, opening and closing brackets, in that order).
However, this means that users could not post links with unmatched
brackets inside of them (ie. ones that contain single brackets, or
a closing bracket and then an opening one). Allow for escaping opening
and closing brackets using the backslash character.
The change substitutes this old fragment of the regex in the display
text group:
[^\[\]]* // any character other than closing/opening bracket
for this one:
(((?<=\\)[\[\]])|[^\[\]])*
The second pattern in the alternative remains the same; the first one
performs the escaping, as follows:
(
(?<=\\) // positive lookbehind expression:
// this match will succeed, if the next expression
// is preceded by a single backslash
[\[\]] // either an opening or closing brace
)
Since the entire display group is matched, unfortunately the lookbehind
expression does not actually strip the backslashes, so they are
manually stripped in handleMatches.
As demonstrated in the unit tests attached, this also allows balanced
brackets to be mixed with escaped ones.
2019-09-03 23:18:39 +02:00
Dean Herbert
d21d68b36c
Refactor to match web implementation 1:1
2019-09-02 17:04:38 +09:00
Dean Herbert
0985b1679f
Move enum to response class
2019-09-02 15:57:55 +09:00
Dean Herbert
3d551b08a9
Rename legacy actions
2019-09-02 15:57:23 +09:00
Dean Herbert
13fadec6ec
Merge remote-tracking branch 'upstream/master' into kudosu-info
2019-09-02 15:25:41 +09:00
Andrei Zavatski
72dbeaec16
Fix the comment
2019-08-30 10:26:11 +03:00
Andrei Zavatski
b03b520818
Move Absing from the APIKudosuHistory
2019-08-30 10:13:21 +03:00
StanR
d303083179
Update to match api
2019-08-29 12:29:31 +03:00
StanR
3347ee8170
Merge branch 'master' into beatmapset-genre-language
2019-08-29 09:57:53 +03:00
Andrei Zavatski
ed827d514f
Add comments
2019-08-27 15:36:08 +03:00
Andrei Zavatski
f4d2bb036b
Expand KudosuAction list
2019-08-22 16:50:54 +03:00
Andrei Zavatski
015406f4d2
Fix link parser
2019-08-18 22:02:59 +03:00
Andrei Zavatski
4c9b621f43
Fix some user links can't be opened inside the game
2019-08-18 22:01:36 +03:00