1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-14 15:17:27 +08:00
Commit Graph

68158 Commits

Author SHA1 Message Date
Dean Herbert
d914b990f3
Update framework 2024-07-20 14:08:00 +09:00
Bartłomiej Dach
2bd4a5e16b
Merge pull request #28949 from peppy/hold-off-incompatibility
Make "Hold Off" and "No Release" mod incompatible
2024-07-19 14:36:45 +02:00
Bartłomiej Dach
41bad54313
Merge pull request #28948 from peppy/editor-blah
Minor editor design tweaks
2024-07-19 13:49:42 +02:00
Bartłomiej Dach
27000aa8ed
Merge branch 'master' into editor-blah 2024-07-19 13:42:40 +02:00
Salman Ahmed
ce0397aaef
Merge branch 'master' into hold-off-incompatibility 2024-07-19 14:38:10 +03:00
Dan Balasescu
ad564f31cb
Merge pull request #28947 from peppy/fix-playlist-item-panel
Fix various visuals of playlist beatmap panels
2024-07-19 20:12:40 +09:00
Dean Herbert
f500abd4f7 Make "Hold Off" and "No Release" mod incompatible 2024-07-19 14:08:39 +03:00
Dean Herbert
c2cc85e6f0
Use purple again for kiai time specifically 2024-07-19 19:59:38 +09:00
Dean Herbert
c4de2bbb60
Ignore "too many ticks" in timeline (triggers in normal cases) 2024-07-19 19:57:47 +09:00
Dean Herbert
5ee645ac8f
Increase opacity of control points slightly 2024-07-19 19:50:21 +09:00
Dean Herbert
d9297438ba
Merge pull request #28900 from smoogipoo/fix-more-tests
Fix more test failures
2024-07-19 19:38:52 +09:00
Dean Herbert
f11f01f9b7
Fix various visuals of playlist beatmap panels
Supersedes https://github.com/ppy/osu/pull/28907.

- Fix border being fat
- Fix thumbnail not masking correctly
- Fix background layer not being correctly fit to the panel
- Dim the main background on hover
- Minor tweaks to dimming
2024-07-19 19:26:04 +09:00
Dan Balasescu
6553122361
Merge pull request #28946 from peppy/fix-carousel-pause
Fix beatmap carousel performance regression with large databases
2024-07-19 19:17:40 +09:00
Dan Balasescu
5af39aad00
Add beatmap name to log string
Makes it easy to compare this line versus the one in
OsuGame.PresentBeatmap(). At the moment it's just GUID which is... not
useful!
2024-07-19 19:02:41 +09:00
Dan Balasescu
7a4758d8cc
Attempt to fix TestSelectableMouseHandling test failure
https://github.com/ppy/osu/pull/28900/checks?check_run_id=27652166871

