Browse Source

Initialize User.Roles sooner

tags/docs-0.9
RogueException 9 years ago
parent
commit
c0cde7ff5c
1 changed files with 8 additions and 13 deletions
  1. +8
    -13
      src/Discord.Net/Models/User.cs

+ 8
- 13
src/Discord.Net/Models/User.cs View File

@@ -132,6 +132,7 @@ namespace Discord
x.CurrentUser = null; x.CurrentUser = null;
}); });
_voiceChannel = new Reference<Channel>(x => _client.Channels[x]); _voiceChannel = new Reference<Channel>(x => _client.Channels[x]);
_roles = new Dictionary<string, Role>();


Status = UserStatus.Offline; Status = UserStatus.Offline;
_channels = new ConcurrentDictionary<string, Channel>(); _channels = new ConcurrentDictionary<string, Channel>();
@@ -234,20 +235,18 @@ namespace Discord
} }
private void UpdateRoles(IEnumerable<Role> roles) private void UpdateRoles(IEnumerable<Role> roles)
{ {
Dictionary<string, Role> newRoles;
if (roles != null)
newRoles = roles.ToDictionary(x => x.Id, x => x);
else
newRoles = new Dictionary<string, Role>();

if (_server.Id != null) if (_server.Id != null)
{ {
Dictionary<string, Role> newRoles;
if (roles != null)
newRoles = roles.ToDictionary(x => x.Id, x => x);
else
newRoles = new Dictionary<string, Role>();

var everyone = Server.EveryoneRole; var everyone = Server.EveryoneRole;
newRoles.Add(everyone.Id, everyone); newRoles.Add(everyone.Id, everyone);
_roles = newRoles;
} }
else
_roles = new Dictionary<string, Role>();
_roles = newRoles;
} }


internal void UpdateActivity(DateTime? activity = null) internal void UpdateActivity(DateTime? activity = null)
@@ -258,8 +257,6 @@ namespace Discord


internal void UpdateServerPermissions() 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; var server = Server;
if (server == null) return; if (server == null) return;


@@ -288,8 +285,6 @@ namespace Discord
} }
internal void UpdateChannelPermissions(Channel channel) 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; var server = Server;
if (server == null) return; if (server == null) return;
if (channel.Server != server) throw new InvalidOperationException(); if (channel.Server != server) throw new InvalidOperationException();


Loading…
Cancel
Save