Fix playtime_addrole command printing the wrong time (#28783)

This commit is contained in:
Leon Friedrich
2024-06-13 18:31:21 +12:00
committed by GitHub
parent 249e4a9c15
commit d38ad12262
2 changed files with 14 additions and 1 deletions

View File

@@ -93,7 +93,7 @@ public sealed class PlayTimeAddRoleCommand : IConsoleCommand
}
_playTimeTracking.AddTimeToTracker(player, role, TimeSpan.FromMinutes(minutes));
var time = _playTimeTracking.GetOverallPlaytime(player);
var time = _playTimeTracking.GetPlayTimeForTracker(player, role);
shell.WriteLine(Loc.GetString("cmd-playtime_addrole-succeed",
("username", userName),
("role", role),

View File

@@ -370,6 +370,19 @@ public sealed class PlayTimeTrackingManager : ISharedPlaytimeManager, IPostInjec
return true;
}
public bool TryGetTrackerTime(ICommonSession id, string tracker, [NotNullWhen(true)] out TimeSpan? time)
{
time = null;
if (!TryGetTrackerTimes(id, out var times))
return false;
if (!times.TryGetValue(tracker, out var t))
return false;
time = t;
return true;
}
public Dictionary<string, TimeSpan> GetTrackerTimes(ICommonSession id)
{
if (!_playTimeData.TryGetValue(id, out var data) || !data.Initialized)