1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-10 14:57:21 +08:00

44659 Commits

Author SHA1 Message Date
Bartłomiej Dach
8f48682d0a
Remove hide sample toggle
In line with feedback from
https://github.com/ppy/osu/pull/29896#issuecomment-2378676851.
2024-11-01 18:44:24 +01:00
Dan Balasescu
ef22b6b1a8
Round to integral units
The rounding matches the implementation of `PerformancePointsCounter`.
2024-11-01 22:43:52 +09:00
Bartłomiej Dach
3dc2408965
Merge branch 'master' into bat-max-performance 2024-11-01 13:13:20 +01:00
cdwcgt
1a92e5ad19
remove CreateAPIRelationFromAPIUser 2024-11-01 19:24:58 +08: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
Bartłomiej Dach
1b5d1347aa
Merge branch 'master' into bat-mods 2024-11-01 11:27:06 +01:00
Bartłomiej Dach
5f63950598
Add missing disposal 2024-11-01 11:26:59 +01:00
Dan Balasescu
9766d51559
Store attribute to the database 2024-11-01 16:02:02 +09:00
cdwcgt
9e4c382a61
add tooltips 2024-11-01 14:43:00 +08:00
cdwcgt
3bd116cd65
typo 2024-11-01 14:42:50 +08:00
cdwcgt
29ba13fe77
store follower count locally 2024-11-01 14:06:23 +08:00
cdwcgt
0b2f4facac
add test 2024-11-01 14:05:24 +08:00
cdwcgt
45cc830aee
logic in FollowersButton 2024-11-01 12:54:13 +08:00
cdwcgt
350e1d6332
add ability to shou loading layer and set icon for followersButton 2024-11-01 12:53:57 +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
Dan Balasescu
372162de5d
Ignore casing when matching mods acronyms 2024-10-31 08:55:42 +09:00
Bartłomiej Dach
7e3564cb4a
Bring back matching by filename when performing online metadata lookups 2024-10-30 10:25:20 +01:00
Luke Knight
0f61e19857 Fixed formatting for InspectCode 2024-10-30 03:02:51 -05:00
Bartłomiej Dach
2b0fd3558f
Remove more no-longer-required checks
The scenario that remaining guard was trying to protect against is
obviated by and no longer possible after
776fabd77c5a6225e69a0b14e79b9e097692320c.
2024-10-30 08:44:23 +01:00
Bartłomiej Dach
0e52797f29
Prefer not deleted models when picking model instances for reuse when importing
This fell out while investigating why the issue with online IDs
mismatching in the `.osu` could be worked around by importing the map
three times in total when starting from it not being available locally.

Here follows an explanation of why that "helped".

Import 1:
- The beatmap set is imported normally.
- Online metadata population sees the online ID mismatch and resets it
  on the problematic beatmap.

Import 2:
- The existing beatmap set is found, but deemed not reusable
  because of the single beatmap having its ID reset to -1.
- The existing beatmap set is marked deleted, and all the IDs of
  its beatmaps are reset to -1.
- The beatmap set is reimported afresh.
- Online metadata population still sees the online ID mismatch
  and resets it on the problematic beatmap.

Note that at this point the first import *is still physically present
in the database* but marked deleted.

Import 3:
- When trying to find the existing beatmap set to see if it can be
  reused, *the one pending deletion and with its IDs reset -
  - the remnant from import 1 - is returned*.
- Because of this, `validateOnlineIds()` resets online IDs
  *on the model representing the current reimport*.
- The beatmap set is reimported yet again.
- With the online ID reset, the online metadata population check for
  online ID mismatch does not run because *the IDs were reset to -1*
  earlier.

Preferring undeleted models when picking the model instance for reuse
prevents this scenario.
2024-10-30 08:18:44 +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
Luke Knight
b42fa23e42 Prevent key bind conflict on reversion 2024-10-30 02:04:03 -05:00
Bartłomiej Dach
1a2e323c11
Remove problematic online ID check 2024-10-30 07:40:08 +01:00
Dan Balasescu
904b76b9d7
Merge pull request #30424 from bdach/wtf-wtf-wtf-wtf
Do not fall back to beatmap's original ruleset if conversion fails
2024-10-28 17:14:19 +09:00
StanR
86989aa5ce Fix UserRankPanel rank overflowing on 6+ digits 2024-10-27 13:40:29 +05:00
Salman Alshamrani
0e65655fef Remove redundant condition in else branch
Yep.
2024-10-25 23:15:17 -04:00
Bartłomiej Dach
09582aa653
Merge pull request #30413 from peppy/slider-bar-focus
Adjust slider bar implementations to show focused state
2024-10-25 21:51:54 +02:00
Bartłomiej Dach
b78e7d5d9a
Fix multiplayer song select not correctly applying filter sometimes
Fixes the root client-side failure causing
https://github.com/ppy/osu/issues/30415.

