diff --git a/DragonFruit.Six.Api/Modern/ModernStatsExtensions.cs b/DragonFruit.Six.Api/Modern/ModernStatsExtensions.cs
index debfd516..48051462 100644
--- a/DragonFruit.Six.Api/Modern/ModernStatsExtensions.cs
+++ b/DragonFruit.Six.Api/Modern/ModernStatsExtensions.cs
@@ -12,12 +12,25 @@
using DragonFruit.Six.Api.Modern.Enums;
using DragonFruit.Six.Api.Modern.Requests;
using DragonFruit.Six.Api.Modern.Utils;
+using JetBrains.Annotations;
using Newtonsoft.Json.Linq;
namespace DragonFruit.Six.Api.Modern
{
public static class ModernStatsExtensions
{
+ ///
+ /// Gets the user's recently played maps, with information including K/D, W/L and time alive
+ ///
+ /// The to use
+ /// The to get stats for
+ /// The to get stats for
+ /// The to filter stats by
+ /// The first day to return stats for. Must be within the last 120 days
+ /// The last day to include stats for. Must be at least 1 day before current UTC time
+ /// Optional
+ /// A container with the requested map stats. Will return null if no stats found
+ [CanBeNull]
public static Task>> GetModernMapStatsAsync(this Dragon6Client client, UbisoftAccount account, PlaylistType playlistType = PlaylistType.All, OperatorType operatorType = OperatorType.All, DateTimeOffset? startDate = null, DateTimeOffset? endDate = null, CancellationToken token = default)
{
var request = new ModernMapStatsRequest(account)
@@ -33,6 +46,18 @@ public static Task>> GetMod
.ContinueWith(t => t.Result.ProcessData>(request), TaskContinuationOptions.OnlyOnRanToCompletion);
}
+ ///
+ /// Gets the user's recently played operators, with information including K/D, W/L and time alive
+ ///
+ /// The to use
+ /// The to get stats for
+ /// The to get stats for
+ /// The to filter stats by
+ /// The first day to return stats for. Must be within the last 120 days
+ /// The last day to include stats for. Must be at least 1 day before current UTC time
+ /// Optional
+ /// A container with the requested operator stats. Will return null if no stats found
+ [CanBeNull]
public static Task>> GetModernOperatorStatsAsync(this Dragon6Client client, UbisoftAccount account, PlaylistType playlistType = PlaylistType.All, OperatorType operatorType = OperatorType.All, DateTimeOffset? startDate = null, DateTimeOffset? endDate = null, CancellationToken token = default)
{
var request = new ModernOperatorStatsRequest(account)
@@ -48,6 +73,15 @@ public static Task>> G
.ContinueWith(t => t.Result.ProcessData>(request), TaskContinuationOptions.OnlyOnRanToCompletion);
}
+ ///
+ /// Gets the user's seasonal history
+ ///
+ /// The to use
+ /// The to get stats for
+ /// The to get stats for
+ /// Optional
+ /// A container with all seasons tracked. Will return null if no stats found
+ [CanBeNull]
public static Task>> GetModernSeasonStatsAsync(this Dragon6Client client, UbisoftAccount account, PlaylistType playlistType = PlaylistType.All, CancellationToken token = default)
{
var request = new ModernSeasonalStatsRequest(account)
@@ -59,6 +93,19 @@ public static Task>> Get
.ContinueWith(t => t.Result.ProcessData>(request), TaskContinuationOptions.OnlyOnRanToCompletion);
}
+ ///
+ /// Gets a summary of the user's current activity, with information including K/D, W/L and time alive
+ ///
+ /// The to use
+ /// The to get stats for
+ /// The to get stats for
+ /// The to filter stats by
+ /// The first day to return stats for. Must be within the last 120 days
+ /// The last day to include stats for. Must be at least 1 day before current UTC time
+ /// Optional
+ /// A container with the requested stats. Will return null if no stats found.
+ /// This returns a collection of items, but is recommended to use FirstOrDefault() to get the correct stats object
+ [CanBeNull]
public static Task>> GetModernStatsSummaryAsync(this Dragon6Client client, UbisoftAccount account, PlaylistType playlistType = PlaylistType.All, OperatorType operatorType = OperatorType.All, DateTimeOffset? startDate = null, DateTimeOffset? endDate = null, CancellationToken token = default)
{
var request = new ModernStatsSummaryRequest(account)
@@ -74,6 +121,18 @@ public static Task>> Ge
.ContinueWith(t => t.Result.ProcessData>(request), TaskContinuationOptions.OnlyOnRanToCompletion);
}
+ ///
+ /// Gets the user's graphs
+ ///
+ /// The to use
+ /// The to get stats for
+ /// The to get stats for
+ /// The to filter stats by
+ /// The first day to return stats for. Must be within the last 120 days
+ /// The last day to include stats for. Must be at least 1 day before current UTC time
+ /// Optional
+ /// A container with the data needed to plot the graphs seen on the ubisoft stats site. Will return null if no stats found
+ [CanBeNull]
public static Task>> GetModernStatsTrendAsync(this Dragon6Client client, UbisoftAccount account, PlaylistType playlistType = PlaylistType.All, OperatorType operatorType = OperatorType.All, DateTimeOffset? startDate = null, DateTimeOffset? endDate = null, CancellationToken token = default)
{
var request = new ModernStatsTrendRequest(account)
@@ -90,6 +149,18 @@ public static Task>> GetM
.ContinueWith(t => t.Result.ProcessData>(request), TaskContinuationOptions.OnlyOnRanToCompletion);
}
+ ///
+ /// Gets the user's recently used weapons
+ ///
+ /// The to use
+ /// The to get stats for
+ /// The to get stats for
+ /// The to filter stats by
+ /// The first day to return stats for. Must be within the last 120 days
+ /// The last day to include stats for. Must be at least 1 day before current UTC time
+ /// Optional
+ /// A container with the requested weapon stats. Will return null if no stats found
+ [CanBeNull]
public static Task> GetModernWeaponStatsAsync(this Dragon6Client client, UbisoftAccount account, PlaylistType playlistType = PlaylistType.All, OperatorType operatorType = OperatorType.All, DateTimeOffset? startDate = null, DateTimeOffset? endDate = null, CancellationToken token = default)
{
var request = new ModernWeaponStatsRequest(account)