public static UserPlayRecord Create(int osuId, Mode mode, int playNumber, UserRecent userRecent) { return(new UserPlayRecord { UserId = osuId, Mode = mode, PlayNumber = playNumber, Record = userRecent, }); }
private static Embed CreateSinglePlayEmbed(User user, UserRecent score, Beatmap beatmap) { var oppaiBeatmap = GetOppaiBeatmapFromUrl(GetBeatmapApiUrlFromBeatmap(beatmap)); var mods = (OppaiSharp.Mods)score.Mods; var diffCalc = new OppaiSharp.DiffCalc().Calc(oppaiBeatmap, mods); var playPP = new OppaiSharp.PPv2(new OppaiSharp.PPv2Parameters(oppaiBeatmap, diffCalc, score.Count100, score.Count50, score.Miss, score.MaxCombo.Value, score.Count300, mods)); var fcPP = new OppaiSharp.PPv2(new OppaiSharp.PPv2Parameters(oppaiBeatmap, diffCalc, score.Count100, 0, c300: score.Count300 + score.Miss, mods: mods)); EmbedBuilder embed = new EmbedBuilder() { Author = new EmbedAuthorBuilder() { Name = user.Username, Url = GetUserpageFromUserId(user.Userid), IconUrl = GetAvatarUrlFromUserId(user.Userid) }, Title = $"{beatmap.Artist} - {beatmap.Title} [{beatmap.Difficulty}] +{score.Mods} [{beatmap.DifficultyRating:F2}⚝]", Url = GetBeatmapUrlFromBeatmap(beatmap), ThumbnailUrl = beatmap.ThumbnailUrl, Color = Color.Purple, Description = $"◉ **{score.Rank} Rank** ◉ **{playPP.Total:F2}PP** ({fcPP.Total:F2} for {fcPP.ComputedAccuracy.Value() * 100:F2}% FC) ◉ {score.Accuracy:F2}% ◉ {score.ScorePoints} ◉ x{score.MaxCombo}/{beatmap.MaxCombo} ◉ [{score.Count300}/{score.Count100}/{score.Count50}/{score.Miss}]" }; return(embed); }