@page "/debug/roomVisualizer" @using LBPUnion.ProjectLighthouse.Extensions @using LBPUnion.ProjectLighthouse.Helpers @using LBPUnion.ProjectLighthouse.Match.Rooms @using LBPUnion.ProjectLighthouse.PlayerData @using LBPUnion.ProjectLighthouse.PlayerData.Profiles @using LBPUnion.ProjectLighthouse.Types @model LBPUnion.ProjectLighthouse.Servers.Website.Pages.Debug.RoomVisualizerPage @{ Layout = "Layouts/BaseLayout"; Model.Title = "Debug - Room Visualizer"; const int refreshSeconds = 5; }

This page will automatically refresh every @refreshSeconds seconds.

@* workaround for users w/o js*@

@RoomHelper.Rooms.Count() rooms

Create Fake Room
Create Rooms With Duplicate Players
Nuke all rooms

Best rooms for each game version

@foreach (GameVersion version in Enum.GetValues()) { #nullable enable if (version == GameVersion.LittleBigPlanet1 || version == GameVersion.LittleBigPlanetPSP || version == GameVersion.Unknown) continue; FindBestRoomResponse? response = RoomHelper.FindBestRoom(null, version, null, null, null); string text = response == null ? "No room found." : "Room " + response.RoomId;

Best room for @version.ToPrettyString(): @text

}

Room display

@foreach (Room room in RoomHelper.Rooms) { bool userInRoom = room.PlayerIds.Contains(Model.User?.UserId ?? -1); string color = userInRoom ? "green" : "blue";

Room @room.RoomId

@if (userInRoom) {

You are currently in this room.

}

@room.PlayerIds.Count players, state is @room.State, version is @room.RoomVersion.ToPrettyString() on platform @room.RoomPlatform

Slot type: @room.Slot.SlotType, slot id: @room.Slot.SlotId

@foreach (User player in room.GetPlayers(Model.Database)) {
@player.Username
}
}