diff --git a/ProjectLighthouse/Controllers/MatchController.cs b/ProjectLighthouse/Controllers/MatchController.cs index c60c8f77..e657b7d3 100644 --- a/ProjectLighthouse/Controllers/MatchController.cs +++ b/ProjectLighthouse/Controllers/MatchController.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text.Json; using System.Threading.Tasks; using Kettu; @@ -114,6 +115,25 @@ namespace LBPUnion.ProjectLighthouse.Controllers RoomHelper.CreateRoom(users, gameToken.GameVersion, createRoom.RoomSlot); } + if (matchData is UpdatePlayersInRoom updatePlayersInRoom) + { + Room? room = RoomHelper.Rooms.FirstOrDefault(r => r.Host == user); + + if (room != null) + { + List users = new(); + foreach (string playerUsername in updatePlayersInRoom.Players) + { + User? player = await this.database.Users.FirstOrDefaultAsync(u => u.Username == playerUsername); + // ReSharper disable once ConditionIsAlwaysTrueOrFalse + if (player != null) users.Add(player); + else return this.BadRequest(); + } + + room.Players = users; + } + } + #endregion return this.Ok("[{\"StatusCode\":200}]");