From a5eb9400feff1636224d78ce74e4ee5d8cc0ee65 Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 16 Nov 2021 18:41:18 -0500 Subject: [PATCH] Create room for user on login --- ProjectLighthouse/Controllers/LoginController.cs | 16 +++++++++++----- ProjectLighthouse/Controllers/MatchController.cs | 13 +------------ ProjectLighthouse/Controllers/SlotsController.cs | 10 +++++----- ProjectLighthouse/Types/User.cs | 2 +- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/ProjectLighthouse/Controllers/LoginController.cs b/ProjectLighthouse/Controllers/LoginController.cs index 420f8b17..d3e4df74 100644 --- a/ProjectLighthouse/Controllers/LoginController.cs +++ b/ProjectLighthouse/Controllers/LoginController.cs @@ -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 ( diff --git a/ProjectLighthouse/Controllers/MatchController.cs b/ProjectLighthouse/Controllers/MatchController.cs index 28789b9d..24e6bd6f 100644 --- a/ProjectLighthouse/Controllers/MatchController.cs +++ b/ProjectLighthouse/Controllers/MatchController.cs @@ -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 diff --git a/ProjectLighthouse/Controllers/SlotsController.cs b/ProjectLighthouse/Controllers/SlotsController.cs index 5b536306..988f63ef 100644 --- a/ProjectLighthouse/Controllers/SlotsController.cs +++ b/ProjectLighthouse/Controllers/SlotsController.cs @@ -27,7 +27,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers public async Task 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 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 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 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; diff --git a/ProjectLighthouse/Types/User.cs b/ProjectLighthouse/Types/User.cs index 9668256d..14de418d 100644 --- a/ProjectLighthouse/Types/User.cs +++ b/ProjectLighthouse/Types/User.cs @@ -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