Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions global.json

This file was deleted.

16 changes: 16 additions & 0 deletions osu.Android.props
Original file line number Diff line number Diff line change
Expand Up @@ -153,4 +153,20 @@
</ResolvedFileToPublish>
</ItemGroup>
</Target>
<PropertyGroup>
<!-- Suppress harmless SDK-level warnings for native libraries that are manually patched. -->
<AndroidPageSize16KBCompatibilityCheck>false</AndroidPageSize16KBCompatibilityCheck>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<!-- Disable ELF alignment patching in Release to prevent APK signature corruption. -->
<PatchElfPageSizeEnabled>false</PatchElfPageSizeEnabled>
<!-- Root Microsoft.CSharp to prevent XACAS7023 DirectoryNotFoundException. -->
<AndroidLinkSkip>$(AndroidLinkSkip);Microsoft.CSharp</AndroidLinkSkip>
</PropertyGroup>

<ItemGroup Condition="'$(Configuration)' == 'Release'">
<!-- Explicitly reference Microsoft.CSharp for the trimmer. -->
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" NoWarn="NU1510" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion osu.Android/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
reaches DispatchKeyEvent and the OS default for root-task activities (moveTaskToBack,
i.e. minimise) takes over instead.
-->
<application android:allowBackup="true" android:supportsRtl="true" android:label="osu!" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher" android:largeHeap="true" android:hardwareAccelerated="true" android:extractNativeLibs="false" android:enableOnBackInvokedCallback="false" android:appCategory="game">
<application android:allowBackup="true" android:supportsRtl="true" android:label="osu!" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher" android:largeHeap="true" android:hardwareAccelerated="true" android:extractNativeLibs="true" android:enableOnBackInvokedCallback="false" android:appCategory="game">
<provider android:name="androidx.core.content.FileProvider" android:authorities="sh.ppy.osulazer.fileprovider" android:grantUriPermissions="true" android:exported="false">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" />
</provider>
Expand Down
5 changes: 4 additions & 1 deletion osu.Game/Online/Spectator/SpectatorClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,10 @@ public void BeginPlaying(long? scoreToken, GameplayState state, Score score)
Schedule(() =>
{
if (isPlaying)
throw new InvalidOperationException($"Cannot invoke {nameof(BeginPlaying)} when already playing");
{
Logger.Log("BeginPlaying called while already playing; ignoring.", LoggingTarget.Network);
return;
}

// transfer state at point of beginning play
currentState.BeatmapID = score.ScoreInfo.BeatmapInfo!.OnlineID;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ protected override void Update()
if (currentDisplay == lastDisplayed)
return;

if (lastDisplayed >= 0)
if (lastDisplayed >= 0 && lastDisplayed < content.Count)
{
content[lastDisplayed].FadeOutFromOne(250, Easing.OutQuint);
navigationFlow[lastDisplayed].Active.Value = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

using System.Linq;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Screens;
using osu.Game.Beatmaps.Drawables.Cards;
using osu.Game.Configuration;
Expand All @@ -18,8 +19,6 @@ public partial class NewDailyChallengeNotification : SimpleNotification
{
private readonly Room room;

private BeatmapCardNano card = null!;

public NewDailyChallengeNotification(Room room)
{
this.room = room;
Expand All @@ -30,8 +29,15 @@ private void load(OsuGame? game, SessionStatics statics)
{
Text = DailyChallengeStrings.ChallengeLiveNotification;
var playlistItem = room.Playlist.FirstOrDefault();

if (playlistItem != null)
Content.Add(card = new BeatmapCardNano((APIBeatmapSet)playlistItem.Beatmap.BeatmapSet!));
{
Content.Add(new BeatmapCardNano((APIBeatmapSet)playlistItem.Beatmap.BeatmapSet!)
{
RelativeSizeAxes = Axes.X,
});
}

Activated = () =>
{
if (statics.Get<bool>(Static.DailyChallengeIntroPlayed))
Expand All @@ -42,11 +48,5 @@ private void load(OsuGame? game, SessionStatics statics)
return true;
};
}

protected override void Update()
{
base.Update();
card.Width = Content.DrawWidth;
}
}
}
38 changes: 20 additions & 18 deletions osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ public void RemoveUser(APIUser user)
{
Debug.Assert(ServerRoom != null);

ServerRoom.Users.Remove(ServerRoom.Users.Single(u => u.UserID == user.Id));
ServerRoom.Users.Remove(ServerRoom.Users.First(u => u.UserID == user.Id));
((IMultiplayerClient)this).UserLeft(clone(new MultiplayerRoomUser(user.Id)));

if (ServerRoom.Users.Any())
Expand All @@ -165,7 +165,7 @@ public void ChangeUserState(int userId, MultiplayerUserState newState)
{
Debug.Assert(ServerRoom != null);

var user = ServerRoom.Users.Single(u => u.UserID == userId);
var user = ServerRoom.Users.First(u => u.UserID == userId);
user.State = clone(newState);

((IMultiplayerClient)this).UserStateChanged(clone(userId), clone(user.State));
Expand Down Expand Up @@ -224,7 +224,7 @@ public void ChangeUserBeatmapAvailability(int userId, BeatmapAvailability newBea
{
Debug.Assert(ServerRoom != null);

var user = ServerRoom.Users.Single(u => u.UserID == userId);
var user = ServerRoom.Users.First(u => u.UserID == userId);
user.BeatmapAvailability = newBeatmapAvailability;

((IMultiplayerClient)this).UserBeatmapAvailabilityChanged(clone(userId), clone(user.BeatmapAvailability));
Expand All @@ -238,7 +238,7 @@ protected override async Task<MultiplayerRoom> JoinRoomInternal(long roomId, str
roomId = clone(roomId);
password = clone(password);

ServerAPIRoom = ServerSideRooms.Single(r => r.RoomID == roomId);
ServerAPIRoom = ServerSideRooms.First(r => r.RoomID == roomId);

if (password != ServerAPIRoom.Password)
throw new InvalidOperationException("Invalid password.");
Expand Down Expand Up @@ -301,7 +301,7 @@ public override Task TransferHost(int userId)

Debug.Assert(ServerRoom != null);

ServerRoom.Host = ServerRoom.Users.Single(u => u.UserID == userId);
ServerRoom.Host = ServerRoom.Users.First(u => u.UserID == userId);

return ((IMultiplayerClient)this).HostChanged(clone(userId));
}
Expand All @@ -312,7 +312,7 @@ public override Task KickUser(int userId)

Debug.Assert(ServerRoom != null);

var user = ServerRoom.Users.Single(u => u.UserID == userId);
var user = ServerRoom.Users.First(u => u.UserID == userId);
ServerRoom.Users.Remove(user);

return ((IMultiplayerClient)this).UserKicked(clone(user));
Expand Down Expand Up @@ -377,7 +377,7 @@ public void ChangeUserStyle(int userId, int? beatmapId, int? rulesetId)
{
Debug.Assert(ServerRoom != null);

var user = ServerRoom.Users.Single(u => u.UserID == userId);
var user = ServerRoom.Users.First(u => u.UserID == userId);
user.BeatmapId = beatmapId;
user.RulesetId = rulesetId;

Expand All @@ -391,7 +391,7 @@ public void ChangeUserMods(int userId, IEnumerable<APIMod> newMods)
{
Debug.Assert(ServerRoom != null);

var user = ServerRoom.Users.Single(u => u.UserID == userId);
var user = ServerRoom.Users.First(u => u.UserID == userId);
user.Mods = newMods.ToArray();

((IMultiplayerClient)this).UserModsChanged(clone(userId), clone(user.Mods));
Expand Down Expand Up @@ -810,26 +810,28 @@ private async Task updatePlaylistOrder(MultiplayerRoom room)

// Also ensure that the API room's playlist is correct.
foreach (var item in ServerAPIRoom.Playlist)
item.PlaylistOrder = ServerRoom.Playlist.Single(i => i.ID == item.ID).PlaylistOrder;
item.PlaylistOrder = (ServerRoom.Playlist.FirstOrDefault(i => i.ID == item.ID) ?? new MultiplayerPlaylistItem { ID = item.ID }).PlaylistOrder;
}

private T clone<T>(T incoming)
{
byte[] serialized = MessagePackSerializer.Serialize(typeof(T), incoming, SignalRUnionWorkaroundResolver.OPTIONS);
var result = MessagePackSerializer.Deserialize<T>(serialized, SignalRUnionWorkaroundResolver.OPTIONS);

if (incoming is MultiplayerRoomUser { User: { } } sourceUser && result is MultiplayerRoomUser targetUser) targetUser.User = sourceUser.User;

if (incoming is MultiplayerRoom sourceRoom && result is MultiplayerRoom targetRoom)
if (incoming is MultiplayerRoomUser sourceUser && result is MultiplayerRoomUser targetUser)
{
foreach (var user in targetRoom.Users)
user.User = sourceRoom.Users.FirstOrDefault(u => u.UserID == user.UserID)?.User;

targetRoom.Host?.User = sourceRoom.Host?.User;
targetUser.User = sourceUser.User;
}
else if (incoming is MultiplayerRoomUser sourceSingleUser && result is MultiplayerRoomUser targetSingleUser)
else if (incoming is MultiplayerRoom sourceRoom && result is MultiplayerRoom targetRoom)
{
targetSingleUser.User = sourceSingleUser.User;
for (int i = 0; i < sourceRoom.Users.Count; i++)
{
if (i < targetRoom.Users.Count)
targetRoom.Users[i].User = sourceRoom.Users[i].User;
}

if (targetRoom.Host != null && sourceRoom.Host != null)
targetRoom.Host.User = sourceRoom.Host.User;
}

return result;
Expand Down
65 changes: 32 additions & 33 deletions osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
using osu.Game.Online.API.Requests;
using osu.Game.Online.API.Requests.Responses;
using osu.Game.Online.Rooms;
using osu.Game.Rulesets;
using osu.Game.Tests.Beatmaps;
using osu.Game.Tests.Visual;

namespace osu.Game.Tests.Visual.OnlinePlay
{
Expand All @@ -34,16 +31,18 @@
{
case CreateRoomRequest createRoomRequest:
{
var apiRoom = cloneRoom(createRoomRequest.Room);
var apiRoom = createRoomRequest.Room;
var responseRoom = cloneRoom(apiRoom);

// Passwords are explicitly not copied between rooms.
apiRoom.Password = createRoomRequest.Room.Password;
responseRoom.RoomID = currentRoomId++;
responseRoom.Host = localUser;

AddServerSideRoom(apiRoom, localUser);
foreach (var item in responseRoom.Playlist)
{
item.ID = currentPlaylistItemId++;
}

var responseRoom = new APICreatedRoom();
if (createResponseRoom(apiRoom, false) is Room res)
responseRoom.CopyFrom(res);
ServerSideRooms.Add(responseRoom);

// Propagate back to the source room object used by the test.
createRoomRequest.Room.RoomID = apiRoom.RoomID;
Expand All @@ -51,7 +50,7 @@
createRoomRequest.Room.EndDate = apiRoom.EndDate;
createRoomRequest.Room.Playlist = apiRoom.Playlist.Select(p => p.With()).ToList();

createRoomRequest.TriggerSuccess(responseRoom);

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debug/**/osu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debug/**/osu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tests.dll o...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tests.dll o...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debug/**/osu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debug/**/osu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tests.dll o...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Linux, ubuntu-latest, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tests.dll o...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (iOS)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (iOS)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Code Quality

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Code Quality

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Code Quality

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Code Quality

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (iOS)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (iOS)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, rulesets, osu.Game.Rulesets.Osu.Tests/bin/Debu...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tes...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tes...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tes...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Test (Windows, windows-2025-vs2026, MultiThreaded, game, osu.Game.Tests/bin/Debug/**/osu.Game.Tes...

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (Android)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (Android)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (Android)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'

Check failure on line 53 in osu.Game/Tests/Visual/OnlinePlay/TestRoomRequestsHandler.cs

View workflow job for this annotation

GitHub Actions / Build only (Android)

Argument 1: cannot convert from 'osu.Game.Online.Rooms.Room' to 'osu.Game.Online.Rooms.APICreatedRoom'
return true;
}

Expand All @@ -71,27 +70,6 @@
return true;
}

case GetRoomsRequest getRoomsRequest:
{
var roomsWithoutParticipants = new List<Room>();

foreach (var r in ServerSideRooms)
{
if (createResponseRoom(r, false) is Room roomsRes)
roomsWithoutParticipants.Add(roomsRes);
}

getRoomsRequest.TriggerSuccess(roomsWithoutParticipants);
return true;
}

case GetRoomRequest getRoomRequest:
{
if (createResponseRoom(ServerSideRooms.FirstOrDefault(r => r.RoomID == getRoomRequest.RoomId), true) is Room getRes)
getRoomRequest.TriggerSuccess(getRes);
return true;
}

case CreateRoomScoreRequest createRoomScoreRequest:
createRoomScoreRequest.TriggerSuccess(new APIScoreToken { ID = 1 });
return true;
Expand Down Expand Up @@ -159,6 +137,27 @@
getBeatmapsRequest.TriggerSuccess(new GetBeatmapsResponse { Beatmaps = createResponseBeatmaps(beatmapManager, getBeatmapsRequest.BeatmapIds.ToArray()) });
return true;
}

case GetRoomsRequest getRoomsRequest:
{
var roomsWithoutParticipants = new List<Room>();

foreach (var r in ServerSideRooms)
{
if (createResponseRoom(r, false) is Room roomsRes)
roomsWithoutParticipants.Add(roomsRes);
}

getRoomsRequest.TriggerSuccess(roomsWithoutParticipants);
return true;
}

case GetRoomRequest getRoomRequest:
{
if (createResponseRoom(ServerSideRooms.FirstOrDefault(r => r.RoomID == getRoomRequest.RoomId), true) is Room getRes)
getRoomRequest.TriggerSuccess(getRes);
return true;
}
}

return false;
Expand Down Expand Up @@ -214,12 +213,12 @@

if (baseBeatmap == null)
{
baseBeatmap = new TestBeatmap(new RulesetInfo { OnlineID = 0 }).BeatmapInfo;
baseBeatmap = new osu.Game.Tests.Beatmaps.TestBeatmap(new osu.Game.Rulesets.RulesetInfo { OnlineID = 0 }).BeatmapInfo;
baseBeatmap.OnlineID = id;
baseBeatmap.BeatmapSet!.OnlineID = id;
}

result.Add(OsuTestScene.CreateAPIBeatmap(baseBeatmap));
result.Add(osu.Game.Tests.Visual.OsuTestScene.CreateAPIBeatmap(baseBeatmap));
}

return result;
Expand Down
Loading