Thread of breakage is as follows:

1. `SongSelect` loads the carousel.
   At this point, the ruleset is what the ambient ruleset would have
   been at the time of pushing song select, so most likely it will
   match the current ruleset.
   Notably, the carousel is loaded with `AllowSelection == false`.
2. `OnlinePlaySongSelect` sets the ruleset to the one taken from
   the relevant playlist item in `LoadComplete()`.
3. At any point between the previous and the next step, the user
   changes the ruleset manually.
4. `SongSelect.carouselBeatmapsLoaded()` is ran, which calls
   `transferRulesetValue()`, which calls `FilterControl.FilterChanged`.
   But at this stage `Carousel.AllowSelection` is still false, so
   the filter is not executed, but `pendingFilterApplication` is set
   instead.
   Unfortunately, the pending filter never gets applied after that.
   The only place that checks that flag is `OnEntering()`, which at
   this point has already ran.

To fix, move the `pendingFilterApplication` check to `Update()`, which
seems like the most obvious and safe solution.
2024-10-25 21:29:53 +02:00
Bartłomiej Dach
e96d593b1f
Fix redundant array type specification 2024-10-25 19:58:31 +02:00
Bartłomiej Dach
b72a50bbaa
Merge pull request #30387 from peppy/editor-sidebars-always-expanded
Keep editor sidebars expanded by default
2024-10-25 19:46:35 +02:00
Jamie Taylor
f5071c205f
Increase ducking duration when selecting Mania ruleset 2024-10-26 01:45:51 +09:00
Bartłomiej Dach
9902c22f5c
Do not fall back to beatmap's original ruleset if conversion fails
I don't know why this was ever a good idea, and would say that we want
this to fail *hard* not soft. If things ever get in this state, things
have gone *seriously* wrong elsewhere, and need to be fixed there.
2024-10-25 13:16:24 +02:00
Dean Herbert
68e8819f3b
Fix taiko playfield looking weird with new editor toolbox displays 2024-10-25 17:17:19 +09:00
Dean Herbert
1fc221bb39
Fix focus glow appearing above range slider's nubs 2024-10-25 16:13:02 +09:00
Dean Herbert
c666fa7472
Update framework 2024-10-25 16:09:08 +09:00
Salman Alshamrani
1d559b2cad Remove fade transitions 2024-10-24 16:20:49 -04:00
OliBomby
eb61da4232 only consider hit objects which are visible in timeline for contracted state 2024-10-24 21:22:09 +02:00
Dean Herbert
6e8400a958
Fix gap in ShearedSliderBar when focused 2024-10-24 20:37:38 +09:00
OliBomby
88e88bdc4f Fix addition banks disabled on reset 2024-10-24 13:17:49 +02:00
OliBomby
5b92a9ff59 Fix enabled state not updating drawable 2024-10-24 13:15:09 +02:00
Dean Herbert
940220b649
Fix big oops 2024-10-24 19:57:39 +09:00
Dean Herbert
6dd1efa013
Adjust slider bar implementations to show focused state 2024-10-24 19:46:20 +09:00
Dean Herbert
787d3dceea
Merge branch 'master' into auto-addition2 2024-10-24 18:40:27 +09:00
Dean Herbert
77bd0e8d70
Add visual disabled state to ternary buttons 2024-10-24 18:36:34 +09:00
Dean Herbert
61f0cfd688
Make flow more async to avoid any chance of deadlocks 2024-10-24 17:56:51 +09:00
Salman Alshamrani
6e9ff49e59
Merge branch 'master' into editor-slider-touch-support-2 2024-10-23 17:02:38 -04:00
Salman Alshamrani
3a4d5af83e Fix placement blueprints sometimes not behaving correctly with touch input
More specifically, this fixes placement blueprints not beginning placement when using touch input while the cursor was previously outside compose area, due to the placement blueprint not existing (removed from the scene by `ComposeBlueprintContainer`).
2024-10-23 16:51:21 -04:00