This is an attempt. Going frame-by-frame I noticed that there's one
frame in which the text is loaded but the
FillFlowContainer/GridContainer haven't properly validated so the text
is not positioned correctly (it's overflowing the panel to the left). If
the cursor is moved at this exact time, then it may not be properly
positioned for the following assertion, even though it is _somewhere_ on
the panel.

If the above is the case, then this is a known o!f issue, but not a
simple one to solve.

I haven't reproed this locally.
2024-07-19 17:49:16 +09:00
Dean Herbert
0f29ed618a
Don't attempt to clear the carousel during realm blocking operation 2024-07-19 17:39:47 +09:00
Dean Herbert
0560214d5b
Fix beatmap carousel performance regression with large databases 2024-07-19 17:39:47 +09:00
Dean Herbert
fb5a1ecb4e
Merge pull request #28944 from bdach/mania-crash
Fix crash when adding mania notes right after changing timing point
2024-07-19 16:58:54 +09:00
Bartłomiej Dach
4dd225fdc8
Fix compose blueprint container not unsubscribing from event
Closes https://github.com/ppy/osu/issues/28938.

This is related to reloading the composer on timing point changes in
scrolling rulesets. The lack of unsubscription from this would cause
blueprints to be created for disposed composers via the
`hitObjectAdded()` flow.

The following line looks as if a sync load should be forced on a newly
created placement blueprint:

    da4d37c4ad/osu.Game/Screens/Edit/Compose/Components/ComposeBlueprintContainer.cs (L364)

however, it is not the case if the parent
(`placementBlueprintContainer`) is disposed, which it would be in this
case. Therefore, the blueprint stays `NotLoaded` rather than `Ready`,
therefore it never receives its DI dependencies, therefore it dies on
an `EditorBeatmap` nullref.
2024-07-19 08:32:36 +02:00
Dan Balasescu
30b5825549
Merge pull request #28942 from bdach/aaaaaaaaaaaaaaaaaaaaaaaa
Fix skipping to next track not working
2024-07-19 15:23:24 +09:00
Bartłomiej Dach
da4d37c4ad
Merge pull request #28936 from frenzibyte/fix-beatmap-atttributes-display
Fix degraded performance when changing mod settings on a large beatmap
2024-07-19 08:10:43 +02:00
Dan Balasescu
d7ae9505b2
Fix TestCancelNavigationToEditor test failure
https://github.com/ppy/osu/actions/runs/10002179087/job/27648253709

The editor could be pushed before the exit actually
occurs.
2024-07-19 15:04:21 +09:00
Bartłomiej Dach
79cf644b8d
Enable NRT while we're here 2024-07-19 07:34:00 +02:00
Bartłomiej Dach
9fe6354afc
Fix backwards conditional 2024-07-19 07:32:36 +02:00
Bartłomiej Dach
73edb32440
Add failing test coverage 2024-07-19 07:30:57 +02:00
Bartłomiej Dach
a06bcd74c7
Merge branch 'master' into fix-beatmap-atttributes-display 2024-07-19 07:04:01 +02:00
Dean Herbert
124bc9c43b
Merge pull request #28937 from frenzibyte/fix-selection-box-visibility
Fix selection box being initially visible on top-left corner in skin editor
2024-07-19 13:58:07 +09:00
Dan Balasescu
614a64c873
Merge branch 'master' into fix-selection-box-visibility 2024-07-19 13:40:15 +09:00
Dean Herbert
b151bc67d0
Merge pull request #28934 from frenzibyte/disable-trailing-comma-inspection
Disable multi-line trailing comma inspections entirely
2024-07-19 12:37:01 +09:00
Salman Ahmed
2ad8eeb918 Fix beatmap attributes display in mod select recreating star difficulty bindable every setting change 2024-07-19 03:25:26 +03:00
Salman Ahmed
dd2454ba10 Disable trailing comma inspections entirely 2024-07-19 03:17:50 +03:00
Salman Ahmed
a570949459 Fix selection box initialy visible despite no items selected 2024-07-19 03:00:44 +03:00
Dan Balasescu
3f4e56be3c
Fix TestPostAsOwner test failure
https://github.com/smoogipoo/osu/actions/runs/9990112749/job/27610257309

Comments are loaded asynchronously, both from the initial request and
the following message-post request. By sheer timing luck, these could be
out of order and the assertion on the posted message could fail.
2024-07-18 20:54:05 +09:00
Dan Balasescu
868604ca04
Merge pull request #28908 from peppy/fix-dead-padding
Fix tab extension dropdown having dead non-clickable hover area
2024-07-18 19:47:32 +09:00
Dean Herbert
70985d3b22
Remove margin completely 2024-07-18 19:01:52 +09:00
Dan Balasescu
6be9ce548d
Merge pull request #28905 from mcendu/no-release-hold-light-fix
Fix hold note light lingering with No Release
2024-07-18 18:42:16 +09:00
Dean Herbert
c9517aeebf
Fix tab extension dropdown having dead non-clickable hover area
Closes https://github.com/ppy/osu/issues/28899.
2024-07-18 18:37:07 +09:00
Dan Balasescu
33a81d8181
Use constraint to improve assertion message 2024-07-18 18:34:08 +09:00
Nathan Du
00ed7a7a2f Fix hold note light lingering with No Release
Turns out endHold() is not called in the Tail.IsHit branch of the
hold notes' CheckForResult method.
2024-07-18 16:08:30 +08:00
Dan Balasescu
f3cd3d7d3b
Fix TestAllSamplesStopDuringSeek test failure
https://github.com/smoogipoo/osu/actions/runs/9986761756/job/27599851263

This is a bit of a workaround, likely timing related. I don't foresee an
until step in this case to cause false-passes.
2024-07-18 16:26:42 +09:00
Dan Balasescu
7bb680a8a4
Raise workflow timeout time
https://github.com/ppy/osu/actions/runs/9985890747/job/27597500883
2024-07-18 16:26:40 +09:00
Dan Balasescu
1906c2f725
Fix TestTouchScreenDetectionAtSongSelect test failure
https://github.com/ppy/osu/actions/runs/9985890747/job/27597501295

In this case, the settings overlay is taking a very long time to load
(on a background thread), and pops in when it finishes loading because
it's been requested to open.

The opens the settings overlay, closes it (by pressing escape, this does
not actually close it because it's not loaded yet), and then enters song
select by pressing 'P' 3 times. The settings overlay finishes loading at
just the right opportune moment to eat one of the 'P' key presses.
2024-07-18 16:26:16 +09:00
Dan Balasescu
3a1c05337d
Merge pull request #28898 from frenzibyte/fix-argon-health-display-tests
Fix intermittent test failure in `TestSceneArgonHealthDisplay`
2024-07-18 14:11:54 +09:00
Salman Ahmed
7a39435017 Fix intermitent test failure in TestSceneArgonHealthDisplay 2024-07-18 01:20:50 +03:00
Dean Herbert
99c5025de8
Merge pull request #28892 from bdach/better-client-identifier
Send client-generated session GUID for identification purposes
2024-07-18 01:07:40 +09: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
Dean Herbert
d32fef8aee
Merge pull request #28891 from frenzibyte/fix-storyboard-positioning
Fix storyboard sprites leaving gaps on edges when "beatmap skins" is enabled
2024-07-17 22:56:27 +09:00
Dean Herbert
84a36a409b
Merge pull request #28890 from bdach/protected-beatmaps-begone
Exclude protected beatmaps from consideration in several places
2024-07-17 22:24:08 +09:00
Salman Ahmed
c4141fff07 Fix storyboard sprites leaving gaps on edges when resolving from an atlas 2024-07-17 14:47:17 +03:00