| @@ -2,12 +2,11 @@ | |||||
| { | { | ||||
| public enum UserStatus | public enum UserStatus | ||||
| { | { | ||||
| Unknown, | |||||
| Offline, | |||||
| Online, | Online, | ||||
| Idle, | Idle, | ||||
| AFK, | AFK, | ||||
| DoNotDisturb, | DoNotDisturb, | ||||
| Invisible, | Invisible, | ||||
| Offline | |||||
| } | } | ||||
| } | } | ||||
| @@ -18,7 +18,7 @@ namespace Discord.Rest | |||||
| public string Discriminator => DiscriminatorValue.ToString("D4"); | public string Discriminator => DiscriminatorValue.ToString("D4"); | ||||
| public string Mention => MentionUtils.MentionUser(Id); | public string Mention => MentionUtils.MentionUser(Id); | ||||
| public virtual Game? Game => null; | public virtual Game? Game => null; | ||||
| public virtual UserStatus Status => UserStatus.Unknown; | |||||
| public virtual UserStatus Status => UserStatus.Offline; | |||||
| internal RestUser(BaseDiscordClient discord, ulong id) | internal RestUser(BaseDiscordClient discord, ulong id) | ||||
| : base(discord, id) | : base(discord, id) | ||||
| @@ -19,7 +19,7 @@ namespace Discord.Rpc | |||||
| public string Discriminator => DiscriminatorValue.ToString("D4"); | public string Discriminator => DiscriminatorValue.ToString("D4"); | ||||
| public string Mention => MentionUtils.MentionUser(Id); | public string Mention => MentionUtils.MentionUser(Id); | ||||
| public virtual Game? Game => null; | public virtual Game? Game => null; | ||||
| public virtual UserStatus Status => UserStatus.Unknown; | |||||
| public virtual UserStatus Status => UserStatus.Offline; | |||||
| internal RpcUser(DiscordRpcClient discord, ulong id) | internal RpcUser(DiscordRpcClient discord, ulong id) | ||||
| : base(discord, id) | : base(discord, id) | ||||
| @@ -1323,7 +1323,7 @@ namespace Discord.WebSocket | |||||
| guild.AddOrUpdateUser(data); | guild.AddOrUpdateUser(data); | ||||
| } | } | ||||
| var globalUser = State.GetUser(data.User.Id); | |||||
| var globalUser = GetOrCreateUser(State, data.User); //TODO: Memory leak, users removed from friends list will never RemoveRef. | |||||
| var before = globalUser.Clone(); | var before = globalUser.Clone(); | ||||
| globalUser.Update(State, data); | globalUser.Update(State, data); | ||||
| @@ -47,11 +47,5 @@ namespace Discord.WebSocket | |||||
| } | } | ||||
| internal new SocketGlobalUser Clone() => MemberwiseClone() as SocketGlobalUser; | internal new SocketGlobalUser Clone() => MemberwiseClone() as SocketGlobalUser; | ||||
| //Updates are only ever called from the gateway thread, thus threadsafe | |||||
| internal override void Update(ClientState state, Model model) | |||||
| { | |||||
| base.Update(state, model); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||