diff --git a/src/Discord.Net/Models/User.cs b/src/Discord.Net/Models/User.cs index 6d9fa1ff7..3abd56c74 100644 --- a/src/Discord.Net/Models/User.cs +++ b/src/Discord.Net/Models/User.cs @@ -132,6 +132,7 @@ namespace Discord x.CurrentUser = null; }); _voiceChannel = new Reference(x => _client.Channels[x]); + _roles = new Dictionary(); Status = UserStatus.Offline; _channels = new ConcurrentDictionary(); @@ -234,20 +235,18 @@ namespace Discord } private void UpdateRoles(IEnumerable roles) { + Dictionary newRoles; + if (roles != null) + newRoles = roles.ToDictionary(x => x.Id, x => x); + else + newRoles = new Dictionary(); + if (_server.Id != null) { - Dictionary newRoles; - if (roles != null) - newRoles = roles.ToDictionary(x => x.Id, x => x); - else - newRoles = new Dictionary(); - var everyone = Server.EveryoneRole; newRoles.Add(everyone.Id, everyone); - _roles = newRoles; } - else - _roles = new Dictionary(); + _roles = newRoles; } internal void UpdateActivity(DateTime? activity = null) @@ -258,8 +257,6 @@ namespace Discord internal void UpdateServerPermissions() { - if (_roles == null) return; // We don't have all our data processed yet, this will be called again soon - var server = Server; if (server == null) return; @@ -288,8 +285,6 @@ namespace Discord } internal void UpdateChannelPermissions(Channel channel) { - if (_roles == null) return; // We don't have all our data processed yet, this will be called again soon - var server = Server; if (server == null) return; if (channel.Server != server) throw new InvalidOperationException();