diff --git a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs
index 48f8a461c..d162b5164 100644
--- a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs
+++ b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs
@@ -51,9 +51,9 @@ namespace Discord
/// Gets the date and time for when this user's guild boost began.
///
///
- /// A for when the user began boosting this guild; null if they are not boosting the guild.
+ /// A for when the user began boosting this guild; null if they are not boosting the guild.
///
- DateTime? PremiumSince { get; }
+ DateTimeOffset? PremiumSince { get; }
///
/// Gets a collection of IDs for the roles that this user currently possesses in the guild.
///
diff --git a/src/Discord.Net.Rest/API/Common/GuildMember.cs b/src/Discord.Net.Rest/API/Common/GuildMember.cs
index 077a9f876..940eb925a 100644
--- a/src/Discord.Net.Rest/API/Common/GuildMember.cs
+++ b/src/Discord.Net.Rest/API/Common/GuildMember.cs
@@ -18,7 +18,7 @@ namespace Discord.API
public Optional Deaf { get; set; }
[JsonProperty("mute")]
public Optional Mute { get; set; }
- [JsonProperty("premium_guild_since")]
- public Optional PremiumSince { get; set; }
+ [JsonProperty("premium_since")]
+ public Optional PremiumSince { get; set; }
}
}
diff --git a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
index b3216536d..27a910576 100644
--- a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
+++ b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
@@ -14,6 +14,7 @@ namespace Discord.Rest
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class RestGuildUser : RestUser, IGuildUser
{
+ private long? _premiumSinceTicks;
private long? _joinedAtTicks;
private ImmutableArray _roleIds;
@@ -25,7 +26,7 @@ namespace Discord.Rest
///
public bool IsMuted { get; private set; }
///
- public DateTime? PremiumSince { get; private set; }
+ public DateTimeOffset? PremiumSince => DateTimeUtils.FromTicks(_premiumSinceTicks);
///
public ulong GuildId => Guild.Id;
@@ -71,7 +72,7 @@ namespace Discord.Rest
if (model.Roles.IsSpecified)
UpdateRoles(model.Roles.Value);
if (model.PremiumSince.IsSpecified)
- PremiumSince = model.PremiumSince.Value;
+ _premiumSinceTicks = model.PremiumSince.Value?.UtcTicks;
}
private void UpdateRoles(ulong[] roleIds)
{
diff --git a/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs b/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs
index ba00e16bb..67914e873 100644
--- a/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs
+++ b/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs
@@ -14,7 +14,7 @@ namespace Discord.Rest
public ulong WebhookId { get; }
internal IGuild Guild { get; }
///
- public DateTime? PremiumSince { get; private set; }
+ public DateTimeOffset? PremiumSince { get; private set; }
///
public override bool IsWebhook => true;
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs
index 921058b93..dee450cdd 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs
@@ -18,6 +18,7 @@ namespace Discord.WebSocket
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class SocketGuildUser : SocketUser, IGuildUser
{
+ private long? _premiumSinceTicks;
private long? _joinedAtTicks;
private ImmutableArray _roleIds;
@@ -75,9 +76,8 @@ namespace Discord.WebSocket
///
public SocketVoiceState? VoiceState => Guild.GetVoiceState(Id);
public AudioInStream AudioStream => Guild.GetAudioStream(Id);
-
///
- public DateTime? PremiumSince { get; private set; }
+ public DateTimeOffset? PremiumSince => DateTimeUtils.FromTicks(_premiumSinceTicks);
///
/// Returns the position of the user within the role hierarchy.
@@ -138,6 +138,8 @@ namespace Discord.WebSocket
Nickname = model.Nick.Value;
if (model.Roles.IsSpecified)
UpdateRoles(model.Roles.Value);
+ if (model.PremiumSince.IsSpecified)
+ _premiumSinceTicks = model.PremiumSince.Value?.UtcTicks;
}
internal void Update(ClientState state, PresenceModel model, bool updatePresence)
{
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs
index 4bdf30748..2d701ef64 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs
@@ -63,7 +63,7 @@ namespace Discord.WebSocket
///
string IGuildUser.Nickname => null;
///
- DateTime? IGuildUser.PremiumSince => null;
+ DateTimeOffset? IGuildUser.PremiumSince => null;
///
GuildPermissions IGuildUser.GuildPermissions => GuildPermissions.Webhook;