File tree 2 files changed +20
-1
lines changed
2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -28,7 +28,8 @@ class ScoreLink extends Model
28
28
public static function complete (ScoreToken $ token , array $ params ): static
29
29
{
30
30
return \DB ::transaction (function () use ($ params , $ token ) {
31
- $ score = Score::createFromJsonOrExplode ($ params );
31
+ // multiplayer scores are always preserved.
32
+ $ score = Score::createFromJsonOrExplode ([...$ params , 'preserve ' => true ]);
32
33
33
34
$ playlistItem = $ token ->playlistItem ;
34
35
$ requiredMods = array_column ($ playlistItem ->required_mods , 'acronym ' );
Original file line number Diff line number Diff line change @@ -176,4 +176,22 @@ public function testUnexpectedModAcceptedIfAlwaysValidForSubmission()
176
176
'user_id ' => $ scoreToken ->user_id ,
177
177
]);
178
178
}
179
+
180
+ public function testFailedMultiplayerScoresArePreserved ()
181
+ {
182
+ $ playlistItem = PlaylistItem::factory ()->create ();
183
+ $ scoreToken = ScoreToken::factory ()->create ([
184
+ 'beatmap_id ' => $ playlistItem ->beatmap_id ,
185
+ 'playlist_item_id ' => $ playlistItem ,
186
+ ]);
187
+
188
+ $ scoreLink = ScoreLink::complete ($ scoreToken , [
189
+ ...static ::$ commonScoreParams ,
190
+ 'beatmap_id ' => $ playlistItem ->beatmap_id ,
191
+ 'ruleset_id ' => $ playlistItem ->ruleset_id ,
192
+ 'user_id ' => $ scoreToken ->user_id ,
193
+ 'passed ' => false ,
194
+ ]);
195
+ $ this ->assertTrue ($ scoreLink ->score ->preserve );
196
+ }
179
197
}
You can’t perform that action at this time.
0 commit comments