diff --git a/src/Kook.Net.Core/KookConfig.cs b/src/Kook.Net.Core/KookConfig.cs
index d81dc95c..fe66201e 100644
--- a/src/Kook.Net.Core/KookConfig.cs
+++ b/src/Kook.Net.Core/KookConfig.cs
@@ -130,6 +130,11 @@ public class KookConfig
///
public const int MaxIntimacyScore = 2200;
+ ///
+ /// Returns the duration of a Kook boost pack.
+ ///
+ public static readonly TimeSpan BoostPackDuration = TimeSpan.FromDays(30);
+
///
/// Gets or sets how a request should act in the case of an error, by default.
///
diff --git a/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs b/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs
index 7d2064fe..27772184 100644
--- a/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs
+++ b/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs
@@ -31,7 +31,7 @@ public static async Task subscriptions = await client.ApiClient
- .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now, options: options).FlattenAsync();
+ .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now.Add(-KookConfig.BoostPackDuration), options: options).FlattenAsync();
return subscriptions.GroupBy(x => x.UserId)
.ToImmutableDictionary(x => RestUser.Create(client, x.First().User) as IUser,
x => x.GroupBy(y => (y.StartTime, y.EndTime))
diff --git a/src/Kook.Net.Rest/KookRestApiClient.cs b/src/Kook.Net.Rest/KookRestApiClient.cs
index d5b0d45b..8e0c6f9d 100644
--- a/src/Kook.Net.Rest/KookRestApiClient.cs
+++ b/src/Kook.Net.Rest/KookRestApiClient.cs
@@ -443,8 +443,8 @@ public IAsyncEnumerable> GetGuildBoostSub
{
Preconditions.NotEqual(guildId, 0, nameof(guildId));
string query = $"guild_id={guildId}";
- if (since.HasValue) query += $"&start_time={since.Value.ToUnixTimeMilliseconds()}";
- if (until.HasValue) query += $"&end_time={until.Value.ToUnixTimeMilliseconds()}";
+ if (since.HasValue) query += $"&start_time={since.Value.ToUnixTimeSeconds()}";
+ if (until.HasValue) query += $"&end_time={until.Value.ToUnixTimeSeconds()}";
options = RequestOptions.CreateOrClone(options);
var ids = new BucketIds(guildId: guildId);
diff --git a/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs b/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs
index 9d275d55..2bc0b943 100644
--- a/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs
+++ b/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs
@@ -33,7 +33,7 @@ public static async Task subscriptions = await client.ApiClient
- .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now, options: options).FlattenAsync();
+ .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now.Add(-KookConfig.BoostPackDuration), options: options).FlattenAsync();
return subscriptions.GroupBy(x => x.UserId)
.ToImmutableDictionary(x => guild.GetUser(x.Key) ?? client.GetUser(x.Key) ?? RestUser.Create(client, x.First().User) as IUser,
x => x.GroupBy(y => (y.StartTime, y.EndTime))