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
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
Salman Ahmed
8a01e567a1
Fix API potentially getting stuck in connecting state
2020-12-18 03:06:28 +03: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
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
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
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