@@ -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); | |||||
} | |||||
} | } | ||||
} | } |