From a03269fcf1265f766709398eaafbe481f997db53 Mon Sep 17 00:00:00 2001 From: Sentinent Date: Thu, 5 Jan 2017 01:44:41 -0800 Subject: [PATCH] Fixed guild member's joinedat reseting after certain events --- src/Discord.Net.Rest/API/Common/GuildMember.cs | 2 +- src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs | 3 ++- src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net.Rest/API/Common/GuildMember.cs b/src/Discord.Net.Rest/API/Common/GuildMember.cs index ba3d05462..daba36d23 100644 --- a/src/Discord.Net.Rest/API/Common/GuildMember.cs +++ b/src/Discord.Net.Rest/API/Common/GuildMember.cs @@ -13,7 +13,7 @@ namespace Discord.API [JsonProperty("roles")] public ulong[] Roles { get; set; } [JsonProperty("joined_at")] - public DateTimeOffset JoinedAt { get; set; } + public Optional JoinedAt { get; set; } [JsonProperty("deaf")] public bool Deaf { get; set; } [JsonProperty("mute")] diff --git a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs index ee3551fd5..af24c7bb2 100644 --- a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs +++ b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs @@ -47,7 +47,8 @@ namespace Discord.Rest } internal void Update(Model model) { - _joinedAtTicks = model.JoinedAt.UtcTicks; + if (model.JoinedAt.IsSpecified) + _joinedAtTicks = model.JoinedAt.Value.UtcTicks; if (model.Nick.IsSpecified) Nickname = model.Nick.Value; IsDeafened = model.Deaf; diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs index 720f39c04..3e6c44a4d 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs @@ -80,7 +80,8 @@ namespace Discord.WebSocket internal void Update(ClientState state, Model model) { base.Update(state, model.User); - _joinedAtTicks = model.JoinedAt.UtcTicks; + if (model.JoinedAt.IsSpecified) + _joinedAtTicks = model.JoinedAt.Value.UtcTicks; if (model.Nick.IsSpecified) Nickname = model.Nick.Value; UpdateRoles(model.Roles);