diff --git a/src/Discord.Net/Models/Server.cs b/src/Discord.Net/Models/Server.cs index 2c5e35b55..aefc7798e 100644 --- a/src/Discord.Net/Models/Server.cs +++ b/src/Discord.Net/Models/Server.cs @@ -81,6 +81,10 @@ namespace Discord [JsonIgnore] public IEnumerable Users => _members.Select(x => _client.Users[x.Key]); + /// Return the id of the role representing all users in a server. + public string EveryoneRoleId { get; private set; } + /// Return the the role representing all users in a server. + public Role EveryoneRole => _client.Roles[EveryoneRoleId]; /// Returns a collection of the ids of all roles within this server. [JsonIgnore] public IEnumerable RoleIds => _roles.Select(x => x.Key); @@ -110,10 +114,14 @@ namespace Discord Region = model.Region; var roles = _client.Roles; + bool isEveryone = true; //Assumes first role is always everyone foreach (var subModel in model.Roles) { - var role = roles.GetOrAdd(subModel.Id, Id); + var role = roles.GetOrAdd(subModel.Id, Id, isEveryone); role.Update(subModel); + if (isEveryone) + EveryoneRoleId = subModel.Id; + isEveryone = false; } } internal void Update(API.ExtendedGuildInfo model)