Dan Balasescu
487a010b12
Make Room.PlaylistItemStats
non-bindable
2024-11-15 14:42:46 +09:00
Dan Balasescu
80b3e330a6
Make Room.ChannelId
non-bindable
2024-11-15 14:42:46 +09:00
Dan Balasescu
6c84e425f8
Make Room.MaxAttempts
non-bindable
2024-11-15 14:42:46 +09:00
Dan Balasescu
0ceaafe731
Make Room.Duration
& Room.StartDate
& Room.EndDate
non-bindable
2024-11-15 14:42:45 +09:00
Dan Balasescu
89de4f0f87
Make Room.AutoStartDuration
non-bindable
2024-11-15 14:42:45 +09:00
Dan Balasescu
b8bae30b66
Make Room.ParticipantCount
& Room.MaxParticipants
non-bindable
2024-11-15 14:42:45 +09:00
Dan Balasescu
f001cce24a
Make Room.AutoSkip
non-bindable
2024-11-15 14:42:18 +09:00
Dan Balasescu
ec5be6dbc3
Make Room.Password
& Room.HasPassword
non-bindable
2024-11-15 14:42:18 +09:00
Dan Balasescu
198681e644
Make Room.QueueMode
non-bindable
2024-11-15 14:42:18 +09:00
Dan Balasescu
7e3e5208f0
Make Room.Availability
non-bindable
2024-11-15 14:42:18 +09:00
Dan Balasescu
5d4838a08b
Make Room.Status
non-bindable
2024-11-15 14:42:18 +09:00
Dan Balasescu
81e4cb348f
Make Room.Type
non-bindable
2024-11-15 14:42:18 +09:00
Dan Balasescu
bde7b8e610
Make Room.Category
non-bindable
2024-11-15 14:42:18 +09:00
Dan Balasescu
8694f7e1cc
Make Room.Host
non-bindable
2024-11-15 14:42:17 +09:00
Dan Balasescu
6160df1586
Make Room.Name
non-bindable
2024-11-15 14:29:15 +09:00
Dan Balasescu
99762da7b8
Make RoomID non-bindable
...
Most important changes are to `RoomSubScreen` and `PlaylistsRoomSubScreen`, because those are the only two cases that now bind to the event instead.
2024-11-13 16:28:54 +09:00
Dan Balasescu
db025d81ee
Reorder public property vs private field
2024-11-13 15:50:01 +09:00
Dean Herbert
0760451f3f
Merge branch 'master' into user-statistics-provider
2024-11-13 15:21:55 +09:00
Dan Balasescu
72564b5c98
Make CurrentPlaylistItem
not a bindable
2024-11-12 18:17:24 +09:00
Dean Herbert
54288c350a
Merge pull request #30525 from smoogipoo/multiplayer-refactor
...
Replace `MultiplayerRoomComposite` with local bindings
2024-11-07 19:53:44 +09:00
Dan Balasescu
788ecc1e7b
Replace MultiplayerRoomComposite with local bindings
2024-11-06 15:31:27 +09:00
Bartłomiej Dach
2bd12e14db
Merge pull request #30467 from cdwcgt/friend-add
...
Add the ability to add/remove friends in `UserProfileHeader`
2024-11-05 10:25:27 +01:00
cdwcgt
c576fd8448
add AddFriendResponse
2024-11-05 15:55:42 +08:00
Bartłomiej Dach
6a1893ff3f
Add context menu option to copy link to an online score
...
I feel like this may become useful soon enough to help diagnose weird
issues.
2024-11-04 13:59:48 +01:00
Bartłomiej Dach
51f26993fa
Extract "copy link" text to common localisation
2024-11-04 13:59:48 +01:00
cdwcgt
fbe6077ec2
rename FriendDeleteRequest
to DeleteFriendRequest
2024-11-01 19:17:25 +08:00
cdwcgt
21b1c799f3
rename FriendAddRequest
to AddFriendRequest
2024-11-01 19:16:56 +08:00
cdwcgt
729c7f11a9
add StringEnumConverter
for RelationType
2024-11-01 19:15:20 +08:00
cdwcgt
0b2f4facac
add test
2024-11-01 14:05:24 +08:00
cdwcgt
69b5bd3b50
Fix existing friend logic
2024-11-01 12:53:13 +08:00
cdwcgt
bf53833b7b
add API model and request
2024-11-01 12:52:37 +08:00
Bartłomiej Dach
7e3564cb4a
Bring back matching by filename when performing online metadata lookups
2024-10-30 10:25:20 +01:00
Bartłomiej Dach
776fabd77c
Only use MD5 when performing metadata lookups
...
Both online and offline using the cache.
The rationale behind this change is that in the current state of
affairs, `TestPartiallyMaliciousSet()` fails in a way that cannot be
reconciled without this sort of change.
The test exercises a scenario where the beatmap being imported has an
online ID in the `.osu` file, but its hash does not match the online
hash of the beatmap. This turns out to be a more frequent scenario than
envisioned because of users doing stupid things with manual file editing
rather than reporting issues properly.
The scenario is realistic only because the behaviour of the endpoint
responsible for looking up beatmaps is such that if multiple parameters
are given (e.g. all three of beatmap MD5, online ID, and filename), it
will try the three in succession:
f6b341813b/app/Http/Controllers/BeatmapsController.php (L260-L266)
and the local metadata cache implementation reflected this
implementation.
Because online ID and filename are inherently unreliable in this
scenario due to being directly manipulable by clueless or malicious
users, neither should not be used as a fallback.
2024-10-30 08:12:30 +01:00
Salman Alshamrani
979065c421
Reorder code slightly
2024-10-26 23:09:17 -04:00
Salman Alshamrani
44dd81363a
Make UserStatisticsWatcher
fully rely on LocalUserStatisticsProvider
2024-10-25 03:15:41 -04:00
Salman Alshamrani
2fd495228c
Fix post-merge errors
2024-10-25 02:38:01 -04:00
Salman Alshamrani
701fb565b1
Merge branch 'master' into user-statistics-provider
2024-10-25 01:35:24 -04:00
Dean Herbert
c15490ed58
Merge pull request #30146 from bdach/lookup-users-endpoint
...
Fix currently online display hitting rate limits
2024-10-22 19:24:14 +09:00
Dean Herbert
3158338fe4
Merge pull request #30137 from bdach/send-mods-in-frame-headers
...
Send mods in spectator frame headers
2024-10-22 19:23:21 +09:00
Dean Herbert
187fa5eccd
Use full async
flow rather than ContinueWith
2024-10-22 18:48:01 +09:00
Dean Herbert
6ea1623889
Merge branch 'master' into lookup-users-endpoint
2024-10-22 18:48:00 +09:00
CloneWith
9940be818d
Add hover color back to ClickablePlaceholder
2024-10-21 21:09:26 +08:00
Dean Herbert
7ca5f91c15
Update signalr exceptions in line with deprecated ctor
2024-10-18 16:20:07 +09:00
Bartłomiej Dach
1744566def
Clarify xmldoc
2024-10-08 14:46:53 +02:00
Bartłomiej Dach
5104f3e7ac
Switch multiplayer away from using UserLookupCache
...
After switching `UserLookupCache` to `GET /users/lookup` from `GET
/users`, multiplayer sort of breaks, since the former endpoint does not
return `ruleset_statistics`, which are used in multiplayer to show
users' ranks. Therefore, switch multiplayer to use the appropriate
request type directly.
2024-10-08 14:46:50 +02:00
Bartłomiej Dach
3d06d67fec
Add GET /users/lookup
request type
2024-10-08 14:05:09 +02:00
Bartłomiej Dach
ec5f5a2336
Send mods in spectator frame headers
2024-10-07 13:45:34 +02:00
Dean Herbert
11fc811e2f
Fix delete dialogs having generic "Caution" header text
...
Regressed in https://github.com/ppy/osu/pull/28363 .
2024-10-07 16:46:53 +09:00
Dean Herbert
1039d4e45d
Increase chat font size again
2024-10-03 16:23:17 +09:00
Dean Herbert
598bc74614
Merge pull request #30058 from bdach/disabled-beatmap-comment-box
...
Properly disable comment box on things that cannot be commented on
2024-10-01 18:52:40 +09:00
Bartłomiej Dach
e91c8fb4bd
Properly disable comment box on beatmaps that cannot be commented on
...
Closes https://github.com/ppy/osu/issues/30052 .
Compare:
- 83816dbe24/resources/js/components/comment-editor.tsx (L54-L60)
- 83816dbe24/resources/js/components/comment-editor.tsx (L47-L52)
2024-09-30 11:02:00 +02:00
Dean Herbert
9647a1be7d
Ensure editor timestamp args are URL decoded
2024-09-27 20:08:38 +09:00
Dean Herbert
89e8baf1d3
Add inline comments for iOS locals
2024-09-26 16:48:42 +09:00
Dan Balasescu
3ab04d98f6
Fix Realm-related iOS crashes by removing object references
2024-09-25 16:45:37 +09:00
Dean Herbert
6fc60908c0
Trigger request failure on receiving a null response for a typed APIRequest
2024-09-05 01:00:23 +09:00
Bartłomiej Dach
8ffd4aa82c
Fix NRT inspections
2024-08-30 13:41:34 +02:00
Dean Herbert
2d745fb67e
Apply NRT to APIRequest
2024-08-30 18:35:31 +09:00
Dean Herbert
07611bd8f5
Use IAPIProvider
interface and correctly support scheduling from DummyAPIAccess
2024-08-30 18:35:31 +09:00
Dean Herbert
5836f497ac
Provide API context earlier to api requests in order to fix missing schedules
...
Closes https://github.com/ppy/osu/issues/29546 .
2024-08-30 18:10:36 +09:00
Dean Herbert
18a3ab2ffd
Use "link" instead of "URL"
2024-08-22 01:45:43 +09:00
Dean Herbert
4b279ecaa8
Fix mistake
2024-08-15 16:44:15 +09:00
Dean Herbert
26da2c0637
Update MultiplayerClient
test output with new knowledge
2024-08-15 16:16:48 +09:00
Dean Herbert
78ef436ea0
Update test debug output to test second scenario
2024-08-14 12:23:47 +09:00
Dean Herbert
3e634a14a4
Add temporary debug code for multiplayer test failures
2024-08-09 18:43:37 +09:00
Dean Herbert
8773c2f7eb
Merge pull request #29281 from kstefanowicz/multiplayer-chat-focus-hint
...
Add "enter" hint to in-gameplay chatbox placeholder text
2024-08-08 01:29:42 +09:00
Dan Balasescu
089ff559d3
Fix inspection
2024-08-08 00:42:31 +09:00
kstefanowicz
775f76f472
Have placeholder text change while focused
2024-08-07 07:47:35 -04:00
Dean Herbert
310def64f4
Merge branch 'master' into user-profile-daily-challenge-streak-display
2024-08-02 15:40:46 +09:00
Dean Herbert
7229ae83ea
Adjust sizing and distribution of timestamp and username
2024-07-30 18:03:56 +09:00
Dean Herbert
6670f79258
Reduce overall size of chat text
2024-07-30 18:03:56 +09:00
Bartłomiej Dach
48e38bd467
Merge pull request #29186 from peppy/fix-status-config
...
Fix online status not persisting correctly
2024-07-29 16:11:05 +02:00
Bartłomiej Dach
8b96b0b9e4
Add logging when starting and stopping watch operations in online metadata client
...
For future use with debugging issues like
https://github.com/ppy/osu/issues/29138 , hopefully.
2024-07-29 13:19:01 +02:00
Dean Herbert
11265538c4
Reset online status on logout
2024-07-29 20:06:30 +09:00
Dean Herbert
c142adf926
Fix online status not persisting correctly
...
Regressed at some point.
I don't see much reason not to link the bindable directly with config.
It seems to work as you'd expect. Tested with logout (resets to
"Online") and connection failure (persists).
Closes https://github.com/ppy/osu/issues/29173 .
2024-07-29 20:06:27 +09:00
Salman Ahmed
0c89210bd7
Add API models for daily challenge statistics
2024-07-28 05:24:05 +03:00
Dean Herbert
19affa7062
Rename new property to match true usage (per item)
...
Also document a bit more.
2024-07-26 20:45:13 +09:00
Dean Herbert
1ad0b31217
Add required pieces to MultiplayerPlaylistItemStats
for total score tracking
2024-07-26 19:04:04 +09:00
Bartłomiej Dach
3bb30d7ff9
Fix several missing properties on MultiplayerScore
...
You wouldn't think this would be an actual thing that can happen to us,
but it is. The most important one by far is `MaximumStatistics`; that
is the root cause behind why stuff like spinner ticks or slider tails
wasn't showing.
On a better day we should probably do cleanup to unify these models
better, but today is not that day.
2024-07-25 13:15:45 +02:00
Bartłomiej Dach
dd8be62d07
Merge pull request #28849 from frenzibyte/custom-profile-colour
...
Add custom hue support to user profile overlay
2024-07-22 09:41:32 +02:00
Salman Ahmed
102da0f98c
Remove incorrect [CanBeNull]
attribute
2024-07-17 23:58:38 +03:00
Bartłomiej Dach
2a601ce961
Also send version hash header under more accepted convention of name
2024-07-17 16:21:46 +02:00
Bartłomiej Dach
3006bae0d8
Send client-generated session GUID for identification purposes
...
This is the first half of a change that *may* fix
https://github.com/ppy/osu/issues/26338 (it definitely fixes *one case*
where the issue happens, but I'm not sure if it will cover all of them).
As described in the issue thread, using the `jti` claim from the JWT
used for authorisation seemed like a decent idea. However, upon closer
inspection the scheme falls over badly in a specific scenario where:
1. A client instance connects to spectator server using JWT A.
2. At some point, JWT A expires, and is silently rotated by the game in
exchange for JWT B.
The spectator server knows nothing of this, and continues to only
track JWT A, including the old `jti` claim in said JWT.
3. At some later point, the client's connection to one of the spectator
server hubs drops out. A reconnection is automatically attempted,
*but* it is attempted using JWT B.
The spectator server was not aware of JWT B until now, and said JWT
has a different `jti` claim than the old one, so to the spectator
server, it looks like a completely different client connecting, which
boots the user out of their account.
This PR adds a per-session GUID which is sent in a HTTP header on every
connection attempt to spectator server. This GUID will be used instead
of the `jti` claim in JWTs as a persistent identifier of a single user's
single lazer session, which bypasses the failure scenario described
above.
I don't think any stronger primitive than this is required. As far as I
can tell this is as strong a protection as the JWT was (which is to say,
not *very* strong), and doing this removes a lot of weird complexity
that would be otherwise incurred by attempting to have client ferry all
of its newly issued JWTs to the server so that it can be aware of them.
2024-07-17 15:56:41 +02:00
Salman Ahmed
3eaac11b44
Add profile hue attribute to API model
2024-07-13 11:26:45 +03:00
Dean Herbert
f0ad7a97cb
Merge branch 'master' into daily-challenge/better-results
2024-07-04 23:56:09 +09:00
Dean Herbert
aa72c09c3a
Merge pull request #28659 from bdach/daily-challenge/integration
...
Use room watching functionality to receive realtime daily challenge updates
2024-07-04 23:55:46 +09:00
Bartłomiej Dach
b29e535ca5
Add results screen for displaying arbitrary daily challenge scores
...
At this point its primary usage is the daily challenge event feed, but
the leaderboard will be using this too shortly.
Because the playlists results screen that exists in `master` is
hard-coupled to showing the *local user's* best result on a given
playlist by way of hard-coupling itself to the relevant API request,
allowing show of *arbitrary* score by ID requires a whole bunch of
subclassery as things stand. Oh well.
Class naming is... best effort, due to the above.
2024-07-04 13:45:24 +02:00
Dean Herbert
5f56ed6872
Merge branch 'master' into navigate-to-timestamp
2024-07-03 20:42:32 +09:00
Bartłomiej Dach
df97215298
Use room watching functionality to receive realtime daily challenge updates
2024-06-28 13:35:16 +02:00
Bartłomiej Dach
d6e7781be1
Add client/server models for allowing clients to receive realtime playlist updates
2024-06-27 11:32:18 +02:00
Bartłomiej Dach
0d2a47167c
Fix crash on calculating playlist duration when rate-changing mods are present
...
Regressed in https://github.com/ppy/osu/pull/28399 .
To reproduce, enter a playlist that has an item with a rate-changing mod
(rather than create it yourself).
This is happening because `APIRuleset` has `CreateInstance()`
unimplemented:
b4cefe0cc2/osu.Game/Online/API/Requests/Responses/APIBeatmap.cs (L159)
and only triggers when the playlist items in question originate from
web.
This is why it is bad to have interface implementations throw outside of
maybe mock implementations for tests. `CreateInstance()` is a scourge
elsewhere in general, we need way less of it in the codebase (because
while convenient, it's also problematic to implement in online contexts,
and also expensive because reflection).
2024-06-25 11:28:10 +02:00
Bartłomiej Dach
44b9a06639
Allow more lenient parsing of incoming timestamps
2024-06-18 13:13:50 +02:00
Bartłomiej Dach
6fb0cabf36
Add start date to Room
2024-06-12 11:43:18 +02:00
Bartłomiej Dach
f135a9a923
Make SelectedItem
externally mutable
...
Not being able to externally mutate this was making reuse in new daily
challenge screen unnecessarily arduous.
2024-06-10 12:44:38 +02:00
Salman Ahmed
6f729be573
Merge branch 'master' into LeaderBoardScore_clean
2024-06-07 22:42:49 +03:00
Dean Herbert
9c6e707f00
Adjust transitions
2024-06-07 17:04:16 +08:00
Dean Herbert
366ef64a2c
Apply NRT to UpdateableRank
2024-06-07 16:54:12 +08:00
Dean Herbert
7cbe93efc3
Refactor latest changes to avoid unnecessary call when mods not present
2024-06-07 10:37:27 +08:00
Xesquim
6e3bea938e
Instancing a Ruleset only when it's necessary to
2024-06-06 13:26:52 -03:00
Dean Herbert
dd3f4bcdab
Fix code quality and null handling
2024-06-07 00:01:50 +08:00
Xesquim
860afb8123
Creating method in ModUtils to calculate the rate for the song
2024-06-06 10:06:07 -03:00
Xesquim
7dd18a84f6
Fixing the GetTotalDuration in PlaylistExtesions
2024-06-05 12:25:33 -03:00
Dean Herbert
5dfeaa3c4a
Move dialog strings to more common class name
2024-05-31 11:46:32 +09:00
Dean Herbert
e52f524ea2
Use common header text
2024-05-31 11:44:53 +09:00
Dean Herbert
474ff5b99d
Use question mark for more grammatical correctness
...
Co-authored-by: Joseph Madamba <madamba.joehu@outlook.com>
2024-05-31 10:46:30 +09:00
Dean Herbert
87a331fdde
Improve text on external link warning dialog
2024-05-31 02:44:45 +09:00
Dean Herbert
f3bc944ac8
Remove using statement
2024-05-30 17:45:32 +09:00
Dean Herbert
36d7775032
Fix typo in IAPIProvider
xmldoc
2024-05-30 17:38:05 +09:00
Dean Herbert
2f2bc8e52e
Avoid ChatAckRequest
failures flooding console in OsuGameTestScene
s
2024-05-30 17:37:55 +09:00
Bartłomiej Dach
ab01fa6d45
Add xmldoc to APIAccess.APIVersion
2024-05-29 14:10:07 +02:00
Bartłomiej Dach
cc13655617
Derive API response version from game version
...
(Or local date, in the case of non-deployed builds).
Came up when I was looking at https://github.com/ppy/osu-web/pull/11240
and found that we were still hardcoding this.
Thankfully, this *should not* cause issues, since there don't seem to be
any (documented or undocumented) API response version checks for
versions newer than 20220705 in osu-web master.
For clarity and possible debugging needs, the API response version is
also logged.
2024-05-29 14:10:01 +02:00
Dean Herbert
740a3377fa
Merge branch 'master' into LeaderBoardScore_clean
2024-05-27 17:18:41 +09:00
Salman Ahmed
2c18c10ac8
Move to SelectV2
namespace
2024-05-25 17:20:10 +03:00
Salman Ahmed
d395c85418
Adjust right content width based on scoring mode
2024-05-25 17:16:41 +03:00
Salman Ahmed
5955378004
Replace "X mods" text with a pill indicator
2024-05-25 16:11:24 +03:00
Salman Ahmed
35af518fdb
Remove expanded/contracted states and limit to 5 mods
...
Also adjusts right content width to contain those 5 mods. Not sure how to handle the extra space in the score though...to be dealt with later.
2024-05-25 12:52:48 +03:00
Bartłomiej Dach
61a415fed2
Add client/server models & operations for "daily challenge" feature
2024-05-17 10:58:08 +02:00
Joseph Madamba
9b84d8ac2f
Apply missed changes from old leaderboard score
...
See:
- d11e56b8bb
- 7d74d84e6c
- 07f9f5c6d8
2024-05-12 22:39:22 -07:00
Joseph Madamba
736e15ab26
Improve fluidity states
2024-05-12 22:21:50 -07:00
Joseph Madamba
e8967ff3c5
Lower username font size a bit
2024-05-10 22:14:41 -07:00
Joseph Madamba
8a474f7d22
Fix broken avatar masking when hiding
2024-05-10 22:14:41 -07:00
Joseph Madamba
d0c8b55a0a
Fix fluidity desync by not autosizing right (total score) content
2024-05-10 22:14:41 -07:00
Bartłomiej Dach
c9414da5d4
Merge branch 'master' into pre-mod-multiplier-score
2024-05-08 13:39:44 +02:00
Bartłomiej Dach
7d31af6f16
Fix room status not updating when password is changed while inside the room
2024-05-03 11:37:09 +02:00
Bartłomiej Dach
221b4cd599
Remove unused cache
2024-05-03 11:37:09 +02:00
Dean Herbert
7141177966
Better signify private rooms by showing a different status pill design
2024-05-03 17:17:35 +08:00
Dean Herbert
42e49067e5
Move Room.Status
updates to a common location
2024-05-03 17:10:59 +08:00
Joseph Madamba
2d4f2245ee
Remove total score border gradient
2024-05-02 23:00:04 -07:00
Joseph Madamba
32df6991ad
Remove dark border and update cover gradient
2024-04-28 23:12:55 -07:00
Joseph Madamba
4c4621eb58
Fix compile errors
2024-04-28 23:12:48 -07:00
Dean Herbert
c900c0c01c
Merge branch 'master' into LeaderBoardScore_clean
2024-04-28 13:51:29 +08:00
Bartłomiej Dach
e11e9fe14f
Add TotalScoreWithoutMods
to SoloScoreInfo
...
End goal being storing it server-side.
2024-04-17 09:15:51 +02:00
Dan Balasescu
b5adcf2e0e
Fix SpectatorClient holding references to Player
2024-04-03 17:32:02 +09:00
Dean Herbert
9474156df4
Improve equality implementations
2024-03-26 20:21:12 +08:00
Dean Herbert
057f86dd14
Add handling of expiration
2024-03-25 14:31:05 +08:00
Dean Herbert
f0614928b1
Read from new location
2024-03-25 13:19:12 +08:00
Dean Herbert
ec4a9a5fdd
Make work again for simple case
2024-03-24 14:55:45 +08:00
Dean Herbert
ef2a16dd8f
Various renaming and class updates to allow multiple menu banners
2024-03-24 14:55:43 +08:00
Bartłomiej Dach
f30dfcb728
Fix ruleset medals not displaying due to deserialisation failure
...
🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦
Reported in
https://discord.com/channels/188630481301012481/188630652340404224/1216812697589518386 .
2024-03-11 21:34:10 +01:00
Dean Herbert
29a37e3585
Merge pull request #27491 from bdach/f-rank-appearance
...
Update F rank badge colours to match latest designs
2024-03-06 18:55:20 +08:00
Dean Herbert
85364d25dc
Merge pull request #27276 from bdach/medals
...
Add flow for displaying achieved medals
2024-03-06 12:31:55 +08:00
Berkan Diler
6fabbe2616
Use new ToDictionary() overload without delegates
2024-03-05 10:27:12 +01:00
Bartłomiej Dach
6080c14dd5
Update F rank badge colours to match latest designs
2024-03-04 14:47:49 +01:00
Salman Ahmed
8f97f0503f
Move away from Solo
namespace
2024-02-29 01:21:17 +03:00
Dean Herbert
fe59a3b9be
Merge branch 'master' into medals
2024-02-26 22:49:55 +08:00
Bartłomiej Dach
eac4c5f69d
Rename {Solo -> User}StatisticsWatcher
et al.
...
The "solo" prefix is a bit unbecoming now. The updates are not only
for solo.
2024-02-22 20:36:24 +01:00
Bartłomiej Dach
57bb0b85a1
Merge pull request #27107 from Joehuu/rank-highest-tooltip
...
Add highest rank tooltip to global rank display
2024-02-22 09:08:22 +01:00
Bartłomiej Dach
48bf9680e1
Add new structures for receiving new medal data
2024-02-20 16:31:31 +01:00
Bartłomiej Dach
4a314a8e31
Namespacify data structures used in websocket communications
2024-02-20 16:31:31 +01:00
Dean Herbert
71afb8881a
Merge pull request #27199 from EVAST9919/link-compiler-alloc
...
Fix `DrawableLinkCompiler` allocations
2024-02-18 04:04:34 +08:00
Andrei Zavatski
b0f334c39e
Fix DrawableLinkCompiler allocations
2024-02-17 00:45:30 +03:00