Skip to content

Commit 5506dfd

Browse files
authored
Merge pull request #18 from Syriiin/fix/beatmap-provider-path
Fix beatmaps being read from the wrong path
2 parents b703244 + 44883a4 commit 5506dfd

File tree

9 files changed

+22
-17
lines changed

9 files changed

+22
-17
lines changed

Difficalcy.Catch/Services/CalculatorWorkingBeatmap.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ public class CalculatorWorkingBeatmap : WorkingBeatmap
1414
{
1515
private readonly Beatmap _beatmap;
1616

17-
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream, string beatmapId) : this(ruleset, ReadFromStream(beatmapStream), beatmapId) { }
17+
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream) : this(ruleset, ReadFromStream(beatmapStream)) { }
1818

19-
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap, string beatmapId) : base(beatmap.BeatmapInfo, null)
19+
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap) : base(beatmap.BeatmapInfo, null)
2020
{
2121
_beatmap = beatmap;
2222

2323
// Only valid maps will be either osu! converts or osu!catch maps
24-
_beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.Ruleset.OnlineID == 0 ? (new OsuRuleset()).RulesetInfo : ruleset.RulesetInfo;
24+
_beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.Ruleset.OnlineID == 0 ? new OsuRuleset().RulesetInfo : ruleset.RulesetInfo;
2525
}
2626

2727
private static Beatmap ReadFromStream(Stream stream)

Difficalcy.Catch/Services/CatchCalculatorService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ protected override CatchCalculation CalculatePerformance(CatchScore score, objec
100100
private CalculatorWorkingBeatmap GetWorkingBeatmap(string beatmapId)
101101
{
102102
using var beatmapStream = beatmapProvider.GetBeatmapStream(beatmapId);
103-
return new CalculatorWorkingBeatmap(CatchRuleset, beatmapStream, beatmapId);
103+
return new CalculatorWorkingBeatmap(CatchRuleset, beatmapStream);
104104
}
105105

106106
private static Dictionary<HitResult, int> GetHitResults(IBeatmap beatmap, int countMiss, int? countDroplet, int? countTinyDroplet)

Difficalcy.Mania/Services/CalculatorWorkingBeatmap.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ public class CalculatorWorkingBeatmap : WorkingBeatmap
1414
{
1515
private readonly Beatmap _beatmap;
1616

17-
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream, string beatmapId) : this(ruleset, ReadFromStream(beatmapStream), beatmapId) { }
17+
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream) : this(ruleset, ReadFromStream(beatmapStream)) { }
1818

19-
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap, string beatmapId) : base(beatmap.BeatmapInfo, null)
19+
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap) : base(beatmap.BeatmapInfo, null)
2020
{
2121
_beatmap = beatmap;
2222

2323
// Only valid maps will be either osu! converts or osu!mania maps
24-
_beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.Ruleset.OnlineID == 0 ? (new OsuRuleset()).RulesetInfo : ruleset.RulesetInfo;
24+
_beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.Ruleset.OnlineID == 0 ? new OsuRuleset().RulesetInfo : ruleset.RulesetInfo;
2525
}
2626

2727
private static Beatmap ReadFromStream(Stream stream)

Difficalcy.Mania/Services/ManiaCalculatorService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ protected override ManiaCalculation CalculatePerformance(ManiaScore score, objec
9999
private CalculatorWorkingBeatmap GetWorkingBeatmap(string beatmapId)
100100
{
101101
using var beatmapStream = _beatmapProvider.GetBeatmapStream(beatmapId);
102-
return new CalculatorWorkingBeatmap(ManiaRuleset, beatmapStream, beatmapId);
102+
return new CalculatorWorkingBeatmap(ManiaRuleset, beatmapStream);
103103
}
104104

105105
private static Dictionary<HitResult, int> GetHitResults(int hitResultCount, int countMiss, int countMeh, int countOk, int countGood, int countGreat)

Difficalcy.Osu/Services/CalculatorWorkingBeatmap.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ public class CalculatorWorkingBeatmap : WorkingBeatmap
1313
{
1414
private readonly Beatmap _beatmap;
1515

16-
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream, string beatmapId) : this(ruleset, ReadFromStream(beatmapStream), beatmapId) { }
16+
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream) : this(ruleset, ReadFromStream(beatmapStream)) { }
1717

