Handle UpdatePlayersInRoom match requests

This commit is contained in:
jvyden 2022-01-18 21:26:28 -05:00
commit 1c8e2ee007
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278

View file

@ -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<User> 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}]");