diff --git a/TaikoLocalServer/Controllers/Game/PlayResultController.cs b/TaikoLocalServer/Controllers/Game/PlayResultController.cs index 43e5ea2..fc55045 100644 --- a/TaikoLocalServer/Controllers/Game/PlayResultController.cs +++ b/TaikoLocalServer/Controllers/Game/PlayResultController.cs @@ -45,6 +45,17 @@ public class PlayResultController : BaseController Result = 1 }; + // Fix issue caused by guest play, god knows why they send guest play data + if (request.BaidConf == 0) + { + return Ok(response); + } + + if (await userDatumService.GetFirstUserDatumOrNull(request.BaidConf) is null) + { + Logger.LogWarning("Game uploading a non exisiting user with baid {Baid}", request.BaidConf); + } + var lastPlayDatetime = DateTime.ParseExact(playResultData.PlayDatetime, Constants.DATE_TIME_FORMAT, CultureInfo.InvariantCulture); @@ -168,7 +179,7 @@ public class PlayResultController : BaseController { var userdata = await userDatumService.GetFirstUserDatumOrNull(request.BaidConf); - userdata.ThrowIfNull(); + userdata.ThrowIfNull($"User data is null! Baid: {request.BaidConf}"); userdata.Title = playResultData.Title; userdata.TitlePlateId = playResultData.TitleplateId; diff --git a/TaikoLocalServer/Services/UserDatumService.cs b/TaikoLocalServer/Services/UserDatumService.cs index 8b3d5ca..f71b646 100644 --- a/TaikoLocalServer/Services/UserDatumService.cs +++ b/TaikoLocalServer/Services/UserDatumService.cs @@ -59,7 +59,7 @@ public class UserDatumService : IUserDatumService public async Task> GetFavoriteSongIds(uint baid) { var userDatum = await context.UserData.FindAsync(baid); - userDatum.ThrowIfNull(); + userDatum.ThrowIfNull($"User with baid: {baid} not found!"); using var stringStream = GZipBytesUtil.GenerateStreamFromString(userDatum.FavoriteSongsArray); List? result; @@ -79,7 +79,7 @@ public class UserDatumService : IUserDatumService public async Task UpdateFavoriteSong(uint baid, uint songId, bool isFavorite) { var userDatum = await context.UserData.FindAsync(baid); - userDatum.ThrowIfNull(); + userDatum.ThrowIfNull($"User with baid: {baid} not found!"); using var stringStream = GZipBytesUtil.GenerateStreamFromString(userDatum.FavoriteSongsArray); List? favoriteSongIds;