18-
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap, string beatmapId) : base(beatmap.BeatmapInfo, null)
18+
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap) : base(beatmap.BeatmapInfo, null)
1919
{
2020
_beatmap = beatmap;
2121

Difficalcy.Osu/Services/OsuCalculatorService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ protected override OsuCalculation CalculatePerformance(OsuScore score, object di
108108
private CalculatorWorkingBeatmap GetWorkingBeatmap(string beatmapId)
109109
{
110110
using var beatmapStream = beatmapProvider.GetBeatmapStream(beatmapId);
111-
return new CalculatorWorkingBeatmap(OsuRuleset, beatmapStream, beatmapId);
111+
return new CalculatorWorkingBeatmap(OsuRuleset, beatmapStream);
112112
}
113113

114114
private static Dictionary<HitResult, int> GetHitResults(int hitResultCount, int countMiss, int countMeh, int countOk)

Difficalcy.Taiko/Services/CalculatorWorkingBeatmap.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ public class CalculatorWorkingBeatmap : WorkingBeatmap
1414
{
1515
private readonly Beatmap _beatmap;
1616

17-
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream, string beatmapId) : this(ruleset, ReadFromStream(beatmapStream), beatmapId) { }
17+
public CalculatorWorkingBeatmap(Ruleset ruleset, Stream beatmapStream) : this(ruleset, ReadFromStream(beatmapStream)) { }
1818

19-
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap, string beatmapId) : base(beatmap.BeatmapInfo, null)
19+
private CalculatorWorkingBeatmap(Ruleset ruleset, Beatmap beatmap) : base(beatmap.BeatmapInfo, null)
2020
{
2121
_beatmap = beatmap;
2222

2323
// Only valid maps will be either osu! converts or osu!taiko maps
24-
_beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.Ruleset.OnlineID == 0 ? (new OsuRuleset()).RulesetInfo : ruleset.RulesetInfo;
24+
_beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.Ruleset.OnlineID == 0 ? new OsuRuleset().RulesetInfo : ruleset.RulesetInfo;
2525
}
2626

2727
private static Beatmap ReadFromStream(Stream stream)

Difficalcy.Taiko/Services/TaikoCalculatorService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ protected override TaikoCalculation CalculatePerformance(TaikoScore score, objec
105105
private CalculatorWorkingBeatmap GetWorkingBeatmap(string beatmapId)
106106
{
107107
using var beatmapStream = _beatmapProvider.GetBeatmapStream(beatmapId);
108-
return new CalculatorWorkingBeatmap(TaikoRuleset, beatmapStream, beatmapId);
108+
return new CalculatorWorkingBeatmap(TaikoRuleset, beatmapStream);
109109
}
110110

111111
private static Dictionary<HitResult, int> GetHitResults(int hitResultCount, int countMiss, int countOk)

Difficalcy/Services/WebBeatmapProvider.cs

+7-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class WebBeatmapProvider(IConfiguration configuration) : IBeatmapProvider
1212

1313
public async Task<bool> EnsureBeatmap(string beatmapId)
1414
{
15-
var beatmapPath = Path.Combine(_beatmapDirectory, $"{beatmapId}.osu");
15+
var beatmapPath = GetBeatmapPath(beatmapId);
1616
if (!File.Exists(beatmapPath))
1717
{
1818
using var response = await _httpClient.GetAsync($"https://osu.ppy.sh/osu/{beatmapId}");
@@ -29,8 +29,13 @@ public async Task<bool> EnsureBeatmap(string beatmapId)
2929

3030
public Stream GetBeatmapStream(string beatmapId)
3131
{
32-
var beatmapPath = Path.Combine(_beatmapDirectory, beatmapId);
32+
var beatmapPath = GetBeatmapPath(beatmapId);
3333
return File.OpenRead(beatmapPath);
3434
}
35+
36+
private string GetBeatmapPath(string beatmapId)
37+
{
38+
return Path.Combine(_beatmapDirectory, $"{beatmapId}.osu");
39+
}
3540
}
3641
}

0 commit comments

Comments
 (0)