public async Task <Beatmap> GetBeatmap(string mapHash) { if (!string.IsNullOrEmpty(mapHash)) { if (!hashes.ContainsKey(mapHash)) { await Logger.WriteLine("beatmap not found, downloading..."); var result = await api.DownloadBeatmapFromHashv1(mapHash, Path.Combine(folder, "beatmaps")); if (result != null) { hashes[mapHash] = result; Logger.LogAbsolute(Logging.BeatmapsDbSize, hashes.Count); Logger.Log(Logging.BeatmapsCacheMiss); } else { return(null); } } else { Logger.Log(Logging.BeatmapsCacheHit); } return(new Beatmap(Path.Combine(folder, "beatmaps", $"{hashes[mapHash]}.osu"))); } return(null); }