Create room for user on login

This commit is contained in:
jvyden 2021-11-16 18:41:18 -05:00
commit a5eb9400fe
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278
4 changed files with 18 additions and 23 deletions

View file

@ -3,6 +3,7 @@ using System.IO;
using System.Net;
using System.Threading.Tasks;
using Kettu;
using LBPUnion.ProjectLighthouse.Helpers;
using LBPUnion.ProjectLighthouse.Logging;
using LBPUnion.ProjectLighthouse.Types;
using LBPUnion.ProjectLighthouse.Types.Settings;
@ -48,11 +49,16 @@ namespace LBPUnion.ProjectLighthouse.Controllers
Token? token = await this.database.AuthenticateUser(loginData, userLocation, titleId);
if (token == null) return this.StatusCode(403, "");
Logger.Log
(
$"Successfully logged in user {(await this.database.UserFromToken(token))!.Username} as {token.GameVersion} client ({titleId})",
LoggerLevelLogin.Instance
);
User? user = await this.database.UserFromToken(token);
if (user == null) return this.StatusCode(403, "");
Logger.Log($"Successfully logged in user {user.Username} as {token.GameVersion} client ({titleId})", LoggerLevelLogin.Instance);
// Create a new room on LBP2+/Vita
if (token.GameVersion != GameVersion.LittleBigPlanet1)
{
RoomHelper.CreateRoom(user);
}
return this.Ok
(

View file

@ -135,19 +135,8 @@ namespace LBPUnion.ProjectLighthouse.Controllers
else return this.BadRequest();
}
// Delete old rooms based on host
RoomHelper.Rooms.RemoveAll(r => r.Host == user);
// Create a new one as requested
Room newRoom = RoomHelper.CreateRoom(users, createRoom.RoomSlot);
// Remove players in this new room from other rooms
foreach (Room room in RoomHelper.Rooms)
{
if (room == newRoom) continue;
foreach (User newRoomPlayer in newRoom.Players) room.Players.RemoveAll(p => p == newRoomPlayer);
}
RoomHelper.CreateRoom(users, createRoom.RoomSlot);
}
#endregion

View file

@ -27,7 +27,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers
public async Task<IActionResult> SlotsBy([FromQuery] string u, [FromQuery] int pageStart, [FromQuery] int pageSize)
{
Token? token = await this.database.TokenFromRequest(this.Request);
if (token == null) return this.BadRequest();
if (token == null) return this.StatusCode(403, "");
GameVersion gameVersion = token.GameVersion;
@ -71,7 +71,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers
if (user == null) return this.StatusCode(403, "");
Token? token = await this.database.TokenFromRequest(this.Request);
if (token == null) return this.BadRequest();
if (token == null) return this.StatusCode(403, "");
GameVersion gameVersion = token.GameVersion;
@ -95,7 +95,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers
public async Task<IActionResult> NewestSlots([FromQuery] int pageStart, [FromQuery] int pageSize)
{
Token? token = await this.database.TokenFromRequest(this.Request);
if (token == null) return this.BadRequest();
if (token == null) return this.StatusCode(403, "");
GameVersion gameVersion = token.GameVersion;
@ -114,7 +114,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers
public async Task<IActionResult> TeamPickedSlots([FromQuery] int pageStart, [FromQuery] int pageSize)
{
Token? token = await this.database.TokenFromRequest(this.Request);
if (token == null) return this.BadRequest();
if (token == null) return this.StatusCode(403, "");
GameVersion gameVersion = token.GameVersion;
@ -134,7 +134,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers
public async Task<IActionResult> LuckyDipSlots([FromQuery] int pageStart, [FromQuery] int pageSize, [FromQuery] int seed)
{
Token? token = await this.database.TokenFromRequest(this.Request);
if (token == null) return this.BadRequest();
if (token == null) return this.StatusCode(403, "");
GameVersion gameVersion = token.GameVersion;

View file

@ -204,7 +204,7 @@ namespace LBPUnion.ProjectLighthouse.Types
return user1.UserId == user2.UserId;
}
public static bool operator !=(User user1, User user2) => !(user1 == user2);
public static bool operator !=(User? user1, User? user2) => !(user1 == user2);
public override int GetHashCode() => this.UserId;
#nullable disable