Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added round condition checker #237

Merged
merged 2 commits into from
Dec 18, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions src/Modules/LiveRankingModule/Services/LiveRankingService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class LiveRankingService(ILogger<LiveRankingService> logger, IManialinkMa
public async Task OnEnableAsync()
{
logger.LogTrace("LiveRankingModule enabled");
await CheckIsRoundsModeAsync();
await CheckAndSetRoundsMode();
await HideNadeoScoreboardAsync();
if (_isRoundsMode)
{
Expand All @@ -51,7 +51,7 @@ public async Task OnDisableAsync()

public async Task OnPlayerWaypointAsync(WayPointEventArgs args)
{
await CheckIsRoundsModeAsync();
await CheckAndSetRoundsMode();
if (_isRoundsMode)
{
logger.LogTrace("Player crossed a checkpoint: {ArgsAccountId} - RoundsMode: {IsRoundsMode}",
Expand Down Expand Up @@ -89,7 +89,7 @@ public Task CalculateDiffsAsync(List<ExpandedLiveRankingPosition> rankings)

public async Task OnPlayerGiveupAsync(PlayerUpdateEventArgs args)
{
await CheckIsRoundsModeAsync();
await CheckAndSetRoundsMode();
if (_isRoundsMode)
{
logger.LogTrace("Player gave up: {ArgsAccountId} - RoundsMode: {IsRoundsMode}", args.AccountId,
Expand All @@ -105,7 +105,7 @@ await manialinkManager.SendPersistentManialinkAsync("LiveRankingModule.LiveRanki
public async Task OnBeginMapAsync(MapEventArgs args)
{
logger.LogTrace("Map starts: {MapName}, IsRounds: {IsRoundsMode}", args.Map.Name, _isRoundsMode);
await CheckIsRoundsModeAsync();
await CheckAndSetRoundsMode();
if (!_isRoundsMode)
{
await Task.CompletedTask;
Expand All @@ -121,7 +121,7 @@ public async Task OnBeginMapAsync(MapEventArgs args)

public async Task OnEndMapAsync(MapEventArgs args)
{
await CheckIsRoundsModeAsync();
await CheckAndSetRoundsMode();
logger.LogTrace("Map ends: {MapName} - RoundsMode: {IsRoundsMode}", args.Map.Name, _isRoundsMode);
if (_isRoundsMode)
{
Expand Down Expand Up @@ -175,7 +175,7 @@ public async Task OnEndMatchAsync(EndMatchGbxEventArgs args)

public async Task OnPodiumStartAsync(PodiumEventArgs args)
{
await CheckIsRoundsModeAsync();
await CheckAndSetRoundsMode();
await HideManialinkAsync();
}

Expand Down Expand Up @@ -242,15 +242,14 @@ private LiveRankingWidgetPosition RankingToTime(ExpandedLiveRankingPosition rank
ranking.CheckpointIndex + 1, ranking.IsFinish);
}

private Task<bool> CheckIsRoundsModeAsync()
private async Task CheckAndSetRoundsMode()
{
List<string> validModes = new List<string>
{
"Trackmania/TM_Rounds_Online.Script.txt", "Trackmania/TM_Cup_Online.Script.txt"
};
//TODO: https://github.com/EvoEsports/EvoSC-sharp/issues/234
_isRoundsMode = true;
return Task.FromResult(_isRoundsMode);
var scriptInfo = await client.Remote.GetModeScriptInfoAsync();
_isRoundsMode = validModes.Contains(scriptInfo.Name);
}

public MatchInfo GetMatchInfo()
Expand Down
Loading