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